package cellsociety; public class PercolationController { } package cellsociety; public class Main extends Application { public double getVersion() public void start(Stage stage) } package cellsociety.model.layout; public class Triangular extends Arrangement { public Triangular(Cell[][] cellGrid, NeighborPolicy neighborPolicy, EdgePolicy edgePolicy) public void addNeighborsCardinal(Cell cell) public void addNeighborsVertex(Cell cell) } package cellsociety.model.layout; public class Rectangular extends Arrangement { public Rectangular(Cell[][] cellGrid, NeighborPolicy neighborPolicy, EdgePolicy edgePolicy) public void addNeighborsCardinal(Cell cell) public void addNeighborsVertex(Cell cell) } package cellsociety.model.layout; public abstract class Arrangement { public Arrangement(Cell[][] cellGrid, NeighborPolicy neighborPolicy, EdgePolicy edgePolicy) public void addNeighborsComplete(Cell cell) public void addCell(Cell newCell) public void addCell(Cell newCell, List neighbors) public Set getCells() public List getNeighbors(Cell cell) public Map> getCellNeighborMap() } package cellsociety.model.layout; public class Hexagonal extends Arrangement { public Hexagonal(Cell[][] cellGrid, NeighborPolicy neighborPolicy, EdgePolicy edgePolicy) public void addNeighborsCardinal(Cell cell) public void addNeighborsVertex(Cell cell) } package cellsociety.model.simulations; public class WaTorModel extends CAModel { public WaTorModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public void step() public int getNumStates() public void updateCellStatus() public Cell getRandomElement(List list) } package cellsociety.model.simulations; public abstract class CAModel { public CAModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public void step() public abstract int getNumStates(); public void reset() public Cell[][] getCellGrid() public void setCellGrid(Cell[][] cellGrid) public int getNumRows() public int getNumCols() public void updateCellGrid(int[][] statusGrid) public void updateCellShape(CellShape cellShape) public void updateEdgePolicy(EdgePolicy edgePolicy) public void updateNeighborPolicy(NeighborPolicy neighborPolicy) public void incrementCellStatus(int row, int col) public CellShape getCellShape() public NeighborPolicy getNeighborPolicy() public EdgePolicy getEdgePolicy() } package cellsociety.model.simulations; public class SegregationModel extends CAModel { public SegregationModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public int getNumStates() public void updateCellStatus() public void executeRules(Cell cell) } package cellsociety.model.simulations; public class PercolationModel extends CAModel { public PercolationModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public int getNumStates() public void updateCellGrid(int[][] statusGrid) public boolean isFull(int row, int col) public boolean isPercolated() } package cellsociety.model.simulations; public class UnionFinder { public UnionFinder(int numOfElements) public boolean isConnected(int p, int q) public void union(int p, int q) } package cellsociety.model.simulations; public class SpreadOfFireModel extends CAModel { public SpreadOfFireModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public int getNumStates() } package cellsociety.model.simulations; public class GameOfLifeModel extends CAModel { public GameOfLifeModel(int row, int col, CellShape cellShape, NeighborPolicy neighborPolicy, public int getNumStates() } package cellsociety.model; public class Animal extends Cell { public Animal(int row, int col, int status, int lives) public int getChronon() public void setChronon(int numLives) public int getEnergy() public void setEnergy(int energy) public boolean isProcessed() public void setProcessed(boolean processed) } package cellsociety.model; public class Cell { public Cell(int row, int col, int status) public int getMyStatus() public void setMyStatus(int myStatus) public int getRow() public int getCol() public int getFutureStatus() public void setFutureStatus(int futureStatus) } package cellsociety.view.ui; public class ColorMapUI extends GridPane { public ColorMapUI(CellColorMap colorMap, ResourceBundle langResource) } package cellsociety.view.ui; public class UIBuilder { public UIBuilder(ResourceBundle langResource) public void setLanguage(String language) public Node makeHolderBox(String id, Node node) public Node makeSlider(String id, double min, double max, double start, public Node makeCombo(String id, List choices, Consumer response) public Node makeButtonBox(Node... buttons) public Node makeLabel(String id) } package cellsociety.view.ui; public class RunInfoUI extends GridPane { public RunInfoUI(Controller controller, ResourceBundle langResource) public void updateInfoGrid() } package cellsociety.view.ui; public class WindowUI extends VBox { public WindowUI(Controller controller, List stylesheets, ResourceBundle langResource) } package cellsociety.view.ui; public class LanguageUI extends VBox { public LanguageUI(Controller controller, ResourceBundle langResource, List languages) } package cellsociety.view.ui; public class ProgramUI extends VBox { public ProgramUI(Controller controller, ResourceBundle langResource) } package cellsociety.view; public class CA { public CA(Controller controller) public void startAnimation() public void step() public CellColorMap getColorMap() public Timeline getAnimation() public int getStepCount() public GridView getGridView() public void updateCellShape() public void updateGridStatus() public void resetStepCount() } package cellsociety.view.cell; public class CellTriangleView extends CellView { public CellTriangleView(Controller controller, int row, int col, boolean pointUp, double length, } package cellsociety.view.cell; public class CellHexagonView extends CellView { public CellHexagonView(Controller controller, int row, int col, double length, double height, } package cellsociety.view.cell; public class CellColorMap { public CellColorMap() public void add(int status, Color color) public Map getColorMap() public Color getColor(int status) } package cellsociety.view.cell; public abstract class CellView extends Polygon { public CellView(Controller controller, int row, int col, double initialX, double initialY) public void setColor(int status, CellColorMap colorMap) public Color getColor() } package cellsociety.view.cell; public class CellRectangleView extends CellView { public CellRectangleView(Controller controller, int row, int col, double width, double height, } package cellsociety.view; public class View { public View(Controller controller) public void step() public void pause() public void play() public void setAnimationRate(double rate) public void reset() public void showError(String message) public void updateGridStatus() public void updateCellShape() public void updateRunInfo() public void changeTheme(String theme) public void changeLanguage(String language) public CA getCA() } package cellsociety.view.grid; public class GridRectangleView extends GridView { public GridRectangleView(Controller controller, CellColorMap colorMap) } package cellsociety.view.grid; public class GridHexagonView extends GridView { public GridHexagonView(Controller controller, CellColorMap colorMap) } package cellsociety.view.grid; public abstract class GridView extends Group { public GridView(Controller controller) public void updateGridView(Controller controller, CellColorMap colorMap) } package cellsociety.view.grid; public class GridTriangleView extends GridView { public GridTriangleView(Controller controller, CellColorMap colorMap) } package cellsociety.control; public class RunInfoController { public RunInfoController() public void set(SimKey key, String info) public void setSimSettings(File file) public File getCSVFile() public String getInfo(SimKey key) public void saveRunInfo(Simulation simulation, int[][] statusGrid) } package cellsociety.control; public class Controller { public Controller(int row, int col) public void step() public void initializeRandomGrid() public void updateNeighbors(NeighborPolicy neighborPolicy) public void updateEdgePolicy(EdgePolicy edgePolicy) public void updateCellShape(CellShape cellShape) public void updateModel(Simulation simulation) public void reset() public String getRunInfo(SimKey key) public void setRunInfo(SimKey key, String info) public void uploadConfiguration() public void initializeGridFromFile(File selectedFile) public void saveRunInfo() public void pause() public void play() public void setAnimationRate(double rate) public void changeTheme(String theme) public void incrementCellStatus(int row, int col) public int[][] getStatusGrid() public void changeLanguage(String language) public CellShape getCellShape() public CAModel getModel() public View getView() } package cellsociety.control; public class ErrorHandler { public void handleError(String message) } package cellsociety.control; public class CSVContainer { public CSVContainer(int row, int col, int[][] statusMatrix) public int[][] getCSVStatus() } package cellsociety.control; public class Settings { public Settings() public CSVContainer readAllDataCSV(File file) public File createFile(Simulation simulation, String title, String extension) public void writeDataToSim(File filename, String info) public void writeDataToCSV(File file, int[][] grid) }