designtools
Class Workspace

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bydesigntools.Workspace
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class Workspace
extends javax.swing.JPanel

This class extends JPanel to provide the circuit diagram design workspace placed on the CircuitDiagramFrame.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
Workspace(javax.swing.JScrollPane container, javax.swing.JLabel statusBar)
          Workspace constructor.
 
Method Summary
 void addCircuitComponent(int type)
          Creates a new circuit component and sets the workspace into component insertion mode so that the user can place it on the workspace
 void cancelWireSegment()
          Removes the last point placed in the wire
 void createLabel()
          Creates a label component to add to the workspace.
 void deleteSelectedComponent()
          Called by the menu bar when Delete is clicked.
 void disconnectComponent(CircuitComponent comp)
          Removes wires connected to this component.
 void exitPlacementMode()
          Called if the pointer button in the toolbar is clicked.
static int getGridSize()
           
 java.util.ArrayList getInputs()
           
 java.util.ArrayList getOutputs()
           
 javax.swing.JLabel getStatusBar()
           
 java.util.ArrayList getWires()
           
 void moveSelectedComponent()
          Called by the menu bar when Move is clicked.
 void paintComponent(java.awt.Graphics g)
          Override paintComponent so that the background grid is drawn
 void renameSelectedComponent()
          Called by the menu bar when Rename is clicked.
 void selectComponent(CircuitComponent comp)
           
 void setWireColor(java.awt.Color colour)
          Sets the colour for the next wire to be drawn
 void setWiringMode(boolean mode)
          Sets wiring mode on or off.
static java.awt.Point snapToGrid(java.awt.Point mousePosition)
          Turn mouse pointer position into the position of the nearest grid point
 void unselectComponent()
          If any component or wire on the workspce is selected, unselect it
 
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, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, 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, 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, setEnabled, setFont, setForeground, 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, 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, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, 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
 

Constructor Detail

Workspace

public Workspace(javax.swing.JScrollPane container,
                 javax.swing.JLabel statusBar)
Workspace constructor.

Parameters:
container - The scrollpane which holds the workspace is needed so that it can correctly be handled when the workspace size needs increasing.
statusBar - Status bar passed so that info can be updated
Method Detail

paintComponent

public void paintComponent(java.awt.Graphics g)
Override paintComponent so that the background grid is drawn

Parameters:
g - Graphics object

addCircuitComponent

public void addCircuitComponent(int type)
Creates a new circuit component and sets the workspace into component insertion mode so that the user can place it on the workspace

Parameters:
type - Type of component to add (eg. CircuitComponent.AND)

createLabel

public void createLabel()
Creates a label component to add to the workspace. The user is first asked to provide label text


snapToGrid

public static java.awt.Point snapToGrid(java.awt.Point mousePosition)
Turn mouse pointer position into the position of the nearest grid point

Parameters:
mousePosition - Current mouse pointer position
Returns:
Local grid point

unselectComponent

public void unselectComponent()
If any component or wire on the workspce is selected, unselect it


selectComponent

public void selectComponent(CircuitComponent comp)

setWiringMode

public void setWiringMode(boolean mode)
Sets wiring mode on or off. If wiring mode is on clicking the workspace will start a wire

Parameters:
mode - True if workspace to be placed in wiring mode

exitPlacementMode

public void exitPlacementMode()
Called if the pointer button in the toolbar is clicked. Stop placing a component / drawing a wire


disconnectComponent

public void disconnectComponent(CircuitComponent comp)
Removes wires connected to this component. Typically this method will be called if a component is moved or deleted. As well as removing wires components connected to the component will need to be updated.

Parameters:
comp - The component to disconnect

getGridSize

public static int getGridSize()
Returns:
The grid size in pixels

getOutputs

public java.util.ArrayList getOutputs()
Returns:
Array list of output components

getInputs

public java.util.ArrayList getInputs()
Returns:
Array list of input components

getWires

public java.util.ArrayList getWires()
Returns:
Array list of Wires

getStatusBar

public javax.swing.JLabel getStatusBar()
Returns:
The status bar

deleteSelectedComponent

public void deleteSelectedComponent()
Called by the menu bar when Delete is clicked. Remove the selected component


moveSelectedComponent

public void moveSelectedComponent()
Called by the menu bar when Move is clicked. Move the selected component


renameSelectedComponent

public void renameSelectedComponent()
Called by the menu bar when Rename is clicked. Rename the component


setWireColor

public void setWireColor(java.awt.Color colour)
Sets the colour for the next wire to be drawn

Parameters:
colour - The colour

cancelWireSegment

public void cancelWireSegment()
Removes the last point placed in the wire