/** * Constructor. * @param field The basefield owner of this listener (usually null and set on setOwner()). * @param convTarget The converter to remove on field free. */ public void init(BaseField field, Converter convTarget) { super.init(field); m_convTarget = convTarget; } /**
/** * Set this cloned listener to the same state at this listener. * @param field The field this new listener will be added to. * @param The new listener to sync to this. * @param Has the init method been called? * @return True if I called init. */ public boolean syncClonedListener(BaseField field, FieldListener listener, boolean bInitCalled) { if (!bInitCalled) listener.init(null); listener.setRespondsToMode(DBConstants.INIT_MOVE, m_bInitMove); listener.setRespondsToMode(DBConstants.READ_MOVE, m_bReadMove); listener.setRespondsToMode(DBConstants.SCREEN_MOVE, m_bScreenMove); return true; } /**
/** * Set the field that owns this handler. * @param owner The field this listener was added to (or null if being removed). */ public void setOwner(ListenerOwner owner) { super.setOwner(owner); if (owner != null) this.retrieveValue(); } /**
/** * Get the physical binary data from this field. * Behaviors are often used to initiate a complicated action only when the system asks for this data. * @return The field's raw data. */ public Object doGetData() { Object objData = null; FieldListener nextListener = (FieldListener)this.getNextValidListener(DBConstants.SCREEN_MOVE); if (nextListener != null) { boolean bOldState = nextListener.setEnabledListener(false); // Disable the listener to eliminate echos objData = nextListener.doGetData(); nextListener.setEnabledListener(bOldState); // Reenable } else if (m_owner != null) objData = this.getOwner().doGetData(); return objData; } /**
/** * Get the status of the the FieldChanged behaviors? * @return The handle field change flag (if false field change handling is disabled). */ public void setEnableListeners(boolean[] rgbEnabled) { int iIndex = 0; FieldListener fieldBehavior = this.getListener(); while (fieldBehavior != null) { boolean bEnable = true; if ((rgbEnabled != null) && (iIndex < rgbEnabled.length)) bEnable = rgbEnabled[iIndex]; fieldBehavior.setEnabledListener(bEnable); fieldBehavior = (FieldListener)fieldBehavior.getNextListener(); iIndex++; } } /**
/** * The Field has Changed. * Don't need to call inherited. * @param bDisplayOption If true, display the change. * @param iMoveMode The type of move being done (init/read/screen). * @return The error code (or NORMAL_RETURN if okay). */ public int fieldChanged(boolean bDisplayOption, int iMoveMode) { m_recPropertiesInput.loadFieldProperties((PropertiesField)this.getOwner()); return super.fieldChanged(bDisplayOption, iMoveMode); }
/** * AddPropertiesFieldBehavior Method. */ public void addPropertiesFieldBehavior(BaseField fldDisplay, String strProperty) { BaseField fldProperties = this.getField(MessageInfo.kMessageProperties); FieldListener listener = new CopyConvertersHandler(new PropertiesConverter(fldProperties, strProperty)); listener.setRespondsToMode(DBConstants.INIT_MOVE, false); listener.setRespondsToMode(DBConstants.READ_MOVE, false); fldDisplay.addListener(listener); listener = new CopyConvertersHandler(fldDisplay, new PropertiesConverter(fldProperties, strProperty)); listener.setRespondsToMode(DBConstants.SCREEN_MOVE, false); fldProperties.addListener(listener); } /**
/** * Free this listener (and the field copy). */ public void free() { super.free(); } /**
/** * Move the physical binary data to this field. * If this is an init set, only does it until the first change. * @param objData the raw data to set the basefield to. * @param bDisplayOption If true, display the change. * @param iMoveMode The type of move being done (init/read/screen). * @return The error code (or NORMAL_RETURN if okay). */ public int doSetData(Object objData, boolean bDisplayOption, int iMoveMode) { int iErrorCode = DBConstants.NORMAL_RETURN; if ((m_bFirstTime) || (iMoveMode == DBConstants.READ_MOVE) || (iMoveMode == DBConstants.SCREEN_MOVE)) iErrorCode = super.doSetData(objData, bDisplayOption, iMoveMode); m_bFirstTime = false; // No more Inits allowed return iErrorCode; } /**
/** * AddMasterListeners Method. */ public void addMasterListeners() { super.addMasterListeners(); FieldListener dependentStateListener = this.getField(BookingDetail.PRODUCT_TYPE).getListener(ProductTypeHandler.class); FieldListener fieldListener = new RecomputeProductDesc(null); fieldListener.setRespondsToMode(DBConstants.INIT_MOVE, false); fieldListener.setRespondsToMode(DBConstants.READ_MOVE, false); this.getField(BookingLand.CLASS_ID).addListener(fieldListener); fieldListener.setDependentStateListener(dependentStateListener); } /**
/** * Get the physical binary data from this field. * Behaviors are often used to initiate a complicated action only when the system asks for this data. * @return The raw data for this field. */ public Object getData() { Object objData = null; FieldListener nextListener = (FieldListener)this.getNextValidListener(DBConstants.SCREEN_MOVE); // Fix this if (nextListener != null) { boolean bOldState = nextListener.setEnabledListener(false); // Disable the listener to eliminate echos objData = nextListener.doGetData(); nextListener.setEnabledListener(bOldState); // Reenable } else objData = this.doGetData(); return objData; } /**
/** * Get the status by combining the other status. */ public Object doGetData() { this.getOwner().setData(this.getStatus()); return super.doGetData(); } /**
public boolean enableReselect(boolean bEnable) { boolean bOldReselect = false; if (this.getMainFileKeyField(true) != null) if (this.getMainFileKeyField(true).getListener(FieldReSelectHandler.class) != null) bOldReselect = this.getMainFileKeyField(true).getListener(FieldReSelectHandler.class).setEnabledListener(bEnable); return bOldReselect; } public BaseField getMainFileKeyField(boolean bReturnCounterField)
/** * The Field has Changed. * Don't need to call inherited. * @param bDisplayOption If true, display the change. * @param iMoveMode The type of move being done (init/read/screen). * @return The error code (or NORMAL_RETURN if okay). */ public int fieldChanged(boolean bDisplayOption, int iMoveMode) { ((PropertiesInputModel)m_recPropertiesInput).loadFieldProperties((PropertiesField)this.getOwner()); return super.fieldChanged(bDisplayOption, iMoveMode); }
/** * Add the behaviors to sync this property to this virtual field. */ public void addPropertiesFieldBehavior(BaseField fldDisplay, String strProperty) { FieldListener listener = new CopyConvertersHandler(new PropertiesConverter(this, strProperty)); listener.setRespondsToMode(DBConstants.INIT_MOVE, false); listener.setRespondsToMode(DBConstants.READ_MOVE, false); fldDisplay.addListener(listener); listener = new CopyConvertersHandler(fldDisplay, new PropertiesConverter(this, strProperty)); this.addListener(listener); } }
/** * Free this listener (and the field copy). */ public void free() { super.free(); } /**
/** * Move the physical binary data to this field. * If this is an init set, only does it until the first change. * @param objData the raw data to set the basefield to. * @param bDisplayOption If true, display the change. * @param iMoveMode The type of move being done (init/read/screen). * @return The error code (or NORMAL_RETURN if okay). */ public int doSetData(Object objData, boolean bDisplayOption, int iMoveMode) { int iErrorCode = DBConstants.NORMAL_RETURN; if ((m_bFirstTime) || (iMoveMode == DBConstants.READ_MOVE) || (iMoveMode == DBConstants.SCREEN_MOVE)) iErrorCode = super.doSetData(objData, bDisplayOption, iMoveMode); m_bFirstTime = false; // No more Inits allowed return iErrorCode; } /**
/** * AddMasterListeners Method. */ public void addMasterListeners() { super.addMasterListeners(); FieldListener dependentStateListener = this.getField(BookingDetail.PRODUCT_TYPE).getListener(ProductTypeHandler.class); FieldListener fieldListener = new RecomputeProductDesc(null); fieldListener.setRespondsToMode(DBConstants.INIT_MOVE, false); fieldListener.setRespondsToMode(DBConstants.READ_MOVE, false); this.getField(BookingLand.CLASS_ID).addListener(fieldListener); fieldListener.setDependentStateListener(dependentStateListener); } /**
/** * Get the status by combining the other status. */ public Object doGetData() { this.getOwner().setData(this.getStatus()); return super.doGetData(); } /**
/** * Get the status of the the FieldChanged behaviors? * @return The handle field change flag (if false field change handling is disabled). */ public void setEnableListeners(boolean[] rgbEnabled) { int iIndex = 0; FieldListener fieldBehavior = this.getListener(); while (fieldBehavior != null) { boolean bEnable = true; if ((rgbEnabled != null) && (iIndex < rgbEnabled.length)) bEnable = rgbEnabled[iIndex]; fieldBehavior.setEnabledListener(bEnable); fieldBehavior = (FieldListener)fieldBehavior.getNextListener(); iIndex++; } } /**