From 0880878b70c828643d8205ff31d273419388ac68 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 10 Aug 2009 05:05:32 +0000 Subject: [PATCH] https://sourceforge.net/tracker/?func=detail&aid=2834719&group_id=176962&atid=955896 - binary field editor not working --- .../org/adempiere/webui/editor/WBinaryEditor.java | 15 ++++++++++++++- .../org/adempiere/webui/window/WMediaDialog.java | 15 ++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java index b1a8ac5c85..9241e6abf1 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java @@ -15,6 +15,7 @@ package org.adempiere.webui.editor; import org.adempiere.webui.component.Button; +import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.window.WMediaDialog; import org.compiere.model.GridField; import org.compiere.util.CLogger; @@ -125,7 +126,19 @@ public class WBinaryEditor extends WEditor { WMediaDialog dialog = new WMediaDialog(gridField.getHeader(), m_data); if (!dialog.isCancel() && dialog.isChange()) - m_data = dialog.getData(); + { + Object oldValue = m_data; + Object newValue = dialog.getData(); + if (oldValue != null && newValue != null && oldValue.equals(newValue)) { + return; + } + if (oldValue == null && newValue == null) { + return; + } + ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); + super.fireValueChange(changeEvent); + setValue(newValue); + } } } } diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java b/zkwebui/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java index 668bbf55b0..545b9fe90e 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java @@ -16,7 +16,6 @@ package org.adempiere.webui.window; -import java.awt.Dimension; import java.sql.Blob; import java.sql.Clob; import java.sql.SQLException; @@ -95,6 +94,8 @@ public class WMediaDialog extends Window implements EventListener try { staticInit(); + m_data = data; + displayData(); } catch (Exception ex) { @@ -150,15 +151,15 @@ public class WMediaDialog extends Window implements EventListener bSave.setEnabled(false); - bSave.setSrc("/images/Export24.png"); + bSave.setImage("/images/Export24.png"); bSave.setTooltiptext(Msg.getMsg(Env.getCtx(), "AttachmentSave")); bSave.addEventListener(Events.ON_CLICK, this); - bLoad.setSrc("/images/Import24.png"); + bLoad.setImage("/images/Import24.png"); bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load")); bLoad.addEventListener(Events.ON_CLICK, this); - bDelete.setSrc("/images/Delete24.png"); + bDelete.setImage("/images/Delete24.png"); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); bDelete.addEventListener(Events.ON_CLICK, this); @@ -210,8 +211,6 @@ public class WMediaDialog extends Window implements EventListener bDelete.setEnabled(false); bSave.setEnabled(false); - Dimension size = null; - if (m_data != null) { bSave.setEnabled(true); @@ -236,12 +235,10 @@ public class WMediaDialog extends Window implements EventListener String contentType = null; if (m_data instanceof byte[]) { - contentType = "application/octet-stream"; media = new AMedia(this.getTitle(), null, contentType, (byte[])m_data); } else if (m_data instanceof Blob) { - contentType = "application/octet-stream"; media = new AMedia(this.getTitle(), null, contentType, ((Blob)m_data).getBinaryStream()); } else if (m_data instanceof Clob) @@ -331,7 +328,6 @@ public class WMediaDialog extends Window implements EventListener } catch (InterruptedException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -340,6 +336,7 @@ public class WMediaDialog extends Window implements EventListener //update m_change = true; m_data = media.getByteData(); + displayData(); } // getFileName