package Controller; public class AnimalController implements Controller { public AnimalController() public void writeInputToFile(String input) public void handleInput() // public AnimalPane getActiveAnimalPane() // public void setActiveAnimalPane(AnimalPane currentAnimalPane) public AnimalPaneGUI getActiveAnimalPaneGUI() public void setActiveAnimalPaneGUI(AnimalPaneGUI currentAnimalPaneGUI) public void displayErrorDialog(String error) // public void addAnimalPane(Workspace workspace) } package Controller; public interface Controller { public void writeInputToFile(String input); public void handleInput(); public AnimalPaneGUI getActiveAnimalPaneGUI(); public void setActiveAnimalPaneGUI(AnimalPaneGUI currentAnimalPaneGUI); } package Controller.DataSetup; public class DataOutput { public DataOutput(String outputFileName, Map data) public void writeXML() } package Controller.DataSetup; public class DataSetup { public String getDataFilePath() public void setDataFilePath(String dataFilePath) public DataSetup(String dataFilePath) public DataSetup() public Document setUpDocumentToParse() throws ParserConfigurationException, SAXException, IOException public String readFileForTag(String tagName) public HashMap getGeneralInfo() public void setInitialStates() } package Controller; public class WriteFile { public WriteFile() public void writeToFile(String filePath, String content) } package ErrorHandling; public class ClassUndefinedException extends Exception{ public ClassUndefinedException(String message) } package ErrorHandling; public class InvalidLabelException extends Exception{ public InvalidLabelException(String message) } package ErrorHandling; public class InvalidParameterException extends Exception{ public InvalidParameterException(String message) } package Extra; public abstract class Command { public Command(String[] params) public abstract void logic(String[] params) throws InvalidParameterException; public void setName(String name) public boolean isNumber(String a) } package Extra; public class DoTimes extends Command { public DoTimes(String[] params) public void logic(String[] params) throws InvalidParameterException } package Extra; public class Library { public Library(HashSet classList){ public Method getMethod(String className, String methodName) throws ClassUndefinedException{ public HashMap> populateMethodToClass(HashSet classes){ public Library() public Library(HashSet classList) public void appendToClassSet(Class c) public Method getMethod(String className, String methodName) throws ClassUndefinedException public HashMap> populateMethodToClass(HashSet classes) public boolean isMethod(String methodName) } package Extra; public class Repeat extends Command { public Repeat (String[] params) public void logic (String[] params) throws InvalidParameterException } package Extra; public class Variable extends Command{ public Variable(String[] params) public HashMap getVariables() public void logic(String[] params) throws InvalidParameterException } package main; public class Main extends Application { public void start(Stage s) } package model.animal; public abstract class Animal extends Observable { public Animal() public Animal(double width, double height) public Animal(double width, double height, double x, double y) public abstract void update(); public abstract Animation getGif(); public double getWidth() public double getHeight() public double getX() public double getY() public double getHeading() public double getPen() public double getShowing() public StringProperty getXProperty() public StringProperty getYProperty() public int getId() public boolean getSelected() public abstract Image getImage(); public abstract ImageView getImageView(); public abstract String getImagePath(); public void setWidth(double width) public void setHeight(double height) public void setX(double x) public void setY(double y) public void setHeading(double heading) public void setPen(double pen) public void setShowing(double showing) public void setId(int ID) public void setSelected(boolean isSelected) public abstract void setImage(Image image); public abstract void setImageView(ImageView imageView); public abstract void setImagePath(String imagePath); public abstract Pen getActualPen(); } package model.animal; public class Turtle extends Animal { public Turtle() public Turtle(double width, double height) public Turtle(double width, double height, double x, double y) public Animation getGif() public void update() public Image getImage() public ImageView getImageView() public String getImagePath() public Pen getActualPen() public void setImage(Image image) public void setImageView(ImageView imageView) public void setImagePath(String imagePath) } package model; public class AnimalPane extends Observable implements Observer { public AnimalPane() public AnimalPane(Animal animal) public void addAnimal() public void addAnimal(Animal animal) public void update(Observable o, Object arg) public Map getMyAnimalMap() public List getMyCommandHistory() public Map getMyVariables() public List getCoordinateMap() public int getAnimalID() public void setMyAnimalMap(Map myAnimalMap) public void setMyCommandHistory(List myCommandHistory) public void setMyVariables(Map myVariables) public void setCoordinateMap(List coordinateMap) public void setAnimalID(int animalID) public List getMyAnimalList() public void setMyAnimalList(List myAnimalList) } package model.command.booleans.comparison; public abstract class BooleanComparison extends Command{ public BooleanComparison() public double compare(double expression1, double expression2) public double equal(double expression1, double expression2) } package model.command.booleans.comparison; public class Equal extends BooleanComparison { public Equal() public double run(Parameter[] params) } package model.command.booleans.comparison; public class Greater extends BooleanComparison { public Greater() public double run(Parameter[] params) } package model.command.booleans.comparison; public class Less extends BooleanComparison { public Less() public double run(Parameter[] params) } package model.command.booleans.comparison; public class NotEqual extends BooleanComparison { public NotEqual() public double run(Parameter[] params) } package model.command.booleans.logic; public class And extends BooleanLogic { public And() public double run(Parameter[] params) } package model.command.booleans.logic; public abstract class BooleanLogic extends Command{ public BooleanLogic() } package model.command.booleans.logic; public class Not extends BooleanLogic { public Not() public double run(Parameter[] params) } package model.command.booleans.logic; public class Or extends BooleanLogic { public Or() public double run(Parameter[] params) } package model.command; public abstract class Command { public Command() public abstract double run(Parameter[] params); public String getName() public double getNumParams() } package model.command.control.iteration; public class DoTimes extends Command { public DoTimes() public double run(Parameter[] params) } package model.command.control.iteration; public class For extends Command { public For() public double run(Parameter[] params) } package model.command.control.iteration; public class Repeat extends Command { public Repeat() public double run(Parameter[] params) } package model.command.control.selection; public class If extends Command { public If() public double run(Parameter[] params) } package model.command.control.selection; public class IfElse extends Command { public IfElse() public double run(Parameter[] params) } package model.command.control.variable; public class Make extends Command { public Make() public double run(Parameter[] params) } package model.command.control.variable; public class To extends Command { public To() public double run(Parameter[] params) } package model.command.math.arithmetic; public class Difference extends MathArithmetic { public Difference() public double run(Parameter[] params) } package model.command.math.arithmetic; public abstract class MathArithmetic extends Command { public MathArithmetic() public double sum(double expression1, double expression2) public double product(double expression1, double expression2) } package model.command.math.arithmetic; public class Minus extends MathArithmetic { public Minus() public double run(Parameter[] params) } package model.command.math.arithmetic; public class Product extends MathArithmetic { public Product() public double run(Parameter[] params) } package model.command.math.arithmetic; public class Quotient extends MathArithmetic { public Quotient() public double run(Parameter[] params) } package model.command.math.arithmetic; public class Remainder extends MathArithmetic { public double run(Parameter[] params) } package model.command.math.arithmetic; public class Sum extends MathArithmetic { public Sum() public double run(Parameter[] params) } package model.command.math.exponential; public class Log extends MathExponential { public Log() public double run(Parameter[] params) } package model.command.math.exponential; public abstract class MathExponential extends Command { public MathExponential() public double power(double base, double exponent) public double log(double expression) } package model.command.math.exponential; public class Power extends MathExponential { public Power() public double run(Parameter[] params) } package model.command.math.number; public class Pi extends Command { public Pi() public double run(Parameter[] params) } package model.command.math.number; public class Random extends Command { public Random() public double run(Parameter[] params) } package model.command.math.trigonometry; public class ArcTangent extends MathTrigonometry { public ArcTangent() public double run(Parameter[] params) } package model.command.math.trigonometry; public class Cosine extends MathTrigonometry { public Cosine() public double run(Parameter[] params) } package model.command.math.trigonometry; public abstract class MathTrigonometry extends Command { public MathTrigonometry() public double sin(double degrees) public double cos(double degrees) public double atan(double degrees) } package model.command.math.trigonometry; public class Sine extends MathTrigonometry { public Sine() public double run(Parameter[] params) } package model.command.math.trigonometry; public class Tangent extends MathTrigonometry { public Tangent () public double run(Parameter[] params) } package model.command; public class NewCommand extends Command { public NewCommand() public NewCommand(String commandName, String[] variableNames, Command[] commands, Parameter[][] parameters) public double run(Parameter[] params) public String getName() } package model.command; public class Parameter { public Parameter() public Parameter(Animal turtle) public Parameter(String name) public Parameter(double value) public Parameter(Object[] list) public Animal getAnimal() public String getName() public double getValue() public Object[] getList() public void setAnimal(Animal turtle) public void setName(String name) public void setValue(double value) public void setList(Object[] list) } package model.command; public class ProcessCommand { public double process(AnimalController ac, Animal turtle, ArrayList inputs) } package model.command.turtle.movement; public class Backward extends TurtleMovement { public Backward() public double run(Parameter[] params) } package model.command.turtle.movement; public class ClearScreen extends TurtleMovement { public ClearScreen() public double run(Parameter[] params) } package model.command.turtle.movement; public class Forward extends TurtleMovement { public Forward() public double run(Parameter[] params) } package model.command.turtle.movement; public class Home extends TurtleMovement { public Home() public double run(Parameter[] params) } package model.command.turtle.movement; public class SetXY extends TurtleMovement { public SetXY() public double run(Parameter[] params) } package model.command.turtle.movement; public abstract class TurtleMovement extends TurtleCommand { public TurtleMovement() public double move(Animal turtle, double pixels) public double moveTo(Animal turtle, double x, double y) } package model.command.turtle.pen; public class PenDown extends TurtlePen { public PenDown() public double run(Parameter[] params) } package model.command.turtle.pen; public class PenUp extends TurtlePen { public PenUp() public double run(Parameter[] params) } package model.command.turtle.pen; public abstract class TurtlePen extends TurtleCommand { public TurtlePen() public double penDown(Animal turtle, double pen) } package model.command.turtle.rotation; public class Left extends TurtleRotation { public Left() public double run(Parameter[] params) } package model.command.turtle.rotation; public class Right extends TurtleRotation { public Right() public double run(Parameter[] params) } package model.command.turtle.rotation; public class SetHeading extends TurtleRotation { public SetHeading() public double run(Parameter[] params) } package model.command.turtle.rotation; public class Towards extends TurtleRotation { public Towards() public double run(Parameter[] params) } package model.command.turtle.rotation; public abstract class TurtleRotation extends TurtleCommand { public TurtleRotation() public double turn(Animal turtle, double degrees, double left) public double turnTo(Animal turtle, double heading) public double turnTo(Animal turtle, double x, double y) } package model.command.turtle; public abstract class TurtleCommand extends Command { public TurtleCommand() } package model.command.turtle.visibility; public class HideTurtle extends TurtleVisibility { public HideTurtle() public double run(Parameter[] params) } package model.command.turtle.visibility; public class ShowTurtle extends TurtleVisibility { public ShowTurtle() public double run(Parameter[] params) } package model.command.turtle.visibility; public abstract class TurtleVisibility extends TurtleCommand { public TurtleVisibility() public double showTurtle(Animal turtle, double show) } package model.constant; public class Constant { public Constant() public Constant(double value) public double getValue() public void setValue(double value) } package model; public class DataSingleton { public static DataSingleton getInstance() public boolean containsVariable(String variableName) public void addVariable(Variable variable) public void changeVariable(String variableName, double value) public boolean containsCommand(String commandName) public void addCommand(Command command) public void changeCommand(String commandName, Command command) } package model.variable; public class Variable { public Variable() public Variable(String name) public Variable(String name, double value) public String getName() public double getValue() public void setName(String name) public void setValue(double value) } package Parsing; public class Constant extends Expression{ public Constant (String name, double val) public double getValue() } package Parsing; public class Dictionary { public Dictionary() } package Parsing; public abstract class Expression { public Expression(String name) public String toString() } package Parsing; public class ExpressionFactory { public Expression getInfo (String name, String type, Object obj) } package Parsing; public class ExpressionTree { public final Expression ROOT = new Constant("ROOT", 0); public ExpressionTree() public TreeNode buildTree (String[][] a) throws ClassNotFoundException, InvalidLabelException public Class getCommand (String input) throws ClassNotFoundException public int getParamCount (Class c) throws NoSuchFieldException, SecurityException public TreeNode buildNode (TreeNode parent, String name, String label) public ArrayList dfs() public void addPatterns (String syntax) public String getLabel (String text) public ArrayList reverse(ArrayList a) } package Parsing; public class Library { public Library() public Class getCommand(String input) } package Parsing; public class ListBrackets extends Expression{ public ListBrackets (String name) } package Parsing; public class Method extends Expression{ public Method (String name, Class method) public Class getMethod() } package Parsing; public class ParserRunner { public ParserRunner (String language, ProgramParser parser) public String[][] combineAllLines () throws FileNotFoundException public String[][] markDepth (String[][] input) throws NoSuchMethodException, SecurityException, public Object getParameterCount (String method) throws InstantiationException, public void toString (String[] a) public void addPatterns (String syntax) public double getCommandParamCount (String input) throws ClassNotFoundException, NoSuchFieldException, SecurityException public String getLabel (String text) } package Parsing; public class ProgramParser { public ProgramParser () public List> addPatterns (String syntax) public String getName (String text) public String getLabel (String text) public void setNames(String path) public void setLabels(String path) public List> getNames() public List> getLabels() } package Parsing; public class TreeNode { public TreeNode() public TreeNode(Expression expression, TreeNode parent) public void push(TreeNode a) public ArrayList getNeighbors() public TreeNode getParent() public String toString() } package Parsing; public class Variable extends Expression{ public Variable (String name) public String getName() } package Translator; public class BasicCommands { public void repeat(int numTimes, String methodName, String className) public BasicCommands() public void repeat(int numTimes, String methodName, String className) public void print(String text, Console console) } package View; public interface AbstractWorkspace { public void init(SlogoView view); public ComboBox createLanguageChooser(); public void populateGridWithAnimals(); public void createAnimalPane(); public void renderAnimalGrid(); public HBox createConsole(); public TextArea createConsoleArea(); } package View; public class AnimalPaneGUI implements Observer { public AnimalPaneGUI() public AnimalPaneGUI(AnimalPane animalPane) public void styleScrollPane() public void styleMyContainer() public void addAnimal(Animal animal) public AnimalPane getAnimalPane() public ScrollPane getScrollPane() public void setAnimalPane(AnimalPane animalPane) public void setScrollPane(ScrollPane pane) public List getMyAnimalList() public void setMyAnimalList(List myAnimalList) public Pane getMyContainer() public void setMyContainer(Pane myContainer) public void update(Observable o, Object arg) } package View.AnimatedGif; public class AnimatedAnimal{ public class AnimatedGif extends Animation { public class Animation extends Transition { public void start(Stage primaryStage) throws URISyntaxException public AnimatedAnimal(String image) public AnimatedAnimal() public Animation getAnimation() public void play() public void pause() public AnimatedGif(String filename, double durationMs) public Animation(Image[] sequence, double durationMs) public ImageView getView() } package View.AnimatedGif; public class GifDecoder { public GifFrame(BufferedImage im, int del) public int getDelay(int n) public int getFrameCount() public BufferedImage getImage() public int getLoopCount() public BufferedImage getFrame(int n) public Dimension getFrameSize() public int read(BufferedInputStream is) public int read(InputStream is) public int read(String name) } package View.helper; public class Animate { public void beginAnimation(AnimalPaneGUI animalPaneGUI) public void changeAnimalVisibility(ImageView animalImage, Coordinate coordinate) } package View.helper; public class AutoCompleteListener extends KeyAdapter{ } package View.helper; public class Buttons extends Observable { public Buttons(Controller controller) public VBox createConsoleInputButtons(Console console, GenericPane pane, SlogoView slogoView) public String getCurrentCommand() } package View.helper; public class Console { public Console() public Console(TextArea area) public void initConsole() public void writeToConsole(String text) public String getInput() public void clearConsole() public TextArea getConsoleArea() } package View.helper; public class Coordinate { public Coordinate(double x, double y, double heading, double pen, double showing) public double getX() public double getY() public double getHeading() public void setX(double x) public void setY(double y) public void setHeading(double heading) public double getPen() public double getShowing() public void setPen(int pen) public void setShowing(int showing) } package View.helper; public class DisplayVariable implements Observer { public DisplayVariable(String label, StringProperty animalProperty) public HBox getContainer() public double getValue() public Label getLabel() public void setLabel(String label) public void setValue(double value) public void update(Observable o, Object arg) } package View.helper; public class Graphics { public DisplayVariable createDisplayVariable(String label, StringProperty animal) public Image createImage(String imageLocation) public ImageView createImageView(Image image) public void setBackgroundImage(Group root, String imageLocation) public void setBackgroundImage(Group root, String imageLocation, double width, double height) public void setImageViewParams(ImageView image, double x, double y, double width, double height) public void setImageViewParams(ImageView image, double x, double y) public Button createButton(String label) public Button createButton(String label, int x, int y) public VBox createVBoxPane(int width, int height) public VBox createVBoxPane(int width, int height, Insets insets) public Text createText(Group root, double x, double y, String text) public void setTextAttributes(Text text, Color color, Font font, String id) public BorderPane createBorderPane(Group root, int width, int height) public Rectangle createRectCell(double x, double y, double width, double height, Color stroke, Color fill) public TextArea createConsoleTextArea(double width, double height) public ComboBox createComboBox(String[] languages) } package View.helper; public class Pen implements Observer { public Pen() public Pen(double x, double y) public void createLine(double x, double y) public int getCounter() public void incrementCounter() public List getLineList() public void update(Observable o, Object arg) public String decodeColor(String color) } package View.helper; public class PenColor extends Observable { public PenColor() public HBox getContainer() public ComboBox getComboBox() } package View.helper; public class SceneManager { public SceneManager() public Group setupNewScene(String title, double width, double height) } package View.helper; public class SLogoMath { public SLogoMath() public double sum(double expression1, double expression2) public double difference(double expression1, double expression2) public double product(double expression1, double expression2) public double quotient(double expression1, double expression2) public double minus(double expression) 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 expression) public double pow(double base, double exponent) public double pi() } package View.helpscreen; public class HelpScreen { public HelpScreen() public void displayHelp() } package View; public class HomeSelection { public HomeSelection(Stage s) public void initHomeScreen() public String getFileName() } package View; public class SlogoView { public SlogoView() public SlogoView(String title, String backgroundColor, String language) public Scene init() public ArrayList getWorkspaces() public void setBackgroundColor(String color) public Workspace getCurrentWorkspaceLeftPane() public void createNewWorkSpace() public Map parseWorkspaceData() public Scene getScene() public TabPane getMainView() } package View.tabs; public class CommandHistoryPane implements ListViewPane, GenericPane { public CommandHistoryPane(Console console) public void initializeListView() public String getTabName() public void makeClickable() public void addItem(String value) public ObservableList getAllItems() public ListView getTabContent() public void update(Observable o, Object arg) } package View.tabs; public class ExampleCommandsPane implements ListViewPane, GenericPane { public ExampleCommandsPane() public void initializeListView() public String getTabName() public void makeClickable() public void addItem(String value) public ObservableList getAllItems() public ListView getTabContent() public void update(Observable o, Object arg) } package View.tabs; public interface GenericPane extends Observer { //public void changeBackgroundColor(String color); public String getTabName(); public void makeClickable(); public ObservableList getAllItems(); public ListView getTabContent(); } package View.tabs; public interface ListViewPane { public void addItem(String value); public void initializeListView(); } package View.tabs; public class OptionsPane extends Observable implements GenericPane { public OptionsPane() public String getTabName() public void makeClickable() public ObservableList getAllItems() public ListView getTabContent() public void update(Observable o, Object arg) } package View.tabs; public class VariablesPane implements ListViewPane, GenericPane { public VariablesPane() public void initializeListView() public String getTabName() public void makeClickable() public void addItem(String value) public ObservableList getAllItems() public ListView getTabContent() public void update(Observable o, Object arg) } package View; public class Workspace implements Observer { public Workspace(int workspaceID) public Workspace(int workspaceID, String color) public void init(SlogoView view) public void createAnimalPaneGUI() public AnimalPane createAnimalPane() public void resetLeftPane() public ScrollPane createConsole() public TextArea createConsoleArea() // public void populateGridWithAnimals() public void populateGridWithAnimals() public void renderAnimalGrid() public void changeAnimalBackgroundColor(String color) public ComboBox createLanguageChooser() public void update(Observable o, Object arg) public void setWorkspaceID(int id) public BorderPane getMyRoot() public ResourceBundle getResources() public void setResources(ResourceBundle resource) public AnimalPaneGUI getAnimalPaneGUI() }