Generic Environment GUI Class Library

Class EnvEditor

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--EnvAppFrame
                                      |
                                      +--EnvEditor
All Implemented Interfaces:
javax.accessibility.Accessible, EnvDisplay, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, SettableEnvDisplay, javax.swing.WindowConstants

public class EnvEditor
extends EnvAppFrame

Environment-Based Applications:
The EnvEditor class provides a window in which to edit an environment.

Version:
1 December 2002
See Also:
Serialized Form

Inner Class Summary
protected  class EnvEditor.EnvObjectChoice
          Nested class used to hold the per-item information for the entries in the combo box of environment object choices.
protected  class EnvEditor.EnvObjectIcon
          Nested class used to draw the icons used for Locatable entries in the environment object combo box.
 
Inner classes inherited from class EnvAppFrame
EnvAppFrame.GUIExceptionHandler
 
Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  javax.swing.JButton doneButton
           
protected  javax.swing.JComboBox objComboBox
           
protected  EnvAppFrame parentFrame
           
 
Fields inherited from class EnvAppFrame
content, display, env, envController, menuBar, menuItemsThatNeedAnEnvironment, menuMask
 
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, 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
protected EnvEditor(EnvAppFrame frame)
          Creates an uninitialized EnvEditor.
 
Method Summary
protected  void addChoicesFromFactory(javax.swing.JComboBox cb)
          Builds up the list of environment object type choices for the editing palette.
protected  void chooseEnvObjType()
          Follows up when the user picks a new choice from the environment object combo box (specified listener action).
protected  java.lang.Class currentEnvObjectClass()
          Returns the currently selected environment object class.
protected  void defineContent(java.awt.Color bgColor, int viewingWidth, int viewingHeight, int minCellSize)
          Defines contents of main window panel.
protected  void done()
          Leaves the editor, returning to the parent frame.
protected  void editAtLocation(Location loc)
          Using the location under the mouse, either add or remove an object in that location.
protected  void editAtLocation(java.awt.event.MouseEvent evt)
          Makes an object in the location indicated by the mouse event.
protected  void fillPalette(javax.swing.JToolBar palette)
          Puts tools for choosing environment object attributes in the editing palette, in particular a Type tool for choosing the type of environment object.
protected  void init(java.lang.String title, java.awt.Color bgColor, int viewingWidth, int viewingHeight, int minCellSize)
          Initializes the contents of an EnvEditor.
protected  ScrollableEnvDisplay makeDisplay(int width, int height, int minCellSize, java.awt.Color bgColor)
          Creates the environment display.
protected  java.awt.Component makeEditingPalette()
          Creates the editing palette.
protected  void makeObject(java.lang.Class cls, Environment env, Location loc)
          Constructs the specified type of object.
protected  void makeObject(java.lang.Class cls, Environment env, Location loc, java.awt.Color color)
          Constructs the specified type of object.
protected  java.awt.Component makeTypeChoiceComponent()
          Makes the environment object type choice combo box.
protected  void reportConstructionError(java.lang.Class cls, java.lang.Exception e, java.lang.String string)
          Reports an error from attempting to construct an object.
 
Methods inherited from class EnvAppFrame
enableItemsThatNeedEnvironment, getDisplay, makeDisplayPanel, makeEnvDisplay, makeFileMenu, makeMenuBar, makeMenus, setEnv, showEnv
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
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

parentFrame

protected EnvAppFrame parentFrame

doneButton

protected javax.swing.JButton doneButton

objComboBox

protected javax.swing.JComboBox objComboBox
Constructor Detail

EnvEditor

protected EnvEditor(EnvAppFrame frame)
Creates an uninitialized EnvEditor. Provided for subclass constructors, which should always use this constructor followed by a call to init.
Parameters:
frame - the frame that invoked this environment editor
env - the environment to edit
Method Detail

init

protected void init(java.lang.String title,
                    java.awt.Color bgColor,
                    int viewingWidth,
                    int viewingHeight,
                    int minCellSize)
Initializes the contents of an EnvEditor.
Overrides:
init in class EnvAppFrame
Parameters:
title - frame title
backgroundColor - color to paint background of environment
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum environment cell side length

defineContent

protected void defineContent(java.awt.Color bgColor,
                             int viewingWidth,
                             int viewingHeight,
                             int minCellSize)
Defines contents of main window panel. Should be redefined in subclasses that require panels other than (or in addition to) an editing palette, a display, and a Done button.
Overrides:
defineContent in class EnvAppFrame
Parameters:
backgroundColor - color to paint background of environment
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum environment cell side length

makeDisplay

protected ScrollableEnvDisplay makeDisplay(int width,
                                           int height,
                                           int minCellSize,
                                           java.awt.Color bgColor)
Creates the environment display.
Overrides:
makeDisplay in class EnvAppFrame
Parameters:
width - the width of the viewing area
height - the height of the viewing area
minCellSize - minimum environment cell side length
backgroundColor - color to paint background of environment
Returns:
a scrollable environment display

done

protected void done()
Leaves the editor, returning to the parent frame.

makeEditingPalette

protected java.awt.Component makeEditingPalette()
Creates the editing palette.

fillPalette

protected void fillPalette(javax.swing.JToolBar palette)
Puts tools for choosing environment object attributes in the editing palette, in particular a Type tool for choosing the type of environment object. Subclasses can redefine this method to put other types of components, such as a color choice combo box, in the palette.

makeTypeChoiceComponent

protected java.awt.Component makeTypeChoiceComponent()
Makes the environment object type choice combo box.

addChoicesFromFactory

protected void addChoicesFromFactory(javax.swing.JComboBox cb)
Builds up the list of environment object type choices for the editing palette.

chooseEnvObjType

protected void chooseEnvObjType()
Follows up when the user picks a new choice from the environment object combo box (specified listener action).

currentEnvObjectClass

protected java.lang.Class currentEnvObjectClass()
Returns the currently selected environment object class.

editAtLocation

protected void editAtLocation(java.awt.event.MouseEvent evt)
Makes an object in the location indicated by the mouse event. Using the location under the mouse, either add or remove an object in that location.

editAtLocation

protected void editAtLocation(Location loc)
Using the location under the mouse, either add or remove an object in that location.

makeObject

protected void makeObject(java.lang.Class cls,
                          Environment env,
                          Location loc)
Constructs the specified type of object. In subclasses that use the color combo box, this method could be redefined to call the four-parameter makeObject method, passing it the current color from the combo box.
Parameters:
cls - the type of object to create
env - the environment in which to create the object
loc - the location at which to create the object

makeObject

protected void makeObject(java.lang.Class cls,
                          Environment env,
                          Location loc,
                          java.awt.Color color)
Constructs the specified type of object.
Parameters:
cls - the type of object to create
env - the environment in which to create the object
loc - the location at which to create the object
color - the color of the new object (some objects may ignore this)

reportConstructionError

protected void reportConstructionError(java.lang.Class cls,
                                       java.lang.Exception e,
                                       java.lang.String string)
Reports an error from attempting to construct an object.
Parameters:
cls - the class of the failed object
e - the exception thrown by the attempt
string - string describing parameter types used in attempt

Generic Environment GUI Class Library

Copyright© 2003 Alyce Brady