org.openswing.swing.miscellaneous.client
Class IconifableWindow

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.openswing.swing.miscellaneous.client.IconifableWindow
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
AlertWindow

public class IconifableWindow
extends javax.swing.JPanel

Title: OpenSwing Framework

Description: this class allows to show an iconifable window, i.e. a window that can contains any kind of graphics component within it, since it inherits from JPanel. As default behavior, it is composed of a top panel and a main panel: - top panel may contain: an optional title icon, a title (showed in bold style) and two buttons: a "reduce to icon" button and a "close" button, both can be hidden - main panel is this, i.e. any content manually added to this is showed inside this main panel. Window can be reduced to icon by pressing the "reduce to icon" button or by double clicking inside the top panel (if no "reduce to icon" button is visible). Window can be closed by pressing the "close" button or by clicking inside the main panel (if no "close" button is visible). As default settings, this panel has a dimension of 300 x 150 pixels. Window location can be defined in several ways: - using absolute location, by using this.setLocation method - by anchoring the window to the TOP/BOTTOM/INSIDE_BOTTOM/INSIDE_TOP of another component, through setAnchorWindow() method.

Several events fired by this window can be listened, through the method: addIconifableWindowListener.

Copyright: Copyright (C) 2006 Mauro Carniel

This file is part of OpenSwing Framework. This library is free software; you can redistribute it and/or modify it under the terms of the (LGPL) Lesser General Public License as published by the Free Software Foundation; GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author may be contacted at: maurocarniel@tin.it

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
static int BOTTOM
          anchor the window to the bottom of the specified component
static int INSIDE_BOTTOM
          anchor the window inside the specified component at the bottom
static int INSIDE_TOP
          anchor the window inside the specified component at the top
static int TOP
          anchor the window to the top of the specified component
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
IconifableWindow()
           
 
Method Summary
 void addIconifableWindowListener(IconifableWindowListener listener)
          Add an IconifableWindowListener to this window.
 void anchorWindow(javax.swing.JComponent anchorComponent, int constraint)
          Anchor the window to the specified component.
 int getConstraint()
           
 int getIconHeight()
           
 java.lang.String getTitle()
           
 java.lang.String getTitleImageName()
           
 java.awt.Color getTopPanelBackground()
           
 javax.swing.JWindow getWindow()
           
 java.awt.Dimension getWindowMaximumSize()
           
 void hideWindow()
          Manually hide the window.
 boolean isAllowsCloseWindow()
           
 boolean isShowCloseButton()
           
 boolean isShowReduceToIconButton()
           
 void reduceToIcon()
          Reduce the window to icon.
 void removeIconifableWindowListener(IconifableWindowListener listener)
          Remove an IconifableWindowListener to this window.
 void restoreWindow()
          Restore window to its original dimension.
 void setAllowsCloseWindow(boolean allowsCloseWindow)
          Define if the window can be closed (when the close button is hidden and user has clicked with the mouse inside it).
 void setIconHeight(int iconHeight)
          Set window height, when it is iconified.
 void setShowCloseButton(boolean showCloseButton)
          Define if a close button must be showed (false = window will be closed by simply click mouse inside it); default value: false.
 void setShowReduceToIconButton(boolean showReduceToIconButton)
          Define if a reduce to icon button must be showed (true means that the iconified window will be enlarged by clicking on it); default value: false.
 void setTitle(java.lang.String title)
          Set the title text to show inside this panel.
 void setTitleImageName(java.lang.String titleImageName)
          Set the title image name (optional), to show at the left of the title.
 void setTopPanelBackground(java.awt.Color color)
          Set top panel background color.
 void setWindowMaximumSize(java.awt.Dimension lastWindowDimension)
          Sets the size of the window, when it is maximized.
 void showWindow()
          Show a window that contains this.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TOP

public static final int TOP
anchor the window to the top of the specified component

See Also:
Constant Field Values

BOTTOM

public static final int BOTTOM
anchor the window to the bottom of the specified component

See Also:
Constant Field Values

INSIDE_BOTTOM

public static final int INSIDE_BOTTOM
anchor the window inside the specified component at the bottom

See Also:
Constant Field Values

INSIDE_TOP

public static final int INSIDE_TOP
anchor the window inside the specified component at the top

See Also:
Constant Field Values
Constructor Detail

IconifableWindow

public IconifableWindow()
Method Detail

showWindow

public final void showWindow()
Show a window that contains this.


hideWindow

public final void hideWindow()
Manually hide the window.


anchorWindow

public final void anchorWindow(javax.swing.JComponent anchorComponent,
                               int constraint)
Anchor the window to the specified component.

Parameters:
constraint - anchor type: TOP or BOTTOM or INSIDE_BOTTOM or INSIDE_TOP

setWindowMaximumSize

public final void setWindowMaximumSize(java.awt.Dimension lastWindowDimension)
Sets the size of the window, when it is maximized.


getWindowMaximumSize

public final java.awt.Dimension getWindowMaximumSize()
Returns:
size of the window, when it is maximized

isShowCloseButton

public final boolean isShowCloseButton()
Returns:
define if a close button must be showed (false = window will be closed by simply click mouse inside it)

setShowCloseButton

public final void setShowCloseButton(boolean showCloseButton)
Define if a close button must be showed (false = window will be closed by simply click mouse inside it); default value: false.

Parameters:
showCloseButton - define if a close button must be showed (false = window will be closed by simply mouse click inside it)

isShowReduceToIconButton

public final boolean isShowReduceToIconButton()
Returns:
define if a reduce to icon button must be showed (true means that the iconified window will be enlarged by clicking on it)

setShowReduceToIconButton

public final void setShowReduceToIconButton(boolean showReduceToIconButton)
Define if a reduce to icon button must be showed (true means that the iconified window will be enlarged by clicking on it); default value: false.

Parameters:
showReduceToIconButton - define if a reduce to icon button must be showed (true means that the iconified window will be enlarged by clicking on it)

setTitle

public final void setTitle(java.lang.String title)
Set the title text to show inside this panel.

Parameters:
title - text to show inside this panel; it will be translated, according to language settings

getTitle

public final java.lang.String getTitle()
Returns:
title text to show inside this panel

getIconHeight

public final int getIconHeight()
Returns:
window height, when it is iconified

setIconHeight

public final void setIconHeight(int iconHeight)
Set window height, when it is iconified.

Parameters:
iconHeight - window height, when it is iconified

addIconifableWindowListener

public final void addIconifableWindowListener(IconifableWindowListener listener)
Add an IconifableWindowListener to this window.

Parameters:
listener - listener of events fired by this window

removeIconifableWindowListener

public final void removeIconifableWindowListener(IconifableWindowListener listener)
Remove an IconifableWindowListener to this window.

Parameters:
listener - listener of events fired by this window that must be removed

getTitleImageName

public final java.lang.String getTitleImageName()
Returns:
title image name (optional)

setTitleImageName

public final void setTitleImageName(java.lang.String titleImageName)
Set the title image name (optional), to show at the left of the title.

Parameters:
titleImageName - title image name (optional)

getWindow

public final javax.swing.JWindow getWindow()
Returns:
iconifable window; null if showWindow() method has not been yet called

setTopPanelBackground

public final void setTopPanelBackground(java.awt.Color color)
Set top panel background color.

Parameters:
color - top panel background color

getTopPanelBackground

public final java.awt.Color getTopPanelBackground()
Returns:
top panel background color

reduceToIcon

public final void reduceToIcon()
Reduce the window to icon. Note that the window must already be visible ("showWindow" method must be invoked before).


restoreWindow

public final void restoreWindow()
Restore window to its original dimension.


isAllowsCloseWindow

public final boolean isAllowsCloseWindow()
Returns:
define if the window can be closed (when the close button is hidden and user has clicked with the mouse inside it)

setAllowsCloseWindow

public final void setAllowsCloseWindow(boolean allowsCloseWindow)
Define if the window can be closed (when the close button is hidden and user has clicked with the mouse inside it).

Parameters:
allowsCloseWindow - boolean define if the window can be closed

getConstraint

public final int getConstraint()
Returns:
constraint applied between window and anchored component; possible values: TOP, BOTTOM, INSIDE_BOTTOM, INSIDE_TOP