📄 mfield.java
字号:
public int getWindowNo()
{
return m_vo.WindowNo;
}
public int getAD_Column_ID()
{
return m_vo.AD_Column_ID;
}
public int getDisplayLength()
{
return m_vo.DisplayLength;
}
public boolean isSameLine()
{
return m_vo.IsSameLine;
}
public boolean isDisplayed()
{
return m_vo.IsDisplayed;
}
public String getDisplayLogic()
{
return m_vo.DisplayLogic;
}
public String getDefaultValue()
{
return m_vo.DefaultValue;
}
public boolean isReadOnly()
{
if (isVirtualColumn())
return true;
return m_vo.IsReadOnly;
}
public boolean isCreateMnemonic()
{
if (isReadOnly()
|| m_vo.ColumnName.equals("AD_Client_ID")
|| m_vo.ColumnName.equals("AD_Org_ID")
|| m_vo.ColumnName.equals("DocumentNo"))
return false;
return true;
}
public boolean isUpdateable()
{
if (isVirtualColumn())
return false;
return m_vo.IsUpdateable;
}
public boolean isAlwaysUpdateable()
{
if (isVirtualColumn())
return false;
return m_vo.IsAlwaysUpdateable;
}
public boolean isHeading()
{
return m_vo.IsHeading;
}
public boolean isFieldOnly()
{
return m_vo.IsFieldOnly;
}
public boolean isEncryptedField()
{
return m_vo.IsEncryptedField;
}
public boolean isEncryptedColumn()
{
return m_vo.IsEncryptedColumn;
}
public boolean isSelectionColumn()
{
return m_vo.IsSelectionColumn;
}
public String getObscureType()
{
return m_vo.ObscureType;
}
public int getSortNo()
{
return m_vo.SortNo;
}
public int getFieldLength()
{
return m_vo.FieldLength;
}
public String getVFormat()
{
return m_vo.VFormat;
}
public String getValueMin()
{
return m_vo.ValueMin;
}
public String getValueMax()
{
return m_vo.ValueMax;
}
public String getFieldGroup()
{
return m_vo.FieldGroup;
}
public boolean isKey()
{
return m_vo.IsKey;
}
public boolean isParentColumn()
{
return m_vo.IsParent;
}
public boolean isParentValue()
{
if (m_parentChecked)
return m_vo.IsParent;
if (!DisplayType.isID(m_vo.displayType) || m_vo.TabNo == 0)
m_vo.IsParent = false;
else
{
String LinkColumnName = Env.getContext(m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, "LinkColumnName");
if (LinkColumnName.length() == 0)
;
else
m_vo.IsParent = m_vo.ColumnName.equals(LinkColumnName);
if (m_vo.IsParent)
log.config(m_vo.IsParent
+ " - Link(" + LinkColumnName + ", W=" + m_vo.WindowNo + ",T=" + m_vo.TabNo
+ ") = " + m_vo.ColumnName);
}
m_parentChecked = true;
return m_vo.IsParent;
}
public String getCallout()
{
return m_vo.Callout;
}
public int getAD_Process_ID()
{
return m_vo.AD_Process_ID;
}
public String getDescription()
{
return m_vo.Description;
}
public String getHelp()
{
return m_vo.Help;
}
public MFieldVO getVO()
{
return m_vo;
}
/**
* Is this a long (string/text) field (over 60/2=30 characters)
* @return true if long field
*/
public boolean isLongField()
{
// if (m_vo.displayType == DisplayType.String
// || m_vo.displayType == DisplayType.Text
// || m_vo.displayType == DisplayType.Memo
// || m_vo.displayType == DisplayType.TextLong
// || m_vo.displayType == DisplayType.Image)
return (m_vo.DisplayLength >= MAXDISPLAY_LENGTH/2);
// return false;
} // isLongField
/**
* Set Value to null.
* <p>
* Do not update context - called from MTab.setCurrentRow
* Send Bean PropertyChange if there is a change
*/
public void setValue ()
{
// log.fine( "MField.setValue - " + ColumnName + "=" + newValue);
if (m_valueNoFire) // set the old value
m_oldValue = m_value;
m_value = null;
m_inserting = false;
m_error = false; // reset error
// Does not fire, if same value
m_propertyChangeListeners.firePropertyChange(PROPERTY, m_oldValue, m_value);
// m_propertyChangeListeners.firePropertyChange(PROPERTY, s_oldValue, null);
} // setValue
/**
* Set Value.
* <p>
* Update context, if not text or RowID;
* Send Bean PropertyChange if there is a change
* @param newValue new value
* @param inserting true if inserting
*/
public void setValue (Object newValue, boolean inserting)
{
// log.fine( "MField.setValue - " + ColumnName + "=" + newValue);
if (m_valueNoFire) // set the old value
m_oldValue = m_value;
m_value = newValue;
m_inserting = inserting;
m_error = false; // reset error
// Set Context
if (m_vo.displayType == DisplayType.Text
|| m_vo.displayType == DisplayType.Memo
|| m_vo.displayType == DisplayType.TextLong
|| m_vo.displayType == DisplayType.Binary
|| m_vo.displayType == DisplayType.RowID)
; // ignore
else if (newValue instanceof Boolean)
Env.setContext(m_vo.ctx, m_vo.WindowNo, m_vo.ColumnName,
((Boolean)newValue).booleanValue());
else if (newValue instanceof Timestamp)
Env.setContext(m_vo.ctx, m_vo.WindowNo, m_vo.ColumnName, (Timestamp)m_value);
else
Env.setContext(m_vo.ctx, m_vo.WindowNo, m_vo.ColumnName,
m_value==null ? null : m_value.toString());
// Does not fire, if same value
Object oldValue = m_oldValue;
if (inserting)
oldValue = INSERTING;
m_propertyChangeListeners.firePropertyChange(PROPERTY, oldValue, m_value);
} // setValue
/**
* Get Value
* @return current value
*/
public Object getValue()
{
return m_value;
} // getValue
/**
* Set old/previous Value.
* (i.e. don't fire Property change)
* Used by VColor.setField
* @param value if false property change will always be fires
*/
public void setValueNoFire (boolean value)
{
m_valueNoFire = value;
} // setOldValue
/**
* Get old/previous Value.
* Called from MTab.processCallout
* @return old value
*/
public Object getOldValue()
{
return m_oldValue;
} // getOldValue
/**
* Set Error Value (the value, which cuased some Error)
* @param errorValue error message
*/
public void setErrorValue (String errorValue)
{
m_errorValue = errorValue;
m_errorValueFlag = true;
} // setErrorValue
/**
* Get Error Value (the value, which cuased some Error) <b>AND</b> reset it to null
* @return error value
*/
public String getErrorValue ()
{
String s = m_errorValue;
m_errorValue = null;
m_errorValueFlag = false;
return s;
} // getErrorValue
/**
* Return true, if value has Error (for HTML interface) <b>AND</b> reset it to false
* @return has error
*/
public boolean isErrorValue()
{
boolean b = m_errorValueFlag;
m_errorValueFlag = false;
return b;
} // isErrorValue
/**
* Overwrite default DisplayLength
* @param length new length
*/
public void setDisplayLength (int length)
{
m_vo.DisplayLength = length;
} // setDisplayLength
/**
* Overwrite Displayed
* @param displayed trie if displayed
*/
public void setDisplayed (boolean displayed)
{
m_vo.IsDisplayed = displayed;
} // setDisplayed
/**
* String representation
* @return string representation
*/
public String toString()
{
StringBuffer sb = new StringBuffer("MField[");
sb.append(m_vo.ColumnName).append("=").append(m_value).append("]");
return sb.toString();
} // toString
/**
* Extended String representation
* @return string representation
*/
public String toStringX()
{
StringBuffer sb = new StringBuffer("MField[");
sb.append(m_vo.ColumnName).append("=").append(m_value)
.append(",DisplayType=").append(getDisplayType())
.append("]");
return sb.toString();
} // toStringX
/*************************************************************************
/**
* Remove Property Change Listener
* @param l listener
*/
public synchronized void removePropertyChangeListener(PropertyChangeListener l)
{
m_propertyChangeListeners.removePropertyChangeListener(l);
}
/**
* Add Property Change Listener
* @param l listener
*/
public synchronized void addPropertyChangeListener(PropertyChangeListener l)
{
m_propertyChangeListeners.addPropertyChangeListener(l);
}
/**************************************************************************
* Create Fields
* @param AD_Tab_ID tab
* @return array of fields
*/
public static MField[] createFields (Properties ctx, int WindowNo, int TabNo,
int AD_Tab_ID)
{
ArrayList<MFieldVO> listVO = new ArrayList<MFieldVO>();
int AD_Window_ID = 0;
boolean readOnly = false;
String sql = MFieldVO.getSQL(ctx);
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, AD_Tab_ID);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
MFieldVO vo = MFieldVO.create(ctx, WindowNo, TabNo, AD_Window_ID, readOnly, rs);
listVO.add(vo);
}
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql, e);
}
try
{
if (pstmt != null)
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
//
MField[] retValue = new MField[listVO.size()];
for (int i = 0; i < listVO.size(); i++)
retValue[i] = new MField ((MFieldVO)listVO.get(i));
return retValue;
} // createFields
} // MField
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -