|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectdiva.gui.AppContextDelegate
diva.gui.DesktopContext
public class DesktopContext
DesktopContext is an application context that displays multiple content panes in an instance of a JDesktopPane. It also contains a menubar, toolbar, and a status bar. When created, it is not visible, so the caller must call setVisible(true) to make it appear on the screen.
The implementation of JDesktopPane in Swing is not really quite what we want in a frame of this type, so there are various listeners attached to the JDesktopPane and the internal components that resize and reparent components in a more useful way.
Each "content pane" that is added to this frame is added by default to a JInternalFrame. However, the pane may be removed from the pane, either by the JDesktopPane when it is iconified, or by this class when the internal frame is maximized. Hence, users of this class should not rely on the content pane actually being contained by the internal frame that it is associated with.
MDI applications often contain multiple toolbars. This class implements a toolbar pane that contains the basic toolbar, along with any other toolbars in the application.
Nested Class Summary | |
---|---|
private static class |
DesktopContext.DesktopInternalFrame
A workaround for the busted JInternalFrame closing event handling in jdk1.2. |
private class |
DesktopContext.DesktopPseudoFrame
|
private class |
DesktopContext.FrameManager
FrameManager is a class that responds to UI events on the internal frames and generates other events and does useful stuff. |
Field Summary | |
---|---|
private javax.swing.JComponent |
_currentPane
The current content pane |
private javax.swing.JDesktopPane |
_desktopPane
The desktop pane |
private javax.swing.Icon |
_frameIcon
The icon that is given to the internal frames. |
private DesktopContext.FrameManager |
_frameManager
The internal frame manager/listener object |
private java.util.HashMap |
_frames
A mapping from content panes to internal frames. |
private int |
_layoutMode
The current layout mode of this pane. |
private javax.swing.event.EventListenerList |
_listeners
Store the view listeners. |
private boolean |
_maximizeMode
The maximize mode. |
private javax.swing.JComponent |
_palettePane
The shade pane |
private JPseudoFrame |
_pseudoFrame
The psuedo-frame |
private javax.swing.JSplitPane |
_splitPane
The split pane |
private JStatusBar |
_statusBar
The status bar |
private javax.swing.JToolBar |
_toolBar
The toolbar |
private javax.swing.JPanel |
_toolBarPane
The toolbar pane |
static int |
LAYOUT_CASCADED
The layout mode in which internal frames are cascaded one above another. |
static int |
LAYOUT_HORIZONTAL
The layout mode in which internal frames are tiled horizontally. |
static int |
LAYOUT_PLACED
The layout mode in which internal frames are placed by the user. |
static int |
LAYOUT_VERTICAL
The layout mode in which internal frames are tiled vertically. |
Constructor Summary | |
---|---|
DesktopContext(AppContext context)
Create an instance of this Frame with the application. |
|
DesktopContext(AppContext context,
javax.swing.JComponent palette)
Create an instance of this Frame with the application. |
Method Summary | |
---|---|
void |
addContentPane(java.lang.String title,
javax.swing.JComponent pane)
Add a content pane to this frame. |
void |
addViewListener(ViewListener listener)
Add a view listener to this frame. |
javax.swing.JComponent |
getCurrentContentPane()
Get the content pane that is displayed as the current content pane. |
javax.swing.Icon |
getFrameIcon()
Return the icon that is displayed in the frame. |
javax.swing.JInternalFrame |
getInternalFrame(javax.swing.JComponent pane)
Return the internal frame for a given component. |
javax.swing.JToolBar |
getJToolBar()
Get the tool bar. |
int |
getLayoutMode()
Get the layout mode |
javax.swing.JComponent |
getPalettePane()
Get the component used for palettes and the like. |
javax.swing.JSplitPane |
getSplitPane()
Get the split pane separating the shade pane and the desktop pane. |
JStatusBar |
getStatusBar()
Get the status bar. |
javax.swing.JPanel |
getToolBarPane()
Get the tool bar pane. |
boolean |
isMaximizeMode()
Test if we are in maximize mode |
void |
refreshLayout()
Refresh the layout of the internal frames. |
void |
removeContentPane(javax.swing.JComponent pane)
Remove the given content pane from the display and close. |
void |
removeViewListener(ViewListener listener)
Remove a view listener from this frame. |
void |
setCurrentContentPane(javax.swing.JComponent pane)
Set the given content pane to be displayed as the current content pane. |
void |
setFrameIcon(javax.swing.Icon icon)
Set the icon that is displayed in internal frames. |
void |
setLayoutMode(int mode)
Set the layout mode. |
void |
setMaximizeMode(boolean mode)
Set the maximize mode. |
void |
setPalettePane(javax.swing.JComponent pane)
Set the palette pane of the context to the given component. |
void |
showStatus(java.lang.String status)
Show the given status string in the context. |
Methods inherited from class diva.gui.AppContextDelegate |
---|
getContentPane, getDelegate, getExitAction, getGlassPane, getIconImage, getJMenuBar, getLayeredPane, getRootPane, getTitle, isVisible, makeComponent, setContentPane, setExitAction, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setSize, setTitle, setVisible |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface diva.gui.AppContext |
---|
getExitAction, getIconImage, getJMenuBar, getTitle, isVisible, makeComponent, setExitAction, setIconImage, setJMenuBar, setSize, setTitle, setVisible |
Methods inherited from interface javax.swing.RootPaneContainer |
---|
getContentPane, getGlassPane, getLayeredPane, getRootPane, setContentPane, setGlassPane, setLayeredPane |
Field Detail |
---|
private transient javax.swing.event.EventListenerList _listeners
private transient javax.swing.JDesktopPane _desktopPane
private transient javax.swing.JSplitPane _splitPane
private transient javax.swing.JComponent _palettePane
private transient javax.swing.JPanel _toolBarPane
private transient JStatusBar _statusBar
private transient javax.swing.JToolBar _toolBar
private transient DesktopContext.FrameManager _frameManager
private transient javax.swing.JComponent _currentPane
private transient javax.swing.Icon _frameIcon
private transient JPseudoFrame _pseudoFrame
private transient int _layoutMode
private transient boolean _maximizeMode
public static final int LAYOUT_PLACED
public static final int LAYOUT_HORIZONTAL
public static final int LAYOUT_VERTICAL
public static final int LAYOUT_CASCADED
private transient java.util.HashMap _frames
Constructor Detail |
---|
public DesktopContext(AppContext context)
public DesktopContext(AppContext context, javax.swing.JComponent palette)
Method Detail |
---|
public void addContentPane(java.lang.String title, javax.swing.JComponent pane)
addContentPane
in interface MDIContext
public void addViewListener(ViewListener listener)
addViewListener
in interface MDIContext
public javax.swing.JComponent getCurrentContentPane()
getCurrentContentPane
in interface MDIContext
public javax.swing.Icon getFrameIcon()
getFrameIcon
in interface MDIContext
public javax.swing.JInternalFrame getInternalFrame(javax.swing.JComponent pane)
public int getLayoutMode()
public javax.swing.JComponent getPalettePane()
public JStatusBar getStatusBar()
public javax.swing.JSplitPane getSplitPane()
public javax.swing.JToolBar getJToolBar()
public javax.swing.JPanel getToolBarPane()
public boolean isMaximizeMode()
public void refreshLayout()
public void removeContentPane(javax.swing.JComponent pane)
removeContentPane
in interface MDIContext
public void removeViewListener(ViewListener listener)
removeViewListener
in interface MDIContext
public void setCurrentContentPane(javax.swing.JComponent pane)
setCurrentContentPane
in interface MDIContext
public void setFrameIcon(javax.swing.Icon icon)
setFrameIcon
in interface MDIContext
public void setLayoutMode(int mode)
public void setMaximizeMode(boolean mode)
public void setPalettePane(javax.swing.JComponent pane)
public void showStatus(java.lang.String status)
showStatus
in interface AppContext
showStatus
in class AppContextDelegate
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |