edu.neu.ccs.jpf
Class MethodGUI

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byedu.neu.ccs.gui.DisplayPanel
                      extended byedu.neu.ccs.gui.TablePanel
                          extended byedu.neu.ccs.jpf.MethodGUI
All Implemented Interfaces:
Accessible, AlertListener, ConsoleAware, Displayable, EventListener, ImageObserver, JPTConstants, MalformedDataListener, MenuContainer, Serializable, SwingConstants

class MethodGUI
extends TablePanel
implements JPTConstants, ConsoleAware

This class implements the GUI for a Method that is non-trivial, that is, has a return value and/or non-trivial parameters.

As of 2.5.0, uses requestObject rather than demandObject internally so a user may cancel evaluation if a parse error is detected while reading one of the method parameters.


Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
(package private)  JPFApplication application
          The associated JPFApplication.
protected  Action evaluate
          The evaluate action.
protected  JButton evaluateButton
          The evaluate button.
private static int gapSize
          The gap between cells in the GUI.
private static int maxCols
          The maximum number of columns.
protected  Method method
          The method used to define this MethodGUI.
private static int minTFVWidth
          The minimum text field view width.
protected  String name
          The method name.
protected  int orientation
          The MethodGUI orientation.
protected  PaintSwatch paintView
          The return view for Paint.
protected  String[] parameterTypeNames
          The parameter type names.
protected  Class[] parameterTypes
          The parameter types.
protected  TypedView[] parameterViews
          The parameter views.
protected  Class returnType
          The return type.
protected  String returnTypeName
          The return type name.
protected  TypedView returnView
          The return view for everything but Paint.
private static int swatchSize
          The size of a paint swatch.
private static int TFVWidth
          The text field view width.
 
Fields inherited from class edu.neu.ccs.gui.TablePanel
DEFAULT_ALIGNMENT, DEFAULT_ORIENTATION, tg
 
Fields inherited from class edu.neu.ccs.gui.DisplayPanel
background, codec, CODEC
 
Fields inherited from class javax.swing.JPanel
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface edu.neu.ccs.util.JPTConstants
ABOVE, ALIGNMENT, BELOW, BOTTOM_LEFT, BOTTOM_RIGHT, DEFAULT, FONT, INPUT_PROPERTIES, MANDATORY, OPTIONAL, ORIENTATION, TOP_LEFT, TOP_RIGHT, VALUE
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface edu.neu.ccs.console.ConsoleAware
console
 
Fields inherited from interface edu.neu.ccs.gui.Displayable
DEFAULT_VIEW_STATE, VIEW_STATE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected MethodGUI(JPFApplication application, Method method)
          Constructs the MethodGUI using the given Method.
protected MethodGUI(JPFApplication application, Method method, int orientation)
          Constructs the MethodGUI using the given Method and orientation.
 
Method Summary
protected  void buildHorizontalGUI()
          Install the views in the GUI using a horizontal arrangement.
protected  void buildParameterViews()
          Build the array of views for the method parameters.
protected  void buildReturnView()
          Build the view for the return value.
protected  void buildTable()
          Build the GUI TablePanel.
protected  void buildVerticalGUI()
          Install the views in the GUI using a vertical arrangement.
protected  JComponent createActionIcon()
           
protected  void createEvaluate()
          Create the evaluate action for the Evaluate button in the GUI.
protected  JComponent createInputIcon()
           
protected  JComponent createOutputIcon()
           
protected  void createReturnView(Class c)
          Return a typed view appropriate for the given class that is specific for return values.
protected  TypedView createView(Class c)
          Return a typed view appropriate for the given class that may do input or return values.
protected  void evaluate()
          The evaluate method executed by the evaluate action.
protected  void evaluateVoid()
          The evaluate method in the case of void return.
protected  void evaluateWithReturn()
          The evaluate method in the case of non-void return.
protected  void extractInformation()
          Extract the important information about the method.
protected  Object extractParameterValue(TypedView view, Class c)
          Return the user input as an object from the typed view being used to obtain data for the given class.
protected  Object[] extractParameterValues()
          Return the array of user input values from the parameter views.
protected  String getErrorPrompt(Class c)
          Return an error prompt customized for the given class.
protected  Object getReturnView()
          Return the current view for the return type object.
protected  void setSizeParameters()
          Set the text field view width and the maximum columns.
protected  void showReturnValue(Object value)
          Display the return value in the return view.
 
Methods inherited from class edu.neu.ccs.gui.TablePanel
addObject, addObject, autoEmptyBorder, createCells, getCellAlignment, getCellAlignment, getColumnAlignment, getColumnCount, getComponentTable, getEffectiveCellAlignment, getEffectiveCellAlignment, getHorizontalGap, getMaximumSize, getMinimumColumnWidth, getMinimumRowHeight, getMinimumSize, getOrientation, getPreferredSize, getRowAlignment, getRowCount, getTableAlignment, getTableEntry, getTableEntry, getTableGenerator, getTableLayout, getVerticalGap, isEmptyColumn, isEmptyRow, isValidColumn, isValidRow, removeCells, resetPreferredSize, setAllMinimumColumnWidths, setAllMinimumRowHeights, setCellAlignment, setCellAlignment, setColumnAlignment, setColumns, setHorizontalGap, setLayout, setMinimumColumnWidth, setMinimumRowHeight, setOrientation, setRowAlignment, setRows, setTableAlignment, setVerticalGap, uniformizeCellHeight, uniformizeCellSize, uniformizeCellWidth
 
Methods inherited from class edu.neu.ccs.gui.DisplayPanel
add, add, add, add, add, addBorder, addObject, addObject, addObject, addObject, bevelBorderLowered, bevelBorderLowered, bevelBorderLowered, bevelBorderLowered, bevelBorderLowered, bevelBorderRaised, bevelBorderRaised, bevelBorderRaised, bevelBorderRaised, bevelBorderRaised, compoundBorder, compoundBorder, dataMalformed, emptyBorder, emptyBorder, emptyBorder, endAlert, etchBorderLowered, etchBorderLowered, etchBorderLowered, etchBorderRaised, etchBorderRaised, etchBorderRaised, frame, frame, frame, frame, frame, frame, generalDialog, generalDialog, generalDialog, generalDialog, getCodec, getDefaultViewState, getDefaultViewStates, getDisplayables, getViewState, getViewStates, lineBorder, lineBorder, lineBorder, lineBorder, makeComponent, matteBorder, matteBorder, matteBorder, matteBorder, matteBorder, matteBorder, OKCancelDialog, OKCancelDialog, OKDialog, OKDialog, refreshComponent, remove, remove, removeAll, removeBorder, reset, sandwichBorder, setCodec, setDeepBackground, setDeepBackground, setDefaultViewState, setDefaultViewStates, setEnabled, setViewState, setViewStates, startAlert, titleBorder, titleBorder, titleBorder, titleBorder, titleBorder, titleBorder, titleBorder, titleBorder, uniformizeHeight, uniformizeSize, uniformizeWidth, YesNoCancelDialog, YesNoCancelDialog
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

application

JPFApplication application
The associated JPFApplication.


method

protected Method method
The method used to define this MethodGUI.


name

protected String name
The method name.


returnType

protected Class returnType
The return type.


returnTypeName

protected String returnTypeName
The return type name.


parameterTypes

protected Class[] parameterTypes
The parameter types.


parameterTypeNames

protected String[] parameterTypeNames
The parameter type names.


orientation

protected int orientation
The MethodGUI orientation.


parameterViews

protected TypedView[] parameterViews
The parameter views.


returnView

protected TypedView returnView
The return view for everything but Paint.


paintView

protected PaintSwatch paintView
The return view for Paint.


evaluate

protected Action evaluate
The evaluate action.


evaluateButton

protected JButton evaluateButton
The evaluate button.


minTFVWidth

private static int minTFVWidth
The minimum text field view width.


TFVWidth

private static int TFVWidth
The text field view width.


maxCols

private static int maxCols
The maximum number of columns.


gapSize

private static int gapSize
The gap between cells in the GUI.


swatchSize

private static int swatchSize
The size of a paint swatch.

Constructor Detail

MethodGUI

protected MethodGUI(JPFApplication application,
                    Method method)
Constructs the MethodGUI using the given Method.


MethodGUI

protected MethodGUI(JPFApplication application,
                    Method method,
                    int orientation)
Constructs the MethodGUI using the given Method and orientation.

Method Detail

extractInformation

protected void extractInformation()
Extract the important information about the method.


buildTable

protected void buildTable()
Build the GUI TablePanel.


buildVerticalGUI

protected void buildVerticalGUI()
Install the views in the GUI using a vertical arrangement.


buildHorizontalGUI

protected void buildHorizontalGUI()
Install the views in the GUI using a horizontal arrangement.


createView

protected TypedView createView(Class c)
Return a typed view appropriate for the given class that may do input or return values.


createReturnView

protected void createReturnView(Class c)
Return a typed view appropriate for the given class that is specific for return values.


buildParameterViews

protected void buildParameterViews()
Build the array of views for the method parameters.


buildReturnView

protected void buildReturnView()
Build the view for the return value. If the return type is assignable to Paint, then build a paint swatch otherwise call createView to build the TypedView return view.


getReturnView

protected Object getReturnView()
Return the current view for the return type object.


getErrorPrompt

protected String getErrorPrompt(Class c)
Return an error prompt customized for the given class.


createInputIcon

protected JComponent createInputIcon()

createActionIcon

protected JComponent createActionIcon()

createOutputIcon

protected JComponent createOutputIcon()

extractParameterValue

protected Object extractParameterValue(TypedView view,
                                       Class c)
                                throws CancelledException
Return the user input as an object from the typed view being used to obtain data for the given class.

Throws:
CancelledException

extractParameterValues

protected Object[] extractParameterValues()
                                   throws CancelledException
Return the array of user input values from the parameter views.

Throws:
CancelledException

showReturnValue

protected void showReturnValue(Object value)
Display the return value in the return view. For most types, this will display the result of the toString() method. Color and Paint are handled as a special case.


createEvaluate

protected void createEvaluate()
Create the evaluate action for the Evaluate button in the GUI.


evaluate

protected void evaluate()
The evaluate method executed by the evaluate action.


evaluateVoid

protected void evaluateVoid()
The evaluate method in the case of void return.


evaluateWithReturn

protected void evaluateWithReturn()
The evaluate method in the case of non-void return.


setSizeParameters

protected void setSizeParameters()
Set the text field view width and the maximum columns.