package Controller; public interface ModelInViewInterface { public String parseAndExecute(String command); public void setTurtleImage(String image); } package Controller; public class SlogoController { public SlogoController() public SlogoView getView() } public class Main extends Application { public void start(Stage primaryStage) throws Exception } package Model; public class Calculator { public double sum(double a, double b) public double difference(double a, double b) public double product(double a, double b) public double quotient(double a, double b) public double minus(double a) public double random(double max) public double sin(double degrees) public double cos(double degrees) public double tan(double degrees) public double atan(double degrees) public double log(double a) public double pow(double a, double b) public double pi() public double less(double a, double b) public double greater(double a, double b) public double equal(double a, double b) public double notEqual(double a, double b) public double and(double a, double b) public double or(double a, double b) public double not(double a) } package Model; public class Enclosure implements Observable{ public Enclosure(double maxX, double maxY) public double forward(double dist) public double back(double dist) public double right(double degrees) public double left(double degrees) public double setHeading(double degrees) public double towards(double x, double y) public double goTo(double x, double y) public double penDown() public double penUp() public double showTurtle() public double hideTurtle() public double home() public double clearScreen() public double xCor() public double yCor() public double heading() public double isPenDown() public double isShowing() public void addListener(EnclosureObserver v) public void removeListener(EnclosureObserver v) public void setTurtleImage(String image) } package Model; public interface EnclosureObserver { abstract public void addTurtle(TurtleView t); abstract public void removeTurtle(TurtleView t); abstract public void moveTurtle(TurtleView t); abstract public void addLine(LineModel l); abstract public void removeLine(LineModel l); } package Model; public class Line { public Line(Point start, Point end, Color color) public Point getStart() public Point getEnd() public Color getColor() } package Model; public class LineModel { public LineModel(Point start, Point end, Color color) public Point getStart() public Point getEnd() public Color getColor() } package Model; public interface Observable { abstract public void addListener(EnclosureObserver v); abstract public void removeListener(EnclosureObserver v); } package Model; public class Point { public Point(Number x, Number y) public double getX() public double getY() public void setLocation(Number x, Number y) public double euclideanDistance(Point p) public double headingTo(Point p) } package Model; public class SlogoModel implements ModelInViewInterface{ public SlogoModel(EnclosureObserver e, double enclosureMaxX, double enclosureMaxY) public void setTurtleImage(String image) public String parseAndExecute(String command) public double forward(double distance) public double back(double distance) public double left(double degrees) public double right(double degrees) public double setHeading(double degrees) public double towards(double x, double y) public double goTo(double x, double y) public double penDown() public double penUp() public double showTurtle() public double hideTurtle() public double home() public double clearScreen() public double xCor() public double yCor() public double heading() public double isPenDown() public double isShowing() public double sum(double a, double b) public double difference(double a, double b) public double product(double a, double b) public double quotient(double a, double b) public double minus(double a) public double random(double max) public double sin(double degrees) public double cos(double degrees) public double tan(double degrees) public double atan(double degrees) public double log(double a) public double pow(double a, double b) public double pi() public double less(double a, double b) public double greater(double a, double b) public double equal(double a, double b) public double notEqual(double a, double b) public double and(double a, double b) public double or(double a, double b) public double not(double a) public double set(String name, double val) public double get(String name) } package Model; public class TreeExecutor { public TreeExecutor(String commands, String syntax) public double[] exec(ExpressionTree e, SlogoModel model) } package Model; public class Turtle implements TurtleModel, TurtleView{ public Turtle() public double getHeading() public double setHeading(double radians) public double getX() public double getY() public boolean isDrawing() public void setLocation(double newX, double newY) public Color getPenColor() public void setPenColor(Color c) public Point getCurrentLocation() public double getCurrentHeading() public Point getPreviousLocation() public double getPreviousHeading() public String getImagePath() public TurtleView toTurtleView() public void setVisibility(boolean b) public void setPen(boolean b) public boolean getPenDown() public boolean getVisibility() public void setTurtleImage(String image) } package Model; public interface TurtleModel { abstract public double getHeading(); abstract public double setHeading(double radians); abstract public double getX(); abstract public double getY(); abstract public void setLocation(double newX, double newY); abstract public boolean isDrawing(); abstract public void setPen(boolean b); abstract public boolean getPenDown(); abstract public Color getPenColor(); abstract public void setPenColor(Color c); abstract public Point getCurrentLocation(); abstract public Point getPreviousLocation(); abstract public TurtleView toTurtleView(); abstract public void setVisibility(boolean b); abstract public boolean getVisibility(); } package Model; public class VariableContainer { public VariableContainer() public double set(String name, double val) public double get(String name) } package parser; public class CommandParser { public CommandParser(String commandsFilePath) public String getSymbol(String text) } package parser; public class ExpressionNode { public ExpressionNode() public ExpressionNode(String command) public String getCommand() public void setCommand(String command) public List getChildren() public ExpressionNode getChild(int index) public void addChild(ExpressionNode child) public void setChild(int index, ExpressionNode child) public int getNumOfChildren() } package parser; public class ExpressionTree { public ExpressionTree(ExpressionNode root) public ExpressionNode getRoot() public void printTree() } package parser; public class InvalidCommandException extends Exception { public InvalidCommandException(String message) } package parser; public class MainParser { public MainParser(String commandResourcePath) public ExpressionTree getExpressionTreeFromCommand(String command) public ExpressionTree getExpressionTreeFromFile(String filePath) } package parser; public class ParserUtils { } package View; public class ChooseFile { public ChooseFile() public File chooseFile() } package View; public class ConsolePane extends BorderPane { public ConsolePane(ListView commandHistory, ModelInViewInterface mivinterface, ResourceBundle uilabel){ public ConsolePane(ListView commandHistory, ModelInViewInterface mivinterface, ResourceBundle uilabel) } package View; public class SidePane extends BorderPane { public SidePane() public ListView getCommandHistory() } package View; public class SlogoView extends BorderPane { public static final Dimension DEFAULT_SIZE = new Dimension(1000, 750); public SlogoView(String language) public void setModelInViewInterface(ModelInViewInterface vm) public void setConsolePane() public TurtlePane getTurtlePane() } package View; public class ToolBar extends HBox{ public ToolBar(ResourceBundle uilabel) } package View; public class TurtlePane extends Pane implements EnclosureObserver{ public TurtlePane() public void addTurtle(TurtleView t) public void removeTurtle(TurtleView t) public void moveTurtle(TurtleView t) public void addLine(LineModel l) public void removeLine(LineModel l) } package View; public interface TurtleView { abstract public Point getCurrentLocation(); abstract public double getCurrentHeading(); abstract public Point getPreviousLocation(); abstract public double getPreviousHeading(); abstract public String getImagePath(); abstract public void setTurtleImage(String image); } package View; public class UIFactory { public UIFactory(ResourceBundle uilabel) public ChoiceBox makeChoiceBox(ObservableList choices, String Type) public void promptAlert(String s, Exception e) } package View; public class UserManualPopup extends Application { public void start(Stage primaryStage) }