gui
Class MainWindow

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 gui.MainWindow
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class MainWindow
extends javax.swing.JFrame

The main window displays the map editor and builds the interactions between the window and the interaction handler as well as interactions between menu items and actions.

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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  Animator animator
          object responsible for repainting the canvas
(package private)  double BRANCH_THRESHOLD
          the minimum size for dead-end routes when generating a route-graph
private  Canvas canvas
          the drawing canvas
static boolean GRID_VISIBLE
          specifies if the grid is initially visible
private  javax.swing.JCheckBoxMenuItem gridVisibleMenu
          the grid visibility menu item
private static int height
          the initial window height
private  MapImporter importer
          the map loader
private  InteractionHandler interactor
          the input handler
private  Map map
          the map being edited
private  javax.swing.JMenuBar menuBar
          the menu bar containing all menu items
private  java.util.ArrayList<RelationValue> relations
          a list of extended relation values
static boolean SHOW_ABSTRACT_OBJECTS
           
static boolean SHOW_DISTANCE_RELATIONS
          specifies if distance relations are displayed by default
static boolean SHOW_ORIENTATION_RELATIONS
          specifies if orientation relations are displayed by default
static boolean SHOW_TOPOLOGY_RELATIONS
          specifies if topology relations are displayed by default
private  javax.swing.JCheckBoxMenuItem showAbstractionsMenu
           
private  javax.swing.JCheckBoxMenuItem showDistanceRelationsMenu
          the show distance relations menu item
private  javax.swing.JCheckBoxMenuItem showOrientationRelationsMenu
          the show distance relations menu item
private  javax.swing.JCheckBoxMenuItem showTopologyRelationsMenu
          the show distance relations menu item
static boolean SNAP_TO_GRID
          specifies if snap to grid is enabled by default
private static java.lang.String title
          the window title
private static int width
          the initial window width
 
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
MainWindow()
          Constructs the main window and sets up the interaction handler.
 
Method Summary
 void addInteractor(java.lang.String name, Interactor interaction)
          Adds an external interactor to the interaction handler.
 void addRelationValue(RelationValue relation)
          Adds an external relation value.
private  javax.swing.JMenu buildConstraintMenu()
          Builds trhe constraint menu.
private  javax.swing.JMenu buildFileMenu()
          Builds the file menu.
private  javax.swing.JMenu buildGridMenu()
          Builds the grid menu.
private  javax.swing.JMenu buildInteractionMenu()
          Builds the interaction menu.
private  javax.swing.JMenu buildLayersMenu()
          Builds the relation menu.
private  void buildToolBar()
          Builds the toolbar.
 void display(java.lang.String ontologyFile, java.lang.String mapFile)
          Loads the ontology and map files and displays the main window.
 boolean getDistanceRelationsVisible()
          Gets the selection status of the show distance relations menu item.
 InteractionHandler getInteractorHandler()
          Gets the interaction handler.
 Map getMap()
          Gets the map currently loaded.
 MapImporter getMapImporter()
          Gets the map importer.
 boolean getOrientationRelationsVisible()
          Gets the selection status of the show orientation relations menu item.
 boolean getTopologyRelationsVisible()
          Gets the selection status of the show topological relations menu item.
 void loadMap(java.lang.String file)
          Loads a map from the specified file.
 void setAbstractObjectsVisible(boolean selected)
          Sets the visibility of abstract objects.
 void setGridVisible(boolean selected)
          Sets the status of the grid visibility menu item.
 void setMap(Map newMap)
          Sets the map to display.
 void showRecording(Log log)
          Displays a recording.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, 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, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

BRANCH_THRESHOLD

double BRANCH_THRESHOLD
the minimum size for dead-end routes when generating a route-graph


title

private static java.lang.String title
the window title


width

private static int width
the initial window width


height

private static int height
the initial window height


GRID_VISIBLE

public static boolean GRID_VISIBLE
specifies if the grid is initially visible


SNAP_TO_GRID

public static boolean SNAP_TO_GRID
specifies if snap to grid is enabled by default


SHOW_DISTANCE_RELATIONS

public static boolean SHOW_DISTANCE_RELATIONS
specifies if distance relations are displayed by default


SHOW_ORIENTATION_RELATIONS

public static boolean SHOW_ORIENTATION_RELATIONS
specifies if orientation relations are displayed by default


SHOW_TOPOLOGY_RELATIONS

public static boolean SHOW_TOPOLOGY_RELATIONS
specifies if topology relations are displayed by default


SHOW_ABSTRACT_OBJECTS

public static boolean SHOW_ABSTRACT_OBJECTS

canvas

private Canvas canvas
the drawing canvas


interactor

private InteractionHandler interactor
the input handler


importer

private MapImporter importer
the map loader


map

private Map map
the map being edited


relations

private java.util.ArrayList<RelationValue> relations
a list of extended relation values


menuBar

private javax.swing.JMenuBar menuBar
the menu bar containing all menu items


gridVisibleMenu

private javax.swing.JCheckBoxMenuItem gridVisibleMenu
the grid visibility menu item


showDistanceRelationsMenu

private javax.swing.JCheckBoxMenuItem showDistanceRelationsMenu
the show distance relations menu item


showOrientationRelationsMenu

private javax.swing.JCheckBoxMenuItem showOrientationRelationsMenu
the show distance relations menu item


showTopologyRelationsMenu

private javax.swing.JCheckBoxMenuItem showTopologyRelationsMenu
the show distance relations menu item


showAbstractionsMenu

private javax.swing.JCheckBoxMenuItem showAbstractionsMenu

animator

private Animator animator
object responsible for repainting the canvas

Constructor Detail

MainWindow

public MainWindow()
Constructs the main window and sets up the interaction handler.

Method Detail

display

public void display(java.lang.String ontologyFile,
                    java.lang.String mapFile)
Loads the ontology and map files and displays the main window.

Parameters:
ontologyFile - - the object map file, or null
mapFile - - the initial map file, or null

buildToolBar

private void buildToolBar()
Builds the toolbar.


buildFileMenu

private javax.swing.JMenu buildFileMenu()
Builds the file menu.


buildInteractionMenu

private javax.swing.JMenu buildInteractionMenu()
Builds the interaction menu.


buildGridMenu

private javax.swing.JMenu buildGridMenu()
Builds the grid menu.


buildLayersMenu

private javax.swing.JMenu buildLayersMenu()
Builds the relation menu.


buildConstraintMenu

private javax.swing.JMenu buildConstraintMenu()
Builds trhe constraint menu.


loadMap

public void loadMap(java.lang.String file)
Loads a map from the specified file.

Parameters:
file - - the map file

setMap

public void setMap(Map newMap)
Sets the map to display.

Parameters:
newMap - - the new map

showRecording

public void showRecording(Log log)
Displays a recording.

Parameters:
log - - the log file to replay

getMap

public Map getMap()
Gets the map currently loaded.


getMapImporter

public MapImporter getMapImporter()
Gets the map importer.


setGridVisible

public void setGridVisible(boolean selected)
Sets the status of the grid visibility menu item.


setAbstractObjectsVisible

public void setAbstractObjectsVisible(boolean selected)
Sets the visibility of abstract objects.


getDistanceRelationsVisible

public boolean getDistanceRelationsVisible()
Gets the selection status of the show distance relations menu item.


getOrientationRelationsVisible

public boolean getOrientationRelationsVisible()
Gets the selection status of the show orientation relations menu item.


getTopologyRelationsVisible

public boolean getTopologyRelationsVisible()
Gets the selection status of the show topological relations menu item.


getInteractorHandler

public InteractionHandler getInteractorHandler()
Gets the interaction handler.


addInteractor

public void addInteractor(java.lang.String name,
                          Interactor interaction)
Adds an external interactor to the interaction handler. Interactions must be added before the window is displayed.

Parameters:
name - - a unique interactor name
interactor - - the external interactor

addRelationValue

public void addRelationValue(RelationValue relation)
Adds an external relation value. Relation values must be added before the window is displayed.