com.bbn.openmap.gui
Class OpenMapFrame

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.bbn.openmap.gui.OpenMapFrame
All Implemented Interfaces:
PropertyConsumer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class OpenMapFrame
extends javax.swing.JFrame
implements java.beans.beancontext.BeanContextMembershipListener, java.beans.beancontext.BeanContextChild, PropertyConsumer

The OpenMapFrame is the application window frame that holds the MapPanel, and eventually the MapBean. It listens to the MapHandler for the addition of Beans to the MapHandler BeanContext, and then positions the widgets it can deal with within itself. The frame does not present itself until an MapPanel is found.

The OpenMapFrame is intended to be used in an application environment. The applet checks and code to handle the applet environment was moved to the OpenMapApplet class.

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
protected  int frameHeight
           
protected  int frameLocX
           
protected  int frameLocY
           
protected  int frameWidth
           
static java.lang.String HeightProperty
          The property to set the pixel height of the frame, height.
protected  I18n i18n
          All OMComponentPanels have access to an I18n object, which is provided by the Environment.
static java.util.logging.Logger logger
           
protected  java.lang.String propertyPrefix
           
static java.lang.String TitleProperty
          The property to set the title of the frame, title.
protected  boolean useAsInternalFrameRootPaneIfNecessary
          useAsInternalFrameRootPaneIfNecessary will tell the OpenMapFrame to set its root pane as the Environment's desktop if the Environment has been told to use internal frames, and if a root pane hasn't been set.
static java.lang.String WidthProperty
          The property to set the pixel width of the frame, width.
static java.lang.String xProperty
          Starting X coordinate of window, x
static java.lang.String yProperty
          Starting Y coordinate of window, y
 
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 com.bbn.openmap.PropertyConsumer
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
 
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
OpenMapFrame()
          Create the frame with "OpenMap " in the title.
OpenMapFrame(boolean useAsInternalFrameRootPaneIfNecessary)
           
OpenMapFrame(java.lang.String title)
          Create a OpenMap frame with a title.
OpenMapFrame(java.lang.String title, boolean useAsInternalFrameRootPaneIfNecessary)
          Create a OpenMap frame with a title, with a WindowListner that says what to do when the OpenMapFrame is closed.
 
Method Summary
 void addVetoableChangeListener(java.lang.String propertyName, java.beans.VetoableChangeListener in_vcl)
          Method for BeanContextChild interface.
 void childrenAdded(java.beans.beancontext.BeanContextMembershipEvent bcme)
          BeanContextMembership interface method.
 void childrenRemoved(java.beans.beancontext.BeanContextMembershipEvent bcme)
          BeanContextMembership interface method.
 void considerForContent(java.lang.Object someObj)
          Method used to determine if an object should be added as content.
 void dispose()
          Calls dispose on the BeanContext (MapHandler) and then removes references to other children.
 void findAndInit(java.util.Iterator<?> it)
          Called when the OpenMapFrame is added to a BeanContext, and when other objects are added to the BeanContext.
 void findAndInit(java.lang.Object someObj)
          Called when an object is added to the MapHandler.
 void findAndUndo(java.lang.Object someObj)
          Called when an object is removed from the MapHandler.
 java.beans.beancontext.BeanContext getBeanContext()
          Method for BeanContextChild interface.
 java.util.Properties getProperties(java.util.Properties getList)
          Method to fill in a Properties object, reflecting the current values of the PropertyConsumer.
 java.util.Properties getPropertyInfo(java.util.Properties list)
          Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
 java.lang.String getPropertyPrefix()
          Get the property key prefix that is being used to prepend to the property keys for Properties lookups.
 boolean getUseAsInternalFrameRootPaneIfNecessary()
           
 void removeVetoableChangeListener(java.lang.String propertyName, java.beans.VetoableChangeListener in_vcl)
          Method for BeanContextChild interface.
 void setBeanContext(java.beans.beancontext.BeanContext in_bc)
          Method for BeanContextChild interface.
 void setContent(java.awt.Component component)
          Called with the MapPanel to be set in the Content Pane of this Frame.
protected  void setPosition()
          For applications, checks where the properties says the window should be placed, and then uses the packed height and width to make adjustments.
protected  void setPosition(int w, int h)
           
 void setProperties(java.util.Properties setList)
          Method to set the properties in the PropertyConsumer.
 void setProperties(java.lang.String prefix, java.util.Properties setList)
          Method to set the properties in the PropertyConsumer.
 void setPropertyPrefix(java.lang.String prefix)
          Doesn't do anything.
 void setUseAsInternalFrameRootPaneIfNecessary(boolean val)
           
 
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, 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, paint, 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, 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, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

logger

public static java.util.logging.Logger logger

xProperty

public static final java.lang.String xProperty
Starting X coordinate of window, x

See Also:
Constant Field Values

yProperty

public static final java.lang.String yProperty
Starting Y coordinate of window, y

See Also:
Constant Field Values

WidthProperty

public static final java.lang.String WidthProperty
The property to set the pixel width of the frame, width.

See Also:
Constant Field Values

HeightProperty

public static final java.lang.String HeightProperty
The property to set the pixel height of the frame, height.

See Also:
Constant Field Values

TitleProperty

public static final java.lang.String TitleProperty
The property to set the title of the frame, title.

See Also:
Constant Field Values

useAsInternalFrameRootPaneIfNecessary

protected boolean useAsInternalFrameRootPaneIfNecessary
useAsInternalFrameRootPaneIfNecessary will tell the OpenMapFrame to set its root pane as the Environment's desktop if the Environment has been told to use internal frames, and if a root pane hasn't been set. True by default.


propertyPrefix

protected java.lang.String propertyPrefix

frameLocX

protected int frameLocX

frameLocY

protected int frameLocY

frameWidth

protected int frameWidth

frameHeight

protected int frameHeight

i18n

protected I18n i18n
All OMComponentPanels have access to an I18n object, which is provided by the Environment.

Constructor Detail

OpenMapFrame

public OpenMapFrame()
Create the frame with "OpenMap " in the title.


OpenMapFrame

public OpenMapFrame(boolean useAsInternalFrameRootPaneIfNecessary)
Parameters:
useAsInternalFrameRootPaneIfNecessary - will tell the OpenMapFrame to set its root pane as the Environment's desktop if the Environment has been told to use internal frames, and if a root pane hasn't been set.

OpenMapFrame

public OpenMapFrame(java.lang.String title)
Create a OpenMap frame with a title.

Parameters:
title - The Frame title.

OpenMapFrame

public OpenMapFrame(java.lang.String title,
                    boolean useAsInternalFrameRootPaneIfNecessary)
Create a OpenMap frame with a title, with a WindowListner that says what to do when the OpenMapFrame is closed.

Parameters:
title - The Frame title.
useAsInternalFrameRootPaneIfNecessary - will tell the OpenMapFrame to set its root pane as the Environment's desktop if the Environment has been told to use internal frames, and if a root pane hasn't been set.
Method Detail

setPosition

protected void setPosition()
For applications, checks where the properties says the window should be placed, and then uses the packed height and width to make adjustments.


setPosition

protected void setPosition(int w,
                           int h)

findAndInit

public void findAndInit(java.util.Iterator<?> it)
Called when the OpenMapFrame is added to a BeanContext, and when other objects are added to the BeanContext. The OpenMapFrame looks for objects that it knows how to place upon itself (MapPanel, JMenuBar). The OpenMapFrame does not check to see if the objects looked for are already added to itself. It assumes that if some object type is getting added to it, the caller must know what they are doing - just like a regular JFrame.

Parameters:
it - Iterator to use to go through the BeanContext objects.

findAndInit

public void findAndInit(java.lang.Object someObj)
Called when an object is added to the MapHandler.


considerForContent

public void considerForContent(java.lang.Object someObj)
Method used to determine if an object should be added as content. Method is here to make it easier for subclasses to override and add what they want to content pane.

Parameters:
someObj -

setContent

public void setContent(java.awt.Component component)
Called with the MapPanel to be set in the Content Pane of this Frame. If a MapPanel, a JMenuBar will be retrieved and added as well.

Parameters:
component - component to be used as content.

childrenAdded

public void childrenAdded(java.beans.beancontext.BeanContextMembershipEvent bcme)
BeanContextMembership interface method. Called when objects are added to the BeanContext.

Specified by:
childrenAdded in interface java.beans.beancontext.BeanContextMembershipListener
Parameters:
bcme - contains an Iterator that lets you go through the new objects.

childrenRemoved

public void childrenRemoved(java.beans.beancontext.BeanContextMembershipEvent bcme)
BeanContextMembership interface method. Called by BeanContext when children are being removed. Unhooks itself from the objects that are being removed if they are contained within the Frame.

Specified by:
childrenRemoved in interface java.beans.beancontext.BeanContextMembershipListener
Parameters:
bcme - event that contains an Iterator to use to go through the removed objects.

findAndUndo

public void findAndUndo(java.lang.Object someObj)
Called when an object is removed from the MapHandler.


getBeanContext

public java.beans.beancontext.BeanContext getBeanContext()
Method for BeanContextChild interface.

Specified by:
getBeanContext in interface java.beans.beancontext.BeanContextChild

setBeanContext

public void setBeanContext(java.beans.beancontext.BeanContext in_bc)
                    throws java.beans.PropertyVetoException
Method for BeanContextChild interface.

Specified by:
setBeanContext in interface java.beans.beancontext.BeanContextChild
Parameters:
in_bc - The context to which this object is being added
Throws:
java.beans.PropertyVetoException

addVetoableChangeListener

public void addVetoableChangeListener(java.lang.String propertyName,
                                      java.beans.VetoableChangeListener in_vcl)
Method for BeanContextChild interface.

Specified by:
addVetoableChangeListener in interface java.beans.beancontext.BeanContextChild

removeVetoableChangeListener

public void removeVetoableChangeListener(java.lang.String propertyName,
                                         java.beans.VetoableChangeListener in_vcl)
Method for BeanContextChild interface.

Specified by:
removeVetoableChangeListener in interface java.beans.beancontext.BeanContextChild

setProperties

public void setProperties(java.util.Properties setList)
Method to set the properties in the PropertyConsumer. It is assumed that the properties do not have a prefix associated with them, or that the prefix has already been set.

Specified by:
setProperties in interface PropertyConsumer
Parameters:
setList - a properties object that the PropertyConsumer can use to retrieve expected properties it can use for configuration.

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties setList)
Method to set the properties in the PropertyConsumer. The prefix is a string that should be prepended to each property key (in addition to a separating '.') in order for the PropertyConsumer to uniquely identify properties meant for it, in the midst of of Properties meant for several objects.

Specified by:
setProperties in interface PropertyConsumer
Parameters:
prefix - a String used by the PropertyConsumer to prepend to each property value it wants to look up - setList.getProperty(prefix.propertyKey). If the prefix had already been set, then the prefix passed in should replace that previous value.
setList - a Properties object that the PropertyConsumer can use to retrieve expected properties it can use for configuration.

getProperties

public java.util.Properties getProperties(java.util.Properties getList)
Method to fill in a Properties object, reflecting the current values of the PropertyConsumer. If the PropertyConsumer has a prefix set, the property keys should have that prefix plus a separating '.' prepended to each property key it uses for configuration.

Specified by:
getProperties in interface PropertyConsumer
Parameters:
getList - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

getPropertyInfo

public java.util.Properties getPropertyInfo(java.util.Properties list)
Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer. The key for each property should be the raw property name (without a prefix) with a value that is a String that describes what the property key represents, along with any other information about the property that would be helpful (range, default value, etc.).

Specified by:
getPropertyInfo in interface PropertyConsumer
Parameters:
list - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

setPropertyPrefix

public void setPropertyPrefix(java.lang.String prefix)
Doesn't do anything. The OpenMapFrame looks for properties set with the "openmap" property prefix. This method is part of the PropertyConsumer interface.

Specified by:
setPropertyPrefix in interface PropertyConsumer
Parameters:
prefix - the prefix String.

getPropertyPrefix

public java.lang.String getPropertyPrefix()
Get the property key prefix that is being used to prepend to the property keys for Properties lookups.

Specified by:
getPropertyPrefix in interface PropertyConsumer
Returns:
the property prefix for the frame

setUseAsInternalFrameRootPaneIfNecessary

public void setUseAsInternalFrameRootPaneIfNecessary(boolean val)

getUseAsInternalFrameRootPaneIfNecessary

public boolean getUseAsInternalFrameRootPaneIfNecessary()

dispose

public void dispose()
Calls dispose on the BeanContext (MapHandler) and then removes references to other children.

Overrides:
dispose in class java.awt.Window


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details