From 8b672a3a51187ed0380c513066e40b50d69c8ca5 Mon Sep 17 00:00:00 2001 From: Deepak Pansheriya Date: Wed, 2 Dec 2020 20:29:23 +0530 Subject: [PATCH] IDEMPIERE-2999 : refactoring as per Hengsin's review comments (#427) * IDEMPIERE-2999 : refactoring as per Hengsin's review comments * IDEMPIERE-2999: Fixing compilation issue * IDEMPIERE-2999: Fixing as per Hengsin'e review --- .../src/org/compiere/model/MAttribute.java | 47 +++++++--- .../compiere/model/MAttributeInstance.java | 90 ++++++++++++++----- .../webui/window/WPAttributeDialog.java | 8 +- 3 files changed, 107 insertions(+), 38 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MAttribute.java b/org.adempiere.base/src/org/compiere/model/MAttribute.java index 1180953023..70434c60ab 100644 --- a/org.adempiere.base/src/org/compiere/model/MAttribute.java +++ b/org.adempiere.base/src/org/compiere/model/MAttribute.java @@ -29,6 +29,7 @@ import org.compiere.util.CCache; import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; import org.compiere.util.Msg; import org.idempiere.cache.ImmutablePOSupport; @@ -205,8 +206,8 @@ public class MAttribute extends X_M_Attribute implements ImmutablePOSupport /** * Set Attribute Instance - * @param value value * @param M_AttributeSetInstance_ID id + * @param value value */ public void setMAttributeInstance (int M_AttributeSetInstance_ID, MAttributeValue value) { @@ -239,8 +240,8 @@ public class MAttribute extends X_M_Attribute implements ImmutablePOSupport /** * Set Attribute Instance - * @param value string value * @param M_AttributeSetInstance_ID id + * @param value string value */ public void setMAttributeInstance (int M_AttributeSetInstance_ID, String value) { @@ -255,8 +256,8 @@ public class MAttribute extends X_M_Attribute implements ImmutablePOSupport /** * Set Attribute Instance - * @param value number value * @param M_AttributeSetInstance_ID id + * @param value number value */ public void setMAttributeInstance (int M_AttributeSetInstance_ID, BigDecimal value) { @@ -270,21 +271,43 @@ public class MAttribute extends X_M_Attribute implements ImmutablePOSupport } // setAttributeInstance /** - * Set Attribute Instance - * - * @param valueInt Integer value - * @param M_AttributeSetInstance_ID id - * @param value + * Set Attribute Instance + * @param M_AttributeSetInstance_ID id + * @param value int */ - public void setMAttributeInstance(int M_AttributeSetInstance_ID, int valueInt, String value) + public void setMAttributeInstance (int M_AttributeSetInstance_ID, int value) { MAttributeInstance instance = getMAttributeInstance(M_AttributeSetInstance_ID); if (instance == null) - instance = new MAttributeInstance(getCtx(), getM_Attribute_ID(), M_AttributeSetInstance_ID, valueInt, get_TrxName()); - instance.setValueInt(valueInt, value); + instance = new MAttributeInstance (getCtx(), getM_Attribute_ID(), + M_AttributeSetInstance_ID, value, get_TrxName()); + else + instance.setValueInt(value); + instance.saveEx(); + } // setAttributeInstance + + /** + * Set Attribute Instance + * + * @param M_AttributeSetInstance_ID id + * @param value KeyNamePair + */ + public void setMAttributeInstance(int M_AttributeSetInstance_ID, KeyNamePair value) + { + MAttributeInstance instance = getMAttributeInstance(M_AttributeSetInstance_ID); + if (instance == null) + instance = new MAttributeInstance(getCtx(), getM_Attribute_ID(), M_AttributeSetInstance_ID, value, get_TrxName()); + else + instance.setValueKeyNamePair(value); instance.saveEx(); } // setAttributeInstance - + + /** + * Set Attribute Instance + * + * @param M_AttributeSetInstance_ID id + * @param value Timestamp + */ public void setMAttributeInstance(int M_AttributeSetInstance_ID, Timestamp value) { MAttributeInstance instance = getMAttributeInstance(M_AttributeSetInstance_ID); diff --git a/org.adempiere.base/src/org/compiere/model/MAttributeInstance.java b/org.adempiere.base/src/org/compiere/model/MAttributeInstance.java index 1ad46653df..c5c718c906 100644 --- a/org.adempiere.base/src/org/compiere/model/MAttributeInstance.java +++ b/org.adempiere.base/src/org/compiere/model/MAttributeInstance.java @@ -23,6 +23,7 @@ import java.text.SimpleDateFormat; import java.util.Properties; import org.compiere.util.DisplayType; +import org.compiere.util.KeyNamePair; /** * Product Attribute Set @@ -52,7 +53,7 @@ public class MAttributeInstance extends X_M_AttributeInstance } // MAttributeInstance /** - * Load Cosntructor + * Load Constructor * @param ctx context * @param rs result set * @param trxName transaction @@ -62,6 +63,21 @@ public class MAttributeInstance extends X_M_AttributeInstance super(ctx, rs, trxName); } // MAttributeInstance + /** + * General Constructor + * + * @param ctx context + * @param M_Attribute_ID attribute + * @param M_AttributeSetInstance_ID instance + * @param trxName transaction + */ + public MAttributeInstance(Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, String trxName) + { + super(ctx, 0, trxName); + setM_Attribute_ID(M_Attribute_ID); + setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); + } // MAttributeInstance + /** * String Value Constructor * @param ctx context @@ -73,14 +89,12 @@ public class MAttributeInstance extends X_M_AttributeInstance public MAttributeInstance (Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, String Value, String trxName) { - super(ctx, 0, trxName); - setM_Attribute_ID (M_Attribute_ID); - setM_AttributeSetInstance_ID (M_AttributeSetInstance_ID); + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); setValue (Value); } // MAttributeInstance /** - * Number Value Constructior + * Number Value Constructor * @param ctx context * @param M_Attribute_ID attribute * @param M_AttributeSetInstance_ID instance @@ -90,9 +104,7 @@ public class MAttributeInstance extends X_M_AttributeInstance public MAttributeInstance (Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, BigDecimal BDValue, String trxName) { - super(ctx, 0, trxName); - setM_Attribute_ID (M_Attribute_ID); - setM_AttributeSetInstance_ID (M_AttributeSetInstance_ID); + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); setValueNumber(BDValue); } // MAttributeInstance @@ -108,32 +120,56 @@ public class MAttributeInstance extends X_M_AttributeInstance public MAttributeInstance(Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, int M_AttributeValue_ID, String Value, String trxName) { - super(ctx, 0, trxName); - setM_Attribute_ID(M_Attribute_ID); - setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); setM_AttributeValue_ID(M_AttributeValue_ID); setValue(Value); } // MAttributeInstance - + /** + * Integer Value Constructor + * @param ctx + * @param M_Attribute_ID + * @param M_AttributeSetInstance_ID + * @param Value + * @param trxName + */ public MAttributeInstance (Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, int Value, String trxName) { - super(ctx, 0, trxName); - setM_Attribute_ID (M_Attribute_ID); - setM_AttributeSetInstance_ID (M_AttributeSetInstance_ID); + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); setValueNumber(BigDecimal.valueOf(Value)); } // MAttributeInstance - public MAttributeInstance(Properties ctx, int m_Attribute_ID, int m_AttributeSetInstance_ID, Timestamp value, + /** + * TimeStamp Value Constructor + * @param ctx + * @param M_Attribute_ID + * @param M_AttributeSetInstance_ID + * @param value + * @param trxName + */ + public MAttributeInstance(Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, Timestamp value, String trxName) { - super(ctx, 0, trxName); - setM_Attribute_ID(m_Attribute_ID); - setM_AttributeSetInstance_ID(m_AttributeSetInstance_ID); + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); setValueDate(value); } // MAttributeInstance + /** + * KeyNamePair Value Constructor + * Use for table direct or table type reference + * @param ctx + * @param M_Attribute_ID + * @param M_AttributeSetInstance_ID + * @param value + * @param trxName + */ + public MAttributeInstance(Properties ctx, int M_Attribute_ID, int M_AttributeSetInstance_ID, KeyNamePair value, String trxName) + { + this(ctx, M_Attribute_ID, M_AttributeSetInstance_ID, trxName); + setValueKeyNamePair(value); + } // MAttributeInstance + /** * Set ValueNumber * @param ValueNumber number @@ -213,11 +249,10 @@ public class MAttributeInstance extends X_M_AttributeInstance * @param valueInt * @param value */ - public void setValueInt(int valueInt, String value) + public void setValueInt(int valueInt) { super.setValueNumber(BigDecimal.valueOf(valueInt)); - if (value == null) - value = String.valueOf(valueInt); + String value = String.valueOf(valueInt); setValue(value); } // setValueInt @@ -234,6 +269,17 @@ public class MAttributeInstance extends X_M_AttributeInstance return super.getValueNumber().intValue(); } // getValueInt + + /** + * Set Value as keyNamePair + * @param value + */ + public void setValueKeyNamePair(KeyNamePair value) + { + super.setValueNumber(BigDecimal.valueOf(value.getKey())); + setValue(value.getName()); + } // setValueKeyNamePair + /** * String Representation * @return info diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java index d79710a6b0..e848f16025 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java @@ -1160,7 +1160,7 @@ public class WPAttributeDialog extends Window implements EventListener if (attributes.isMandatory() && value == null) mandatory += " - " + attributes.getName(); if (displayType == DisplayType.Integer) - attributes.setMAttributeInstance(m_M_AttributeSetInstance_ID, value == null ? 0 : ((Number) value).intValue(), null); + attributes.setMAttributeInstance(m_M_AttributeSetInstance_ID, (int)(value == null ? 0 : ((Number) value).intValue())); else attributes.setMAttributeInstance(m_M_AttributeSetInstance_ID, (BigDecimal) value); } @@ -1176,16 +1176,16 @@ public class WPAttributeDialog extends Window implements EventListener if (attributes.isMandatory() && value == null) mandatory += " - " + attributes.getName(); - String valueLable = null; + String valueLabel = null; if (displayType == DisplayType.TableDir || displayType == DisplayType.Table || displayType == DisplayType.Search || displayType == DisplayType.Account) { - valueLable = editor.getDisplay(); + valueLabel = editor.getDisplay(); } - attributes.setMAttributeInstance(m_M_AttributeSetInstance_ID, value == null ? 0 : value.intValue(), valueLable); + attributes.setMAttributeInstance(m_M_AttributeSetInstance_ID, new KeyNamePair(value == null ? 0 : value.intValue(), valueLabel)); } else {