Package xal.extension.application
Class XalInternalWindow
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JInternalFrame
xal.extension.application.XalInternalWindow
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
,WindowConstants
,XalDocumentView
,XalInternalDocumentListener
public abstract class XalInternalWindow
extends JInternalFrame
implements XalDocumentView, XalInternalDocumentListener
The base class for custom windows that are the main windows for documents.
Subclasses need to define their custom views.
- Author:
- t6p
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIcon
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected XalInternalDocument
The document corresponding to this main windowstatic final int
static final int
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
XalInternalWindow
(XalInternalDocument aDocument) Creates a new instance of WindowAdaptor -
Method Summary
Modifier and TypeMethodDescriptionvoid
Capture the window content as a PNG.void
Close this window.void
customizeCommands
(Commander commander) Override this method to register custom commands.int
displayConfirmDialog
(String title, String message) Display a confirmation dialog with a title and messagevoid
displayError
(Exception exception) Display an error dialog box with information about the exception and provide an audible alert.void
displayError
(String aTitle, String message) Display an error dialog box and provide an audible alert.void
displayError
(String aTitle, String prefix, Exception exception) Display an error dialog box with information about the exception and provide an audible alert.void
displayWarning
(Exception exception) Display a warning dialog box showing information about an exception that has been thrown and provide an audible alert.void
displayWarning
(String aTitle, String message) Display a warning dialog box and provide an audible alert.void
displayWarning
(String aTitle, String prefix, Exception exception) Display a warning dialog box with information about the exception and provide an audible alert.void
documentActivated
(XalInternalDocument document) Handle the document activated event.void
documentDeactivated
(XalInternalDocument document) Handle the document activated event.void
documentHasClosed
(XalInternalDocument document) Handle document closed event.void
documentWillClose
(XalInternalDocument document) Handle the event indicating that the document will close by closing the window in response.void
Dispose of custom window resources.void
Generate the title on the title bar to reflect the document state.Get the toolbar associated with this window.void
hasChangesChanged
(XalInternalDocument document, boolean newHasChangesStatus) Update the title on the title bar to reflect whether the document has changes that need saving.void
Iconify this window.Subclasses should override this method to provide a custom Commander.void
Make the frame and populate the menubar and toolbar.void
Register the event handlersfinal void
Dispose of this window and remove its association with the document.void
Show this window.final void
titleChanged
(XalInternalDocument document, String documentTitle) Handle the document event indicating that the title has changed.boolean
Query the user to see if it is okay to close the document given that unsaved changes exist.boolean
Subclasses may override this method to create a toolbar.Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface javax.swing.RootPaneContainer
getContentPane, getGlassPane, getLayeredPane, getRootPane, setContentPane, setGlassPane, setLayeredPane
Methods inherited from interface xal.extension.application.XalDocumentView
getJMenuBar, getLocation, getLocationOnScreen, isVisible, setJMenuBar, setLocation, setVisible
-
Field Details
-
YES_OPTION
public static final int YES_OPTION- See Also:
-
NO_OPTION
public static final int NO_OPTION- See Also:
-
document
The document corresponding to this main window
-
-
Constructor Details
-
XalInternalWindow
Creates a new instance of WindowAdaptor
-
-
Method Details
-
registerEvents
public void registerEvents()Register the event handlers -
makeFrame
public void makeFrame()Make the frame and populate the menubar and toolbar. -
makeCommander
Subclasses should override this method to provide a custom Commander. -
getToolBar
Get the toolbar associated with this window.- Specified by:
getToolBar
in interfaceXalDocumentView
- Returns:
- This window's toolbar or null if none was added.
-
customizeCommands
Override this method to register custom commands. -
closeWindow
public void closeWindow()Close this window. Check to see if the document has unsaved changes and if so warn the user and allow them to cancel the close operation. -
captureAsImage
public void captureAsImage()Capture the window content as a PNG. Present the user with a save dialog box so the image can be saved to a file.- Specified by:
captureAsImage
in interfaceXalDocumentView
-
showWindow
public void showWindow()Show this window. Make it visible (de-iconify if necessary) and bring it to the front.- Specified by:
showWindow
in interfaceXalDocumentView
-
hideWindow
public void hideWindow()Iconify this window.- Specified by:
hideWindow
in interfaceXalDocumentView
-
userPermitsCloseWithUnsavedChanges
public boolean userPermitsCloseWithUnsavedChanges()Query the user to see if it is okay to close the document given that unsaved changes exist.- Returns:
- If the user allows the document to be closed.
-
releaseWindow
public final void releaseWindow()Dispose of this window and remove its association with the document. -
freeCustomResources
public void freeCustomResources()Dispose of custom window resources. Subclasses should override this method to provide custom disposal of resources. The default implementation does nothing. -
generateWindowTitle
public void generateWindowTitle()Generate the title on the title bar to reflect the document state. The title displays the application name, the document title if any and an asterisk if the document has unsaved changes. -
titleChanged
Handle the document event indicating that the title has changed. Update the title on the title bar to reflect the new document title.- Specified by:
titleChanged
in interfaceXalInternalDocumentListener
- Parameters:
document
- The document initiating the title changed event.documentTitle
- The new document title.
-
hasChangesChanged
Update the title on the title bar to reflect whether the document has changes that need saving.- Specified by:
hasChangesChanged
in interfaceXalInternalDocumentListener
- Parameters:
document
- The document initiating the event.newHasChangesStatus
- The new status identifying whether the document has changes to be saved- See Also:
-
documentWillClose
Handle the event indicating that the document will close by closing the window in response.- Specified by:
documentWillClose
in interfaceXalInternalDocumentListener
- Parameters:
document
- The document that will close.
-
documentHasClosed
Handle document closed event. Does nothing.- Specified by:
documentHasClosed
in interfaceXalInternalDocumentListener
- Parameters:
document
- The document that has closed.
-
documentActivated
Handle the document activated event.- Specified by:
documentActivated
in interfaceXalInternalDocumentListener
- Parameters:
document
- the document that has been activated.
-
documentDeactivated
Handle the document activated event.- Specified by:
documentDeactivated
in interfaceXalInternalDocumentListener
- Parameters:
document
- the document that has been activated.
-
usesToolbar
public boolean usesToolbar()Subclasses may override this method to create a toolbar. -
displayConfirmDialog
Display a confirmation dialog with a title and message- Specified by:
displayConfirmDialog
in interfaceXalDocumentView
- Parameters:
title
- The title of the dialogmessage
- The message to display- Returns:
- YES_OPTION or NO_OPTION
-
displayWarning
Display a warning dialog box and provide an audible alert.- Specified by:
displayWarning
in interfaceXalDocumentView
- Parameters:
aTitle
- Title of the warning dialog box.message
- The warning message to appear in the warning dialog box.
-
displayWarning
Display a warning dialog box showing information about an exception that has been thrown and provide an audible alert.- Specified by:
displayWarning
in interfaceXalDocumentView
- Parameters:
exception
- The exception whose description is being displayed.
-
displayWarning
Display a warning dialog box with information about the exception and provide an audible alert. This method allows clarification about the consequences of the exception (e.g. "Save Failed:").- Specified by:
displayWarning
in interfaceXalDocumentView
- Parameters:
aTitle
- Title of the warning dialog box.prefix
- Text that should appear in the dialog box before the exception message.exception
- The exception about which the warning dialog is displayed.
-
displayError
Display an error dialog box and provide an audible alert.- Specified by:
displayError
in interfaceXalDocumentView
- Parameters:
aTitle
- Title of the warning dialog box.message
- The warning message to appear in the warning dialog box.
-
displayError
Display an error dialog box with information about the exception and provide an audible alert.- Specified by:
displayError
in interfaceXalDocumentView
- Parameters:
exception
- The exception about which the warning dialog is displayed.
-
displayError
Display an error dialog box with information about the exception and provide an audible alert. This method allows clarification about the consequences of the exception (e.g. "Save Failed:").- Specified by:
displayError
in interfaceXalDocumentView
- Parameters:
aTitle
- Title of the warning dialog box.prefix
- Text that should appear in the dialog box before the exception message.exception
- The exception about which the warning dialog is displayed.
-