package aima.gui.swing.applications.robotics.components; import aima.gui.swing.applications.robotics.GenericMonteCarloLocalization2DApp; /** * This interface defines functionality for a GUI that manages the robot associated with the {@link GenericMonteCarloLocalization2DApp}. * * @author Arno von Borries * @author Jan Phillip Kretzschmar * @author Andreas Walscheid * */ public interface IRobotGui { /** * The string that is shown in the connect button by default. */ String DEFAULT_BUTTON_STRING = "Initialize Robot"; /** * Lets the robot class connect with or initialize/reset the actual robot. * @return true if the robot is ready for use. */ boolean initializeRobot(); /** * Lets the robot class close the connection with the actual robot. */ void destructRobot(); /** * Informs the user that the robot has to be initialized before the MCL can be used.<br/> * This will be called if the user loads a map and presses on any of the other buttons "Move", "Range Reading" or "Auto Locate" before initializing the robot. */ void notifyInitialize(); /** * Returns a string to be shown in the button that calls {@code initializeRobot()}.<br/> * If this method is not used, return this instead: {@code return DEFAULT_BUTTON_STRING;} * @return a not null string. */ String getButtonString(); /** * Loads any values that have been stored to the properties file previously. * @param settingsGui the {@link Settings} from which the values will be loaded. */ void loadSettings(Settings settingsGui); /** * Saves all values to the properties file that are to be restored when loading the properties again. * @param settingsGui the {@link Settings} to which the values will be saved. */ void saveSettings(Settings settingsGui); }