dLife Home Page

dlife.robot.gui.controlcenter.editor
Class CodeEditorDisplay

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by dlife.gui.GUIPanel
                      extended by dlife.robot.gui.DeviceDisplay
                          extended by dlife.robot.gui.controlcenter.editor.CodeEditorDisplay
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Observer, Accessible

public class CodeEditorDisplay
extends DeviceDisplay

A DeviceDisplay for editing/compiling code. This is built as a DeviceDisplay so that it can be placed in a tab in the ControlCenter. This class delegates the editor tasks to the TabbedCodeEditor and manages the contents of the error list itself. This class allows ActionListeners to register to receive ActionEvents when an editor tab containing a dlife.robot.Controller sub-class is double clicked.

Version:
Dec 15, 2010
Author:
Grant Braught, Dickinson College
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class dlife.robot.gui.DeviceDisplay
myDevice
 
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.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CodeEditorDisplay(String dataFileBase)
          Create a new CodeEditorDisplay.
 
Method Summary
 void addActionListener(ActionListener al)
          Register an ActionListener to receive an ActionEvent if a tab containing a sub-class of dlife.robot.Controller is double clicked.
protected  void buildGUI()
          All concrete subclasses must implement this method and use it to build their GUI.
protected  void disableGUI()
          Does nothing.
protected  void enableGUI()
          Does nothing.
 String getGUIName()
          Return "Code" as the name of this display.
 boolean hasUnsavedModifications()
          Check if the editor contains any files with modifications that have not yet been saved.
static void main(String[] args)
          Test method that displays a CodeEditorDisplay.
 void removeActionListener(ActionListener al)
          Remove a registered ActionListener.
 void removeAllActionListeners()
          Remove all of the registered ActionListeners.
 boolean showCancelQuitDialog()
          Display a dialog box giving the user the option to cancel a quit operation because there was unsaved data in the code editor tab.
protected  void updateGUIFromDevice()
          Does nothing.
 
Methods inherited from class dlife.robot.gui.DeviceDisplay
getContentPanel, isActive, isEnabled, replaceContentPanel, setActive, setEnabled, update
 
Methods inherited from class dlife.gui.GUIPanel
invokeBuildGUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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
 

Constructor Detail

CodeEditorDisplay

public CodeEditorDisplay(String dataFileBase)
Create a new CodeEditorDisplay.

Parameters:
dataFileBase - the path where the data files for storing the state of the editor between sessions should be saved. This path should contain a trailing /
Method Detail

buildGUI

protected void buildGUI()
Description copied from class: GUIPanel
All concrete subclasses must implement this method and use it to build their GUI. However, the subclasses should not invoke this method directly. Rather they should invoke the inherited invokeBuildGUI method which ensures that the GUI construction occurs on the event dispatch thread (as is the Java way!).

Specified by:
buildGUI in class GUIPanel

disableGUI

protected void disableGUI()
Does nothing.

Specified by:
disableGUI in class DeviceDisplay

enableGUI

protected void enableGUI()
Does nothing.

Specified by:
enableGUI in class DeviceDisplay

getGUIName

public String getGUIName()
Return "Code" as the name of this display.

Specified by:
getGUIName in class DeviceDisplay
Returns:
the name of the Device.

updateGUIFromDevice

protected void updateGUIFromDevice()
Does nothing.

Specified by:
updateGUIFromDevice in class DeviceDisplay

addActionListener

public void addActionListener(ActionListener al)
Register an ActionListener to receive an ActionEvent if a tab containing a sub-class of dlife.robot.Controller is double clicked. The ActionCommand of the received ActionEvent will contain the path to the file that was clicked.

Parameters:
al - the ActionListener to register.

removeActionListener

public void removeActionListener(ActionListener al)
Remove a registered ActionListener.

Parameters:
al - the ActionListener to remove.

removeAllActionListeners

public void removeAllActionListeners()
Remove all of the registered ActionListeners.


showCancelQuitDialog

public boolean showCancelQuitDialog()
Display a dialog box giving the user the option to cancel a quit operation because there was unsaved data in the code editor tab.

Returns:
true if the user elects to quit anyway.

hasUnsavedModifications

public boolean hasUnsavedModifications()
Check if the editor contains any files with modifications that have not yet been saved. This is useful to prompting the user before closing the editor and losing all of the modifications.

Returns:
true if one or more files have modifications that have not been saved.

main

public static void main(String[] args)
Test method that displays a CodeEditorDisplay.

Parameters:
args - none.

dLife Home Page