DESY ACOP Beans Home

com.cosylab.gui.components.customizer
Class DefaultEditor

java.lang.Object
  extended by com.cosylab.gui.components.customizer.DefaultEditor
All Implemented Interfaces:
Editor
Direct Known Subclasses:
AcopEditor

public class DefaultEditor
extends java.lang.Object
implements Editor

Default implementation of the Editor interface. Supports editing of aspects via a simple property table, multiple aspects, and custom editors for selected aspects.

Version:
$id$
Author:
Jernej Kamenik

Field Summary
 
Fields inherited from interface com.cosylab.gui.components.customizer.Editor
ASPECTS
 
Constructor Summary
DefaultEditor()
          Cunstructs an empty editor.
 
Method Summary
 void addCustomEditor(java.lang.String aspect, Editor editor)
          Overrides the current editor for the specified aspect with the editor specified.
 void applySettings()
          Applies all the changes done to the custom editors as well as the property tables.
protected  void applyTableProperties()
           
 boolean canEdit(java.lang.Object displayer, java.lang.String aspect)
          Inspecting the ASPECTS and all the custom editors, this method determines, wether the specified aspect of the dispalyer can be edited by this editor.
 java.lang.String[] getDefaultProperties(java.lang.String aspect)
           Should return names of properties of a dispalyer to be edited within the sepcified aspect through generic proeprty tables.
 javax.swing.JComponent getEditorComponent(java.lang.Object displayer, java.lang.String aspect)
          Returns the editor component for the selected aspect and displayer.
protected  void initializeDefaultPropertiesTable(java.lang.Object displayer, java.lang.String aspect)
           
 void revertSettings()
          Reverts all the changes done to the custom editors as well as the property tables.
 void stopEditing()
          Stops editing with all custom editors as well as property tables.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultEditor

public DefaultEditor()
Cunstructs an empty editor.

Method Detail

getDefaultProperties

public java.lang.String[] getDefaultProperties(java.lang.String aspect)

Should return names of properties of a dispalyer to be edited within the sepcified aspect through generic proeprty tables. This empty implementation however returns null.

Subclasses should override this method to return arrays of String names of properties to be edited via property tables in the specified aspect.

The Strings returned should specify names of qualified JavaBean properties with conventional getter and setter methods.

If a custom editor has been specified for the aspect the result of theis method is ignored as the custom editor is used for editing the aspect instead of generic property table.

Parameters:
aspect - the aspect of the displayer to be edited with generic proeprty table
Returns:
array of names of properties to be edited with the proeprty table in the specified aspect

getEditorComponent

public javax.swing.JComponent getEditorComponent(java.lang.Object displayer,
                                                 java.lang.String aspect)
                                          throws java.lang.IllegalArgumentException
Returns the editor component for the selected aspect and displayer. If a custom editor exists for the selected aspect, it is returned. Otherwise a property table is returned containing the selected proeprties of the aspect as returned by #getDefaultProperties(String) method.

Specified by:
getEditorComponent in interface Editor
Parameters:
displayer - the component for which the editor should be returned
aspect - the specific editing aspect for which the editor should be returned
Returns:
the editor component for the selected aspect and displayer.
Throws:
java.lang.IllegalArgumentException - if no custom editor is found for the aspect and getDefaultProperties(String) returns null for the aspect.
See Also:
Editor.getEditorComponent(Object, String)

addCustomEditor

public void addCustomEditor(java.lang.String aspect,
                            Editor editor)
Overrides the current editor for the specified aspect with the editor specified. This method can be used to replace generic property tables as editors for the aspect specified.

Parameters:
aspect - for which to use the editor specified
editor - the editor to replace the current editor of the aspect specified

applySettings

public void applySettings()
Applies all the changes done to the custom editors as well as the property tables.

Specified by:
applySettings in interface Editor
See Also:
Editor.applySettings()

canEdit

public boolean canEdit(java.lang.Object displayer,
                       java.lang.String aspect)
Inspecting the ASPECTS and all the custom editors, this method determines, wether the specified aspect of the dispalyer can be edited by this editor.

Specified by:
canEdit in interface Editor
Parameters:
displayer - Object to be edited (is ignored and can be null)
aspect - String name of aspect to be edited.
Returns:
true if the specifed aspect of the displayer can be edited, false otherwise.
See Also:
Editor.canEdit(Object, String)

revertSettings

public void revertSettings()
Reverts all the changes done to the custom editors as well as the property tables.

Specified by:
revertSettings in interface Editor
See Also:
Editor.revertSettings()

stopEditing

public void stopEditing()
Stops editing with all custom editors as well as property tables.

Specified by:
stopEditing in interface Editor
See Also:
Editor.stopEditing()

applyTableProperties

protected void applyTableProperties()

initializeDefaultPropertiesTable

protected void initializeDefaultPropertiesTable(java.lang.Object displayer,
                                                java.lang.String aspect)
                                         throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException


Copyright © 2010. All Rights Reserved.