From 30086c22786d5754df6306eba910d6bf66f6058e Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 26 Dec 2008 09:13:47 +0000 Subject: [PATCH] [ 2236639 ] Creation of Location allowed without BP Location associated --- .../webui/editor/WLocationEditor.java | 20 ++++++++++++----- .../webui/editor/WLocatorEditor.java | 22 +++++++++++++++---- .../webui/editor/WebEditorFactory.java | 7 ++---- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java index 54d479c3e3..288214a244 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java @@ -24,6 +24,7 @@ import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.component.Locationbox; import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.window.WLocationDialog; +import org.compiere.model.GridField; import org.compiere.model.MLocation; import org.compiere.model.MLocationLookup; import org.compiere.util.CLogger; @@ -45,7 +46,6 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC private static CLogger log = CLogger.getCLogger(WLocationEditor.class); private static final long serialVersionUID = 1L; - private String m_columnName; private MLocationLookup m_Location; private MLocation m_value; @@ -62,12 +62,22 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC { super(new Locationbox(), "Address","",mandatory,isReadOnly,isUpdateable); - m_columnName = columnName; + setColumnName(columnName); m_Location = mLocation; getComponent().setButtonImage("/images/Location10.png"); } - @Override + /** + * + * @param gridField + */ + public WLocationEditor(GridField gridField) { + super(new Locationbox(), gridField); + m_Location = (MLocationLookup)gridField.getLookup(); + getComponent().setButtonImage("/images/Location10.png"); + } + + @Override public String getDisplay() { return getComponent().getText(); @@ -155,11 +165,11 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC C_Location_ID = m_value.getC_Location_ID(); Integer ii = new Integer(C_Location_ID); // force Change - user does not realize that embedded object is already saved. - ValueChangeEvent valuechange = new ValueChangeEvent(this,m_columnName,null,null); + ValueChangeEvent valuechange = new ValueChangeEvent(this,getColumnName(),null,null); fireValueChange(valuechange); // resets m_mLocation if (C_Location_ID != 0) { - ValueChangeEvent vc = new ValueChangeEvent(this,m_columnName,null,ii); + ValueChangeEvent vc = new ValueChangeEvent(this,getColumnName(),null,ii); fireValueChange(vc); } setValue(ii); diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java index 0835297797..d66c5d4153 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java @@ -28,6 +28,7 @@ import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.component.EditorBox; import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.window.WLocatorDialog; +import org.compiere.model.GridField; import org.compiere.model.MLocator; import org.compiere.model.MLocatorLookup; import org.compiere.model.MRole; @@ -51,7 +52,6 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh { private static final String[] LISTENER_EVENTS = {Events.ON_CLICK}; - private String m_columnName; private MLocatorLookup m_mLocator; private Object m_value; private int m_WindowNo; @@ -82,7 +82,7 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh { super(new EditorBox(), "Locator", "", mandatory, isReadOnly, isUpdateable); - m_columnName = columnName; + setColumnName(columnName); m_mLocator = mLocator; getComponent().setButtonImage("/images/Locator10.png"); @@ -91,6 +91,20 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh m_WindowNo = windowNo; } + /** + * @param gridField + */ + public WLocatorEditor(GridField gridField) { + super(new EditorBox(), gridField); + m_mLocator = (MLocatorLookup)gridField.getLookup(); + + getComponent().setButtonImage("/images/Locator10.png"); + + setDefault_Locator_ID(); // set default locator, teo_sarca [ 1661546 ] + + m_WindowNo = gridField.getWindowNo(); + } + public void setValue(Object value) { setValue (value, false); @@ -118,7 +132,7 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh // Data Binding if (fire) { - ValueChangeEvent val = new ValueChangeEvent(this, m_columnName, null, value); + ValueChangeEvent val = new ValueChangeEvent(this, getColumnName(), null, value); fireValueChange(val); } @@ -201,7 +215,7 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh m_mLocator.setOnly_Warehouse_ID(only_Warehouse_ID); m_mLocator.setOnly_Product_ID(getOnly_Product_ID()); - WLocatorDialog ld = new WLocatorDialog(Msg.translate(Env.getCtx(), m_columnName), + WLocatorDialog ld = new WLocatorDialog(Msg.translate(Env.getCtx(), getColumnName()), m_mLocator, M_Locator_ID, isMandatory(), only_Warehouse_ID, this.m_WindowNo); // display diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java index 1051b5d25e..d9eb55e38e 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java @@ -142,14 +142,11 @@ public class WebEditorFactory else if (displayType == DisplayType.Location) { - editor = new WLocationEditor(gridField.getColumnName(),gridField.isMandatory(false),gridField.isReadOnly(),gridField.isUpdateable(), - (MLocationLookup)gridField.getLookup()); + editor = new WLocationEditor(gridField); } else if (displayType == DisplayType.Locator) { - editor = new WLocatorEditor(gridField.getColumnName(), gridField.isMandatory(false), - gridField.isReadOnly(), gridField.isUpdateable(), - (MLocatorLookup)gridField.getLookup(), gridField.getWindowNo()); + editor = new WLocatorEditor(gridField); } else if (displayType == DisplayType.Account) {