jfreerails.client.view
Class TrainScheduleJPanel

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 jfreerails.client.view.TrainScheduleJPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, View, WorldListListener

public class TrainScheduleJPanel
extends javax.swing.JPanel
implements View, WorldListListener

This JPanel displays a train's schedule and provides controls that let you edit it.

Author:
Luke Lindsay
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  javax.swing.JButton addStationJButton
           
(package private)  javax.swing.JMenu addWagonJMenu
           
(package private)  javax.swing.JMenuItem autoConsistJMenuItem
           
(package private)  javax.swing.JMenu changeConsistJMenu
           
(package private)  javax.swing.JMenuItem changeStation
           
(package private)  javax.swing.JMenuItem dontWaitJMenuItem
           
(package private)  javax.swing.JPopupMenu editOrderJPopupMenu
           
(package private)  javax.swing.JMenuItem engineOnlyJMenuItem
           
(package private)  javax.swing.JMenuItem gotoStationJMenuItem
           
(package private)  javax.swing.JScrollPane jScrollPane1
           
(package private)  javax.swing.JSeparator jSeparator1
           
(package private)  javax.swing.JSeparator jSeparator2
           
private  TrainOrdersListModel listModel
           
private static java.util.logging.Logger logger
           
private  ModelRoot modelRoot
           
(package private)  javax.swing.JMenuItem noChangeJMenuItem
           
(package private)  javax.swing.JList orders
           
(package private)  javax.swing.JButton priorityOrdersJButton
           
(package private)  javax.swing.JMenuItem pullUpJMenuItem
           
(package private)  javax.swing.JMenuItem pushDownJMenuItem
           
(package private)  javax.swing.JMenuItem removeAllJMenuItem
           
(package private)  javax.swing.JMenuItem removeLastJMenuItem
           
(package private)  javax.swing.JMenuItem removeStationJMenuItem
           
(package private)  javax.swing.JMenu removeWagonsJMenu
           
private  int scheduleID
           
(package private)  SelectStationJPanel selectStationJPanel1
           
(package private)  javax.swing.JPopupMenu selectStationJPopupMenu
           
private static long serialVersionUID
           
private  int trainNumber
           
(package private)  TrainOrderJPanel trainOrderJPanel1
           
private  RenderersRoot vl
           
(package private)  javax.swing.JMenu waitJMenu
           
(package private)  javax.swing.JMenuItem waitUntilFullJMenuItem
           
 
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
TrainScheduleJPanel()
           
 
Method Summary
private  void addStationJButtonActionPerformed(java.awt.event.ActionEvent evt)
           
private  void addWagon(int wagonTypeNumber)
           
private  void autoConsistJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void changeStationActionPerformed(java.awt.event.ActionEvent evt)
           
 void display(int newTrainNumber)
           
private  void dontWaitJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void enableButtons()
           
private  void engineOnlyJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  int getFirstStationID()
          Since stations can be removed, we should not assume that station 0 exists: this method returns the id of the first station that exists.
private  MutableSchedule getSchedule()
           
private  void gotoStationJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void initComponents()
          This method is called from within the constructor to initialize the form.
 void itemAdded(KEY key, int index, FreerailsPrincipal p)
           
 void itemRemoved(KEY key, int index, FreerailsPrincipal p)
           
 void listUpdated(KEY key, int index, FreerailsPrincipal p)
           
private  void noChange()
           
private  void noChangeJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void ordersKeyPressed(java.awt.event.KeyEvent evt)
           
private  void ordersMouseClicked(java.awt.event.MouseEvent evt)
           
private  void priorityOrdersJButtonActionPerformed(java.awt.event.ActionEvent evt)
           
private  void pullUpJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void pushDownJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void removeAllJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void removeAllWagons()
           
private  void removeLastJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void removeLastWagon()
           
private  void removeStationJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
private  void sendUpdateMove(MutableSchedule mutableSchedule)
           
private  void setAutoConsist()
           
 void setup(ModelRoot mr, RenderersRoot vl, javax.swing.Action al)
           
private  void setupWagonsPopup()
           
private  void setWaitUntilFull(boolean b)
           
private  void showSelectStation(MutableSchedule schedule, int orderNumber)
          Show the popup that lets the user select a station, called when a new scheduled stop is added and when an existing scheduled stop is changed.
private  void waitUntilFullJMenuItemActionPerformed(java.awt.event.ActionEvent evt)
           
 
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, 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, 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, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

logger

private static final java.util.logging.Logger logger

trainNumber

private int trainNumber

scheduleID

private int scheduleID

listModel

private TrainOrdersListModel listModel

modelRoot

private ModelRoot modelRoot

vl

private RenderersRoot vl

addStationJButton

javax.swing.JButton addStationJButton

addWagonJMenu

javax.swing.JMenu addWagonJMenu

autoConsistJMenuItem

javax.swing.JMenuItem autoConsistJMenuItem

changeConsistJMenu

javax.swing.JMenu changeConsistJMenu

changeStation

javax.swing.JMenuItem changeStation

dontWaitJMenuItem

javax.swing.JMenuItem dontWaitJMenuItem

editOrderJPopupMenu

javax.swing.JPopupMenu editOrderJPopupMenu

engineOnlyJMenuItem

javax.swing.JMenuItem engineOnlyJMenuItem

gotoStationJMenuItem

javax.swing.JMenuItem gotoStationJMenuItem

jScrollPane1

javax.swing.JScrollPane jScrollPane1

jSeparator1

javax.swing.JSeparator jSeparator1

jSeparator2

javax.swing.JSeparator jSeparator2

noChangeJMenuItem

javax.swing.JMenuItem noChangeJMenuItem

orders

javax.swing.JList orders

priorityOrdersJButton

javax.swing.JButton priorityOrdersJButton

pullUpJMenuItem

javax.swing.JMenuItem pullUpJMenuItem

pushDownJMenuItem

javax.swing.JMenuItem pushDownJMenuItem

removeAllJMenuItem

javax.swing.JMenuItem removeAllJMenuItem

removeLastJMenuItem

javax.swing.JMenuItem removeLastJMenuItem

removeStationJMenuItem

javax.swing.JMenuItem removeStationJMenuItem

removeWagonsJMenu

javax.swing.JMenu removeWagonsJMenu

selectStationJPanel1

SelectStationJPanel selectStationJPanel1

selectStationJPopupMenu

javax.swing.JPopupMenu selectStationJPopupMenu

trainOrderJPanel1

TrainOrderJPanel trainOrderJPanel1

waitJMenu

javax.swing.JMenu waitJMenu

waitUntilFullJMenuItem

javax.swing.JMenuItem waitUntilFullJMenuItem
Constructor Detail

TrainScheduleJPanel

public TrainScheduleJPanel()
Method Detail

initComponents

private void initComponents()
This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.


ordersKeyPressed

private void ordersKeyPressed(java.awt.event.KeyEvent evt)

autoConsistJMenuItemActionPerformed

private void autoConsistJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

changeStationActionPerformed

private void changeStationActionPerformed(java.awt.event.ActionEvent evt)

removeAllJMenuItemActionPerformed

private void removeAllJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

removeLastJMenuItemActionPerformed

private void removeLastJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

waitUntilFullJMenuItemActionPerformed

private void waitUntilFullJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

dontWaitJMenuItemActionPerformed

private void dontWaitJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

engineOnlyJMenuItemActionPerformed

private void engineOnlyJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

noChangeJMenuItemActionPerformed

private void noChangeJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

priorityOrdersJButtonActionPerformed

private void priorityOrdersJButtonActionPerformed(java.awt.event.ActionEvent evt)

addStationJButtonActionPerformed

private void addStationJButtonActionPerformed(java.awt.event.ActionEvent evt)

removeStationJMenuItemActionPerformed

private void removeStationJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

gotoStationJMenuItemActionPerformed

private void gotoStationJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

pushDownJMenuItemActionPerformed

private void pushDownJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

ordersMouseClicked

private void ordersMouseClicked(java.awt.event.MouseEvent evt)

pullUpJMenuItemActionPerformed

private void pullUpJMenuItemActionPerformed(java.awt.event.ActionEvent evt)

setup

public void setup(ModelRoot mr,
                  RenderersRoot vl,
                  javax.swing.Action al)
Specified by:
setup in interface View

display

public void display(int newTrainNumber)

enableButtons

private void enableButtons()

getSchedule

private MutableSchedule getSchedule()

getFirstStationID

private int getFirstStationID()
Since stations can be removed, we should not assume that station 0 exists: this method returns the id of the first station that exists.


setupWagonsPopup

private void setupWagonsPopup()

noChange

private void noChange()

setWaitUntilFull

private void setWaitUntilFull(boolean b)

setAutoConsist

private void setAutoConsist()

addWagon

private void addWagon(int wagonTypeNumber)

removeAllWagons

private void removeAllWagons()

removeLastWagon

private void removeLastWagon()

sendUpdateMove

private void sendUpdateMove(MutableSchedule mutableSchedule)

listUpdated

public void listUpdated(KEY key,
                        int index,
                        FreerailsPrincipal p)
Specified by:
listUpdated in interface WorldListListener

itemAdded

public void itemAdded(KEY key,
                      int index,
                      FreerailsPrincipal p)
Specified by:
itemAdded in interface WorldListListener

itemRemoved

public void itemRemoved(KEY key,
                        int index,
                        FreerailsPrincipal p)
Specified by:
itemRemoved in interface WorldListListener

showSelectStation

private void showSelectStation(MutableSchedule schedule,
                               int orderNumber)
Show the popup that lets the user select a station, called when a new scheduled stop is added and when an existing scheduled stop is changed.