cz.psika.numerist
Class ApplicationWindow

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 cz.psika.numerist.ApplicationWindow
All Implemented Interfaces:
Constants, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class ApplicationWindow
extends javax.swing.JFrame
implements java.awt.event.ActionListener, Constants

Application window.

Author:
Tomas Psika
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
 
Nested classes/interfaces inherited from interface cz.psika.numerist.Constants
Constants.ItemEvents
 
Field Summary
static int FULLDIAGRAM_PADDING_HORIZ
          Full diagram padding.
static int THUMBNAIL_PADDING_HORIZ
          Default thumbnail padding.
static int THUMBNAIL_SIZE
          Default thumbnail size.
 
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 cz.psika.numerist.Constants
APPLICATION_CONFIG_FILENAME, APPNAME, AUTHORS, CONFIG_DIAGRAM_COLUMN_COLOR, CONFIG_DIAGRAM_INNER_DIAGONAL_COLOR, CONFIG_DIAGRAM_OUTER_DIAGONAL_COLOR, CONFIG_DIAGRAM_ROW_COLOR, CONFIG_FAILURE, CONFIG_MAPPING_DEFAULT, CONFIG_MAPPING_SCHEMA, CONTACT_EMAIL, DECREMENT, defaultStyleName, FILE_MODIFIED, FILE_NOT_MODIFIED, FIRST_POSITION, FULL_DIAGRAM, INCREMENT, INSERT_BEFORE, INSIDE_MAIN_PANEL, INSIDE_TOP_PANEL, LICENSE, OK, PROJECT_SUPPORT_RELATIVE_URL, PROJECT_URL, RELEASE, styleFileSuffix, stylesDirectory, THUMBNAIL, VERSION, VIEW_MODE_DUAL, VIEW_MODE_SINGLE
 
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
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Handle all actions.
 boolean areaFree(boolean insideTopPanel)
          Checks whether there is possibility to insert some new item inside the panel.
 void clearDiagrams()
          Clears diagrams in content area.
 Item clearThumbnails()
          Clears diagram thumbnails.
 void deleteAll()
          Delete all diagrams.
 boolean dualViewIsActive()
          Let us know in which mode application window is currently handled.
protected  int getCurrentNumberOfDiagramPositions(boolean insideTopPanel)
          Returns number of used component positions, empty diagrams inside main content panel are included.
 java.awt.Dimension getDiagramDimension(boolean thumbnail)
          Get diagram dimension according current window size.
protected  Diagram getDiagramOnPos(int pos, boolean insideTopPanel)
          Returns diagram on specified position.
 int getFreePosition(boolean insideTopPanel)
          Get first free position where a new diagram could be placed carefully.
static ApplicationWindow getInstance()
          Get window.
 int getMaxNoOfDiagramsInPanel(boolean insideTopPanel)
          Get maximal number of diagrams viewable inside thumbnail or content panel.
 int getPosOfDiagram(Diagram diagram)
          Find exact position of the specified diagram.
 int getPosOfDiagram(Diagram diagram, boolean isThumbnail)
          Get exact position of the diagram.
 boolean isContentPanelEmpty()
          Find out whether there are some items inside main content panel.
 void removeDiagram(Diagram diagram, boolean isThumbnail)
          Removing concrete diagram.
 void removeDiagram(int pos, boolean isThumbnail)
          Removing diagrams by position in the panel.
 void setDiagram(Diagram diagram, int pos)
          Appends or replaces diagram/thumbnail.
 void setDiagram(Diagram diagram, int pos, boolean isThumbnail)
          Appends, deletes or replaces diagram.
protected  void setDiagram(Diagram diagram, int pos, boolean isThumbnail, boolean insertBefore)
          Appending, replacing, inserting before a position or removing of the diagram.
 void setViewMode(boolean enableDualViewMode)
          Switching view mode in runtime.
 void updateLabel(java.lang.String text)
          Updates bottom label.
 void updateLabels()
          Refresh text in labels connected with diagrams on entry change.
 
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, 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, checkImage, checkImage, 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
 

Field Detail

THUMBNAIL_SIZE

public static final int THUMBNAIL_SIZE
Default thumbnail size.

See Also:
Constant Field Values

THUMBNAIL_PADDING_HORIZ

public static final int THUMBNAIL_PADDING_HORIZ
Default thumbnail padding.

See Also:
Constant Field Values

FULLDIAGRAM_PADDING_HORIZ

public static final int FULLDIAGRAM_PADDING_HORIZ
Full diagram padding.

See Also:
Constant Field Values
Method Detail

getInstance

public static ApplicationWindow getInstance()
Get window.

Returns:
singleton instance of ApplicationWindow

updateLabels

public void updateLabels()
Refresh text in labels connected with diagrams on entry change.


setViewMode

public void setViewMode(boolean enableDualViewMode)
Switching view mode in runtime.

Parameters:
enableDualViewMode - true when dual view mode requested

dualViewIsActive

public boolean dualViewIsActive()
Let us know in which mode application window is currently handled.

Returns:
true when dual mode is active

isContentPanelEmpty

public boolean isContentPanelEmpty()
Find out whether there are some items inside main content panel.

Returns:
true if panel has only empty diagrams

setDiagram

public void setDiagram(Diagram diagram,
                       int pos,
                       boolean isThumbnail)
Appends, deletes or replaces diagram. Thumbnail flag is specified explicitly and no diagrams are deleted on appending.

Parameters:
diagram -
pos - position after which we append the diagram or the position where we replace the diagram
isThumbnail - diagram is or is not thumbnail

setDiagram

public void setDiagram(Diagram diagram,
                       int pos)
Appends or replaces diagram/thumbnail.

Parameters:
diagram -
pos - the position of diagram to replace or append after
Throws:
java.lang.IllegalArgumentException - when trying to delete diagram on the position

setDiagram

protected void setDiagram(Diagram diagram,
                          int pos,
                          boolean isThumbnail,
                          boolean insertBefore)
Appending, replacing, inserting before a position or removing of the diagram. Dont call this method directly often. Try to use overloads instead.

Parameters:
diagram - diagram to display or null when want to destroy diagram on the position
pos - position where we want to position the diagram, pos < 0 means (-pos + 1)th position is main content area, else pos = position in thumbnail area
isThumbnail -
insertBefore - inserting of diagram before current position, doesnt remove anything

removeDiagram

public void removeDiagram(int pos,
                          boolean isThumbnail)
Removing diagrams by position in the panel.

Parameters:
pos - position
isThumbnail -

removeDiagram

public void removeDiagram(Diagram diagram,
                          boolean isThumbnail)
Removing concrete diagram. Currently called where removing full diagrams only.

Parameters:
diagram - diagram to remove
isThumbnail -

getPosOfDiagram

public int getPosOfDiagram(Diagram diagram,
                           boolean isThumbnail)
Get exact position of the diagram. Hash code comparison must be used because "equals" method is redefined in diagrams.

Parameters:
diagram -
isThumbnail -
Returns:
position of the diagram inside the panel

getPosOfDiagram

public int getPosOfDiagram(Diagram diagram)
Find exact position of the specified diagram.

Parameters:
diagram -
Returns:
position of the diagram of null if not exists

getDiagramOnPos

protected Diagram getDiagramOnPos(int pos,
                                  boolean insideTopPanel)
Returns diagram on specified position.

Parameters:
pos - position inside a panel
insideTopPanel -
Returns:
diagram found or null is not exists

getCurrentNumberOfDiagramPositions

protected int getCurrentNumberOfDiagramPositions(boolean insideTopPanel)
Returns number of used component positions, empty diagrams inside main content panel are included.

Parameters:
insideTopPanel -
Returns:
number of components in the panel

getFreePosition

public int getFreePosition(boolean insideTopPanel)
Get first free position where a new diagram could be placed carefully.

Parameters:
insideTopPanel -
Returns:
first free position inside the relevant panel or -1 is no free position could be found

getDiagramDimension

public java.awt.Dimension getDiagramDimension(boolean thumbnail)
Get diagram dimension according current window size. Calling this method often could hurt performance. You could remove unnecessary allocations by caching window size.

Parameters:
thumbnail - diagram type
Returns:
dimension of this type of diagram

getMaxNoOfDiagramsInPanel

public int getMaxNoOfDiagramsInPanel(boolean insideTopPanel)
Get maximal number of diagrams viewable inside thumbnail or content panel.

Parameters:
insideTopPanel -
Returns:
number of max diagrams inside the panel

areaFree

public boolean areaFree(boolean insideTopPanel)
Checks whether there is possibility to insert some new item inside the panel.

Parameters:
insideTopPanel -
Returns:
true if no diagrams are not found inside the panel

deleteAll

public void deleteAll()
Delete all diagrams.


clearDiagrams

public void clearDiagrams()
Clears diagrams in content area.


clearThumbnails

public Item clearThumbnails()
Clears diagram thumbnails.

Returns:
first component's entry if any, else null

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Handle all actions.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - event

updateLabel

public void updateLabel(java.lang.String text)
Updates bottom label.

Parameters:
text - string to show inside label or null if you want to clear label's content