001 package controller;
002
003 import model.ILambda;
004 import sysModel.ICmdFactory;
005 import sysModel.ISecurityAdapter;
006 import sysModel.env.AEnvFactory;
007
008 import java.awt.*;
009
010 /**
011 * Adapter to connect the environment controls and the model.
012 *
013 * @author Mathias Ricken
014 */
015 public interface IEnvAdapter {
016 /**
017 * Load environment from file.
018 *
019 * @param filename filename
020 *
021 * @return true if successful
022 */
023 boolean loadEnvironment(String filename);
024
025 /**
026 * Save environment to file.
027 *
028 * @param filename filename
029 *
030 * @return true if successful
031 */
032 boolean saveEnvironment(String filename);
033
034 /**
035 * Create environment from factory.
036 *
037 * @param factory factory
038 *
039 * @return true if successful
040 */
041 boolean createEnvironment(AEnvFactory factory);
042
043 /**
044 * Set the seed command. This command gets executed before a new environment is created or loaded.
045 *
046 * @param seedCmd command to set
047 */
048 void setSeedLambda(ILambda seedCmd);
049
050 /**
051 * Edit a field.
052 *
053 * @param p mouse coordinates
054 * @param button mouse button pressed
055 */
056 void edit(Point.Double p, int button);
057
058 /**
059 * Get a tool tip description for a specific place in the environment.
060 *
061 * @param p mouse coordinates
062 *
063 * @return tool tip text
064 */
065 String getToolTipText(Point.Double p);
066
067 /**
068 * Return an array of environment class names to be loaded at startup.
069 *
070 * @return array of class names
071 */
072 String[] getEnvironmentClassNames();
073
074 /**
075 * Return an array of fish class names to be loaded at startup.
076 *
077 * @return array of class names
078 */
079 String[] getFishClassNames();
080
081 /**
082 * Return the factory to make commands for the simulation driver.
083 *
084 * @return command factory
085 */
086 ICmdFactory getCmdFactory();
087
088 /**
089 * Return the security adapter.
090 *
091 * @return security adapter
092 */
093 ISecurityAdapter getSecurityAdapter();
094 }