diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java index dc9738d4bb..831425b897 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java @@ -16,11 +16,13 @@ package org.adempiere.webui.editor; import org.adempiere.webui.component.FilenameBox; import org.adempiere.webui.component.FolderBrowser; +import org.adempiere.webui.event.DialogEvents; import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.theme.ThemeManager; import org.compiere.model.GridField; import org.compiere.util.CLogger; import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** @@ -41,7 +43,6 @@ public class WFileDirectoryEditor extends WEditor { super(new FilenameBox(), gridField); getComponent().setButtonImage(ThemeManager.getThemeResource("images/Open16.png")); - getComponent().addEventListener(Events.ON_CLICK, this); getComponent().getButton().setUpload("false"); } @@ -98,7 +99,6 @@ public class WFileDirectoryEditor extends WEditor else if (Events.ON_CLICK.equals(event.getName())) { cmd_file(); - newValue = getComponent().getText(); } else { @@ -108,6 +108,16 @@ public class WFileDirectoryEditor extends WEditor if (oldValue != null && newValue != null && oldValue.equals(newValue)) { return; } + if (oldValue == null && newValue == null) { + return; + } + processNewValue(newValue); + } + + protected void processNewValue(String newValue) { + if (oldValue != null && newValue != null && oldValue.equals(newValue)) { + return; + } if (oldValue == null && newValue == null) { return; } @@ -120,10 +130,16 @@ public class WFileDirectoryEditor extends WEditor */ private void cmd_file() { - FolderBrowser directoryDialog = new FolderBrowser(true); - String directory = directoryDialog.getPath(); - getComponent().setText(directory); - getComponent().getTextbox().focus(); + final FolderBrowser directoryDialog = new FolderBrowser(true); + directoryDialog.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + String directory = directoryDialog.getPath(); + getComponent().setText(directory); + getComponent().getTextbox().focus(); + processNewValue(getComponent().getText()); + } + }); } // cmd_file public String[] getEvents() diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/AboutWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/AboutWindow.java index 327576f397..9a16309162 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/AboutWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/AboutWindow.java @@ -35,6 +35,7 @@ import org.adempiere.webui.component.Tabpanels; import org.adempiere.webui.component.Tabs; import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.component.Window; +import org.adempiere.webui.event.DialogEvents; import org.adempiere.webui.theme.ThemeManager; import org.adempiere.webui.util.FeedbackManager; import org.compiere.Adempiere; @@ -68,9 +69,9 @@ import org.zkoss.zul.Vbox; */ public class AboutWindow extends Window implements EventListener { /** - * + * */ - private static final long serialVersionUID = -2600883713422452076L; + private static final long serialVersionUID = 6573804051552633150L; private Checkbox bErrorsOnly; private Listbox logTable; @@ -479,18 +480,23 @@ public class AboutWindow extends Window implements EventListener { private void downloadAdempiereLogFile() { String path = Ini.getAdempiereHome() + File.separator + "log"; - FolderBrowser fileBrowser = new FolderBrowser(path, false); - String selected = fileBrowser.getPath(); - if (selected != null && selected.trim().length() > 0) { - File file = new File(selected); - if (file.exists() && file.isFile() && file.canRead()) { - try { - AMedia media = new AMedia(file, "text/plain", null); - Filedownload.save(media); - } catch (FileNotFoundException e) { + final FolderBrowser fileBrowser = new FolderBrowser(path, false); + fileBrowser.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + String selected = fileBrowser.getPath(); + if (selected != null && selected.trim().length() > 0) { + File file = new File(selected); + if (file.exists() && file.isFile() && file.canRead()) { + try { + AMedia media = new AMedia(file, "text/plain", null); + Filedownload.save(media); + } catch (FileNotFoundException e) { + } + } } } - } + }); } private void downloadLog() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java index 1999bd8492..48b058eb76 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java @@ -136,7 +136,8 @@ public class WTextEditorDialog extends Window implements EventListener{ status.setStyle("margin-top:10px;"); textBox.addEventListener(Events.ON_CHANGE, this); - editor.addEventListener(Events.ON_CHANGE, this); + if (editor != null) + editor.addEventListener(Events.ON_CHANGE, this); } tabbox.addEventListener(Events.ON_SELECT, this);