Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx
Class JXTipOfTheDay

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      org.jdesktop.swingx.JXPanel
                          org.jdesktop.swingx.JXTipOfTheDay

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

    public class JXTipOfTheDay

extends JXPanel

Provides the "Tip of The Day" pane and dialog.

Tips are retrieved from the `TipOfTheDayModel`. In the most common usage, a tip (as returned by `TipOfTheDayModel.Tip.getTip()`) is just a `String`. However, the return type of this method is actually `Object`. Its interpretation depends on its type:

Component
  The `Component` is displayed in the dialog.
Icon
  The `Icon` is wrapped in a `JLabel` and displayed in the dialog.
others
  The object is converted to a `String` by calling its `toString` method. The result is wrapped in a `JEditorPane` or `JTextArea` and displayed.

`JXTipOfTheDay` finds its tips in its `TipOfTheDayModel`. Such model can be programmatically built using `DefaultTipOfTheDayModel` and `DefaultTip` but the `TipLoader` provides a convenient method to build a model and its tips from a `Properties` object.

Example:

Let's consider a file tips.properties with the following content:

     tip.1.description=This is the first time! Plain text.
     tip.2.description=<html>This is <b>another tip</b>, it uses HTML!
     tip.3.description=A third one

To load and display the tips:

     Properties tips = new Properties();
     tips.load(new FileInputStream("tips.properties"));

     TipOfTheDayModel model = TipLoader.load(tips);
     JXTipOfTheDay totd = new JXTipOfTheDay(model);

     totd.showDialog(someParentComponent);

Additionally, `JXTipOfTheDay` features an option enabling the end-user to choose to not display the "Tip Of The Day" dialog. This user choice can be stored in the user `Preferences` but `JXTipOfTheDay` also supports custom storage through the `JXTipOfTheDay.ShowOnStartupChoice` interface.

     Preferences userPreferences = Preferences.userRoot().node("myApp");
     totd.showDialog(someParentComponent, userPreferences);

In this code, the first time showDialog is called, the dialog will be made visible and the user will have the choice to not display it again in the future (usually this is controlled by a checkbox "Show tips on startup"). If the user unchecks the option, subsequent calls to showDialog will not display the dialog. As the choice is saved in the user Preferences, it will persist when the application is relaunched.

Author:
  Frederic Lavigne
See Also:
  `TipLoader`, `TipOfTheDayModel`, `TipOfTheDayModel.Tip`, `showDialog(Component, Preferences)`, `showDialog(Component, ShowOnStartupChoice)`, Serialized Form

Nested Class Summary
`static interface` | `JXTipOfTheDay.ShowOnStartupChoice` Used in conjunction with the `showDialog(Component, ShowOnStartupChoice)` to save the "Show tips on startup" choice.

Nested classes/interfaces inherited from class javax.swing.JPanel
`javax.swing.JPanel.AccessibleJPanel`

Nested classes/interfaces inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Nested classes/interfaces inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`static java.lang.String` | `CURRENT_TIP_CHANGED_KEY` Used when generating PropertyChangeEvents for the "currentTip" property
`static java.lang.String` | `PREFERENCE_KEY` Key used to store the status of the "Show tip on startup" checkbox"
`static java.lang.String` | `uiClassID` JXTipOfTheDay pluggable UI key swingx/TipOfTheDayUI

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JXTipOfTheDay()` Constructs a new `JXTipOfTheDay` with an empty TipOfTheDayModel
`JXTipOfTheDay(TipOfTheDayModel model)` Constructs a new `JXTipOfTheDay` showing tips from the given TipOfTheDayModel.

Method Summary
`protected javax.swing.JDialog` | `createDialog(java.awt.Component parentComponent, JXTipOfTheDay.ShowOnStartupChoice choice)` Calls `TipOfTheDayUI.createDialog(Component, JXTipOfTheDay.ShowOnStartupChoice)`.
`static void` | `forceShowOnStartup(java.util.prefs.Preferences showOnStartupPref)` Removes the value set for "ShowTipOnStartup" in the given Preferences to ensure the dialog shown by a later call to `showDialog(Component, Preferences)` will be visible to the user.
`int` | `getCurrentTip()`
`TipOfTheDayModel` | `getModel()`
`TipOfTheDayUI` | `getUI()` Gets the UI object which implements the L&F for this component.
`java.lang.String` | `getUIClassID()` Returns the name of the L&F class that renders this component.
`static boolean` | `isShowingOnStartup(java.util.prefs.Preferences showOnStartupPref)`
`void` | `nextTip()` Shows the next tip in the list.
`void` | `previousTip()` Shows the previous tip in the list.
`void` | `setCurrentTip(int currentTip)` Sets the index of the tip to show
`void` | `setModel(TipOfTheDayModel model)`
`void` | `setUI(TipOfTheDayUI ui)` Sets the L&F object that renders this component.
`void` | `showDialog(java.awt.Component parentComponent)` Pops up a "Tip of the day" dialog.
`boolean` | `showDialog(java.awt.Component parentComponent, JXTipOfTheDay.ShowOnStartupChoice choice)` Pops up a "Tip of the day" dialog.
`boolean` | `showDialog(java.awt.Component parentComponent, JXTipOfTheDay.ShowOnStartupChoice choice, boolean force)` Pops up a "Tip of the day" dialog.
`boolean` | `showDialog(java.awt.Component parentComponent, java.util.prefs.Preferences showOnStartupPref)` Pops up a "Tip of the day" dialog.
`boolean` | `showDialog(java.awt.Component parentComponent, java.util.prefs.Preferences showOnStartupPref, boolean force)` Pops up a "Tip of the day" dialog.
`void` | `updateUI()` Notification from the `UIManager` that the L&F has changed.

Methods inherited from class org.jdesktop.swingx.JXPanel
`getAlpha, getBackgroundPainter, getEffectiveAlpha, getPainterChangeListener, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableHeightHint, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollableWidthHint, isInheritAlpha, isPaintBorderInsets, paint, paintComponent, setAlpha, setBackground, setBackgroundPainter, setInheritAlpha, setPaintBorderInsets, setScrollableHeightHint, setScrollableTracksViewportHeight, setScrollableTracksViewportWidth, setScrollableWidthHint`

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, paramString, setUI`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### uiClassID

    public static final java.lang.String uiClassID

  JXTipOfTheDay pluggable UI key swingx/TipOfTheDayUI

  See Also:
    Constant Field Values

### PREFERENCE_KEY

    public static final java.lang.String PREFERENCE_KEY

  Key used to store the status of the "Show tip on startup" checkbox"

  See Also:
    Constant Field Values

### CURRENT_TIP_CHANGED_KEY

    public static final java.lang.String CURRENT_TIP_CHANGED_KEY

  Used when generating PropertyChangeEvents for the "currentTip" property

  See Also:
    Constant Field Values

Constructor Detail

### JXTipOfTheDay

    public JXTipOfTheDay()

  Constructs a new `JXTipOfTheDay` with an empty TipOfTheDayModel

### JXTipOfTheDay

    public JXTipOfTheDay(TipOfTheDayModel model)

  Constructs a new `JXTipOfTheDay` showing tips from the given TipOfTheDayModel.

  Parameters:
    `model` -

Method Detail

### updateUI

    public void updateUI()

  Notification from the `UIManager` that the L&F has changed. Replaces the current UI object with the latest version from the `UIManager`.

  Overrides:
    `updateUI` in class `javax.swing.JPanel`
  See Also:
    `JComponent.updateUI()`

### setUI

    public void setUI(TipOfTheDayUI ui)

  Sets the L&F object that renders this component.

  Parameters:
    `ui` - the `TipOfTheDayUI` L&F object
  See Also:
    `UIDefaults.getUI(javax.swing.JComponent)`

### getUI

    public TipOfTheDayUI getUI()

  Gets the UI object which implements the L&F for this component.

  Overrides:
    `getUI` in class `javax.swing.JPanel`
  Returns:
    the TipOfTheDayUI object that implements the TipOfTheDayUI L&F

### getUIClassID

    public java.lang.String getUIClassID()

  Returns the name of the L&F class that renders this component.

  Overrides:
    `getUIClassID` in class `javax.swing.JPanel`
  Returns:
    the string `uiClassID`
  See Also:
    `JComponent.getUIClassID()`, `UIDefaults.getUI(javax.swing.JComponent)`

### getModel

    public TipOfTheDayModel getModel()

### setModel

    public void setModel(TipOfTheDayModel model)

### getCurrentTip

    public int getCurrentTip()

### setCurrentTip

    public void setCurrentTip(int currentTip)

  Sets the index of the tip to show

  Parameters:
    `currentTip` -
  Throws:
    `java.lang.IllegalArgumentException` - if currentTip is not within the bounds [0, getModel().getTipCount()[.

### nextTip

    public void nextTip()

  Shows the next tip in the list. It cycles the tip list.

### previousTip

    public void previousTip()

  Shows the previous tip in the list. It cycles the tip list.

### showDialog

    public void showDialog(java.awt.Component parentComponent)
                    throws java.awt.HeadlessException

  Pops up a "Tip of the day" dialog.

  Parameters:
    `parentComponent` -
  Throws:
    `java.awt.HeadlessException` - if GraphicsEnvironment.isHeadless() returns true.
  See Also:
    `GraphicsEnvironment.isHeadless()`

### showDialog

    public boolean showDialog(java.awt.Component parentComponent,
                              java.util.prefs.Preferences showOnStartupPref)
                       throws java.awt.HeadlessException

  Pops up a "Tip of the day" dialog. Additionally, it saves the state of the "Show tips on startup" checkbox in a key named "ShowTipOnStartup" in the given Preferences.

  Parameters:
    `parentComponent` -
    `showOnStartupPref` -
  Returns:
    true if the user chooses to see the tips again, false otherwise.
  Throws:
    `java.awt.HeadlessException` - if GraphicsEnvironment.isHeadless() returns true.
    `java.lang.IllegalArgumentException` - if showOnStartupPref is null
  See Also:
    `GraphicsEnvironment.isHeadless()`

### showDialog

    public boolean showDialog(java.awt.Component parentComponent,
                              java.util.prefs.Preferences showOnStartupPref,
                              boolean force)
                       throws java.awt.HeadlessException

  Pops up a "Tip of the day" dialog. Additionally, it saves the state of the "Show tips on startup" checkbox in a key named "ShowTipOnStartup" in the given Preferences.

  Parameters:
    `parentComponent` -
    `showOnStartupPref` -
    `force` - if true, the dialog is displayed even if the Preferences is set to hide the dialog
  Returns:
    true if the user chooses to see the tips again, false otherwise.
  Throws:
    `java.awt.HeadlessException` - if GraphicsEnvironment.isHeadless() returns true.
    `java.lang.IllegalArgumentException` - if showOnStartupPref is null
  See Also:
    `GraphicsEnvironment.isHeadless()`

### showDialog

    public boolean showDialog(java.awt.Component parentComponent,
                              JXTipOfTheDay.ShowOnStartupChoice choice)

  Pops up a "Tip of the day" dialog. If `choice` is not null, the method first checks if `JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup()` is true before showing the dialog. Additionally, it saves the state of the "Show tips on startup" checkbox using the given `JXTipOfTheDay.ShowOnStartupChoice` object.

  Parameters:
    `parentComponent` -
    `choice` -
  Returns:
    true if the user chooses to see the tips again, false otherwise.
  Throws:
    `java.awt.HeadlessException` - if GraphicsEnvironment.isHeadless() returns true.
  See Also:
    `GraphicsEnvironment.isHeadless()`

### showDialog

    public boolean showDialog(java.awt.Component parentComponent,
                              JXTipOfTheDay.ShowOnStartupChoice choice,
                              boolean force)

  Pops up a "Tip of the day" dialog. If `choice` is not null, the method first checks if `force` is true or if `JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup()` is true before showing the dialog. Additionally, it saves the state of the "Show tips on startup" checkbox using the given `JXTipOfTheDay.ShowOnStartupChoice` object.

  Parameters:
    `parentComponent` -
    `choice` -
    `force` - if true, the dialog is displayed even if `JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup()` is false
  Returns:
    true if the user chooses to see the tips again, false otherwise.
  Throws:
    `java.awt.HeadlessException` - if GraphicsEnvironment.isHeadless() returns true.
  See Also:
    `GraphicsEnvironment.isHeadless()`

### isShowingOnStartup

    public static boolean isShowingOnStartup(java.util.prefs.Preferences showOnStartupPref)

  Parameters:
    `showOnStartupPref` -
  Returns:
    true if the key named "ShowTipOnStartup" is not set to false

### forceShowOnStartup

    public static void forceShowOnStartup(java.util.prefs.Preferences showOnStartupPref)

  Removes the value set for "ShowTipOnStartup" in the given Preferences to ensure the dialog shown by a later call to `showDialog(Component, Preferences)` will be visible to the user.

  Parameters:
    `showOnStartupPref` -

### createDialog

    protected javax.swing.JDialog createDialog(java.awt.Component parentComponent,
                                               JXTipOfTheDay.ShowOnStartupChoice choice)

  Calls `TipOfTheDayUI.createDialog(Component, JXTipOfTheDay.ShowOnStartupChoice)`. This method can be overriden in order to control things such as the placement of the dialog or its title.

  Parameters:
    `parentComponent` -
    `choice` -
  Returns:
    a JDialog to show this TipOfTheDay pane

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.