net.xoetrope.swing
Class XDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by net.xoetrope.xui.XPage
              extended by net.xoetrope.swing.XDialog
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, DialogSupport, XExceptionHandler, PageSupport, XContentPane, XPage.IXDialog
Direct Known Subclasses:
XLanguageChooserDialog, XMessageBox

public class XDialog
extends XPage
implements XContentPane, XPage.IXDialog, DialogSupport

Provides support for Popups. This class extends XPage giving a blank panel on which you can create custom dialogs. The dialog can be shown as a modal dialog which will block execution of the client code till the dialog is dismissed.

The XDialog is a form of page, however it contains a panel to which all the children are added. The panel is setup with a null layout as is normal and the pack method should be used to calculate the size of the dialog.

The XDialog is then added to a border layout contained in either a window or a dialog. This parent also contains the window decorations

.

Copyright: Copyright (c) Xoetrope Ltd., 1998-2003
License: see license.txt

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class net.xoetrope.xui.XPage
XPage.IXDialog
 
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
protected  boolean bIsModal
          A flag indicating whether or not the dialog is modal
static int BUTTON_SIZE
           
static int CANCEL_CLICKED
          A state flag indicating that the CANCEL button was clicked
static int CLOSE_CLICKED
          A state flag indicating that the CLOSE button was clicked
protected  int closeButtonID
          Was the close button clicked
protected  XPanel contentPanel
          The 'content' panel that holds the dialog's XPage
static int DEFAULT_PADDING
          The default dialog padding. the padding indents the content page within the dialog frame
protected  java.awt.Component focusComponent
          The component that had focus prior to display of the dialog.
protected static int lastReturnValue
          The last return value
static int NO_CLICKED
          A state flag indicating that the NO button was clicked
static int NOTHING_CLICKED_YET
          A state flag indicating that no button clicked so far
static int OK_CLICKED
          A state flag indicating that the OK button was clicked
protected  int padding
          The current dialog padding
 java.lang.Object returnObject
          The return value, a user defined value
protected  int returnValue
          The return value, indicating which button was clicked
protected  boolean saveOnClose
          A flag indicating whether or not the dialog automatically saves its data when it is closed
static boolean trueField
          A boolean value used for checking a 'true' value
 
Fields inherited from class net.xoetrope.xui.XPage
ACTIVATED, adapter, ANNOTATEDIMAGE, antiAlias, BORDER_LAYOUT, BOX_LAYOUT, BUTTON, CARD_LAYOUT, CHECK, COLUMN_LAYOUT, COMBO, componentFactory, CREATED, DEACTIVATED, DISCARDED, DISPLAYED, EDIT, FLOW_LAYOUT, GRID_LAYOUT, GRIDBAG_LAYOUT, GROUP, GUIDE_LAYOUT, HOTSPOTIMAGE, IMAGE, IMAGEMAP, LABEL, LAYER_LAYOUT, LIST, LOADED, MENU, MENUBAR, MENUITEM, METACONTENT, NULL_LAYOUT, pageHelper, pageMgr, PANEL, PASSWORD, project, RADIO, rootModel, SCALE_LAYOUT, SCROLLABLEMETACONTENT, SCROLLPANE, SPLITPANE, SPRING_LAYOUT, TABLE, TABPANEL, TEXTAREA, UNKNOWN, UNKNOWN_PAGE_STATE, WMF, XUI_AWT_PACKAGE, XUI_HTML_PACKAGE, XUI_SWING_PACKAGE, XUI_SWT_PACKAGE
 
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
XDialog()
          Creates a new dialog and adds a content panel to the page.
XDialog(boolean modal, int pad)
          Creates a new dialog and adds a content panel to the page.
 
Method Summary
 void cancelDlg()
          Dismiss the dialog and discard the data.
 void closeDlg()
          Close the dialog and restore focus
 java.lang.Object getContentPane()
          The 'content' pane to which the pages are added
protected  java.awt.Component getFocusComponent(java.awt.Container cont)
          Gets the component that owns the focus.
static int getLastReturnValue()
          Get the return value of the most recently dismissed dialog
 java.awt.Dimension getMinimumSize()
          Get the minimum layout size
 java.awt.Dimension getPreferredSize()
          Get the preferred layout size
 java.lang.Object getReturnObject()
          Provides access to an object representing the state of the dialog when it was closed.
 void pack()
          Size the dialog to hold the largest components (i.e. children of the content panel)
 void pageCreated()
          Overload the XPage XCreated event and set the caption of the dialog from the title attribute.
 void setBackground(java.awt.Color c)
          Set the background color
 void setCaption(java.lang.String c)
          Set the dialog caption/title
 void setFont(java.awt.Font f)
           
 void setForeground(java.awt.Color c)
           
 void setHideFrame(boolean hide)
          Set flag to indicate whether to paint the border and add the title panel
 void setLayout(java.awt.LayoutManager lm)
          Set the layout manager for the content pane
 void setLocation(int x, int y)
          Set the location of the dialog window
 void setLocation(java.awt.Point location)
          Set the location of the dialog window
 void setModal(boolean modal)
          Set the dialog to be modal or non-modal
 void setResizable(boolean state)
          Set the resizable property.
 void setSaveOnClose(boolean save)
          Set the save on close option
 void setSize(int width, int height)
          Set the size of the dialog and centres it within the parent.
 void setUseNativeHeaders(boolean bh)
          Set the dialog to use the native platform decorations (title bar and borders).
 int showDialog(java.lang.Object owner)
          Shows the dialog.
 void showDialog(java.lang.Object cbParent, java.lang.String cb)
          Shows the dialog.
 int showDialog(java.lang.Object owner, java.lang.String title, java.awt.Point location)
          Shows the dialog.
 void showModalWindow(java.awt.Component contents)
          Show the dialog ina modal way
 boolean wasMouseClicked()
          A utility method used to determine if the last event corrseponds to a mouse click.
 
Methods inherited from class net.xoetrope.xui.XPage
accumulateMessages, addBinding, addHandler, addHandler, addListener, addNotify, addValidation, addValidation, addValidation, checkValidations, clearValidations, evaluateAttribute, evaluatePath, findComponent, findComponent, getAttribute, getAttribute, getAttributes, getBinding, getBinding, getBindings, getComponentFactory, getComponentName, getCurrentEvent, getDataBindingContext, getEventAttribute, getEventHandler, getExtension, getGraphics, getOwner, getPageName, getPageSize, getProject, getStatus, getValidationHandler, handleEventHandlerException, handleException, isFocusChangeSuppressed, layout, pageActivated, pageDeactivated, paint, paintSuper, removeBinding, saveBoundComponentValues, setAttribute, setClearPage, setComponentFactory, setEventHandler, setExceptionHandler, setExtension, setLayout, setPageName, setStatus, setValidationFactory, showComponents, showHandCursor, showMessage, showMessage, showPage, showPage, showPrevious, stripAttributeValues, translate, update, updateBinding, updateBindings, updateBoundComponentValues, updateChildLayouts, validationHandler, wasMouseDoubleClicked, wasMouseRightClicked
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.xoetrope.xui.PageSupport
accumulateMessages, addBinding, addHandler, addHandler, addListener, addValidation, addValidation, addValidation, checkValidations, clearValidations, doLayout, evaluateAttribute, evaluatePath, findComponent, findComponent, getAttribute, getAttribute, getBinding, getBinding, getBindings, getComponentFactory, getComponentName, getCurrentEvent, getEventAttribute, getEventHandler, getExtension, getName, getOwner, getPageSize, getProject, getStatus, getValidationHandler, handleEventHandlerException, handleException, isFocusChangeSuppressed, pageActivated, pageDeactivated, removeBinding, saveBoundComponentValues, setAttribute, setClearPage, setComponentFactory, setEventHandler, setExceptionHandler, setExtension, setLayout, setName, setStatus, setValidationFactory, setVisible, showComponents, showHandCursor, showMessage, showMessage, stripAttributeValues, translate, updateBinding, updateBindings, updateBoundComponentValues, validate, validationHandler, wasMouseDoubleClicked, wasMouseRightClicked
 

Field Detail

BUTTON_SIZE

public static final int BUTTON_SIZE
See Also:
Constant Field Values

trueField

public static final boolean trueField
A boolean value used for checking a 'true' value

See Also:
Constant Field Values

DEFAULT_PADDING

public static final int DEFAULT_PADDING
The default dialog padding. the padding indents the content page within the dialog frame

See Also:
Constant Field Values

NOTHING_CLICKED_YET

public static final int NOTHING_CLICKED_YET
A state flag indicating that no button clicked so far

See Also:
Constant Field Values

OK_CLICKED

public static final int OK_CLICKED
A state flag indicating that the OK button was clicked

See Also:
Constant Field Values

CANCEL_CLICKED

public static final int CANCEL_CLICKED
A state flag indicating that the CANCEL button was clicked

See Also:
Constant Field Values

CLOSE_CLICKED

public static final int CLOSE_CLICKED
A state flag indicating that the CLOSE button was clicked

See Also:
Constant Field Values

NO_CLICKED

public static final int NO_CLICKED
A state flag indicating that the NO button was clicked

See Also:
Constant Field Values

bIsModal

protected boolean bIsModal
A flag indicating whether or not the dialog is modal


saveOnClose

protected boolean saveOnClose
A flag indicating whether or not the dialog automatically saves its data when it is closed


returnValue

protected int returnValue
The return value, indicating which button was clicked


lastReturnValue

protected static int lastReturnValue
The last return value


returnObject

public java.lang.Object returnObject
The return value, a user defined value


contentPanel

protected XPanel contentPanel
The 'content' panel that holds the dialog's XPage


padding

protected int padding
The current dialog padding


focusComponent

protected java.awt.Component focusComponent
The component that had focus prior to display of the dialog. The dialog attempts to restore focus to this component when dismissed


closeButtonID

protected int closeButtonID
Was the close button clicked

Constructor Detail

XDialog

public XDialog()
Creates a new dialog and adds a content panel to the page. A handler is also set so that the dialog will be dismissed when the escape key is pressed.


XDialog

public XDialog(boolean modal,
               int pad)
Creates a new dialog and adds a content panel to the page. A handler is also set so that the dialog will be dismissed when the escape key is pressed.

Parameters:
modal - true for a modal dialog
pad - the amount of padding in pixels
Method Detail

pageCreated

public void pageCreated()
Overload the XPage XCreated event and set the caption of the dialog from the title attribute. Call super if overloaded.

Specified by:
pageCreated in interface PageSupport
Overrides:
pageCreated in class XPage

setLayout

public void setLayout(java.awt.LayoutManager lm)
Set the layout manager for the content pane

Overrides:
setLayout in class java.awt.Container
Parameters:
lm - the layout manager

setBackground

public void setBackground(java.awt.Color c)
Description copied from interface: PageSupport
Set the background color

Specified by:
setBackground in interface PageSupport
Overrides:
setBackground in class java.awt.Component
Parameters:
c - The color

setForeground

public void setForeground(java.awt.Color c)
Overrides:
setForeground in class java.awt.Component

setHideFrame

public void setHideFrame(boolean hide)
Set flag to indicate whether to paint the border and add the title panel

Parameters:
hide - if set to true don't add the title panel and don't paint the border

setFont

public void setFont(java.awt.Font f)
Overrides:
setFont in class java.awt.Container

getLastReturnValue

public static int getLastReturnValue()
Get the return value of the most recently dismissed dialog

Returns:
a value indicating the status or the button that was used to dismiss the dialog

getContentPane

public java.lang.Object getContentPane()
The 'content' pane to which the pages are added

Specified by:
getContentPane in interface XContentPane
Returns:
the content pane

pack

public void pack()
Size the dialog to hold the largest components (i.e. children of the content panel)

Specified by:
pack in interface DialogSupport

setCaption

public void setCaption(java.lang.String c)
Set the dialog caption/title

Specified by:
setCaption in interface DialogSupport
Parameters:
c - the new caption

getMinimumSize

public java.awt.Dimension getMinimumSize()
Get the minimum layout size

Overrides:
getMinimumSize in class java.awt.Container
Returns:
the min size

getPreferredSize

public java.awt.Dimension getPreferredSize()
Get the preferred layout size

Overrides:
getPreferredSize in class java.awt.Container
Returns:
the preferred size

setUseNativeHeaders

public void setUseNativeHeaders(boolean bh)
Set the dialog to use the native platform decorations (title bar and borders).

Parameters:
bh - true to use native decorations.

setModal

public void setModal(boolean modal)
Set the dialog to be modal or non-modal

Parameters:
modal - true for a modal dialog

setSaveOnClose

public void setSaveOnClose(boolean save)
Set the save on close option

Parameters:
save - true to save the data when the dialog is closed or dismissed, false to discard the data.

setResizable

public void setResizable(boolean state)
Set the resizable property. The resizing of dialogs only works if native headers are used

Parameters:
state - true for a resizable dialog
Since:
2.0.7
See Also:
setUseNativeHeaders

cancelDlg

public void cancelDlg()
Dismiss the dialog and discard the data.


closeDlg

public void closeDlg()
Close the dialog and restore focus


showDialog

public int showDialog(java.lang.Object owner,
                      java.lang.String title,
                      java.awt.Point location)
Shows the dialog. This method calls showDialog( this ) after setting the title, location and after setting the dialog to a size just large enough to display all its content

Parameters:
owner - The container to which the dialog is added.
title - The dialog title/caption
location - The location on screen to show the dialog
Returns:
the returnValue

showDialog

public void showDialog(java.lang.Object cbParent,
                       java.lang.String cb)
Shows the dialog. For modal dialog the showDialog method blocks till the dialog is dismissed or hidden. This method provides an alternative that does not block execution of the calling thread but instead calls back a method specified as an argument once the dialog has been dismissed. In some VMs such as the Microsoft VM it is not possible to gain access to the EventQueue so as to implement blocking unless the code is loaded from a signed CAB file. If this situtaion occurs an exception is thrown and a non-blocking strategy is used. When the dialog is shown it will attempt to gain focus and upon dismissal focus will be returned to the component that had focus prior to display of the dialog. A special case occurs when the dialog is displayed in response to a focus event handler. The focus event will be processed as normal, allowing transfer of focus but focus handler invocations related to the showing and hiding of the dialog will be suppressed.

Parameters:
cbParent - The parent/owner for purposes of a callback.
cb - The name of a callback method in the parent (or null) to be invoked when the dialog is dismissed.

showDialog

public int showDialog(java.lang.Object owner)
Shows the dialog. For modal dialog this method blocks till the dialog is dismissed or hidden. A subclass can set the returnValue member to indicate the status of the dialog upon dismissal. When the dialog is shown it will attempt to gain focus and upon dismissal focus will be returned to the component that had focus prior to display of the dialog. A special case occurs when the dialog is displayed in response to a focus event handler. The focus event will be processed as normal, allowing transfer of focus but focus handler invocations related to the showing and hiding of the dialog will be suppressed.

Specified by:
showDialog in interface DialogSupport
Parameters:
owner - The container to which the dialog is added.
Returns:
the returnValue

setSize

public void setSize(int width,
                    int height)
Set the size of the dialog and centres it within the parent.

Specified by:
setSize in interface PageSupport
Overrides:
setSize in class java.awt.Component
Parameters:
width - The new width
height - The new height

setLocation

public void setLocation(java.awt.Point location)
Set the location of the dialog window

Overrides:
setLocation in class java.awt.Component
Parameters:
location - the point on screen at which the dialog is to be shown.

setLocation

public void setLocation(int x,
                        int y)
Set the location of the dialog window

Specified by:
setLocation in interface PageSupport
Overrides:
setLocation in class java.awt.Component
Parameters:
x - the x coordinate, or -1 for ignore/default location, -2 for centered on screen
y - the y coordinate

getFocusComponent

protected java.awt.Component getFocusComponent(java.awt.Container cont)
Gets the component that owns the focus.

Parameters:
cont - the container to be checked for focus.
Returns:
the focus component or null if the container does not have a component that owns the input focus.

getReturnObject

public java.lang.Object getReturnObject()
Provides access to an object representing the state of the dialog when it was closed. It is the responsibility of the subclass to set this value when it closes.

Returns:
the return object

wasMouseClicked

public boolean wasMouseClicked()
A utility method used to determine if the last event corrseponds to a mouse click. The notion of a click is extended by assuming the a mouse press and release within a single component constitutes a click even if not at the same coordinate. A MouseEvent.MOUSE_CLICKED is only triggered when the press and release are at the same location and this is often inadequate for end-user interaction.

Specified by:
wasMouseClicked in interface PageSupport
Overrides:
wasMouseClicked in class XPage
Returns:
true if the mouse was clicked

showModalWindow

public void showModalWindow(java.awt.Component contents)
Show the dialog ina modal way

Parameters:
contents - The dialog's content