public class SGVisualExplorer extends javax.swing.JFrame implements ShellObserver, WorldObserver
World
object)
by choosing actions for each of them to take in specific states. A game with registered agents in the world can also
be played out (with some or all of the agents being manually controlled). States are
conveyed to the user through a 2D visualization and the user specifies actions for each agent
by pressing keys that are mapped to actions or by typing the actions into the action command field. After each
action is specified, the corresponding joint action is taken by pressing a special finalizing key that by default is set to "c".
The ` key
causes the state to reset to the initial state provided to the explorer or the World
's
StateGenerator
. This explorer also associates itself with a SGWorldShell
so that additional commands can be given.
Keys can also be mapped to execute specific shell commands. You can access the shell with the
javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
java.awt.Container.AccessibleAWTContainer
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
ShellObserver.ShellCommandEvent
Modifier and Type | Field and Description |
---|---|
protected int |
cHeight |
protected javax.swing.JFrame |
consoleFrame |
protected int |
cWidth |
protected SGDomain |
domain |
protected java.util.Map<java.lang.String,Action> |
keyActionMap |
protected java.util.Map<java.lang.String,java.lang.Integer> |
keyAgentMap |
protected java.util.Map<java.lang.String,java.lang.String> |
keyShellMap |
protected Visualizer |
painter |
protected java.awt.TextArea |
propViewer |
protected SGWorldShell |
shell |
protected javax.swing.JTextArea |
stateConsole |
protected TextAreaStreams |
tstreams |
protected World |
w |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
SGVisualExplorer(SGDomain domain,
Visualizer painter,
State baseState)
Initializes the data members for the visual explorer.
|
SGVisualExplorer(SGDomain domain,
Visualizer painter,
State baseState,
int w,
int h)
Initializes the data members for the visual explorer.
|
SGVisualExplorer(SGDomain domain,
World world,
Visualizer painter,
int w,
int h)
Initializes the data members for the visual explorer.
|
Modifier and Type | Method and Description |
---|---|
void |
addKeyAction(java.lang.String key,
int actingAgent,
Action action)
Specifies the action to set for a given key press.
|
void |
addKeyAction(java.lang.String key,
int actingAgent,
java.lang.String actionTypeName,
java.lang.String paramStringRep)
Adds a key action mapping.
|
void |
addKeyShellCommand(java.lang.String key,
java.lang.String shellCommand)
Causes a shell command to be executed when a key is pressed with the visualizer in focus.
|
void |
gameEnding(State s)
This method is called whenever a game in a world ends.
|
void |
gameStarting(State s)
This method is called whenever a new game in a world is starting.
|
SGWorldShell |
getShell()
Returns the
SGWorldShell associated with this visual explorer. |
World |
getW()
Returns the
World associated with this explorer. |
protected void |
init(SGDomain domain,
World world,
Visualizer painter,
int w,
int h)
Initializes.
|
void |
initGUI()
Initializes the GUI and presents it to the user.
|
void |
observe(State s,
JointAction ja,
double[] reward,
State sp)
This method is called whenever an interaction in the world occurs.
|
void |
observeCommand(BurlapShell shell,
ShellObserver.ShellCommandEvent event)
Received whenever a
ShellCommand completes execution. |
void |
setW(World w)
Sets the
World associated with this visual explorer and shell. |
protected void |
updatePropTextArea(State s) |
void |
updateState(State s)
Updates the currently visualized state to the input state.
|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected SGDomain domain
protected World w
protected java.util.Map<java.lang.String,Action> keyActionMap
protected java.util.Map<java.lang.String,java.lang.Integer> keyAgentMap
protected java.util.Map<java.lang.String,java.lang.String> keyShellMap
protected Visualizer painter
protected java.awt.TextArea propViewer
protected int cWidth
protected int cHeight
protected javax.swing.JFrame consoleFrame
protected javax.swing.JTextArea stateConsole
protected SGWorldShell shell
protected TextAreaStreams tstreams
public SGVisualExplorer(SGDomain domain, Visualizer painter, State baseState)
domain
- the stochastic game domain to be exploredpainter
- the 2D visualizer for statesbaseState
- the initial state from which to explorepublic SGVisualExplorer(SGDomain domain, Visualizer painter, State baseState, int w, int h)
domain
- the stochastic game domain to be exploredpainter
- the 2D visualizer for statesbaseState
- the initial state from which to explorew
- the width of the state visualizerh
- the height of the state visualizerpublic SGVisualExplorer(SGDomain domain, World world, Visualizer painter, int w, int h)
domain
- the stochastic game domain to be exploredworld
- the world with which to interactpainter
- the 2D visualizer for statesw
- the width of the state visualizerh
- the height of the state visualizerprotected void init(SGDomain domain, World world, Visualizer painter, int w, int h)
domain
- the stochastic game domainworld
- the World
with which to interactpainter
- the state Visualizer
w
- the width of the state visualizerh
- the height of the state visualizerpublic void addKeyAction(java.lang.String key, int actingAgent, Action action)
key
- the key that will cause the action to be setactingAgent
- the id of the acting agentaction
- the action to set when the specified key is pressed.public void addKeyAction(java.lang.String key, int actingAgent, java.lang.String actionTypeName, java.lang.String paramStringRep)
key
- the key that is pressed by the useractingAgent
- the acting agent for this commandactionTypeName
- the name of the ActionType
paramStringRep
- the string representation of the action parameterspublic SGWorldShell getShell()
SGWorldShell
associated with this visual explorer.SGWorldShell
associated with this visual explorer.public World getW()
World
associated with this explorer.World
associated with this explorer.public void setW(World w)
World
associated with this visual explorer and shell.w
- the World
associated with this visual explorer and shell.public void addKeyShellCommand(java.lang.String key, java.lang.String shellCommand)
key
- the keyshellCommand
- the shell command to execute.public void initGUI()
public void observeCommand(BurlapShell shell, ShellObserver.ShellCommandEvent event)
ShellObserver
ShellCommand
completes execution.observeCommand
in interface ShellObserver
shell
- the calling BurlapShell
event
- the command event, stored as a ShellObserver.ShellCommandEvent
public void gameStarting(State s)
WorldObserver
gameStarting
in interface WorldObserver
s
- the state in which the world is starting.public void observe(State s, JointAction ja, double[] reward, State sp)
WorldObserver
observe
in interface WorldObserver
s
- the previous state of the worldja
- the joint action taken in the worldreward
- the joint reward received by the agentssp
- the next state of the worldpublic void gameEnding(State s)
WorldObserver
gameEnding
in interface WorldObserver
s
- the final state of the world when it ends.public void updateState(State s)
s
- the state to visualize.protected void updatePropTextArea(State s)