package application.gui.display; public class SLogoDisplay extends SLogoVBox implements Display { public SLogoDisplay(double prefWidth, double prefHeight, Model sLogoModel) public void update() public void setSubject(Subject sub) } package application.gui.display; public class TurtleChangeListener{ public TurtleChangeListener(TurtleFXShell turtleShell) public ChangeListener getXListener() public ChangeListener getYListener() public ChangeListener getThetaListener() } package application.gui.display; public class TurtleFXShell extends ImageView{ public TurtleFXShell(Turtle turtle) public Node draw() public void setTurtleImage(String imagePath) public Node getTurtleSprite() public Turtle getTurtleObject() } package application.gui.interfaces; public interface CommandLine { } package application.gui.interfaces; public interface Display extends Observer { } package application.gui.interfaces; public interface History{ } package application.gui.interfaces; public interface Parameters extends Observer{ } package application.gui.interfaces; public interface Settings { } package application.gui.interfaces; public interface UserInterface { } package application.gui; public class SLogoCommandLine extends SLogoVBoxWithFileChooser implements CommandLine { public final double TEXTAREA_WIDTH_PERCENTAGE = (2.0/5.0); public final double HISTORY_WIDTH_PERCENTAGE = (1.0/5.0); public final double VARIABLE_WIDTH_PERCENTAGE = (1.0/5.0); public final double USERCOMMAND_WIDTH_PERCENTAGE = (1.0/5.0); public String[] getCommand() public void setCommand(String command) public void setCommandImmediately(String command) public void updateLanguage(String newLanguage) public void undo() public void redo() @Override public void handle(CellEditEvent t) public void handle(MouseEvent e) public boolean isCommandReady() public void setCommandReady(boolean isCommandReady) } package application.gui; public class SLogoCommandListView extends ListView implements History { public void clearList() public Stack getStack() public String getElementAtIndex(int index) public String getLast() public int getSize() public void addCommandToList(String command, boolean currentCommandGood) } package application.gui; public class SLogoDefinedVariable { public StringProperty nameProperty() public StringProperty valueProperty() public void setVariableValue(String newVal) } package application.gui; public class SLogoEditableCell extends TableCell { public SLogoEditableCell() @Override public void startEdit() @Override public void cancelEdit() @Override public void updateItem(String item, boolean empty) @Override public void handle(KeyEvent t) } package application.gui; public class SLogoParameters extends SLogoVBox implements Parameters { public SLogoParameters(double prefWidth, double prefHeight, Model sLogoModel) public void update() public void setSubject(Subject sub) } package application.gui; public class SLogoSettings extends SLogoVBox implements Settings { public final File HTML_HELP_FILE = new File("src/resources/html_help_file.html"); public SLogoSettings(double prefWidth, double prefHeight, SLogoCommandLine commandLine) } package application.gui; public class SLogoToolbar extends ToolBar{ public SLogoToolbar(double prefWidth, String title) public void setToolBarTitle(String title) } package application.gui; public class SLogoUserInterface implements UserInterface { public SLogoUserInterface(double windowWidth, double windowHeight) public Scene getScene() public void initialize() public Group getGroup() } package application.gui; public class SLogoVariableTable { public TableCell call(TableColumn p) @Override public void handle(CellEditEvent t) public TableView getTableView() } package application.gui; public class SLogoVBox extends VBox { public SLogoVBox() } package application.gui; public abstract class SLogoVBoxWithFileChooser extends SLogoVBox{ } package application.gui; public class SLogoWindow extends Pane{ public SLogoWindow(double width,double height) } package application; //Default Resource package public class Main extends Application{ public static final Dimension DEFAULT_SIZE = new Dimension(1400, 800); public void start(Stage stage) } package back_end.commandFactory; public class CommandFactory { public CommandFactory() public static CommandFactory getInstance() public Constant createConstant(double value) public Variable createVariable(String commandName) public ListCommand createListCommand() public Stackable createCommand(String commandName) throws ClassNotFoundException } package back_end.commands.abstractCommands; public class Constant implements Storable { public Constant(double value) public double getValue() public void setValue(double value) public boolean isStorable() } package back_end.commands.abstractCommands; public abstract class Executable implements Stackable { public Executable (int arraySize) public void addStorable(Storable storable) public double[] getValueArray() public void setValueArray(double[] valueArray) public Storable[] getStorableArray() public void setStorableArray(Storable[] constantArray) public int getIndex() public void setIndex(int index) public boolean isExecutable() public void setExecutable(boolean executable) } package back_end.commands.abstractCommands; public class ListCommand implements Storable { public ListCommand() public ListCommand(List listOfCommands) public void addCommands(Stackable command) public List getCommandList() public void setCommandList(List commandList) public double getValue() public boolean isStorable() public void setStorable(boolean storable) } package back_end.commands.abstractCommands; public abstract class ModelCommand extends Executable { public ModelCommand(int arraySize) public abstract Constant execute(Model model); } package back_end.commands.abstractCommands; public abstract class OperationCommand extends Executable { public OperationCommand(int arraySize) public abstract Storable execute(); } package back_end.commands.abstractCommands; public abstract class RepetitionCommand extends OperationCommand { public RepetitionCommand(int arraySize) public abstract Storable execute(); public List getRepeatedList() public void setRepeatedList(List repeatedList) } package back_end.commands.abstractCommands; public interface Stackable { } package back_end.commands.abstractCommands; public interface Storable extends Stackable{ public double getValue(); public boolean isStorable(); } package back_end.commands.abstractCommands; public class Variable extends Constant { public Variable(String name) public String getName() public void setName(String name) } package back_end.commands; public class And extends OperationCommand { public And(int arraySize) public Constant execute() } package back_end.commands; public class Ask extends ModelCommand { public Ask(int arraySize) public Constant execute(Model model) } package back_end.commands; public class AskWith extends ModelCommand { public AskWith(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Backward extends ModelCommand { public Backward(int arraySize) public Constant execute(Model model) } package back_end.commands; public class ClearScreen extends ModelCommand { public ClearScreen(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Difference extends OperationCommand { public Difference(int arraySize) public Constant execute() } package back_end.commands; public class DoTimes extends RepetitionCommand { public DoTimes(int arraySize) public ListCommand execute() } package back_end.commands; public class Equal extends OperationCommand{ public Equal(int arraySize) public Constant execute() } package back_end.commands; public class For extends RepetitionCommand { public For(int arraySize) public ListCommand execute() } package back_end.commands; public class Forward extends ModelCommand{ public Forward(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Heading extends ModelCommand { public Heading(int arraySize) public Constant execute(Model model) } package back_end.commands; public class HideTurtle extends ModelCommand { public HideTurtle(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Home extends ModelCommand { public Home(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Id extends ModelCommand { public Id(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Left extends ModelCommand { public Left(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Less extends OperationCommand{ public Less(int arraySize) public Constant execute() } package back_end.commands; public class MakeUserInstruction extends ModelCommand { public MakeUserInstruction(int arraySize) public Constant execute(Model model) } package back_end.commands; public class MakeVariable extends ModelCommand { public MakeVariable(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Not extends OperationCommand { public Not(int arraySize) public Storable execute() } package back_end.commands; public class NotEqual extends OperationCommand { public NotEqual(int arraySize) public Constant execute() } package back_end.commands; public class Or extends OperationCommand { public Or(int arraySize) public Constant execute() } package back_end.commands; public class PenColor extends ModelCommand { public PenColor(int arraySize) public Constant execute(Model model) } package back_end.commands; public class PenDown extends ModelCommand { public PenDown(int arraySize) public Constant execute(Model model) } package back_end.commands; public class PenDownP extends ModelCommand { public PenDownP(int arraySize) public Constant execute(Model model) } package back_end.commands; public class PenUp extends ModelCommand { public PenUp(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Pi extends Constant{ public Pi() } package back_end.commands; public class POW extends OperationCommand { public POW(int arraySize) public Constant execute() } package back_end.commands; public class Product extends OperationCommand { public Product(int arraySize) public Constant execute() } package back_end.commands; public class Quotient extends OperationCommand { public Quotient(int arraySize) public Constant execute() } package back_end.commands; public class Remainder extends OperationCommand { public Constant execute() } package back_end.commands; public class Repeat extends RepetitionCommand { public Repeat(int arraySize) public ListCommand execute() } package back_end.commands; public class Right extends ModelCommand { public Right(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetBackground extends ModelCommand { public SetBackground(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetHeading extends ModelCommand { public SetHeading(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetPalette extends ModelCommand { public SetPalette(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetPenColor extends ModelCommand { public SetPenColor(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetPenSize extends ModelCommand { public SetPenSize(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetPosition extends ModelCommand { public SetPosition(int arraySize) public Constant execute(Model model) } package back_end.commands; public class SetShape extends ModelCommand { public SetShape(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Shape extends ModelCommand { public Shape(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Showing extends ModelCommand { public Showing(int arraySize) public Constant execute(Model model) } package back_end.commands; public class ShowTurtle extends ModelCommand { public ShowTurtle(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Sum extends OperationCommand{ public Sum(int arraySize) public Constant execute() } package back_end.commands; public class Tell extends ModelCommand { public Tell(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Toward extends ModelCommand { public Toward(int arraySize) public Constant execute(Model model) } package back_end.commands; public class Turtles extends ModelCommand { public Turtles(int arraySize) public Constant execute(Model model) } package back_end.commands; public class XCor extends ModelCommand { public XCor(int arraySize) public Constant execute(Model model) } package back_end.commands; public class YCor extends ModelCommand { public YCor(int arraySize) public Constant execute(Model model) } package back_end.commandStack; public class CommandStack { public CommandStack(Model model, Map variableMap) public void addCommand(Stackable command) public Map getVariableMap() public void setVariableMap(Map variableMap) public Stack getStack() public void setStack(Stack stack) public ListCommand getCurrentListCommand() public void setCurrentListCommand(ListCommand currentListCommand) public Stack getListCommandStack() public void setListCommandStack(Stack listCommandStack) } package back_end.model; public class LineSegment { public LineSegment(double x0, double y0, double x1, double y1) public double[][] getCoordinates() } package back_end.model; public class Model implements Subject { public Model(double width, double height) public void addTurtle() public void clear() public void activateTurtle(int ID) public void deactivateTurtle(int ID) public List getTurtles() public void updateVariable(String name, double value) public double getVariableValue(String name) public MapProperty getVariables() public void updateCommand(String name, String value) public String getCommandValue(String name) public MapProperty getCommands() public void setColor(String color) public String getColor() public void register(Observer obj) public void unregister(Observer obj) public void notifyObservers() public Model getUpdate(Observer obj) } package back_end.model; public interface Observer { public void update(); public void setSubject(Subject sub); } package back_end.model; public interface Subject { public void register(Observer obj); public void unregister(Observer obj); public void notifyObservers(); public Object getUpdate(Observer obj); } package back_end.model; public class Turtle { public Turtle(double width, double height) public void setXPosition(double value) public DoubleProperty xPositionProperty() public void setYPosition(double value) public DoubleProperty yPositionProperty() public void setThetaAngle(double value) public DoubleProperty thetaAngleProperty() public void setID(int ID) public int getID() public void moveForward(double delta) public void moveBack(double delta) public void setXY(double x, double y) public double clear() public void home() public void setHeading(double theta) public void faceToward(double x, double y) public void turnRight(double theta) public void turnLeft(double theta) public void showTurtle() public void hideTurtle() public void dropPen() public void raisePen() public double[] getPosition() public double getX() public double getY() public double getOrientation() public boolean isPenUp() public boolean isVisible() public void setActive(boolean active) public boolean isActive() public Queue getPaths() } package back_end.parser; public class Parser { public Parser(Model model) public void addPatterns (String syntax) public boolean checkCommand(String commandName) } package back_end.parser; public class UserDefinedCommand extends ModelCommand { public UserDefinedCommand(int arraySize) public Constant execute(Model model) }