net.xoetrope.awt
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.awt.XDialog
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, XExceptionHandler, PageSupport, XContentPane, XPage.IXDialog
Direct Known Subclasses:
XMessageBox

public class XDialog
extends XPage

    
implements XContentPane, XPage.IXDialog

    

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.

This dialog differs from the built-in Dialog class as it displays an embedded Xpage instance. In this way the dialog content can be created like any other XUI page

Copyright (c) Xoetrope Ltd., 1998-2004
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
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.
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, COMBO, componentFactory, CREATED, DEACTIVATED, DISCARDED, EDIT, FLOW_LAYOUT, GRID_LAYOUT, GRIDBAG_LAYOUT, GROUP, GUIDE_LAYOUT, HOTSPOTIMAGE, IMAGE, IMAGEMAP, LABEL, 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()
          Get the 'content' pane
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 minimumsize for the dialog
 java.awt.Dimension getPreferredSize()
          Set the preferred size for the component
 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.
 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 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).
 void showDialog(java.awt.Component callBackParent, java.lang.String callBackMethod)
          Shows the dialog.
 int showDialog(java.awt.Container owner)
          Shows the dialog.
 int showDialog(java.awt.Container owner, java.lang.String title, java.awt.Point location)
          Shows the dialog.
 void showModalWindow(java.awt.Component contents)
          Shows the dialog as a modal window
 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, addActionHandler, addBinding, addFocusHandler, addHandler, addHandler, addItemHandler, addKeyHandler, addListener, addMenuHandler, addMouseHandler, addMouseMotionHandler, addNotify, addTextHandler, addValidation, addValidation, addValidation, checkValidations, clearValidations, evaluateAttribute, evaluatePath, findComponent, findComponent, getAttribute, getAttribute, getAttributes, getBinding, getBinding, getBindings, getComponentFactory, getComponentName, getCurrentEvent, getEventAttribute, getEventHandler, getGraphics, getOwner, getPageName, getPageSize, getStatus, getValidationHandler, handleEventHandlerException, handleException, isFocusChangeSuppressed, layout, pageActivated, pageDeactivated, paint, paintSuper, removeBinding, saveBoundComponentValues, setAttribute, setClearPage, setComponentFactory, setEventHandler, setExceptionHandler, setLayout, setPageName, setStatus, setValidationFactory, 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, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, 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, setLocation, 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
doLayout, getName, setLocation, setName, setVisible, validate
 

Field Detail

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

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 with which to surround the page within the dialog frame
Method Detail

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

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()
Get the 'content' pane

Specified by:
getContentPane in interface XContentPane
Returns:
the container that should hold the dialog's XPage instance

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

pack

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


setCaption

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

Parameters:
c - the new caption of dialog title

getMinimumSize

public java.awt.Dimension getMinimumSize()
Get the minimumsize for the dialog

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

getPreferredSize

public java.awt.Dimension getPreferredSize()
Set the preferred size for the component

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.awt.Container 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.awt.Component callBackParent,
                       java.lang.String callBackMethod)
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:
callBackParent - The parent/owner for purposes of a callback.
callBackMethod - The name of a callback method in the parent (or null) to be invoked when the dialog is dismissed.

showDialog

public int showDialog(java.awt.Container 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.

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.

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)
Shows the dialog as a modal window

Parameters:
contents - the contents of the new dialog