com.imagero.gui.flowin
Class FloatingWindow

java.lang.Object
  extended bycom.imagero.gui.flowin.FloatingWindow
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
ToolBar

public abstract class FloatingWindow
extends java.lang.Object
implements java.io.Serializable

FloatingWindow - is not a Component, but controller class.

See Also:
Serialized Form

Nested Class Summary
protected  class FloatingWindow.DockedPaneComponentListener
           
 
Field Summary
protected  ContentPane contentPane
           
static int CURRENT
          orientation does not change after undocking
static int DIALOG_PANE
           
protected  java.awt.Container dialogPane
           
protected  TitleBar dialogPaneTitle
           
static int DOCKED
          FloatingWindow is docked to anchor
static int DRAGGING
          FloatingWindow is being dragged now
static int FRAME_PANE
           
protected  java.awt.Container framePane
           
protected  TitleBar framePaneTitle
           
static int FREE
          FloatingWindow is undocked
static int HORIZONTAL
          horizontal orientation
static int INTERN
          FloatingWindow is in JDesktopPane (JInternalFrame)
static int INTERNAL_FRAME_PANE
           
protected  java.awt.Container internalPane
           
protected  TitleBar internalPaneTitle
           
static int INVISIBLE
          FloatingWindow is not visible
static java.lang.String KEY_ANCHOR
           
static java.lang.String KEY_CONSTRAINTS
           
static java.lang.String KEY_HORIZONTAL
           
static java.lang.String KEY_REMOVE_ON_UNDOCK
           
static java.lang.String KEY_TITLE_BAR_PLACEMENT
           
protected  int posX
           
protected  int posY
           
static java.lang.String PROPERTY_NAME
           
 PropertyChangeManager propertyChangeManager
           
 MagnetManager snapManager
           
protected  java.lang.String title
           
protected  int titleSize
           
static int VERTICAL
          vertical orientation
static int WINDOW_PANE
           
protected  java.awt.Container windowPane
           
protected  TitleBar windowPaneTitle
           
 
Constructor Summary
FloatingWindow(java.awt.Frame owner, AnchorOptions[] tbcs, boolean useJ)
          create new FloatingWindow
FloatingWindow(java.awt.Frame owner, AnchorOptions[] tbcs, MagnetManager snapManager, boolean useJ)
          create new FloatingWindow
 
Method Summary
 void addAnchor(AnchorOptions tbc)
          add parent container where FloatingWindow should float to.
 void addDesktop(javax.swing.JDesktopPane desktop, javax.swing.JInternalFrame frame)
           
 void addFloatingWindowListener(FloatingWindowListener l)
           
protected  void checkPosition()
          check position of FloatingWindow (conditionally return to screen)
protected abstract  ContentPane createContentPane()
          create ContentPane for FloatingWindow
protected  void createDialogPane()
           
protected  void createDialogPaneTitle()
           
protected  void createFramePane()
           
protected  void createFramePaneTitle()
           
protected  void createInternalPane()
           
protected  void createInternalPaneTitle()
           
protected  FloatingWindowUI createUI(FloatingWindow fw)
          create new FloatingWindowUI
protected  void createWindowPane()
           
protected  void createWindowPaneTitle()
           
 void dispose()
          Note that after disposing FloatingWindow cannot be "reconnected"
protected  void finalize()
          Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
 ActionManager getActionManager()
          hear to "float to" events
 AnchorOptions getAnchor(java.awt.Container cont)
           
 ComponentMagnetManager getComponentSnapManager()
           
 ContentPane getContentPane()
          get current ContentPane
 java.awt.Dialog getDialog()
           
 java.awt.Container getDialogPane()
           
 int getDockDelay()
           
 int getDragOverAction()
           
 java.awt.Container getFramePane()
           
 java.awt.Frame getOwner()
          get owner Frame
 javax.swing.JPopupMenu getPopup()
          get custom popup menu (if set)
 java.lang.String getTitle()
           
 java.lang.Object getTitleBarPlacement()
          title bar placement
 FloatingWindowUI getUI()
           
 int getUndockedOrientation()
          Get orientation for undocked FloatingWindow.
 java.lang.String getUndockedTitleBarPacement()
          get title bar placement for undocked FloatingWindow
 java.awt.Container getWindowPane()
           
 boolean isActive()
           
 boolean isDocked()
           
 boolean isDragging()
           
 boolean isFollowOwner()
           
 boolean isFree()
           
 boolean isIntern()
           
 boolean isMagnetic()
           
 boolean isPalette()
           
 boolean isResizeable()
           
 boolean isShowPopupMenu()
          determine if popup menu can be shown
 boolean isStaysOnScreen()
          true if FloatingWindow is restricted to screen
 boolean isVisible()
           
 void packDialog()
          pack Dialog
 void removeAnchor(java.awt.Container cont)
           
 void removeDesktop(javax.swing.JDesktopPane desktop)
           
 void removeFloatingWindowListener(FloatingWindowListener l)
           
protected  java.awt.Point restrictPositionToScreen(java.awt.Point p)
          compute new location for FloatingWindow's Dialog so that Dialog is entirely on screen
 void saveDialogPosition()
          save position of Dialog
 void setActive(boolean active)
           
 void setAnchor(java.awt.Container cont)
          set current anchor container
 void setAnchor(java.awt.Container cont, java.lang.Object constraints)
           
 void setComponentSnapManager(ComponentMagnetManager componentSnapManager)
           
 void setContentPane(ContentPane contentPane)
          set ContentPane
 void setDesktop(javax.swing.JDesktopPane desktop)
           
 void setDialog()
           
 void setDockDelay(int dockDelay)
           
 void setDragOverAction(int dragOverAction)
           
 void setFollowOwner(boolean follow)
           
 void setMagnetic(boolean magnetic)
           
 void setOwner(java.awt.Frame owner)
          set owner frame (used to create of JWindow and JDialog).
 void setPalette(boolean palette)
           
 void setPopup(javax.swing.JPopupMenu popup)
          set custom popup menu
 void setResizeable(boolean resizeable)
           
 void setShowPopupMenu(boolean showPopupMenu)
           
 void setStaysOnScreen(boolean staysOnScreen)
           
 void setTitle(java.lang.String title)
           
 void setTitle(java.lang.String s, int id)
           
protected  void setTitleBarPlacement(java.lang.String titleBarPlacement)
          set title bar placement
 void setUndockedOrientation(int undockedOrientation)
          Set orientation for undocked window
 void setUndockedTitleBarPacement(java.lang.String undockedTitleBarPacement)
          set title bar placement for undocked FloatingWindow
 void setVisible(boolean visible)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

contentPane

protected ContentPane contentPane

CURRENT

public static final int CURRENT
orientation does not change after undocking

See Also:
Constant Field Values

DIALOG_PANE

public static final int DIALOG_PANE
See Also:
Constant Field Values

dialogPane

protected java.awt.Container dialogPane

dialogPaneTitle

protected TitleBar dialogPaneTitle

DOCKED

public static final int DOCKED
FloatingWindow is docked to anchor

See Also:
Constant Field Values

DRAGGING

public static final int DRAGGING
FloatingWindow is being dragged now

See Also:
Constant Field Values

FRAME_PANE

public static final int FRAME_PANE
See Also:
Constant Field Values

framePane

protected java.awt.Container framePane

framePaneTitle

protected TitleBar framePaneTitle

FREE

public static final int FREE
FloatingWindow is undocked

See Also:
Constant Field Values

HORIZONTAL

public static final int HORIZONTAL
horizontal orientation

See Also:
Constant Field Values

INTERN

public static final int INTERN
FloatingWindow is in JDesktopPane (JInternalFrame)

See Also:
Constant Field Values

INTERNAL_FRAME_PANE

public static final int INTERNAL_FRAME_PANE
See Also:
Constant Field Values

internalPane

protected java.awt.Container internalPane

internalPaneTitle

protected TitleBar internalPaneTitle

INVISIBLE

public static final int INVISIBLE
FloatingWindow is not visible

See Also:
Constant Field Values

KEY_ANCHOR

public static final java.lang.String KEY_ANCHOR
See Also:
Constant Field Values

KEY_CONSTRAINTS

public static final java.lang.String KEY_CONSTRAINTS
See Also:
Constant Field Values

KEY_HORIZONTAL

public static final java.lang.String KEY_HORIZONTAL
See Also:
Constant Field Values

KEY_REMOVE_ON_UNDOCK

public static final java.lang.String KEY_REMOVE_ON_UNDOCK
See Also:
Constant Field Values

KEY_TITLE_BAR_PLACEMENT

public static final java.lang.String KEY_TITLE_BAR_PLACEMENT
See Also:
Constant Field Values

posX

protected int posX

posY

protected int posY

PROPERTY_NAME

public static final java.lang.String PROPERTY_NAME
See Also:
Constant Field Values

propertyChangeManager

public final PropertyChangeManager propertyChangeManager

snapManager

public MagnetManager snapManager

title

protected java.lang.String title

titleSize

protected int titleSize

VERTICAL

public static final int VERTICAL
vertical orientation

See Also:
Constant Field Values

WINDOW_PANE

public static final int WINDOW_PANE
See Also:
Constant Field Values

windowPane

protected java.awt.Container windowPane

windowPaneTitle

protected TitleBar windowPaneTitle
Constructor Detail

FloatingWindow

public FloatingWindow(java.awt.Frame owner,
                      AnchorOptions[] tbcs,
                      boolean useJ)
create new FloatingWindow

Parameters:
owner - owner Frame for FloatingWindow
tbcs - AnchorOptions
useJ - if true then FloatingWindow use JWindow/JDialog instead of Window/Dialog
See Also:
AnchorOptions, Window, JWindow, Dialog, JDialog

FloatingWindow

public FloatingWindow(java.awt.Frame owner,
                      AnchorOptions[] tbcs,
                      MagnetManager snapManager,
                      boolean useJ)
create new FloatingWindow

Parameters:
owner - owner Frame for FloatingWindow
tbcs - AnchorOptions
snapManager - - makes FloatingWindow "magnetic" - don't use with tool bars
useJ - if true then FloatingWindow use JWindow/JDialog instead of Window/Dialog
See Also:
AnchorOptions, MagnetManager, Window, JWindow, Dialog, JDialog
Method Detail

addAnchor

public void addAnchor(AnchorOptions tbc)
add parent container where FloatingWindow should float to.
owner should be ancestor of anchor


addDesktop

public void addDesktop(javax.swing.JDesktopPane desktop,
                       javax.swing.JInternalFrame frame)

addFloatingWindowListener

public void addFloatingWindowListener(FloatingWindowListener l)

checkPosition

protected void checkPosition()
check position of FloatingWindow (conditionally return to screen)


createContentPane

protected abstract ContentPane createContentPane()
create ContentPane for FloatingWindow

Returns:
ContentPane

createDialogPane

protected void createDialogPane()

createDialogPaneTitle

protected void createDialogPaneTitle()

createFramePane

protected void createFramePane()

createFramePaneTitle

protected void createFramePaneTitle()

createInternalPane

protected void createInternalPane()

createInternalPaneTitle

protected void createInternalPaneTitle()

createUI

protected FloatingWindowUI createUI(FloatingWindow fw)
create new FloatingWindowUI

Parameters:
fw - FloatingWindow
Returns:
FloatingWindowUI

createWindowPane

protected void createWindowPane()

createWindowPaneTitle

protected void createWindowPaneTitle()

dispose

public void dispose()
Note that after disposing FloatingWindow cannot be "reconnected"


finalize

protected void finalize()
                 throws java.lang.Throwable
Description copied from class: java.lang.Object
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. A subclass overrides the finalize method to dispose of system resources or to perform other cleanup.

The general contract of finalize is that it is invoked if and when the JavaTM virtual machine has determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, except as a result of an action taken by the finalization of some other object or class which is ready to be finalized. The finalize method may take any action, including making this object available again to other threads; the usual purpose of finalize, however, is to perform cleanup actions before the object is irrevocably discarded. For example, the finalize method for an object that represents an input/output connection might perform explicit I/O transactions to break the connection before the object is permanently discarded.

The finalize method of class Object performs no special action; it simply returns normally. Subclasses of Object may override this definition.

The Java programming language does not guarantee which thread will invoke the finalize method for any given object. It is guaranteed, however, that the thread that invokes finalize will not be holding any user-visible synchronization locks when finalize is invoked. If an uncaught exception is thrown by the finalize method, the exception is ignored and finalization of that object terminates.

After the finalize method has been invoked for an object, no further action is taken until the Java virtual machine has again determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, including possible actions by other objects or classes which are ready to be finalized, at which point the object may be discarded.

The finalize method is never invoked more than once by a Java virtual machine for any given object.

Any exception thrown by the finalize method causes the finalization of this object to be halted, but is otherwise ignored.

Throws:
java.lang.Throwable - the Exception raised by this method

getActionManager

public ActionManager getActionManager()
hear to "float to" events

Returns:
ActionManager
See Also:
ActionManager

getAnchor

public AnchorOptions getAnchor(java.awt.Container cont)

getComponentSnapManager

public ComponentMagnetManager getComponentSnapManager()

getContentPane

public ContentPane getContentPane()
get current ContentPane

Returns:
ContentPane

getDialog

public java.awt.Dialog getDialog()

getDialogPane

public java.awt.Container getDialogPane()

getDockDelay

public int getDockDelay()

getDragOverAction

public int getDragOverAction()

getFramePane

public java.awt.Container getFramePane()

getOwner

public java.awt.Frame getOwner()
get owner Frame

Returns:
Frame

getPopup

public javax.swing.JPopupMenu getPopup()
get custom popup menu (if set)

Returns:
JPopupMenu or null

getTitle

public java.lang.String getTitle()

getTitleBarPlacement

public java.lang.Object getTitleBarPlacement()
title bar placement

Returns:
String
See Also:
BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST

getUI

public FloatingWindowUI getUI()

getUndockedOrientation

public int getUndockedOrientation()
Get orientation for undocked FloatingWindow.

Returns:
orientation for undocked FloatingWindow
See Also:
HORIZONTAL, VERTICAL, CURRENT

getUndockedTitleBarPacement

public java.lang.String getUndockedTitleBarPacement()
get title bar placement for undocked FloatingWindow

Returns:
String
See Also:
BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST

getWindowPane

public java.awt.Container getWindowPane()

isActive

public boolean isActive()

isDocked

public boolean isDocked()

isDragging

public boolean isDragging()

isFollowOwner

public boolean isFollowOwner()

isFree

public boolean isFree()

isIntern

public boolean isIntern()

isMagnetic

public boolean isMagnetic()

isPalette

public boolean isPalette()

isResizeable

public boolean isResizeable()

isShowPopupMenu

public boolean isShowPopupMenu()
determine if popup menu can be shown

Returns:
true if popup menu can be shown

isStaysOnScreen

public boolean isStaysOnScreen()
true if FloatingWindow is restricted to screen

Returns:
true if FloatingWindow is restricted to screen

isVisible

public boolean isVisible()

packDialog

public void packDialog()
pack Dialog


removeAnchor

public void removeAnchor(java.awt.Container cont)

removeDesktop

public void removeDesktop(javax.swing.JDesktopPane desktop)

removeFloatingWindowListener

public void removeFloatingWindowListener(FloatingWindowListener l)

restrictPositionToScreen

protected java.awt.Point restrictPositionToScreen(java.awt.Point p)
compute new location for FloatingWindow's Dialog so that Dialog is entirely on screen

Parameters:
p - current Dialog location
Returns:
new location for Dialog

saveDialogPosition

public void saveDialogPosition()
save position of Dialog


setActive

public void setActive(boolean active)

setAnchor

public void setAnchor(java.awt.Container cont)
set current anchor container

Parameters:
cont - parent
See Also:
addAnchor(com.imagero.gui.flowin.AnchorOptions)

setAnchor

public void setAnchor(java.awt.Container cont,
                      java.lang.Object constraints)

setComponentSnapManager

public void setComponentSnapManager(ComponentMagnetManager componentSnapManager)

setContentPane

public void setContentPane(ContentPane contentPane)
set ContentPane

Parameters:
contentPane - new ContentPane

setDesktop

public void setDesktop(javax.swing.JDesktopPane desktop)

setDialog

public void setDialog()

setDockDelay

public void setDockDelay(int dockDelay)

setDragOverAction

public void setDragOverAction(int dragOverAction)

setFollowOwner

public void setFollowOwner(boolean follow)

setMagnetic

public void setMagnetic(boolean magnetic)

setOwner

public void setOwner(java.awt.Frame owner)
set owner frame (used to create of JWindow and JDialog).
setAnchor must be called immediately after setOwner

Parameters:
owner - new owner frame

setPalette

public void setPalette(boolean palette)

setPopup

public void setPopup(javax.swing.JPopupMenu popup)
set custom popup menu

Parameters:
popup - new popup menu

setResizeable

public void setResizeable(boolean resizeable)

setShowPopupMenu

public void setShowPopupMenu(boolean showPopupMenu)

setStaysOnScreen

public void setStaysOnScreen(boolean staysOnScreen)
Parameters:
staysOnScreen - if true then FloatingWindow can't leave screen

setTitle

public void setTitle(java.lang.String title)

setTitle

public void setTitle(java.lang.String s,
                     int id)

setTitleBarPlacement

protected void setTitleBarPlacement(java.lang.String titleBarPlacement)
set title bar placement

Parameters:
titleBarPlacement - String
See Also:
BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST

setUndockedOrientation

public void setUndockedOrientation(int undockedOrientation)
Set orientation for undocked window

Parameters:
undockedOrientation -
See Also:
HORIZONTAL, VERTICAL, CURRENT

setUndockedTitleBarPacement

public void setUndockedTitleBarPacement(java.lang.String undockedTitleBarPacement)
set title bar placement for undocked FloatingWindow

Parameters:
undockedTitleBarPacement -
See Also:
BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST

setVisible

public void setVisible(boolean visible)