package cellsociety.controller; public class Controller { public Controller(Stage stage) public void setStopAnimation(boolean animationState) public boolean getStopAnimation() public void setHasUpdate(boolean hasUpdate) public boolean getHasUpdate() public void setCurrentGridNumber(int newGridNumber) public int getCurrentGridNumber() public void updateModels() public void updateModelSettings(ArrayList prob) public int getCellStateNumber(int i, int j) public void setCellState(int i, int j, int state) public String getCellColor(int i, int j) public Map getHistogramMap() public Map getNamesAndColors() public void makeNewDefaultSimulation() public void toggleCenterLines() public void openSIMFile(File simFile) public void updateCenterViewType(String viewType) public void addDefaultSimPropMap() public void setLang(String langString) public int getNumGridCols() public int getNumGridRows() public Grid getGrid() public Map getSimPropertiesMap() public void setEdgePolicy(String policy) public void setNeighborFinder(String type) } package cellsociety; public class Main extends Application { public void start(Stage stage) } package cellsociety.model; public class Grid { * only has access to the public methods needed in the Model classes. * only has access to the public methods needed in the View classes. public Grid(int rows, int cols, int[][] startStates, String stateColors, String parameters, public int getCellStateNumber(int i, int j) public ModelCellInterface getModelCell(int i, int j) public ViewCellInterface getViewCell(int i, int j) public void updateCell(int i, int j, int state) public int getNumCols() public int getNumRows() } package cellsociety.model.parser; public class ParserCSV extends Parser { public void readFile(File file) public int[][] getStartStates() public int getNumRows() public int getNumCols() } package cellsociety.model.parser; public abstract class Parser { public abstract void readFile(File file) } package cellsociety.model.parser; public class RandomStates { public RandomStates(ParserSIM parser) public Grid makeGrid() } package cellsociety.model.parser; public class ParserSIM extends Parser { public ParserSIM() public void readFile(File file) throws FileNotFoundException, InvalidFileException public String getInfo(String key) public Map getMap() } package cellsociety.model.exceptions; public class InvalidFileException extends Exception { public InvalidFileException(String errorMessage) } package cellsociety.model.exceptions; public class KeyNotFoundException extends Exception { public KeyNotFoundException(String errorMessage) } package cellsociety.model.cell; public interface ViewCellInterface { } package cellsociety.model.cell; public abstract class ModelCell implements ModelCellInterface, ViewCellInterface { public final String DEFAULT_GREY = myResources.getString("DefaultGrey"); public final String EMPTY_NAME = myResources.getString("EmptyName"); public final String PARAMETER_DELIMINATOR = myResources.getString("ParameterDeliminator"); public ModelCell(int i, int j, String stateColors, String parameters, int state) public Map getNameColorMap() return myNameColorMap; } public void changeState(int newState) throws IndexOutOfBoundsException public void setCellParameter(String key, Double value) public Double getCellParameter(String parameter) throws KeyNotFoundException public String getCellProperty(String property) throws KeyNotFoundException } package cellsociety.model.cell; public class PercolationCell extends ModelCell { public PercolationCell(int i, int j, String stateColors, String parameters, int state) } package cellsociety.model.cell; public class SegregationCell extends ModelCell { public SegregationCell(int i, int j, String stateColors, String parameters, int state) } package cellsociety.model.cell; public class SpreadingOfFireCell extends ModelCell { public SpreadingOfFireCell(int i, int j, String stateColors, String parameters, int state) } package cellsociety.model.cell; public interface ModelCellInterface { } package cellsociety.model.cell; public class PredatorPreyCell extends ModelCell { public PredatorPreyCell(int i, int j, String stateColors, String parameters, int state) } package cellsociety.model.cell; public class GameOfLifeCell extends ModelCell { public GameOfLifeCell(int i, int j, String stateColors, String parameters, int state) } package cellsociety.model.model; public class SegregationModel extends Model { public SegregationModel(Controller controller, Grid grid) public void setEdgePolicy(String type) public String getEdgePolicyType() public void setNeighborFinder(String type) public String getNeighborFinderType() } package cellsociety.model.model; public class PercolationModel extends Model { public PercolationModel(Controller controller, Grid grid) public void setEdgePolicy(String type) public String getEdgePolicyType() public void setNeighborFinder(String type) public String getNeighborFinderType() public void updateModel(Grid currGrid) } package cellsociety.model.model; public class PredatorPreyModel extends Model { public PredatorPreyModel(Controller controller, Grid grid) public void setEdgePolicy(String type) public String getEdgePolicyType() public void setNeighborFinder(String type) public String getNeighborFinderType() public void updateModel(Grid currGrid) } package cellsociety.model.model; public class SpreadingOfFireModel extends Model { public SpreadingOfFireModel(Controller controller, Grid grid) public void setEdgePolicy(String type) public String getEdgePolicyType() public void setNeighborFinder(String type) public String getNeighborFinderType() } package cellsociety.model.model.utils.NeighborFinders; public class NeighborFinderSetter { public NeighborFinder setNeighborFinder(String type) } package cellsociety.model.model.utils.NeighborFinders; public class SquareEdges extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils.NeighborFinders; public class TriangleEdges extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils.NeighborFinders; public class SquareComplete extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils.NeighborFinders; public class TriangleVertices extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils.NeighborFinders; public interface NeighborFinderInterface { } package cellsociety.model.model.utils.NeighborFinders; public abstract class NeighborFinder { public NeighborFinder() public abstract List getNeighbors(int row, int col, Grid grid); } package cellsociety.model.model.utils.NeighborFinders; public class TriangleComplete extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils.NeighborFinders; public class SquareCorners extends NeighborFinder implements NeighborFinderInterface { public List getNeighbors(int row, int col, Grid grid) } package cellsociety.model.model.utils; public class HistogramManager { public HistogramManager(Grid grid) public HashMap getHistogramManager() public void add(Integer cellStateNum, int amount) public void clear() } package cellsociety.model.model.utils.EdgePolicies; public class EdgePolicySetter { public EdgePolicies setEdgePolicy(String type) } package cellsociety.model.model.utils.EdgePolicies; public class SphericalEdgePolicy extends EdgePolicies implements EdgePolicyInterface { public int policy(int row, int col, Grid grid) } package cellsociety.model.model.utils.EdgePolicies; public interface EdgePolicyInterface { } package cellsociety.model.model.utils.EdgePolicies; public class FiniteEdgePolicy extends EdgePolicies implements EdgePolicyInterface { public int policy(int row, int col, Grid grid) } package cellsociety.model.model.utils.EdgePolicies; public class ToroidalEdgePolicy extends EdgePolicies implements EdgePolicyInterface { public int policy(int row, int col, Grid grid) } package cellsociety.model.model.utils.EdgePolicies; public abstract class EdgePolicies { public EdgePolicies() public abstract int policy(int row, int col, Grid grid); } package cellsociety.model.model.rules; public class PercolationRule extends Rule { public int determineState(int currRow, int currCol, int state, List nearby, Grid grid, } package cellsociety.model.model.rules; public class SegregationRule extends Rule { public SegregationRule(double threshold) public int determineState(int currRow, int currCol, int state, List nearby, Grid grid, public boolean relocationStatus() } package cellsociety.model.model.rules; public class SpreadingOfFireRule extends Rule { public SpreadingOfFireRule(double probCatch) public int determineState(int currRow, int currCol, int state, List nearby, Grid grid, } package cellsociety.model.model.rules; public class PredatorPreyRule extends Rule { public PredatorPreyRule(Grid currGrid, int numCols, int numUpdates, int fishReproduction, public int determineState(int currRow, int currCol, int state, List nearby, Grid grid, } package cellsociety.model.model.rules; public abstract class Rule { public abstract int determineState(int currRow, int currCol, int state, List nearby, } package cellsociety.model.model.rules; public class GameOfLifeRule extends Rule { public int determineState(int currRow, int currCol, int state, List nearby, Grid grid, } package cellsociety.model.model; public abstract class Model { public Model(Controller controller, Grid grid) public abstract void setEdgePolicy(String type); public abstract String getEdgePolicyType(); public abstract void setNeighborFinder(String type); public abstract String getNeighborFinderType(); public void updateModel(Grid currGrid) public HashMap getHistogramMap() public void changeSettings(ArrayList newProb) } package cellsociety.model.model; public class GameOfLifeModel extends Model { public GameOfLifeModel(Controller controller, Grid grid) public void setEdgePolicy(String type) public String getEdgePolicyType() public void setNeighborFinder(String type) public String getNeighborFinderType() } package cellsociety.view.top; public class TopLoadSave { public TopLoadSave(Stage stage, Controller controller, ResourceBundle resources) public Node getTopLoadSave() public Node setResource(ResourceBundle bundle) } package cellsociety.view.right; public abstract class RightPanel { public RightPanel(ResourceBundle bundle, Controller controller) public Node setResource(ResourceBundle bundle) public VBox getTheRightPanel() public ResourceBundle getMyResource() } package cellsociety.view.right; public class PredatorPreySettings extends RightPanel { public PredatorPreySettings(ResourceBundle bundle, Controller controller) } package cellsociety.view.right; public class SpreadingOfFireSettings extends RightPanel { public SpreadingOfFireSettings(ResourceBundle bundle, Controller controller) } package cellsociety.view.right; public class SegregationSettings extends RightPanel { public SegregationSettings(ResourceBundle bundle, Controller controller) } package cellsociety.view.right; public class GameOfLifeSettings extends RightPanel { public GameOfLifeSettings(ResourceBundle bundle, Controller controller) } package cellsociety.view.right; public class PercolationSettings extends RightPanel { public PercolationSettings(ResourceBundle bundle, Controller controller) public void makeSettingsPanel(VBox rightPanel) } package cellsociety.view.center; public abstract class CenterView { public CenterView(CellProperties cellProperties, Controller controller) public abstract void initiateView(); public abstract void updateView(); public abstract Node getViewBox(); public abstract void addViewToCenter(); public void toggleLines() } package cellsociety.view.center; public class CircleTimelineView extends CenterView { public CircleTimelineView(CellProperties cellProperties, Controller controller) public void initiateView() public void updateView() public Node getViewBox() public void addViewToCenter() } package cellsociety.view.center; public class CircleGridView extends GridView { public CircleGridView(CellProperties cellProps, Controller controller) } package cellsociety.view.center; public class TriangleGridView extends GridView { public TriangleGridView(CellProperties cellProps, Controller controller) } package cellsociety.view.center; public class HistogramView extends CenterView { public HistogramView(CellProperties cellProps, Controller controller) public void initiateView() public void updateView() public Node getViewBox() public void addViewToCenter() } package cellsociety.view.center; public class PieChartView extends CenterView { public PieChartView(CellProperties cellProperties, Controller controller) public void initiateView() public void updateView() public Node getViewBox() public void addViewToCenter() } package cellsociety.view.center; public abstract class GridView extends CenterView { public GridView(CellProperties cellProps, Controller controller) public Node getViewBox() public void updateView() public void initiateView() public void addViewToCenter() } package cellsociety.view.center; public class SquareGridView extends GridView { public SquareGridView(CellProperties cellProps, Controller controller) } package cellsociety.view.center; public class HexagonGridView extends GridView { public HexagonGridView(CellProperties cellProperties, Controller controller) } package cellsociety.view.center; public class CircleTimeline extends CenterView { public CircleTimeline(CellProperties cellProperties, Controller controller) public void initiateView() public void updateView() public Node getViewBox() public void addViewToCenter() } package cellsociety.view.left; public class CellProperties { public CellProperties(Controller controller, ResourceBundle resource) public Node getCellProperties() public void updateCellCordLabel(int currentX, int currentY) public void updateSimTypeLabel(String simType) public Node setResource(ResourceBundle bundle) public Node updateLeftView(ResourceBundle bundle, Map simProps) } package cellsociety.view.mainview; public class MainView { public MainView(Stage stage, Controller controller) public Scene makeScene(int width, int height) public void assignViewType(String viewType) public void updateView() public void toggleLines() public void updateBottomPanel(ResourceBundle bundle) public void updateRightPanel(ResourceBundle bundle, RightPanel rightPanel) public void updateRightPanelLang(ResourceBundle bundle) public void updateTopPanelLang(ResourceBundle bundle) public void updateLeftPanel(ResourceBundle bundle) public void updateLeftView(ResourceBundle bundle) public void initiateCenterView() public void showError(String message) public CellProperties getMyCellProperties() } package cellsociety.view.bottom; public class SimControl { public SimControl(CenterView centerView, Controller controller, ResourceBundle resources, public Node getSimControl() public Node setResource(ResourceBundle bundle) }