public class MainFrame extends JFrame implements ISimulationStateObserver, UserInterface, IAgentMonitorListener, IAgentManagerListener
Main GUI window of the test framework.
Most of the elements are generated automatically by the Jigloo GUI builder in the createGUI() method.
Note: Currently, most of the listeners are added manually in the registerGUIListeners() method. This makes the code easier to navigate in my opinion, because they're all in one place. It could be changed to add them automatically in the GUI editor, but the events should not be handled inline (they should still just call a handler method in this class)
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
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
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
MainFrame(RobocupServerAddress robocupAddress) |
Modifier and Type | Method and Description |
---|---|
void |
agentAdded(AgentJim agent)
Called when a new agent has been added to the agent manager.
|
void |
agentOutputLine(AgentJim agent,
String line)
Called for every line of text that the agent writes to its standard output.
|
void |
agentRemoved(AgentJim agent)
Called when a locally connected agent has been removed.
|
protected void |
btnAddAgentClicked(ActionEvent evt) |
protected void |
btnAgentMonitorClicked(ActionEvent evt) |
protected void |
btnAnnotateClicked(ActionEvent evt) |
protected void |
btnApplyGraphicalClicked(ActionEvent evt) |
protected void |
btnClearLogClicked(ActionEvent evt) |
protected void |
btnConnectClicked(ActionEvent evt) |
protected void |
btnReloadXmlClicked(ActionEvent evt) |
protected void |
btnRemoveAgentClicked(ActionEvent evt) |
protected void |
btnReplanClicked(ActionEvent evt) |
protected void |
btnSetAgentPosClicked(ActionEvent evt) |
protected void |
btnSetBallPosClicked(ActionEvent evt) |
protected void |
btnTestCaseClicked(ActionEvent evt) |
protected void |
comboAgentOutSelected(ActionEvent evt) |
private void |
createGUI()
Creates all the GUI elements.
|
private String |
format(double d)
Convenience method.
|
private Point3D |
getPoint3D(String text)
Parses string in x:y:z format to a 3D point
|
protected void |
logLevelChanged(ActionEvent evt) |
protected void |
onWindowClosing() |
void |
receivedMessage(int uniform,
String team,
AgentMonitorMessage message) |
private void |
registerGUIListeners()
Registers listeners for all of the window's elements
|
void |
registerMonitor()
Starts/stops the monitoring of the server by the test framework
|
boolean |
shoudExitOnEmptyQueue() |
void |
start() |
void |
testFinished(TestCaseResult result)
Upon finishing a test case, resets the state and makes it possible to run a new one
|
void |
update()
Updates the displayed simulation data.
|
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
private static final long serialVersionUID
private RobocupMonitor monitor
private RobocupServer trainer
private RobocupServerAddress serverAddress
private MeasurableInformation atStart
private boolean firstUpdate
private boolean isTestRunning
private Logger logger
private boolean monitorState
private boolean waitingForAgent
private String awaitedAgent
private final ButtonGroup logLevelGroup
private JButton btnClearLog
private JButton btnApplyGraphical
private JTextField txtUpdateInterval
private JComboBox comboWmAgent
private JComboBox comboWmData
private JLabel jLabel10
private JLabel jLabel9
private JPanel tabGraphicalSettings
private GameView gameView
private JPanel tabGraphical
private JButton btnAgentMonitor
private JComboBox comboTestCase
private JTextField txtPlanName
private JLabel jLabel8
private JButton btnRemoveAgent
private JButton btnReloadXml
private JButton btnReplan
private JComboBox comboAgentControl
private JPanel panelAgentControl
private JScrollPane scrollAgentOut
private JTextArea txtAgentOut
private JComboBox comboAgentOut
private JPanel panelAgentOut
private JComboBox comboAgentPos
private JComboBox comboTeam
private JButton btnAddAgent
private JButton btnSetBallPos
private JPanel panelControls
private JPanel monitoringSidebar
private JPanel panelAgent
private JPanel tabManageAgents
private JPanel panelBall
private JScrollPane scrollLogArea
private JScrollPane scrollLogLevel
private JScrollPane scrollJimInfo
private JButton btnTestCase
private JTextField txtAnnotX
private JPanel jPanel2
private JPanel jPanel1
private JTextArea txtJimInfo
private JTextArea txtLogArea
private JTextField txtBallPos
private JButton btnSetAgentPos
private JTextField txtAgentPos
private JButton btnConnect
private JTextField txtAnnotRadius
private JLabel jLabel2
private JLabel jLabel3
private JLabel jLabel4
private JLabel jLabel5
private JTextField txtAnnotLoops
private JLabel jLabel6
private JTextField txtAnnotDest
private JTextField txtAnnotMove
private JButton btnAnnotate
private JLabel jLabel1
private JTextField txtAnnotY
private JLabel jLabel7
private JPanel panelAddAgent
public MainFrame(RobocupServerAddress robocupAddress)
protected void onWindowClosing()
private void registerGUIListeners()
protected void btnApplyGraphicalClicked(ActionEvent evt)
protected void btnAgentMonitorClicked(ActionEvent evt)
protected void btnReloadXmlClicked(ActionEvent evt)
protected void btnReplanClicked(ActionEvent evt)
protected void btnRemoveAgentClicked(ActionEvent evt)
protected void comboAgentOutSelected(ActionEvent evt)
protected void btnAddAgentClicked(ActionEvent evt)
protected void btnClearLogClicked(ActionEvent evt)
protected void btnTestCaseClicked(ActionEvent evt)
protected void btnSetBallPosClicked(ActionEvent evt)
protected void btnAnnotateClicked(ActionEvent evt)
protected void btnSetAgentPosClicked(ActionEvent evt)
protected void btnConnectClicked(ActionEvent evt)
protected void logLevelChanged(ActionEvent evt)
private void createGUI()
public void testFinished(TestCaseResult result)
testFinished
in interface ITestCaseObserver
public void start()
start
in interface UserInterface
public boolean shoudExitOnEmptyQueue()
shoudExitOnEmptyQueue
in interface UserInterface
public void update()
update
in interface ISimulationStateObserver
private String format(double d)
public void registerMonitor()
private Point3D getPoint3D(String text) throws IllegalArgumentException
text
- the input stringIllegalArgumentException
- if the number of items isn't 3 or if they're not valid numberspublic void receivedMessage(int uniform, String team, AgentMonitorMessage message)
receivedMessage
in interface IAgentMonitorListener
public void agentAdded(AgentJim agent)
IAgentManagerListener
agentAdded
in interface IAgentManagerListener
public void agentRemoved(AgentJim agent)
IAgentManagerListener
Called when a locally connected agent has been removed.
TODO: Also call it when an externally launched agent disconnects.
agentRemoved
in interface IAgentManagerListener
public void agentOutputLine(AgentJim agent, String line)
IAgentManagerListener
agentOutputLine
in interface IAgentManagerListener