|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.salespointframework.desktop.multiwindow.JTabDisplay
public class JTabDisplay
A JPanel that can be used as tab and display Form- and MenuSheets. It needs a JTabbedPane
to be
displayed upon.
The panel will display one FormSheet
. Closing the frame using the systems
menu or any other OS dependent gesture will result in a call to FormSheet.cancel()
on the FormSheet.
This panel cannot display MenuSheets. Instead MenuSheets will be merged into the ShopFrame
.
Attention: This class is not meant to be serialized. See load()
and store()
for details.
Nested Class Summary | |
---|---|
private static class |
JTabDisplay.JTDFormSheetContainer
|
Nested classes/interfaces inherited from class javax.swing.JPanel |
---|
javax.swing.JPanel.AccessibleJPanel |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
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 | |
---|---|
private boolean |
m_fHadFormSheet
If true, a Formsheet has been displayed on this display at least once. |
private FormSheet |
m_fsCurrent
The current FormSheet. |
private javax.swing.JComponent |
m_jcmpComponent
The currently displaying component. |
private javax.swing.JPanel |
m_jpButtonBar
The currently displaying button bar panel. |
private JTabDisplay.JTDFormSheetContainer |
m_jtdfscContainer
|
private javax.swing.JTabbedPane |
m_jtpTabbedPane
The tabbed pane on which this tab is displayed. |
protected ListenerHelper |
m_lhListeners
The list of listeners. |
private MenuSheet |
m_msCurrent
The current MenuSheet. |
private java.lang.Object |
m_oWaiter
Object used to block setFormSheet(org.salespointframework.core.FormSheet) when the FormSheet demands it. |
private java.lang.String |
m_sPrimaryTitle
|
private java.lang.String |
m_sSecondaryTitle
|
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, 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 |
---|
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 | |
---|---|
JTabDisplay(javax.swing.JTabbedPane jtp)
Creates a new JTabDisplay. |
Method Summary | |
---|---|
void |
addFormSheetListener(FormSheetListener fsl)
Adds a listener to receive notification on the JTabbedDisplay's FormSheet. |
void |
closeFormSheet()
Closes the current FormSheet. |
void |
closeFormSheet(FormSheet fs)
Closes a FormSheet. |
void |
dispose()
In addition to disposing of the peer resources, remove the FormSheet and the MenuSheet. |
protected void |
exitForm()
Hook method called when the frame is about to be closed. |
protected void |
fireFormSheetRemoved(FormSheet fs,
boolean fExplicit)
Fires an event to all FormSheetListeners indicating that
a FormSheet was removed from this display. |
protected void |
fireFormSheetSet(FormSheet fs)
Fires an event to all FormSheetListeners indicating that
a FormSheet was set on this display. |
protected void |
formSheetClosed()
Hook method called when the FormSheet was closed. |
FormSheet |
getFormSheet()
Returns the FormSheet that is currently attached to the display. |
MenuSheet |
getMenuSheet()
Returns the MenuSheet that is currently attached to the display. |
java.lang.String |
getPrimaryTitle()
|
java.lang.String |
getSecondaryTitle()
|
javax.swing.JTabbedPane |
getTabbedPane()
Returns the JTabbedPane on which this FormSheet is displayed. |
java.lang.String |
getTitle()
|
private java.lang.Object |
getWaiter()
Returns the object used to block setFormSheet(org.salespointframework.core.FormSheet) when the FormSheet demands it. |
boolean |
isUseableDisplay()
Returns true to indicate this is a useable display. |
void |
load(java.io.ObjectInputStream ois)
Restores the display from a stream. |
void |
onFormSheetButtonAdded(FormSheet fs,
FormSheet.FormButton fb)
Notification event informing that a button was added to the FormSheet's button bar. |
void |
onFormSheetButtonRemoved(FormSheet fs,
FormSheet.FormButton fb)
Notification event informing that a button was removed from the FormSheet's button bar. |
void |
onFormSheetButtonsCleared(FormSheet fs)
Notification event informing that all buttons were removed from a FormSheet's button bar. |
void |
onFormSheetCaptionChanged(FormSheet fs,
java.lang.String sNewCaption)
Notification event informing about a change of a FormSheet's caption. |
void |
onFormSheetComponentChanged(FormSheet fs,
javax.swing.JComponent jcmpNew)
Notification event informing about a change of a FormSheet's component. |
void |
onMenuSheetSet(MenuSheet ms)
Actions to be taken when the MenuSheet has changed. |
void |
popUpFormSheet(FormSheet fs)
Opens a fresh JDisplayDialog and display the FormSheet in it. |
void |
removeFormSheetListener(FormSheetListener fsl)
Removes a listener to receive notification on the JTabbedDisplay's FormSheet. |
void |
save(java.io.ObjectOutputStream oos)
Writes the display to a stream. |
void |
setButtonbarPosition(int position)
Called to update the Buttonbar position |
void |
setDisplayTitle()
|
void |
setFormSheet(FormSheet fs)
Set and display a FormSheet. |
void |
setMenuSheet(MenuSheet ms)
Sets and displays a MenuSheet. |
void |
setPrimaryTitle(java.lang.String sPrimaryTitle)
|
void |
setSecondaryTitle(java.lang.String sSecondaryTitle)
|
void |
toFront()
Activates the tab which contains this display. |
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, reshape, 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, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, 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 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.salespointframework.core.Display |
---|
getBounds, setBounds |
Field Detail |
---|
private java.lang.String m_sPrimaryTitle
private java.lang.String m_sSecondaryTitle
private FormSheet m_fsCurrent
private MenuSheet m_msCurrent
private boolean m_fHadFormSheet
protected ListenerHelper m_lhListeners
private JTabDisplay.JTDFormSheetContainer m_jtdfscContainer
private transient java.lang.Object m_oWaiter
setFormSheet(org.salespointframework.core.FormSheet)
when the FormSheet demands it.
private transient javax.swing.JComponent m_jcmpComponent
private transient javax.swing.JPanel m_jpButtonBar
private transient javax.swing.JTabbedPane m_jtpTabbedPane
Constructor Detail |
---|
public JTabDisplay(javax.swing.JTabbedPane jtp)
jtp
- the JTabbedPane on which this Display should be displayed.Method Detail |
---|
private java.lang.Object getWaiter()
setFormSheet(org.salespointframework.core.FormSheet)
when the FormSheet demands it.
public javax.swing.JTabbedPane getTabbedPane()
public void toFront()
toFront
in interface Display
public void setPrimaryTitle(java.lang.String sPrimaryTitle)
public java.lang.String getPrimaryTitle()
public void setSecondaryTitle(java.lang.String sSecondaryTitle)
public java.lang.String getSecondaryTitle()
public java.lang.String getTitle()
public void setDisplayTitle()
protected void exitForm()
By default cancels any FormSheet being currently displayed and closes the frame.
public void setFormSheet(FormSheet fs) throws java.lang.InterruptedException
This method should attach a FormSheetContainer as the FormSheet's display,
get the FormSheet's caption, component and button bar and render them. The entire
peer creation should be synchronized using FormSheet.getComponentLock()
and FormSheet.getButtonsLock()
, so as not to loose any events.
If fs.waitResponse()
returns true,
setFormSheet()
should block, until the FormSheet is closed by a matching
call to a closeFormSheet()
method.
If a FormSheet is already being displayed, setFormSheet()
should cancel this
FormSheet prior to setting the new FormSheet.
setFormSheet
in interface Display
fs
- the FormSheet to be displayed.
java.lang.InterruptedException
- if an interrupt occured while waiting for the
FormSheet to be closed.public FormSheet getFormSheet()
FormSheet
that is currently attached to the display.
getFormSheet
in interface Display
public void closeFormSheet()
closeFormSheet
in interface Display
public void popUpFormSheet(FormSheet fs) throws java.lang.InterruptedException
JDisplayDialog
and display the FormSheet in it.
popUpFormSheet
in interface Display
fs
- the FormSheet to be displayed.
java.lang.InterruptedException
- if an interrupt occured while waiting for the
FormSheet to be closed.public void setMenuSheet(MenuSheet ms)
The MenuSheet cannot be set on the JTabDisplay itself as it is merely an extended JPanel. Instead
the Shop window
is used.
If a MenuSheet is already being displayed, setMenuSheet()
should remove this
MenuSheet prior to setting the new MenuSheet.
setMenuSheet
in interface Display
ms
- the MenuSheet to be displayed. null
is a valid value and should result in the
current MenuSheet being closed.public void onMenuSheetSet(MenuSheet ms)
ms
- the MenuSheet that has been set.public MenuSheet getMenuSheet()
MenuSheet
that is currently attached to the display.
getMenuSheet
in interface Display
public boolean isUseableDisplay()
isUseableDisplay
in interface Display
public void addFormSheetListener(FormSheetListener fsl)
addFormSheetListener
in interface Display
fsl
- the FormSheetListener to be registered.public void removeFormSheetListener(FormSheetListener fsl)
removeFormSheetListener
in interface Display
fsl
- the FormSheetListener to be unregistered.protected void fireFormSheetSet(FormSheet fs)
FormSheetListeners
indicating that
a FormSheet
was set on this display. As FormSheet setting is always explicit, no
extra parameter is necessary.
fs
- the FormSheet that was setprotected void fireFormSheetRemoved(FormSheet fs, boolean fExplicit)
FormSheetListeners
indicating that
a FormSheet
was removed from this display.
fs
- the FormSheet that was setfExplicit
- true, if the FormSheet was closed explicitly, i.e. either by a call to one of
the closeFormSheet
methods or by setFormSheet (null)
.closeFormSheet()
,
closeFormSheet(FormSheet)
,
setFormSheet(org.salespointframework.core.FormSheet)
public void closeFormSheet(FormSheet fs)
If a FormSheet is closed, by default, the JDisplayDialog containing it is also closed. You can,
however, alter this behavior by overriding formSheetClosed()
.
fs
- the FormSheet to be closed.protected void formSheetClosed()
public void dispose()
public void onFormSheetCaptionChanged(FormSheet fs, java.lang.String sNewCaption)
fs
- the FormSheet whose caption changed.sNewCaption
- the new caption of the FormSheet.public void onFormSheetComponentChanged(FormSheet fs, javax.swing.JComponent jcmpNew)
fs
- the FormSheet whose component changed.jcmpNew
- the new component of the FormSheet.public void onFormSheetButtonAdded(FormSheet fs, FormSheet.FormButton fb)
fs
- the FormSheet whose button bar changed.fb
- the button that was added to the FormSheet.public void onFormSheetButtonRemoved(FormSheet fs, FormSheet.FormButton fb)
fs
- the FormSheet whose button bar changed.fb
- the button that was removed from the FormSheet.public void onFormSheetButtonsCleared(FormSheet fs)
fs
- the FormSheet whose button bar was cleared.public void setButtonbarPosition(int position)
Display
setButtonbarPosition
in interface Display
public void load(java.io.ObjectInputStream ois) throws java.io.IOException, java.lang.ClassNotFoundException
Display
As displays should not be serialized when making the Shop persistent, they cannot be normally
deserialized. Instead they should individually read the attributes they previously saved
.
The attributes must be read in the same order they have previously been writtn.
Attention: The current class that has been written by the save()
method
must not be read here!
FormSheet fsCurrent = (FormSheet)ois.readObject(); MenuSheet msCurrent = (MenuSheet)ois.readObject(); ...
load
in interface Display
ois
- the stream to read attributes from
java.io.IOException
java.lang.ClassNotFoundException
public void save(java.io.ObjectOutputStream oos) throws java.io.IOException
Display
Displays should not be serialized as a whole. Instead use this method to individually write all attributes of the display to the stream.
Attention: The very first attribute to be written must be the display's class!
Example:oos.writeObject(getClass()); oos.writeObject(fsCurrent); //current FormSheet oos.writeObject(msCurrent); //current MenuSheet ...
save
in interface Display
oos
- the stream to write attributes to
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |