IDEMPIERE-5637 - Improve GridField to allow setting the default values of GridFieldVO programmatically with a method (#1746)
* IDEMPIERE-5637 - Improved GridField and GridFieldVO to allow setting default value programmatically * IDEMPIERE-5637 - Minor refactor to improve code readibility * IDEMPIERE-5637 - Defined constants for priority default order
This commit is contained in:
parent
8b9fd48d49
commit
89dfb22482
|
@ -83,7 +83,19 @@ public class GridField
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 496387784464611123L;
|
private static final long serialVersionUID = 405469916055906825L;
|
||||||
|
|
||||||
|
private static final Character SPECIAL_CASE_DEFAULT = '1';
|
||||||
|
private static final Character SQL_DEFAULT = '2';
|
||||||
|
private static final Character DEFAULT_LOGIC = '3';
|
||||||
|
private static final Character USER_PREFERENCE_DEFAULT = '4';
|
||||||
|
private static final Character SYSTEM_PREFERENCE_DEFAULT = '5';
|
||||||
|
private static final Character PANEL_PREFERENCE_DEFAULT = '6';
|
||||||
|
private static final Character DATA_TYPE_DEFAULT = '7';
|
||||||
|
private static final String DEFAULT_PRIORITY_ORDER = "123457";
|
||||||
|
|
||||||
|
//default is preference for field > special case > default logic > sql default > data-type default
|
||||||
|
private static final String DEFAULT_PRIORITY_ORDER_FOR_PANEL = "623";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Field Constructor.
|
* Field Constructor.
|
||||||
|
@ -591,6 +603,13 @@ public class GridField
|
||||||
m_inserting = inserting;
|
m_inserting = inserting;
|
||||||
} // setInserting
|
} // setInserting
|
||||||
|
|
||||||
|
public void setDefaultLogic(String defaultValue) {
|
||||||
|
m_vo.DefaultValue = defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefault2Logic(String defaultValue2) {
|
||||||
|
m_vo.DefaultValue2 = defaultValue2;
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Create default value.
|
* Create default value.
|
||||||
|
@ -617,11 +636,9 @@ public class GridField
|
||||||
if (isIgnoreDefault())
|
if (isIgnoreDefault())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
String orderGetDefault = "123457";// this value can put to system configuration
|
|
||||||
|
|
||||||
Object defaultValue = null;
|
Object defaultValue = null;
|
||||||
|
|
||||||
if ((defaultValue = getDefault (orderGetDefault)) != null){
|
if ((defaultValue = getDefault (DEFAULT_PRIORITY_ORDER)) != null){
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -637,9 +654,7 @@ public class GridField
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Object getDefaultForPanel (){
|
public Object getDefaultForPanel (){
|
||||||
//default is preference for field > special case > default logic > sql default > data-type default
|
return getDefault (MSysConfig.getValue(MSysConfig.ZK_SEQ_DEFAULT_VALUE_PANEL, DEFAULT_PRIORITY_ORDER_FOR_PANEL, Env.getAD_Client_ID(m_vo.ctx)));
|
||||||
String defaultSeq = "623";
|
|
||||||
return getDefault (MSysConfig.getValue(MSysConfig.ZK_SEQ_DEFAULT_VALUE_PANEL, defaultSeq, Env.getAD_Client_ID(m_vo.ctx)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -664,7 +679,7 @@ public class GridField
|
||||||
public Object getDefault(ParseSeq seqGetDefaultValue){
|
public Object getDefault(ParseSeq seqGetDefaultValue){
|
||||||
Object defaultValue = null;
|
Object defaultValue = null;
|
||||||
for (Character seqType : seqGetDefaultValue){
|
for (Character seqType : seqGetDefaultValue){
|
||||||
if ( seqType == '3' // default from Expression
|
if ( seqType == DEFAULT_LOGIC // default from Expression
|
||||||
&& m_vo.DefaultValue != null
|
&& m_vo.DefaultValue != null
|
||||||
&& m_vo.DefaultValue.toUpperCase().equals("NULL")) // IDEMPIERE-2678
|
&& m_vo.DefaultValue.toUpperCase().equals("NULL")) // IDEMPIERE-2678
|
||||||
return null;
|
return null;
|
||||||
|
@ -688,17 +703,17 @@ public class GridField
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected Object getDefaultValueByType (Character defaultValueType){
|
protected Object getDefaultValueByType (Character defaultValueType){
|
||||||
if (defaultValueType.equals('1')){
|
if (defaultValueType.equals(SPECIAL_CASE_DEFAULT)) {
|
||||||
return defaultForSpecialCase();
|
return defaultForSpecialCase();
|
||||||
}else if (defaultValueType.equals('2')){
|
}else if (defaultValueType.equals(SQL_DEFAULT)) {
|
||||||
return defaultFromSQLExpression();
|
return defaultFromSQLExpression();
|
||||||
}else if (defaultValueType.equals('3')){
|
}else if (defaultValueType.equals(DEFAULT_LOGIC)) {
|
||||||
return defaultFromExpression();
|
return defaultFromExpression();
|
||||||
}else if (defaultValueType.equals('4') || defaultValueType.equals('5')){
|
}else if (defaultValueType.equals(USER_PREFERENCE_DEFAULT) || defaultValueType.equals(SYSTEM_PREFERENCE_DEFAULT)) {
|
||||||
return defaultFromPreference(defaultValueType);
|
return defaultFromPreference(defaultValueType);
|
||||||
}else if (defaultValueType.equals('6')){
|
}else if (defaultValueType.equals(PANEL_PREFERENCE_DEFAULT)) {
|
||||||
return defaultFromPreferenceForPanel();
|
return defaultFromPreferenceForPanel();
|
||||||
}else if (defaultValueType.equals('7')){
|
}else if (defaultValueType.equals(DATA_TYPE_DEFAULT)) {
|
||||||
return defaultFromDatatype();
|
return defaultFromDatatype();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue