/** * Free this converter. */ public void free() { super.free(); m_convCheckmark = null; } /**
/** * Get the current converter to use in the converter calls. * @param bSetData If true I will be set(ing) the data of this field, if false I will be get(ing) the data. * @return The current converter. */ public Converter getConverterToPass(boolean bSetData) { return this.getConverterToPass(this.getIndexOfConverterToPass(bSetData)); } /**
/** * Constructor. * @param converter The next converter in the converter chain. * @param converterAlt The first converter on this list of alternates. */ public MultipleFieldConverter(Converter converter, Converter converterAlt) { this(); this.init(converter, converterAlt); } /**
m_vconvDependent = new Vector<Converter>(); m_vconvDependent.add(converter); this.setEnableTranslation(false); if ((this.getNextConverter() == null) || (this.getNextConverter().getField() == null)) this.setEnableTranslation(true); return; ScreenField sField = (ScreenField)this.getNextConverter().getField().getComponent(iSeq); if (sField == null) break; if (!this.isConverterInPath(sField)) continue; // This converter does not belong to this screen field if (converter != null) this.setEnableTranslation(true);
/** * Remove this control from this field's control list. * @param Object sField The screen component.. either a awt.Component or a ScreenField */ public void removeComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields for (int iIndex = 0; ; iIndex++) { Converter converter = this.getConverterToPass(iIndex); if (converter == null) break; converter.removeComponent(screenField); } this.setEnableTranslation(false); super.removeComponent(screenField); this.setEnableTranslation(true); } /**
/** * Is this converter in the converter path of this screen field. * @return true if it is. */ public boolean isConverterInPath(ScreenField sField) { Converter converter = sField.getConverter(); while (converter != null) { if (converter == this) return true; if (converter instanceof LinkedConverter) { MultipleFieldConverter convMultiple = null; boolean bOldEnable = false; if (converter instanceof MultipleFieldConverter) convMultiple = (MultipleFieldConverter)converter; if (convMultiple != null) bOldEnable = convMultiple.setEnableTranslation(false); converter = ((LinkedConverter)converter).getNextConverter(); if (convMultiple != null) convMultiple.setEnableTranslation(bOldEnable); } else converter = null; } return false; // Not found } }
/** * Add this component to the components displaying this field. * Make sure all the converter have this screenfield on their list. * @param Object sField The screen component.. either a awt.Component or a ScreenField. */ public void addComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields super.addComponent(screenField); m_convCheckmark.addComponent(screenField); } /**
/** * Remove this control from this field's control list. * @param Object sField The screen component.. either a awt.Component or a ScreenField */ public void removeComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields m_convCheckmark.removeComponent(screenField); super.removeComponent(screenField); } /**
/** * Get the next Converter in the chain. */ public Converter getNextConverter() { if ((m_bEnableTranslation == true) && (this.getConverterToPass(m_bSetData) != null)) return this.getConverterToPass(m_bSetData); // Retrieve the dependent field else return super.getNextConverter(); // Retrieve this info } /**
/** * Initialize this converter. * @param converter The next converter in the converter chain. * @param converterAlt The first converter on this list of alternates. */ public void init(Converter converter, Converter converterAlt) { m_bEnableTranslation = true; m_bSetData = false; super.init(converter); if (converterAlt != null) this.addConverterToPass(converterAlt); } /**
m_vconvDependent = new Vector<Converter>(); m_vconvDependent.add(converter); this.setEnableTranslation(false); if ((this.getNextConverter() == null) || (this.getNextConverter().getField() == null)) this.setEnableTranslation(true); return; ScreenField sField = (ScreenField)this.getNextConverter().getField().getComponent(iSeq); if (sField == null) break; if (!this.isConverterInPath(sField)) continue; // This converter does not belong to this screen field if (converter != null) this.setEnableTranslation(true);
/** * Remove this control from this field's control list. * @param Object sField The screen component.. either a awt.Component or a ScreenField */ public void removeComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields for (int iIndex = 0; ; iIndex++) { Converter converter = this.getConverterToPass(iIndex); if (converter == null) break; converter.removeComponent(screenField); } this.setEnableTranslation(false); super.removeComponent(screenField); this.setEnableTranslation(true); } /**
/** * Is this converter in the converter path of this screen field. * @return true if it is. */ public boolean isConverterInPath(ScreenField sField) { Converter converter = sField.getConverter(); while (converter != null) { if (converter == this) return true; if (converter instanceof LinkedConverter) { MultipleFieldConverter convMultiple = null; boolean bOldEnable = false; if (converter instanceof MultipleFieldConverter) convMultiple = (MultipleFieldConverter)converter; if (convMultiple != null) bOldEnable = convMultiple.setEnableTranslation(false); converter = ((LinkedConverter)converter).getNextConverter(); if (convMultiple != null) convMultiple.setEnableTranslation(bOldEnable); } else converter = null; } return false; // Not found } }
/** * Add this component to the components displaying this field. * Make sure all the converter have this screenfield on their list. * @param Object sField The screen component.. either a awt.Component or a ScreenField. */ public void addComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields super.addComponent(screenField); m_convCheckmark.addComponent(screenField); } /**
/** * Remove this control from this field's control list. * @param Object sField The screen component.. either a awt.Component or a ScreenField */ public void removeComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields m_convCheckmark.removeComponent(screenField); super.removeComponent(screenField); } /**
/** * Get the next Converter in the chain. */ public Converter getNextConverter() { if ((m_bEnableTranslation == true) && (this.getConverterToPass(m_bSetData) != null)) return this.getConverterToPass(m_bSetData); // Retrieve the dependent field else return super.getNextConverter(); // Retrieve this info } /**
/** * Initialize this converter. * @param converter The next converter in the converter chain. * @param converterAlt The first converter on this list of alternates. */ public void init(Converter converter, Converter converterAlt) { m_bEnableTranslation = true; m_bSetData = false; super.init(converter); if (converterAlt != null) this.addConverterToPass(converterAlt); } /**
m_vconvDependent = new Vector<Converter>(); m_vconvDependent.add(converter); this.setEnableTranslation(false); if ((this.getNextConverter() == null) || (this.getNextConverter().getField() == null)) this.setEnableTranslation(true); return; ScreenComponent sField = (ScreenComponent)this.getNextConverter().getField().getComponent(iSeq); if (sField == null) break; if (!this.isConverterInPath(sField)) continue; // This converter does not belong to this screen field if (converter != null) this.setEnableTranslation(true);
/** * Remove this control from this field's control list. * @param Object sField The screen component.. either a awt.Component or a ScreenField */ public void removeComponent(Object screenField) { // Set up the dependencies, This will recompute if any change from these three fields for (int iIndex = 0; ; iIndex++) { Converter converter = this.getConverterToPass(iIndex); if (converter == null) break; converter.removeComponent(screenField); } this.setEnableTranslation(false); super.removeComponent(screenField); this.setEnableTranslation(true); } /**
/** * Constructor. * @param converter The next converter in the converter chain. */ public MultipleFieldConverter(Converter converter) { this(); this.init(converter, null); } /**