org.processmining.framework.util
Class GUIPropertyListEnumeration

java.lang.Object
  extended by org.processmining.framework.util.GUIPropertyListEnumeration
All Implemented Interfaces:
java.awt.event.ActionListener, java.util.EventListener

public class GUIPropertyListEnumeration
extends java.lang.Object
implements java.awt.event.ActionListener

An enumeration property that can be readily displayed as it maintains its own GUI panel. The property will be graphically represented as a combo box. If a description has been provided, it will be displayed as a tool tip.
Changes performed via the GUI will be immedeately propagated to the internally held property value. Furthermore, a notification target may be specified in order to be informed as soon as the value has been changed.

A typical usage scenario looks as follows:

JPanel testPanel = new Panel(); // create parent panel
testPanel.setLayout(new BoxLayout(testPanel, BoxLayout.PAGE_AXIS));
ArrayList values = new ArrayList(); values.add("Male"); values.add("Female"); GUIPropertyListEnumeration gender = new GUIPropertyListEnumeration("Gender", values);
testPanel.add(gender.getPropertyPanel()); // add one property
return testPanel;

Note that this property expects a list of possible values rather than a simple java enumeration in order also manage the choice between arbitrary objects. Any set of self-defined objects may be passed to the GUIPropertyListEnumeration as long as these self-defined objects provide a toString() method in a meaningful way.

See Also:
getValue, getPropertyPanel

Field Summary
protected  javax.swing.JComboBox myComboBox
           
protected  java.lang.String myDescription
           
protected  java.lang.String myName
           
protected  java.util.List myPossibleValues
           
protected  GuiNotificationTarget myTarget
           
protected  java.lang.Object myValue
           
protected  int myWidth
           
 
Constructor Summary
GUIPropertyListEnumeration(java.lang.String name, java.util.List values)
          Creates an enumeration property without a discription and notification.
GUIPropertyListEnumeration(java.lang.String name, java.util.List values, GuiNotificationTarget target)
          Creates an enumeration property without a discription.
GUIPropertyListEnumeration(java.lang.String name, java.lang.String description, java.util.List values)
          Creates an enumeration property without notification.
GUIPropertyListEnumeration(java.lang.String name, java.lang.String description, java.util.List values, GuiNotificationTarget target)
          Creates an enumeration property.
GUIPropertyListEnumeration(java.lang.String name, java.lang.String description, java.util.List values, GuiNotificationTarget target, int width)
          Creates an enumeration property.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          The method automatically invoked when changing the combobox status.
 void addValue(java.lang.Object value)
          Adds an enumeration value.
 void disable()
          Prevents that this property may be manipulated via the GUI panel.
 void enable()
          Re-activates the possibility to manipulate this property via the GUI panel.
 java.util.List getAllValues()
          Retrieves all the possible values specified for this property.
 javax.swing.JPanel getPropertyPanel()
          Creates GUI panel containg this property, ready to display in some settings dialog.
 java.lang.Object getValue()
          The method to be invoked when the value of this property is to be used.
 void notifyTarget()
          Manually notify the target that the state of the radiolist has been changed.
 void removeValue(java.lang.Object value)
          Removes an enumeration value, if present
 void setValue(java.lang.Object value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myName

protected java.lang.String myName

myDescription

protected java.lang.String myDescription

myPossibleValues

protected java.util.List myPossibleValues

myValue

protected java.lang.Object myValue

myTarget

protected GuiNotificationTarget myTarget

myComboBox

protected javax.swing.JComboBox myComboBox

myWidth

protected int myWidth
Constructor Detail

GUIPropertyListEnumeration

public GUIPropertyListEnumeration(java.lang.String name,
                                  java.util.List values)
Creates an enumeration property without a discription and notification.

Parameters:
name - the name of this property
values - the possible values of this property. The objects in this list should either be simple strings or override the toString() method, which is then displayed as the name of this value in the ComboBox. The first value in the list is considered as the default value

GUIPropertyListEnumeration

public GUIPropertyListEnumeration(java.lang.String name,
                                  java.lang.String description,
                                  java.util.List values)
Creates an enumeration property without notification.

Parameters:
name - the name of this property
description - of this property (to be displayed as a tool tip)
values - the possible values of this property. The objects in this list should either be simple strings or override the toString() method, which is then displayed as the name of this value in the ComboBox. The first value in the list is considered as the default value

GUIPropertyListEnumeration

public GUIPropertyListEnumeration(java.lang.String name,
                                  java.util.List values,
                                  GuiNotificationTarget target)
Creates an enumeration property without a discription.

Parameters:
name - the name of this property
values - the possible values of this property. The objects in this list should either be simple strings or override the toString() method, which is then displayed as the name of this value in the ComboBox. The first value in the list is considered as the default value
target - the object to be notified as soon the state of this property changes

GUIPropertyListEnumeration

public GUIPropertyListEnumeration(java.lang.String name,
                                  java.lang.String description,
                                  java.util.List values,
                                  GuiNotificationTarget target)
Creates an enumeration property.

Parameters:
name - the name of this property
description - of this property (to be displayed as a tool tip)
values - the possible values of this property. The objects in this list should either be simple strings or override the toString() method, which is then displayed as the name of this value in the ComboBox. The first value in the list is considered as the default value
target - the object to be notified as soon the state of this property changes

GUIPropertyListEnumeration

public GUIPropertyListEnumeration(java.lang.String name,
                                  java.lang.String description,
                                  java.util.List values,
                                  GuiNotificationTarget target,
                                  int width)
Creates an enumeration property.

Parameters:
name - the name of this property
description - of this property (to be displayed as a tool tip)
values - the possible values of this property. The objects in this list should either be simple strings or override the toString() method, which is then displayed as the name of this value in the ComboBox. The first value in the list is considered as the default value
target - the object to be notified as soon the state of this property changes
width - a custom width may be specified (default value is 100 otherwise)
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
The method automatically invoked when changing the combobox status.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - the passed action event (not used)

notifyTarget

public void notifyTarget()
Manually notify the target that the state of the radiolist has been changed.


getValue

public java.lang.Object getValue()
The method to be invoked when the value of this property is to be used.

Returns:
the current value of this property

setValue

public void setValue(java.lang.Object value)

getAllValues

public java.util.List getAllValues()
Retrieves all the possible values specified for this property.

Returns:
all possible values (including the current value)

removeValue

public void removeValue(java.lang.Object value)
Removes an enumeration value, if present

Parameters:
value - Object the enumeration value to be removed

addValue

public void addValue(java.lang.Object value)
Adds an enumeration value. If it is already present it will not be added again

Parameters:
value - Object The enumeration value to be added

disable

public void disable()
Prevents that this property may be manipulated via the GUI panel.

See Also:
enable()

enable

public void enable()
Re-activates the possibility to manipulate this property via the GUI panel.

See Also:
disable()

getPropertyPanel

public javax.swing.JPanel getPropertyPanel()
Creates GUI panel containg this property, ready to display in some settings dialog.

Returns:
the graphical panel representing this property