com.sun.electric.tool.user.ui
Class TopLevel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by com.sun.electric.tool.user.ui.TopLevel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class TopLevel
extends javax.swing.JFrame

Class to define a top-level window. In MDI mode (used by Windows to group multiple documents into a single window) this class is used for that single top window. In SDI mode (used elsewhere to give each cell its own window) this class is used many times for each window.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TopLevel(java.lang.String name, java.awt.Rectangle bound, WindowFrame frame, java.awt.GraphicsConfiguration gc, boolean createStructure)
          Constructor to build a window.
 
Method Summary
static void addToDesktop(javax.swing.JInternalFrame jif)
          Method to add an internal frame to the desktop.
 void createStructure(WindowFrame frame)
           
 void finished()
          Method called when done with this Frame.
static java.awt.Cursor getCurrentCursor()
           
static TopLevel getCurrentJFrame()
          Method to return the current JFrame on the screen.
static TopLevel getCurrentJFrame(boolean makeNewFrame)
          Method to return the current JFrame on the screen.
static java.awt.Rectangle[] getDisplays()
          Method to return a list of display areas, one for each display head on the computer.
static int getDoubleClickSpeed()
          Method to return the speed of double-clicks (in milliseconds).
 EMenuBar getEMenuBar()
          Get the Menu Bar.
static javax.swing.ImageIcon getFrameIcon()
          Method to return the Icon to use in windows.
static java.util.List<EMenuBar.Instance> getMenuBars()
           
static MessagesWindow getMessagesWindow()
          Method to return messagesWindow window.
static java.awt.Dimension getScreenSize()
          Method to return the size of the screen that Electric is on.
 StatusBar getStatusBar()
          Method to return status bar associated with this TopLevel.
 EMenuBar.Instance getTheMenuBar()
          Get the Menu Bar.
 ToolBar getToolBar()
          Get the tool bar associated with this TopLevel
static java.util.List<ToolBar> getToolBars()
           
static java.awt.Rectangle[] getWindowAreas()
          Method to return a list of possible window areas.
static void InitializeMessagesWindow()
           
static void InitializeWindows()
          Method to initialize the window system with the specified mode.
static boolean isMDIMode()
          Method to tell whether Electric is running in SDI or MDI mode.
static void OSInitialize(UserInterfaceMain.Mode mode)
          Method to initialize the window system.
static void printError(boolean print, java.lang.String msg)
          Print error message msg and stack trace if print is true.
static void removeFromDesktop(javax.swing.JInternalFrame jif)
          Method to remove an internal frame from the desktop.
static void setBusyCursor(boolean on)
          The busy cursor overrides any other cursor.
static void setCurrentCursor(java.awt.Cursor cursor)
           
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, 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 java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

TopLevel

public TopLevel(java.lang.String name,
                java.awt.Rectangle bound,
                WindowFrame frame,
                java.awt.GraphicsConfiguration gc,
                boolean createStructure)
Constructor to build a window.

Parameters:
name - the title of the window.
Method Detail

createStructure

public void createStructure(WindowFrame frame)

getFrameIcon

public static javax.swing.ImageIcon getFrameIcon()
Method to return the Icon to use in windows.

Returns:
the Icon to use in windows.

InitializeMessagesWindow

public static void InitializeMessagesWindow()

InitializeWindows

public static void InitializeWindows()
Method to initialize the window system with the specified mode. If mode is null, the mode is implied by the operating system.


OSInitialize

public static void OSInitialize(UserInterfaceMain.Mode mode)
Method to initialize the window system.


isMDIMode

public static boolean isMDIMode()
Method to tell whether Electric is running in SDI or MDI mode. SDI is Single Document Interface, where each document appears in its own window. This is used on UNIX/Linux and on Macintosh. MDI is Multiple Document Interface, where the main window has all documents in it as subwindows. This is used on Windows.

Returns:
true if Electric is in MDI mode.

getMessagesWindow

public static MessagesWindow getMessagesWindow()
Method to return messagesWindow window. The messagesWindow window runs along the bottom.

Returns:
the messagesWindow window.

getStatusBar

public StatusBar getStatusBar()
Method to return status bar associated with this TopLevel.

Returns:
the status bar associated with this TopLevel.

getToolBar

public ToolBar getToolBar()
Get the tool bar associated with this TopLevel

Returns:
the ToolBar.

getTheMenuBar

public EMenuBar.Instance getTheMenuBar()
Get the Menu Bar. Unfortunately named because getMenuBar() already exists


getEMenuBar

public EMenuBar getEMenuBar()
Get the Menu Bar. Unfortunately named because getMenuBar() already exists


getDoubleClickSpeed

public static int getDoubleClickSpeed()
Method to return the speed of double-clicks (in milliseconds).

Returns:
the speed of double-clicks (in milliseconds).

getScreenSize

public static java.awt.Dimension getScreenSize()
Method to return the size of the screen that Electric is on.

Returns:
the size of the screen that Electric is on.

addToDesktop

public static void addToDesktop(javax.swing.JInternalFrame jif)
Method to add an internal frame to the desktop. This only makes sense in MDI mode, where the desktop has multiple subframes.

Parameters:
jif - the internal frame to add.

removeFromDesktop

public static void removeFromDesktop(javax.swing.JInternalFrame jif)
Method to remove an internal frame from the desktop. This only makes sense in MDI mode, where the desktop has multiple subframes.

Parameters:
jif - the internal frame to remove.

getCurrentCursor

public static java.awt.Cursor getCurrentCursor()

setCurrentCursor

public static void setCurrentCursor(java.awt.Cursor cursor)

getToolBars

public static java.util.List<ToolBar> getToolBars()

getMenuBars

public static java.util.List<EMenuBar.Instance> getMenuBars()

setBusyCursor

public static void setBusyCursor(boolean on)
The busy cursor overrides any other cursor. Call clearBusyCursor to reset to last set cursor


getCurrentJFrame

public static TopLevel getCurrentJFrame()
Method to return the current JFrame on the screen.

Returns:
the current JFrame.

getCurrentJFrame

public static TopLevel getCurrentJFrame(boolean makeNewFrame)
Method to return the current JFrame on the screen.

Parameters:
makeNewFrame - whether or not to make a new WindowFrame if no current frame
Returns:
the current JFrame.

finished

public void finished()
Method called when done with this Frame. Both the menuBar and toolBar have persistent state in static hash tables to maintain consistency across different menu bars and tool bars in SDI mode. Those references must be nullified for garbage collection to reclaim that memory. This is really for SDI mode, because in MDI mode the TopLevel is only closed on exit, and all the application memory will be freed.

NOTE: JFrame does not get garbage collected after dispose() until some arbitrary point later in time when the garbage collector decides to free it.


getWindowAreas

public static java.awt.Rectangle[] getWindowAreas()
Method to return a list of possible window areas. On MDI systems, there is just one window areas. On SDI systems, there is one window areas for each display head on the computer.

Returns:
an array of window areas.

getDisplays

public static java.awt.Rectangle[] getDisplays()
Method to return a list of display areas, one for each display head on the computer.

Returns:
an array of display areas.

printError

public static void printError(boolean print,
                              java.lang.String msg)
Print error message msg and stack trace if print is true.

Parameters:
print - print error message and stack trace if true
msg - error message to print