Class SynthXListUI

All Implemented Interfaces:
SynthConstants, SynthUI

public class SynthXListUI extends BasicXListUI implements SynthConstants, SynthUI
TODO add type doc
  • Field Details

    • style

      private SynthStyle style
    • useListColors

      private boolean useListColors
    • useUIBorder

      private boolean useUIBorder
  • Constructor Details

    • SynthXListUI

      public SynthXListUI()
  • Method Details

    • createUI

      public static ComponentUI createUI(JComponent list)
      Returns a new instance of SynthXListUI. SynthXListUI delegates are allocated one per JList.
      Returns:
      A new ListUI implementation for the Synth look and feel.
    • update

      public void update(Graphics g, JComponent c)

      Overridden to fill background, Synth-style.

      Overrides:
      update in class ComponentUI
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      Creates an instance of PropertyChangeHandler that's added to the JList by installUI(). Subclasses can override this method to return a custom PropertyChangeListener, e.g.
       class MyListUI extends BasicXListUI {
          protected PropertyChangeListener createPropertyChangeListener() {
              return new MyPropertyChangeListener();
          }
          public class MyPropertyChangeListener extends PropertyChangeHandler {
              public void propertyChange(PropertyChangeEvent e) {
                  if (e.getPropertyName().equals("model")) {
                      // do some extra work when the model changes
                  }
                  super.propertyChange(e);
              }
          }
       }
       

      Overridden to update style if appropriate.

      Overrides:
      createPropertyChangeListener in class BasicXListUI
      See Also:
    • installDefaults

      protected void installDefaults()
      Initialize JList properties, e.g. font, foreground, and background, and add the CellRendererPane. The font, foreground, and background properties are only set if their current value is either null or a UIResource, other properties are set if the current value is null.

      Overridden to install properties, Synth-style.

      Overrides:
      installDefaults in class BasicXListUI
      See Also:
    • updateStyle

      private void updateStyle()
    • installSynthBorder

      protected void installSynthBorder()
      Installs a SynthBorder from the current style, if ui-installable.
      Parameters:
      context - the context
    • uninstallDefaults

      protected void uninstallDefaults()
      Set the JList properties that haven't been explicitly overridden to null. A property is considered overridden if its current value is not a UIResource.

      Overridden to uninstall properties, Synth-style, after calling super.

      Overrides:
      uninstallDefaults in class BasicXListUI
      See Also:
    • paintBorder

      public void paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)
      Paints border with the context's style's painter. Implemented for SynthUI interface.
      Specified by:
      paintBorder in interface SynthUI
    • getContext

      public SynthContext getContext(JComponent c)

      Returns a context for the component's current state. Implemented for SynthUI interface.

      PENDING JW: not entirely sure if allowed ... but need to replace SynthUI anyway?.

      Specified by:
      getContext in interface SynthUI
      Throws:
      IllegalArgumentException - if the component is not controlled by this delegate
    • getContext

      private SynthContext getContext()
      Returns the context based on current state.
      Returns:
    • getComponentState

      private int getComponentState()
      Returns the current component state for the controlled list.
      Returns:
    • getContext

      private SynthContext getContext(int state)
      Returns a Context with the given component state.
      Parameters:
      state -
      Returns:
    • getRegion

      private Region getRegion()
    • getStyle

      private SynthStyle getStyle()
      Returns the style for this component from the style factory.
      Returns: