IDEMPIERE-144 Performance: Remove the use of zk event thread. Drop the use of FileUpload, remove use of Mode_MODAL that have been overlook in previous commit.

This commit is contained in:
Heng Sin Low 2012-08-17 10:42:25 +08:00
parent 7ddd707502
commit a9ca3fbf24
10 changed files with 67 additions and 97 deletions

View File

@ -87,7 +87,7 @@ public class WProcessCtl extends AbstractProcessCtl {
para.setWidth("500px"); para.setWidth("500px");
para.setVisible(true); para.setVisible(true);
para.setPosition("center"); para.setPosition("center");
para.setAttribute(Window.MODE_KEY, Window.MODE_MODAL); para.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
AEnv.showWindow(para); AEnv.showWindow(para);
} }
} // execute } // execute

View File

@ -51,6 +51,7 @@ import org.compiere.util.Env;
import org.compiere.util.Ini; import org.compiere.util.Ini;
import org.compiere.util.Msg; import org.compiere.util.Msg;
import org.zkoss.util.media.Media; import org.zkoss.util.media.Media;
import org.zkoss.zk.ui.IdSpace;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
@ -60,7 +61,6 @@ import org.zkoss.zul.Center;
import org.zkoss.zul.North; import org.zkoss.zul.North;
import org.zkoss.zul.South; import org.zkoss.zul.South;
import org.zkoss.zul.Div; import org.zkoss.zul.Div;
import org.zkoss.zul.Fileupload;
import org.zkoss.zul.Hbox; import org.zkoss.zul.Hbox;
import org.zkoss.zul.Separator; import org.zkoss.zul.Separator;
@ -118,7 +118,6 @@ public class WFileImport extends ADForm implements EventListener
public WFileImport() public WFileImport()
{ {
this.addEventListener(Events.ON_UPLOAD, this);
} }
/** /**
@ -173,7 +172,8 @@ public class WFileImport extends ADForm implements EventListener
bFile.setLabel(Msg.getMsg(Env.getCtx(), "FileImportFile")); bFile.setLabel(Msg.getMsg(Env.getCtx(), "FileImportFile"));
bFile.setTooltiptext(Msg.getMsg(Env.getCtx(), "FileImportFileInfo")); bFile.setTooltiptext(Msg.getMsg(Env.getCtx(), "FileImportFileInfo"));
bFile.addEventListener(Events.ON_CLICK, this); bFile.setUpload("true");
bFile.addEventListener(Events.ON_UPLOAD, this);
fCharset.setMold("select"); fCharset.setMold("select");
fCharset.setRows(0); fCharset.setRows(0);
@ -275,9 +275,10 @@ public class WFileImport extends ADForm implements EventListener
public void onEvent(Event e) throws Exception public void onEvent(Event e) throws Exception
{ {
if (e.getTarget() == bFile) if (e instanceof UploadEvent)
{ {
cmd_loadFile(); UploadEvent ue = (UploadEvent) e;
processUploadMedia(ue.getMedia());
invalidate(); invalidate();
} }
else if (e.getTarget() == fCharset) else if (e.getTarget() == fCharset)
@ -308,11 +309,6 @@ public class WFileImport extends ADForm implements EventListener
SessionManager.getAppDesktop().closeActiveWindow(); SessionManager.getAppDesktop().closeActiveWindow();
return; return;
} }
else if (e instanceof UploadEvent)
{
UploadEvent ue = (UploadEvent) e;
processUploadMedia(ue.getMedia());
}
if (m_data != null && m_data.size() > 0 // file loaded if (m_data != null && m_data.size() > 0 // file loaded
&& m_format != null && m_format.getRowCount() > 0) // format loaded && m_format != null && m_format.getRowCount() > 0) // format loaded
@ -321,17 +317,6 @@ public class WFileImport extends ADForm implements EventListener
confirmPanel.getButton("Ok").setEnabled(false); confirmPanel.getButton("Ok").setEnabled(false);
} }
/**************************************************************************
* Load File
*/
private void cmd_loadFile()
{
Media media = Fileupload.get();
if (AdempiereWebUI.isEventThreadEnabled())
processUploadMedia(media);
}
private void processUploadMedia(Media media) { private void processUploadMedia(Media media) {
if (media == null) if (media == null)
return; return;

View File

@ -12,6 +12,9 @@
*****************************************************************************/ *****************************************************************************/
package org.adempiere.webui.component; package org.adempiere.webui.component;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
/** /**
* *
* @author Low Heng Sin * @author Low Heng Sin
@ -27,6 +30,7 @@ public class FilenameBox extends EditorBox
public FilenameBox() public FilenameBox()
{ {
super(); super();
btn.setUpload("true");
} }
/** /**
@ -36,5 +40,18 @@ public class FilenameBox extends EditorBox
{ {
super(); super();
setText(fileName); setText(fileName);
btn.setUpload("true");
}
/* (non-Javadoc)
* @see org.adempiere.webui.component.EditorBox#addEventListener(java.lang.String, org.zkoss.zk.ui.event.EventListener)
*/
@Override
public boolean addEventListener(String evtnm, EventListener listener) {
if (Events.ON_UPLOAD.equals(evtnm)) {
return btn.addEventListener(evtnm, listener);
} else {
return super.addEventListener(evtnm, listener);
}
} }
} }

View File

@ -76,7 +76,7 @@ public class RequestWindow extends Window implements EventListener<Event> {
this.parent = parent; this.parent = parent;
setTitle("Event"); setTitle("Event");
setAttribute(Window.MODE_KEY, Window.MODE_MODAL); setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
setWidth("400px"); setWidth("400px");
setHeight("500px"); setHeight("500px");
this.setBorder("normal"); this.setBorder("normal");

View File

@ -41,6 +41,7 @@ public class WFileDirectoryEditor extends WEditor
super(new FilenameBox(), gridField); super(new FilenameBox(), gridField);
getComponent().setButtonImage("/images/Open16.png"); getComponent().setButtonImage("/images/Open16.png");
getComponent().addEventListener(Events.ON_CLICK, this); getComponent().addEventListener(Events.ON_CLICK, this);
getComponent().getButton().setUpload("false");
} }
@Override @Override

View File

@ -21,17 +21,14 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.webui.AdempiereWebUI;
import org.adempiere.webui.component.FilenameBox; import org.adempiere.webui.component.FilenameBox;
import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.zkoss.util.media.Media; import org.zkoss.util.media.Media;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.UploadEvent; import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zul.Fileupload;
/** /**
* *
@ -50,7 +47,8 @@ public class WFilenameEditor extends WEditor
{ {
super(new FilenameBox(), gridField); super(new FilenameBox(), gridField);
getComponent().setButtonImage("/images/Open16.png"); getComponent().setButtonImage("/images/Open16.png");
getComponent().addEventListener(Events.ON_CLICK, this); getComponent().addEventListener(Events.ON_UPLOAD, this);
getComponent().getButton().setUpload("true,native");
} }
@Override @Override
@ -105,11 +103,6 @@ public class WFilenameEditor extends WEditor
newValue = getComponent().getText(); newValue = getComponent().getText();
} }
else if (Events.ON_CLICK.equals(event.getName()))
{
cmd_file();
newValue = getComponent().getText();
}
else if (event instanceof UploadEvent) else if (event instanceof UploadEvent)
{ {
UploadEvent ue = (UploadEvent) event; UploadEvent ue = (UploadEvent) event;
@ -121,6 +114,10 @@ public class WFilenameEditor extends WEditor
return; return;
} }
processNewValue(newValue);
}
protected void processNewValue(String newValue) {
if (oldValue != null && newValue != null && oldValue.equals(newValue)) { if (oldValue != null && newValue != null && oldValue.equals(newValue)) {
return; return;
} }
@ -131,29 +128,6 @@ public class WFilenameEditor extends WEditor
fireValueChange(changeEvent); fireValueChange(changeEvent);
} }
private Component parent = null;
/**
* Load file
*/
private void cmd_file()
{
if (parent == null || getComponent().getParent() != parent)
{
if (parent != null)
{
parent.removeEventListener(Events.ON_UPLOAD, this);
}
parent = getComponent().getParent();
parent.addEventListener(Events.ON_UPLOAD, this);
}
// Show File Open Dialog
Media media = Fileupload.get(true);
if (AdempiereWebUI.isEventThreadEnabled())
processUploadMedia(media);
} // cmd_file
private void processUploadMedia(Media file) { private void processUploadMedia(Media file) {
if (file == null) if (file == null)
return; return;
@ -196,6 +170,8 @@ public class WFilenameEditor extends WEditor
} }
getComponent().setText(fileName); getComponent().setText(fileName);
processNewValue(getComponent().getText());
} }
public String[] getEvents() public String[] getEvents()

View File

@ -25,6 +25,7 @@ import org.adempiere.webui.component.Textbox;
import org.adempiere.webui.component.Window; import org.adempiere.webui.component.Window;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener; import org.adempiere.webui.event.ContextMenuListener;
import org.adempiere.webui.event.DialogEvents;
import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
@ -32,6 +33,7 @@ import org.adempiere.webui.window.WTextEditorDialog;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
/** /**
@ -221,18 +223,24 @@ public class WStringEditor extends WEditor implements ContextMenuListener
} }
else if (WEditorPopupMenu.EDITOR_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.EDITOR_EVENT.equals(evt.getContextEvent()))
{ {
WTextEditorDialog dialog = new WTextEditorDialog(this.getColumnName(), getDisplay(), final WTextEditorDialog dialog = new WTextEditorDialog(this.getColumnName(), getDisplay(),
isReadWrite(), gridField.getFieldLength()); isReadWrite(), gridField.getFieldLength());
dialog.setAttribute(Window.MODE_KEY, Window.MODE_MODAL); dialog.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
SessionManager.getAppDesktop().showWindow(dialog); dialog.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {
@Override
public void onEvent(Event event) throws Exception {
if (!dialog.isCancelled()) { if (!dialog.isCancelled()) {
getComponent().setText(dialog.getText()); getComponent().setText(dialog.getText());
String newText = getComponent().getValue(); String newText = getComponent().getValue();
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newText); ValueChangeEvent changeEvent = new ValueChangeEvent(WStringEditor.this, WStringEditor.this.getColumnName(), oldValue, newText);
super.fireValueChange(changeEvent); WStringEditor.super.fireValueChange(changeEvent);
oldValue = newText; oldValue = newText;
} }
} }
});
SessionManager.getAppDesktop().showWindow(dialog);
}
else if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent()))
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);

View File

@ -1877,19 +1877,10 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
} }
//show table with deletion rows -> value, name... //show table with deletion rows -> value, name...
final Window messagePanel = new Window() { final Window messagePanel = new Window();
private static final long serialVersionUID = 3954976581821972619L;
@Override
public void detach() {
super.detach();
focusToActivePanel();
}
};
messagePanel.setBorder("normal"); messagePanel.setBorder("normal");
messagePanel.setWidth("600px"); messagePanel.setWidth("600px");
messagePanel.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title); messagePanel.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title);
messagePanel.setAttribute(Window.MODE_KEY, Window.MODE_MODAL);
messagePanel.setClosable(true); messagePanel.setClosable(true);
messagePanel.setSizable(true); messagePanel.setSizable(true);
@ -2062,6 +2053,12 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
hbox.setHflex("1"); hbox.setHflex("1");
messagePanel.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); messagePanel.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
messagePanel.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {
@Override
public void onEvent(Event event) throws Exception {
focusToActivePanel();
}
});
AEnv.showWindow(messagePanel); AEnv.showWindow(messagePanel);
} }
// //

View File

@ -254,7 +254,8 @@ public class WAttachment extends Window implements EventListener<Event>
bLoad.setImage("/images/Import24.png"); bLoad.setImage("/images/Import24.png");
bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load")); bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load"));
bLoad.addEventListener(Events.ON_CLICK, this); bLoad.setUpload("true");
bLoad.addEventListener(Events.ON_UPLOAD, this);
bDelete.setImage("/images/Delete24.png"); bDelete.setImage("/images/Delete24.png");
bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete"));
@ -455,7 +456,13 @@ public class WAttachment extends Window implements EventListener<Event>
{ {
// Save and Close // Save and Close
if (e.getTarget() == bOk) if (e instanceof UploadEvent)
{
preview.setVisible(false);
UploadEvent ue = (UploadEvent) e;
processUploadMedia(ue.getMedia());
}
else if (e.getTarget() == bOk)
{ {
String newText = text.getText(); String newText = text.getText();
@ -513,11 +520,6 @@ public class WAttachment extends Window implements EventListener<Event>
autoPreview (cbContent.getSelectedIndex(), false); autoPreview (cbContent.getSelectedIndex(), false);
} }
// Load Attachment
else if (e.getTarget() == bLoad)
loadFile();
// Open Attachment // Open Attachment
else if (e.getTarget() == bSave) else if (e.getTarget() == bSave)
@ -533,21 +535,6 @@ public class WAttachment extends Window implements EventListener<Event>
} // onEvent } // onEvent
/**************************************************************************
* Load file for attachment
*/
private void loadFile()
{
log.info("");
preview.setVisible(false);
Media media = Fileupload.get(true);
if (AdempiereWebUI.isEventThreadEnabled())
processUploadMedia(media);
}
private void processUploadMedia(Media media) { private void processUploadMedia(Media media) {
if (media != null) if (media != null)
{ {

View File

@ -85,7 +85,6 @@ public class WChat extends Window implements EventListener<Event>, DialogEvents
{ {
super(); super();
setTitle(Msg.getMsg(Env.getCtx(), "Chat") + " " + Description); setTitle(Msg.getMsg(Env.getCtx(), "Chat") + " " + Description);
setAttribute(Window.MODE_KEY, Window.MODE_MODAL);
log.config("ID=" + CM_Chat_ID log.config("ID=" + CM_Chat_ID
+ ", Table=" + AD_Table_ID + ", Record=" + Record_ID); + ", Table=" + AD_Table_ID + ", Record=" + Record_ID);
// //