pivot.wtk.skin
Class CalendarButtonSkin

java.lang.Object
  extended by pivot.wtk.skin.ComponentSkin
      extended by pivot.wtk.skin.ButtonSkin
          extended by pivot.wtk.skin.CalendarButtonSkin
All Implemented Interfaces:
ButtonListener, ButtonPressListener, ButtonStateListener, CalendarButtonListener, CalendarButtonSelectionListener, ComponentKeyListener, ComponentLayoutListener, ComponentListener, ComponentMouseButtonListener, ComponentMouseListener, ComponentMouseWheelListener, ComponentStateListener, ConstrainedVisual, Skin, Visual
Direct Known Subclasses:
TerraCalendarButtonSkin

public abstract class CalendarButtonSkin
extends ButtonSkin
implements CalendarButtonListener, CalendarButtonSelectionListener

Abstract base class for calendar button skins.

TODO Rather than blindly closing when a mouse down is received, we could instead cache the selection state in the popup's container mouse down event and compare it to the current state in component mouse down. If different, we close the popup. This would also tie this base class less tightly to its concrete subclasses.

Author:
gbrown

Field Summary
protected  Calendar calendar
           
protected  Window calendarPopup
           
protected  boolean pressed
           
 
Fields inherited from class pivot.wtk.skin.ButtonSkin
highlighted
 
Fields inherited from class pivot.wtk.skin.ComponentSkin
SHOW_TOOLTIP_TIMEOUT
 
Constructor Summary
CalendarButtonSkin()
           
 
Method Summary
 void buttonPressed(Button button)
          Called when a button is pressed.
 void enabledChanged(Component component)
          Called when a component's enabled state has changed.
 void focusedChanged(Component component, boolean temporary)
          Called when a component's focused state has changed.
 void install(Component component)
          Associates a skin with a component.
 boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation)
          Called when a key has been pressed.
 boolean keyReleased(Component component, int keyCode, Keyboard.KeyLocation keyLocation)
          Called when a key has been released.
 void localeChanged(CalendarButton calendarButton, java.util.Locale previousLocale)
          Called when a calendar button's locale has changed.
 boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count)
          Called when a mouse button is clicked over a component.
 boolean mouseDown(Component component, Mouse.Button button, int x, int y)
          Called when a mouse button is pressed over a component.
 void mouseOut(Component component)
          Called when the mouse exits a component.
 boolean mouseUp(Component component, Mouse.Button button, int x, int y)
          Called when a mouse button is released over a component.
 void selectedDateChanged(CalendarButton calendarButton, CalendarDate previousSelectedDate)
          Called when a calendar button's selected date has changed.
 void selectedDateKeyChanged(CalendarButton calendarButton, java.lang.String previousSelectedDateKey)
          Called when a calendar button's selected date key has changed.
 void uninstall()
          Dissociates a skin from a component.
 
Methods inherited from class pivot.wtk.skin.ButtonSkin
actionChanged, buttonDataChanged, dataRendererChanged, groupChanged, layout, mouseOver, selectedKeyChanged, stateChanged, stateKeyChanged, toggleButtonChanged, triStateChanged
 
Methods inherited from class pivot.wtk.skin.ComponentSkin
cursorChanged, decodeColor, displayableChanged, getComponent, getHeight, getPreferredSize, getWidth, invalidateComponent, isFocusable, keyTyped, locationChanged, mouseMove, mouseWheel, parentChanged, preferredSizeChanged, repaintComponent, repaintComponent, repaintComponent, setSize, sizeChanged, styleUpdated, tooltipTextChanged, visibleChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface pivot.wtk.ConstrainedVisual
getPreferredHeight, getPreferredWidth
 
Methods inherited from interface pivot.wtk.Visual
paint
 

Field Detail

calendar

protected Calendar calendar

calendarPopup

protected Window calendarPopup

pressed

protected boolean pressed
Constructor Detail

CalendarButtonSkin

public CalendarButtonSkin()
Method Detail

install

public void install(Component component)
Description copied from interface: Skin
Associates a skin with a component.

Specified by:
install in interface Skin
Overrides:
install in class ButtonSkin
Parameters:
component - The component to which the skin is being attached.

uninstall

public void uninstall()
Description copied from interface: Skin
Dissociates a skin from a component.

Specified by:
uninstall in interface Skin
Overrides:
uninstall in class ButtonSkin

enabledChanged

public void enabledChanged(Component component)
Description copied from interface: ComponentStateListener
Called when a component's enabled state has changed.

Specified by:
enabledChanged in interface ComponentStateListener
Overrides:
enabledChanged in class ButtonSkin

focusedChanged

public void focusedChanged(Component component,
                           boolean temporary)
Description copied from interface: ComponentStateListener
Called when a component's focused state has changed.

Specified by:
focusedChanged in interface ComponentStateListener
Overrides:
focusedChanged in class ButtonSkin

mouseOut

public void mouseOut(Component component)
Description copied from interface: ComponentMouseListener
Called when the mouse exits a component.

Specified by:
mouseOut in interface ComponentMouseListener
Overrides:
mouseOut in class ButtonSkin

mouseDown

public boolean mouseDown(Component component,
                         Mouse.Button button,
                         int x,
                         int y)
Description copied from interface: ComponentMouseButtonListener
Called when a mouse button is pressed over a component.

Specified by:
mouseDown in interface ComponentMouseButtonListener
Overrides:
mouseDown in class ComponentSkin
Returns:
true to consume the event; false to allow it to propagate.

mouseUp

public boolean mouseUp(Component component,
                       Mouse.Button button,
                       int x,
                       int y)
Description copied from interface: ComponentMouseButtonListener
Called when a mouse button is released over a component.

Specified by:
mouseUp in interface ComponentMouseButtonListener
Overrides:
mouseUp in class ComponentSkin
Returns:
true to consume the event; false to allow it to propagate.

mouseClick

public boolean mouseClick(Component component,
                          Mouse.Button button,
                          int x,
                          int y,
                          int count)
Description copied from interface: ComponentMouseButtonListener
Called when a mouse button is clicked over a component.

Specified by:
mouseClick in interface ComponentMouseButtonListener
Overrides:
mouseClick in class ComponentSkin
Returns:
true to consume the event; false to allow it to propagate.

keyPressed

public boolean keyPressed(Component component,
                          int keyCode,
                          Keyboard.KeyLocation keyLocation)
Description copied from interface: ComponentKeyListener
Called when a key has been pressed.

Specified by:
keyPressed in interface ComponentKeyListener
Overrides:
keyPressed in class ComponentSkin
Returns:
true to consume the event; false to allow it to propagate.

keyReleased

public boolean keyReleased(Component component,
                           int keyCode,
                           Keyboard.KeyLocation keyLocation)
Description copied from interface: ComponentKeyListener
Called when a key has been released.

Specified by:
keyReleased in interface ComponentKeyListener
Overrides:
keyReleased in class ComponentSkin
Returns:
true to consume the event; false to allow it to propagate.

buttonPressed

public void buttonPressed(Button button)
Description copied from interface: ButtonPressListener
Called when a button is pressed.

Specified by:
buttonPressed in interface ButtonPressListener
Overrides:
buttonPressed in class ButtonSkin

selectedDateKeyChanged

public void selectedDateKeyChanged(CalendarButton calendarButton,
                                   java.lang.String previousSelectedDateKey)
Description copied from interface: CalendarButtonListener
Called when a calendar button's selected date key has changed.

Specified by:
selectedDateKeyChanged in interface CalendarButtonListener

localeChanged

public void localeChanged(CalendarButton calendarButton,
                          java.util.Locale previousLocale)
Description copied from interface: CalendarButtonListener
Called when a calendar button's locale has changed.

Specified by:
localeChanged in interface CalendarButtonListener

selectedDateChanged

public void selectedDateChanged(CalendarButton calendarButton,
                                CalendarDate previousSelectedDate)
Description copied from interface: CalendarButtonSelectionListener
Called when a calendar button's selected date has changed.

Specified by:
selectedDateChanged in interface CalendarButtonSelectionListener