From de3f840d0a0423114c967c18d311a692c628cfa2 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 12 Sep 2012 11:04:59 -0500 Subject: [PATCH] IDEMPIERE-417 Update BPLocation.Name --- .../src/org/compiere/grid/ed/VLocation.java | 20 ++++++++++++++----- .../org/compiere/grid/ed/VLocationDialog.java | 2 ++ .../webui/editor/WLocationEditor.java | 8 ++++++++ .../webui/window/WLocationDialog.java | 2 ++ 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocation.java b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocation.java index ec08b06d30..26d2bb5f3a 100644 --- a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocation.java +++ b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocation.java @@ -364,11 +364,21 @@ public class VLocation extends JComponent return; // Data Binding - int C_Location_ID = 0; - if (m_value != null) - C_Location_ID = m_value.getC_Location_ID(); - Integer ii = new Integer(C_Location_ID); - setValue(ii); + try + { + int C_Location_ID = 0; + if (m_value != null) + C_Location_ID = m_value.getC_Location_ID(); + Integer ii = new Integer(C_Location_ID); + + if (C_Location_ID != 0) + fireVetoableChange(m_columnName, oldValue, ii); + setValue(ii); + } + catch (PropertyVetoException pve) + { + log.log(Level.SEVERE, "VLocation.actionPerformed", pve); + } } // actionPerformed /** diff --git a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocationDialog.java b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocationDialog.java index 88152127eb..81435b0e81 100644 --- a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocationDialog.java +++ b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VLocationDialog.java @@ -624,6 +624,8 @@ public class VLocationDialog extends CDialog bpl.setName(bpl.getBPLocName(m_location)); if (bpl.save()) success = true; + } else { + success = true; } } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java index e4043be53e..ec87df8043 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java @@ -179,6 +179,14 @@ public class WLocationEditor extends WEditor implements EventListener, Pr if (m_value != null) 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(WLocationEditor.this,getColumnName(),null,null); + fireValueChange(valuechange); // resets m_mLocation + if (C_Location_ID != 0) + { + ValueChangeEvent vc = new ValueChangeEvent(WLocationEditor.this,getColumnName(),null,ii); + fireValueChange(vc); + } setValue(ii); } }); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java index 167adc8b94..2dbacd733f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java @@ -676,6 +676,8 @@ public class WLocationDialog extends Window implements EventListener bpl.setName(bpl.getBPLocName(m_location)); if (bpl.save()) success = true; + } else { + success = true; } } }