haifa.shopsim.UI
Class UserGUIAlgorithm

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--haifa.shopsim.UI.UserGUIAlgorithm
All Implemented Interfaces:
javax.accessibility.Accessible, GUIAlgorithm, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, ShopAlgorithm

public class UserGUIAlgorithm
extends javax.swing.JPanel
implements GUIAlgorithm

The GUIAlgorithm is actually not an algorithm, but a user control through which the user may be asked to control the shops at discrete simulation epochs.

Version:
1.1
See Also:
Serialized Form

Inner Class Summary
(package private)  class UserGUIAlgorithm.OperationButtonL
           
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  javax.swing.JButton askAgainButton
           
private  boolean askAgainClicked
           
(package private)  java.util.HashMap buttonMap
          The keys are buttons and the values are operations.
(package private)  javax.swing.JLabel commandLabel
          A reference to the label on which commands to the user are to be displayed.
(package private)  javax.swing.JPanel leftPanel
           
(package private)  java.io.PrintWriter log
          log.
(package private)  javax.swing.JPanel mainPanel
           
private  Operation nextOperation
           
private  boolean quitFlag
           
(package private)  javax.swing.JButton restButton
          The "rest" button.
private  boolean restClicked
           
(package private)  javax.swing.JPanel[] routePanels
          Horizontal panels, one for each route.
(package private)  ShopData shopData
          A reference to the shopData object.
(package private)  ShopSimulation shopSimulation
           
(package private)  ShopState shopState
          A reference to the ShopState object.
(package private)  javax.swing.JPanel stepsPanel
          The panel that holds all of the routes.
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
(package private) UserGUIAlgorithm(ShopData shopData_, javax.swing.JLabel commandLabel_)
          Constructor.
 
Method Summary
 java.lang.String explanationString()
          Returns a string telling a little bit about what the algorithm does.
 java.lang.String getAlgorithmName()
          Returns a name of the algorithm.
 boolean isDeterministic()
          Returns false since the user's actions are not specified in the algorithm.
 boolean quitCalled()
          Returns true when the algorithm decided that it is time to quit.
 void reset()
          Resets the algorithm.
 void setEnabled(boolean enabled)
          Tells the algorithm that it is ready for inquiry by the algorithm client (kernel).
private  void setEnabledDisabled(int machineNumber)
           
 void setLog(java.io.PrintWriter log_)
          The algorithm writes decision information to the log.
 void setShopData(ShopData shopData_)
          Set the algorithm's shopData object, this is a reference for the general topology of the job shop and for processing times.
 void setShopSimulationObject(ShopSimulation shopSimulation_)
          Set the algorithm's shop simulation object.
 void setShopStateObject(ShopState shopState_)
          Set the algorithm's ShopState object.
static java.lang.String StaticGetAlgorithmName()
           
 java.lang.String toString()
           
 ShopCommand whatNow(int machineNumber)
          Very simply reads a command from console and returns a ShopCommmand object.
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

shopState

ShopState shopState
A reference to the ShopState object.

shopSimulation

ShopSimulation shopSimulation

shopData

ShopData shopData
A reference to the shopData object.

log

java.io.PrintWriter log
log.

commandLabel

javax.swing.JLabel commandLabel
A reference to the label on which commands to the user are to be displayed.

buttonMap

java.util.HashMap buttonMap
The keys are buttons and the values are operations.

restButton

javax.swing.JButton restButton
The "rest" button.

askAgainButton

javax.swing.JButton askAgainButton

leftPanel

javax.swing.JPanel leftPanel

routePanels

javax.swing.JPanel[] routePanels
Horizontal panels, one for each route.

stepsPanel

javax.swing.JPanel stepsPanel
The panel that holds all of the routes.

mainPanel

javax.swing.JPanel mainPanel

nextOperation

private Operation nextOperation

restClicked

private boolean restClicked

askAgainClicked

private boolean askAgainClicked

quitFlag

private boolean quitFlag
Constructor Detail

UserGUIAlgorithm

UserGUIAlgorithm(ShopData shopData_,
                 javax.swing.JLabel commandLabel_)
Constructor.
Method Detail

setEnabled

public void setEnabled(boolean enabled)
Tells the algorithm that it is ready for inquiry by the algorithm client (kernel). .
Specified by:
setEnabled in interface GUIAlgorithm
Overrides:
setEnabled in class javax.swing.JComponent

setShopStateObject

public void setShopStateObject(ShopState shopState_)
Description copied from interface: ShopAlgorithm
Set the algorithm's ShopState object. The algorithm looks at this Object and makes decisions based on it whenever the whatNow message is called.
Specified by:
setShopStateObject in interface ShopAlgorithm

setShopSimulationObject

public void setShopSimulationObject(ShopSimulation shopSimulation_)
Description copied from interface: ShopAlgorithm
Set the algorithm's shop simulation object. The algorithm may interact with a shop simulation object by giving it askAgainAtCurrentTime(machine number) signals.
Specified by:
setShopSimulationObject in interface ShopAlgorithm

setShopData

public void setShopData(ShopData shopData_)
Description copied from interface: ShopAlgorithm
Set the algorithm's shopData object, this is a reference for the general topology of the job shop and for processing times.
Specified by:
setShopData in interface ShopAlgorithm

setLog

public void setLog(java.io.PrintWriter log_)
Description copied from interface: ShopAlgorithm
The algorithm writes decision information to the log.
Specified by:
setLog in interface ShopAlgorithm

reset

public void reset()
Description copied from interface: ShopAlgorithm
Resets the algorithm. This method may have various meaninings depending on the algorithm implemented. It must be called by the user of the algorithm, prior to every run. This user is the shop simulation object. The method must be called as late as possible (that is after all refrences have been set.)
Specified by:
reset in interface ShopAlgorithm

quitCalled

public boolean quitCalled()
Returns true when the algorithm decided that it is time to quit.

explanationString

public java.lang.String explanationString()
Description copied from interface: ShopAlgorithm
Returns a string telling a little bit about what the algorithm does.
Specified by:
explanationString in interface ShopAlgorithm

isDeterministic

public boolean isDeterministic()
Returns false since the user's actions are not specified in the algorithm.
Specified by:
isDeterministic in interface ShopAlgorithm

StaticGetAlgorithmName

public static java.lang.String StaticGetAlgorithmName()

getAlgorithmName

public java.lang.String getAlgorithmName()
Description copied from interface: ShopAlgorithm
Returns a name of the algorithm.
Specified by:
getAlgorithmName in interface ShopAlgorithm

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

setEnabledDisabled

private void setEnabledDisabled(int machineNumber)

whatNow

public ShopCommand whatNow(int machineNumber)
Very simply reads a command from console and returns a ShopCommmand object.
Specified by:
whatNow in interface ShopAlgorithm