Class 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()
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      The method automatically invoked when changing the combobox status.
      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.
      boolean setValue​(java.lang.Object value)
      Sets the currently selected value of this property.
      • 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
      • 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 boolean setValue​(java.lang.Object value)
        Sets the currently selected value of this property. Note that it is assumed that this value is in the list of possible values
        Parameters:
        value - the value to be selected in the combo box
      • getAllValues

        public java.util.List<?> getAllValues()
        Retrieves all the possible values specified for this property.
        Returns:
        all possible values (including the current value)
      • 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