net.kolls.railworld.tc
Class MixControl

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 net.kolls.railworld.TrainControl
                      extended by net.kolls.railworld.tc.MixControl
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, javax.accessibility.Accessible, SaveLoad

public class MixControl
extends TrainControl

Allows two controllers to be mixed. One controller is used when the train is selected, the other controller is used when the train is not selected.

Author:
Steve Kollmansberger
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
 
Fields inherited from class net.kolls.railworld.TrainControl
_s, consist, length, myT, selected, speed, weight
 
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
MixControl()
          Create a default mix controller with no sub-controllers.
MixControl(TrainControl selected, TrainControl notSelected)
          Initialize with controllers.
 
Method Summary
 void attach(Train t)
          The consist report, weight, length, and speed are added to the panel, which is laid out using BoxLayout.
 void deselect()
          Called when the train is deselected.
 void fillConsist()
          Reset the consist.
 void load(java.util.Map<java.lang.String,java.lang.String> data)
          Load from saved.
 boolean process()
          Perform any processing needed before the display is to be updated.
 void run()
          This method should be overriden, but ensure that super is called to update the weight, speed, and length display.
 java.util.Map<java.lang.String,java.lang.String> save()
          Store all persistent data into a map and return for saving.
 void select()
          Called when the train is selected.
 void set(TrainControl selected, TrainControl notSelected)
          Set the train controllers to use.
 void setSelected(Car c)
          The user selected a car.
 void setTrainActionScriptNotify(ScriptManager s)
          Update the script manager notified about events.
 java.lang.String toString()
           
 
Methods inherited from class net.kolls.railworld.TrainControl
getSelected, getTrain, getTrainActionScriptNotify, newInstance
 
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, setEnabled, 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, isEnabled, 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, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MixControl

public MixControl(TrainControl selected,
                  TrainControl notSelected)
Initialize with controllers.

Parameters:
selected - The controller to use when selected
notSelected - THe controller to use when not selected

MixControl

public MixControl()
Create a default mix controller with no sub-controllers. For factory methods you need this. Followup with set(TrainControl, TrainControl)

Method Detail

fillConsist

public void fillConsist()
Description copied from class: TrainControl
Reset the consist. This should be called whenever a change has happened to the train. For example, if any cars are loaded or unloaded, the consist must be reset.

Overrides:
fillConsist in class TrainControl

attach

public void attach(Train t)
Description copied from class: TrainControl
The consist report, weight, length, and speed are added to the panel, which is laid out using BoxLayout. Deriving controllers may added additional controls to the panel.

Overrides:
attach in class TrainControl
Parameters:
t - The initial train.

setTrainActionScriptNotify

public void setTrainActionScriptNotify(ScriptManager s)
Description copied from class: TrainControl
Update the script manager notified about events.

Overrides:
setTrainActionScriptNotify in class TrainControl
Parameters:
s - The script manager to notify.

set

public void set(TrainControl selected,
                TrainControl notSelected)
Set the train controllers to use.

Parameters:
selected - Controller to use when train is selected
notSelected - Controller to use when train is not selected

deselect

public void deselect()
Description copied from class: TrainControl
Called when the train is deselected. May override but be sure to call super.

Overrides:
deselect in class TrainControl

select

public void select()
Description copied from class: TrainControl
Called when the train is selected. May override but be sure to call super.

Overrides:
select in class TrainControl

run

public void run()
Description copied from class: TrainControl
This method should be overriden, but ensure that super is called to update the weight, speed, and length display. This method should also update any other controls. This method is called in the AWT Event loop when TrainControl.process() says so

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class TrainControl

process

public boolean process()
Description copied from class: TrainControl
Perform any processing needed before the display is to be updated. This method is called every step in the game loop No GUI manipulation in this one, but if you changed something return true so that TrainControl.run() will be called to update the display

Overrides:
process in class TrainControl
Returns:
true if the GUI needs to be updated

setSelected

public void setSelected(Car c)
Description copied from class: TrainControl
The user selected a car.

Overrides:
setSelected in class TrainControl
Parameters:
c - The selected Car.

load

public void load(java.util.Map<java.lang.String,java.lang.String> data)
Description copied from interface: SaveLoad
Load from saved.

Parameters:
data - Key value pairs saved by an instance of this class

toString

public java.lang.String toString()
Specified by:
toString in interface SaveLoad
Overrides:
toString in class java.awt.Component
Returns:
Give the name of this type so it can be reconstructed by the factory.

save

public java.util.Map<java.lang.String,java.lang.String> save()
Description copied from interface: SaveLoad
Store all persistent data into a map and return for saving. May return null if there is no data to save. This will be treated the same as the empty map.

Returns:
A list of key-value pairs to be saved.