Package com.iizigo.prop
Class BaseEditor<PROP extends GProp<?>,PROP_VALUE>
- java.lang.Object
- com.iizigo.prop.BaseEditor<PROP,PROP_VALUE>
 
- All Implemented Interfaces:
- IEditedPropControllerOwner<PROP,PROP_VALUE>,- IEditedPropertyEntry<PROP,PROP_VALUE>,- IEditedPropertyEntryMultiProp<PROP,PROP_VALUE>,- IPropertyDefined
 - Direct Known Subclasses:
- BadgePropEditor,- BoolPropEditor,- BoxShadowPropEditor,- ClassReferencePropEditor,- ColorPropEditor,- DateTimePropEditor,- DropShadowPropEditor,- DurationPropEditor,- EncodingPropEditor,- FillPropEditor,- FontPropEditor,- GradientPropEditor,- IntChoicePropEditor,- IntPropEditor,- KStringPropEditor,- LongPropEditor,- MethodReferencePropEditor,- NumberPropEditor,- PanelAnimationPropEditor,- PasswordPropEditor,- PKCS12IdentityPropEditor,- ReferencePropEditor,- SessionConfigPropEditor,- SizePropEditor,- StringMapPropEditor,- StringPropEditor,- StrokePropEditor,- StylesReferencesPropEditor,- StylesStatesPropEditor,- TextShadowPropEditor,- ThemesPropEditor,- TooltipPropEditor,- TransformPropEditor,- UIDateTimeTypePropEditor,- UnitPropEditor,- UnitsPropEditor,- ValuePropEditor,- ValueTypePropEditor,- VSRelativeReferencePropEditor,- VSTableColumnReferencePropEditor
 - public abstract class BaseEditor<PROP extends GProp<?>,PROP_VALUE> extends java.lang.Object implements IEditedPropertyEntryMultiProp<PROP,PROP_VALUE>, IEditedPropControllerOwner<PROP,PROP_VALUE>, IPropertyDefined The generic base editor for any property editor.- Author:
- Christopher Mindus
 
- Field Summary- Fields - Modifier and Type - Field - Description - protected ApplicationUI- appUIThe ApplicationUI instance.- protected org.eclipse.swt.custom.CCombo- comboThe combobox or null for none.- protected org.eclipse.swt.widgets.Control- controlThe control for editing, a Text or CCombo.- protected IPropertyEditorController- controllerThe controller editor part.- protected DefinedButton- definedButtonThe define-button or null for none.- protected org.eclipse.swt.widgets.Display- displayThe display.- protected PropertyEditor- editorThe property editor instance.- protected org.eclipse.swt.events.FocusListener- focusListenerSWT focus listener, should be added to all controls that can receive focus for this property editor.- protected boolean- hasBeenModifiedFlag for entry has been modified during focus.- protected PropertyEditorInfo- infoThe information about edited item.- protected org.eclipse.swt.widgets.Button- moreA "More..." button, null for none.- protected java.lang.String- multipleValueWarningInputMultiple value warning input string, null for none.- protected java.lang.String[]- optionsThe options for the property editor, or null for none.- protected org.eclipse.swt.widgets.Composite- parentParent composite, where to place components.- protected EditedPropController<PROP,PROP_VALUE>- propControllerThe edited property controller.- protected org.eclipse.swt.widgets.Shell- shellShell for message boxes, etc.- protected org.eclipse.swt.widgets.Text- textThe Text control or null for none.- protected IEntryValidator- validatorThe validator, or null for none.- protected boolean- wasDefinedAtFocusGainedFlag for value defined when focus was received.
 - Constructor Summary- Constructors - Constructor - Description - BaseEditor()Default constructor called before createControls, to hold the instance of the edit-property-class for easy access.
 - Method Summary- All Methods Static Methods Instance Methods Abstract Methods Concrete Methods - Modifier and Type - Method - Description - EditedPropController<PROP,PROP_VALUE>- assignMaster(MultiPropCnr master, java.lang.Class<PROP> propertyClass, PropLabel label)Assigns the master property controller.- void- beginProcessEvent()Begins processing events, blocking e.g.- boolean- canProcessEvents()Checks if it's OK to process events.- protected void- checkInput(boolean focusLost)Checks the input.- protected abstract void- create()Creates the property editor controls.- protected org.eclipse.swt.custom.CCombo- createCCombo(java.lang.String[] entries)Creates a combobox, fills and registers it.- MultiPropEditor- createControls(PropertyEditor editor, PropertyEditorInfo info, java.lang.String[] options, org.eclipse.swt.widgets.Composite parent, PropCnr[] containers, Atom atom, DefinedButton definedButton)Creates the required controls in the composite.- protected org.eclipse.swt.layout.GridLayout- createGridLayout(int count, int cxSpacing)Creates the grid layout for the composite parent and assigns it.- protected IzMenu- createIzMenu(org.eclipse.swt.widgets.Control control)Creates the menu for a component.- protected void- createMoreButton(java.lang.String toolTipText)Creates a "more..." button.- protected IzMenu- createMoreIzMenu()Creates the menu for a component.- protected org.eclipse.swt.widgets.Text- createText()Creates an entry field and registers it.- void- dispose()Disposes of this instance, cannot be overridden (use onDispose instead).- protected boolean- doUndefineIfEmpty(boolean focusLost)Keeps empty strings as defined, when input has been changed specifically to empty string, or if the entry was defined when editing began.- protected boolean- doValueChangeConversion()Returns if the property value should be checked by converting current string input back-and-forth with the current value.- void- endProcessEvent()Begins processing events, blocking e.g.- abstract java.lang.String- formatValue(PROP_VALUE value)Formats the value for user input as a String.- static BaseEditor<?,?>- getBaseEditor(org.eclipse.swt.widgets.Control control)Gets the property editor in question for a control that e.g.- java.lang.String- getCurrentInput()Gets the user input.- PROP_VALUE- getCurrentValue()Gets the current value from the property, not user input.- java.util.HashSet<PROP_VALUE>- getCurrentValues()Gets the array of values currently used.- abstract PROP_VALUE- getDefaultValue()Gets the default defined value to set in the property when defined.- protected org.eclipse.swt.events.ModifyListener- getModifyListener()Gets the modify listener.- IzToolTip- getNativeToolTip()Gets a "native" tooltip to use.- java.lang.String- getOption(java.lang.String name)Gets the options of a specified name as "option=".- protected org.eclipse.swt.events.SelectionListener- getSelectionListener()Gets the selection listener.- int- getSeverity()The error severity.- org.eclipse.swt.widgets.Shell- getShell()Gets the shell.- protected abstract java.lang.String- getToolTipText()Gets the tooltip text to display in the entry fields (not the one for property errors or validator).- protected java.lang.String- getToolTipText2()Gets the tooltip text to display in the entry fields (not the one for property errors).- protected abstract PROP_VALUE- getValue(java.lang.String input)Gets the property value for a user input.- boolean- hasFocus()Checks if this editor has focus.- void- initialize(PROP prop)Initializes a newly created property (e.g.- protected boolean- isPropReadOnly()Checks if read-only.- void- onDefine(boolean on)Called from the PropertyDefinedButton.- protected void- onDispose()Called when the editor is disposed of.- protected void- onDoubleClick(org.eclipse.swt.widgets.Event e)Called when mouse is double-clicked in the text or combobox.- void- onError(java.lang.String input, java.lang.String message, int severity, boolean isMultipleValueWarning, boolean isChildError)Called when the property is updated due to an error.- void- onF4List()Called when F4 is pressed in a Text field.- protected void- onFocusGained()Upon focus gained, the selection of an entry field is selected fully and for a combobox, cursor is placed first.- protected void- onFocusLost()Called when focus is lost.- void- onMore()Called when the "more..." button is pressed.- void- onReadOnly(boolean on)Called when the read-only state changes.- void- onUndefined()Called when the property is undefined.- void- onUpdate(PROP_VALUE value)Called when the property is updated without errors, with a new value.- protected void- setColors(org.eclipse.swt.widgets.Control... additional)Sets the colors for the controls depending on error, focus and define state.- void- setCurrentValue(PROP_VALUE value)Sets the current value to all properties.- protected void- setEditable(boolean on)Sets the input-capable editable state when e.g.- protected void- setFocus()Focuses the editor.- protected boolean- setInput(java.lang.String input)Updates the entry or visible part in the editor with a new property value that is not in error state.- protected void- setInputValue(PROP_VALUE value)Sets the input value when editing, when formatting the value from a string.- protected void- setInputValueFromProp(PROP_VALUE value)Sets the input value from an update of the property value.- protected void- setToolTipText(java.lang.String msg)Sets the tooltip text.- void- showMenu()Shows the menu.- void- updateTooltip()Updates the tooltip.- protected PROP_VALUE- validate(java.lang.String input, boolean focusLost)Routine to check the input from a text or combobox.
 
- Field Detail- shell- protected org.eclipse.swt.widgets.Shell shell Shell for message boxes, etc.
 - display- protected org.eclipse.swt.widgets.Display display The display.
 - appUI- protected ApplicationUI appUI The ApplicationUI instance.
 - editor- protected PropertyEditor editor The property editor instance.
 - controller- protected IPropertyEditorController controller The controller editor part.
 - info- protected PropertyEditorInfo info The information about edited item.
 - propController- protected EditedPropController<PROP extends GProp<?>,PROP_VALUE> propController The edited property controller.
 - parent- protected org.eclipse.swt.widgets.Composite parent Parent composite, where to place components.
 - validator- protected IEntryValidator validator The validator, or null for none.
 - options- protected java.lang.String[] options The options for the property editor, or null for none.
 - definedButton- protected DefinedButton definedButton The define-button or null for none.
 - more- protected org.eclipse.swt.widgets.Button more A "More..." button, null for none.
 - control- protected org.eclipse.swt.widgets.Control control The control for editing, a Text or CCombo.
 - text- protected org.eclipse.swt.widgets.Text text The Text control or null for none.
 - combo- protected org.eclipse.swt.custom.CCombo combo The combobox or null for none.
 - wasDefinedAtFocusGained- protected boolean wasDefinedAtFocusGained Flag for value defined when focus was received.
 - hasBeenModified- protected boolean hasBeenModified Flag for entry has been modified during focus.
 - multipleValueWarningInput- protected java.lang.String multipleValueWarningInput Multiple value warning input string, null for none.
 - focusListener- protected final org.eclipse.swt.events.FocusListener focusListener SWT focus listener, should be added to all controls that can receive focus for this property editor.
 
 - Method Detail- getBaseEditor- public static BaseEditor<?,?> getBaseEditor(org.eclipse.swt.widgets.Control control) Gets the property editor in question for a control that e.g. has focus.- Parameters:
- control- The control that has focus.
- Returns:
- The instance of the base editor, null for none.
 
 - createControls- public MultiPropEditor createControls(PropertyEditor editor, PropertyEditorInfo info, java.lang.String[] options, org.eclipse.swt.widgets.Composite parent, PropCnr[] containers, Atom atom, DefinedButton definedButton) Creates the required controls in the composite.- Specified by:
- createControlsin interface- IEditedPropertyEntry<PROP extends GProp<?>,PROP_VALUE>
- Parameters:
- editor- The property editor instance.
- info- The information about edited item.
- options- The options.
- parent- Parent composite, where to place components.
- containers- The containers for the edited property.
- atom- Atom name of the property in the containers.
- definedButton- The define-button or null for none.
- Returns:
- null for normal editors, the instance of the multi-property editor in case of multiple editable entries (lines).
 
 - assignMaster- public EditedPropController<PROP,PROP_VALUE> assignMaster(MultiPropCnr master, java.lang.Class<PROP> propertyClass, PropLabel label) Assigns the master property controller.- Specified by:
- assignMasterin interface- IEditedPropertyEntryMultiProp<PROP extends GProp<?>,PROP_VALUE>
- Parameters:
- master- The master property container of the MultiPropCnr.
- propertyClass- Property class for items.
- label- Label for this entry.
- Returns:
- The instance of the item property controller.
 
 - getShell- public org.eclipse.swt.widgets.Shell getShell() Gets the shell.
 - dispose- public final void dispose() Disposes of this instance, cannot be overridden (use onDispose instead).- Specified by:
- disposein interface- IEditedPropertyEntry<PROP extends GProp<?>,PROP_VALUE>
 
 - onDispose- protected void onDispose() Called when the editor is disposed of. Override to implement required code. By default, this method does nothing.
 - isPropReadOnly- protected boolean isPropReadOnly() Checks if read-only.
 - createGridLayout- protected org.eclipse.swt.layout.GridLayout createGridLayout(int count, int cxSpacing)Creates the grid layout for the composite parent and assigns it.
 - createMoreButton- protected void createMoreButton(java.lang.String toolTipText) Creates a "more..." button.
 - createMoreIzMenu- protected IzMenu createMoreIzMenu() Creates the menu for a component. The menu is shown upon onMore by default.
 - createIzMenu- protected IzMenu createIzMenu(org.eclipse.swt.widgets.Control control) Creates the menu for a component. The menu is shown upon onMore by default.
 - onMore- public void onMore() Called when the "more..." button is pressed. Override to display dialog box.
 - showMenu- public void showMenu() Shows the menu.
 - onF4List- public void onF4List() Called when F4 is pressed in a Text field. Override to display dialog box.
 - createText- protected org.eclipse.swt.widgets.Text createText() Creates an entry field and registers it.
 - createCCombo- protected org.eclipse.swt.custom.CCombo createCCombo(java.lang.String[] entries) Creates a combobox, fills and registers it.
 - onDoubleClick- protected void onDoubleClick(org.eclipse.swt.widgets.Event e) Called when mouse is double-clicked in the text or combobox.
 - getCurrentInput- public java.lang.String getCurrentInput() Gets the user input.- Specified by:
- getCurrentInputin interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - onFocusGained- protected void onFocusGained() Upon focus gained, the selection of an entry field is selected fully and for a combobox, cursor is placed first.
 - onFocusLost- protected void onFocusLost() Called when focus is lost. The control can set the selection to the beginning of the field to show the text.
 - setToolTipText- protected void setToolTipText(java.lang.String msg) Sets the tooltip text. The default is to apply the getToolTipText() text to the edit control.- Parameters:
- msg- Message in tooltip (normally error), null for none, in which case the getToolTipText2() is used.
 
 - updateTooltip- public void updateTooltip() Updates the tooltip.
 - getNativeToolTip- public IzToolTip getNativeToolTip() Gets a "native" tooltip to use.- Returns:
- null for none, otherwise the IzToolTip instance.
 
 - getToolTipText2- protected java.lang.String getToolTipText2() Gets the tooltip text to display in the entry fields (not the one for property errors).
 - setFocus- protected void setFocus() Focuses the editor. The default is to place focus in the control (text or combobox), or the "more..." button. Other behavior must override this method.
 - onDefine- public void onDefine(boolean on) Called from the PropertyDefinedButton.- Specified by:
- onDefinein interface- IPropertyDefined
- Parameters:
- on- The defined state.
 
 - setEditable- protected void setEditable(boolean on) Sets the input-capable editable state when e.g. and extends-final property is encountered. This also sets the enabled state of the "more..." button.- Override this method if additional enabled states must be processed. 
 - setInput- protected boolean setInput(java.lang.String input) Updates the entry or visible part in the editor with a new property value that is not in error state. The default implementation updates the combo box or text with the value.toString() representation. The existing input should be checked for difference in order not to update the entry if not required. If the input is null, it means no change of the current input the user has made or was previously set.- Returns:
- true if changed, false for no change.
 
 - doValueChangeConversion- protected boolean doValueChangeConversion() Returns if the property value should be checked by converting current string input back-and-forth with the current value.- Returns:
- The default is to perform this (i.e. return true) if there is a Text or Combo input control.
 
 - setInputValueFromProp- protected void setInputValueFromProp(PROP_VALUE value) Sets the input value from an update of the property value. If the input is null, it means the same as setting an empty value.- The default is to call - doValueChangeConversion()and if it returns true, the value is retrieved using- getCurrentValue()with try-catch, and if the returned value is the same as the value passed into this method, nothing is performed. Otherwise- setInputValue(Object)is called.- Parameters:
- value- The value to set, null for empty.
 
 - setInputValue- protected void setInputValue(PROP_VALUE value) Sets the input value when editing, when formatting the value from a string. If the input is null, it means the same as setting an empty value.- Parameters:
- value- The value to set, null for empty.
 
 - hasFocus- public boolean hasFocus() Checks if this editor has focus.
 - setColors- protected void setColors(org.eclipse.swt.widgets.Control... additional) Sets the colors for the controls depending on error, focus and define state.
 - getModifyListener- protected org.eclipse.swt.events.ModifyListener getModifyListener() Gets the modify listener.
 - getSelectionListener- protected org.eclipse.swt.events.SelectionListener getSelectionListener() Gets the selection listener.
 - canProcessEvents- public boolean canProcessEvents() Checks if it's OK to process events.
 - beginProcessEvent- public void beginProcessEvent() Begins processing events, blocking e.g. property events or callbacks in SWT events.
 - endProcessEvent- public void endProcessEvent() Begins processing events, blocking e.g. property events or callbacks in SWT events.
 - checkInput- protected void checkInput(boolean focusLost) Checks the input.
 - getCurrentValue- public PROP_VALUE getCurrentValue() Gets the current value from the property, not user input. If several properties are selected, the value is only returned when the value is the same for all properties (otherwise null is returned).- Returns:
- The property value, or null if not defined.
 
 - getCurrentValues- public java.util.HashSet<PROP_VALUE> getCurrentValues() Gets the array of values currently used. Null entries may be present.
 - setCurrentValue- public void setCurrentValue(PROP_VALUE value) Sets the current value to all properties.
 - validate- protected PROP_VALUE validate(java.lang.String input, boolean focusLost) throws java.lang.Exception Routine to check the input from a text or combobox. It is called whenever a selection is done in the combobox or text input in either the entry field or the combobox. A potential validator is called by default.- Parameters:
- input- The user input.
- focusLost- Flag for validation at focus lost resulting in e.g. removal of value for empty strings.
- Returns:
- The value object or null to remove or un-define it.
- Throws:
- java.lang.Exception- For validation errors.
 
 - doUndefineIfEmpty- protected boolean doUndefineIfEmpty(boolean focusLost) Keeps empty strings as defined, when input has been changed specifically to empty string, or if the entry was defined when editing began.
 - onUpdate- public void onUpdate(PROP_VALUE value) Called when the property is updated without errors, with a new value.- Specified by:
- onUpdatein interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - onError- public void onError(java.lang.String input, java.lang.String message, int severity, boolean isMultipleValueWarning, boolean isChildError)Called when the property is updated due to an error.- Specified by:
- onErrorin interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - onUndefined- public void onUndefined() Called when the property is undefined.- Specified by:
- onUndefinedin interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - getSeverity- public int getSeverity() The error severity.
 - onReadOnly- public void onReadOnly(boolean on) Called when the read-only state changes.- Specified by:
- onReadOnlyin interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - initialize- public void initialize(PROP prop) throws PropException Initializes a newly created property (e.g. a reference property for accepted classes, etc).- Specified by:
- initializein interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
- Parameters:
- prop- The newly created orphan property.
- Throws:
- PropException- For property errors.
 
 - getOption- public java.lang.String getOption(java.lang.String name) Gets the options of a specified name as "option=".- Parameters:
- name- The name.
- Returns:
- The String after the equal sign, null if not found.
 
 - create- protected abstract void create() Creates the property editor controls.
 - getToolTipText- protected abstract java.lang.String getToolTipText() Gets the tooltip text to display in the entry fields (not the one for property errors or validator).
 - getDefaultValue- public abstract PROP_VALUE getDefaultValue() Gets the default defined value to set in the property when defined.- Specified by:
- getDefaultValuein interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
 
 - getValue- protected abstract PROP_VALUE getValue(java.lang.String input) throws java.lang.Exception Gets the property value for a user input.- Parameters:
- input- The current user input.
- Returns:
- The property value for the input, or null to un-define the property.
- Throws:
- java.lang.Exception- For validation errors.
 
 - formatValue- public abstract java.lang.String formatValue(PROP_VALUE value) Formats the value for user input as a String.- Specified by:
- formatValuein interface- IEditedPropControllerOwner<PROP extends GProp<?>,PROP_VALUE>
- Parameters:
- value- The value.
- Returns:
- The formatted value.