package cellsociety; public class Main extends Application { public static final String DEFAULT_DATA_FOLDER public static final String DEFAULT_RESOURCE_FOLDER public void start(Stage primaryStage) public static UserView startEmptySimulationWindow(String language) public static void startSimulationWindowWithFilePrompt(String language) public static void startSimulationWindowWithRandomGameOfLife(String language) } package cellsociety.model.util; public class XmlData { public XmlData() public XmlData(String language) public SimType getType() public void setType(SimType type) public String getTitle() public void setTitle(String title) public String getAuthor() public void setAuthor(String author) public String getDescription() public void setDescription(String description) public int getGridRowNum() public void setGridRowNum(int gridRowNum) public int getGridColNum() public void setGridColNum(int gridColNum) public List getCellStateList() public void setCellStateList(List cellStateList) public Map getParameters() public void setParameters(Map parameters) public String getTheme() public void setTheme(String theme) public String getLanguage() public void setLanguage(String language) public Map getCustomColorMap() public void setCustomColorMap(Map customColorMap) public int getReverseStateNum() public void setReverseStateNum(int reverseStateNum) public int getId() public void setId(int id) public int getNumStates() } package cellsociety.model.util.constants; public class GridTypes { } package cellsociety.model.util.constants.exceptions; public class SimulationException extends RuntimeException { public SimulationException(String message) public SimulationException(String message, Throwable cause) } package cellsociety.model.util.constants.exceptions; public class XmlException extends IllegalArgumentException { public XmlException(String message) } package cellsociety.model.util.constants; public class ResourcePckg { public static ResourceBundle getErrorSimulationResourceBundle(String language) } package cellsociety.model.util.constants; public class CellStates { } package cellsociety.model.util.constants; public class SimulationConstants { } package cellsociety.model.util; public class XmlUtils { public XmlUtils() public XmlUtils(String language) public XmlData readXml(File fxmlFile, String language) public void writeToXml(File file, String title, String author, String description, public static Map colorsToMap(NodeList colorList, CellStateHandler handler) } package cellsociety.model.util; public class SimulationTypes { public boolean isDynamic() public boolean isDefaultRectangularGrid() } package cellsociety.model.simulation; public class Simulation> { public Simulation(XmlData data) public Simulation(XmlData data, String language) public void stepBack() public void step() public int getCurrentState(int row, int col) public int getStateLength(int row, int col) public void updateParameter(String key, double value) public double getParameter(String key) public List getParameterKeys() public XmlData getXmlDataObject() public SimType getSimulationType() public int getSimulationId() public int getNumStates() public int getTotalIterations() public void setNeighbors(ShapeType shape, NeighborhoodType neighborhood, EdgeType edge) } package cellsociety.model.simulation.cell; public class LangtonCell extends Cell { public LangtonCell(int state, LangtonRule rule) public LangtonCell(int state, LangtonRule rule, String language) protected LangtonCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class PercolationCell extends Cell { public PercolationCell(int state, PercolationRule rule) public PercolationCell(int state, PercolationRule rule, String language) protected PercolationCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class SegregationCell extends Cell { public SegregationCell(int state, SegregationRule rule) public SegregationCell(int state, SegregationRule rule, String language) public void calcNextState() protected SegregationCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class PetelkaCell extends Cell { public PetelkaCell(int state, PetelkaRule rule) public PetelkaCell(int state, PetelkaRule rule, String language) protected PetelkaCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class ChouReg2Cell extends Cell { public ChouReg2Cell(int state, ChouReg2Rule rule) public ChouReg2Cell(int state, ChouReg2Rule rule, String language) protected ChouReg2Cell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class FireCell extends Cell { public FireCell(int state, FireRule rule) public FireCell(int state, FireRule rule, String language) protected FireCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class RockPaperScissCell extends public RockPaperScissCell(int state, RockPaperScissRule rule) public RockPaperScissCell(int state, RockPaperScissRule rule, String language) protected RockPaperScissCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public class WaTorCell extends Cell { public WaTorCell(int state, WaTorRule rule) public WaTorCell(int state, WaTorRule rule, String language) public int getStepsSurvived() public void setStepsSurvived(int stepsSurvived) public void setEnergy(int energy) public int getEnergy() public boolean isConsumed() public void setConsumed(boolean consumed) public void calcNextState() public void step() protected WaTorCell getSelf() public void resetParameters() public void setCurrentState(int state) public void setNextState(int state) public void setNextState(int state, int stepsSurvived, int energy) public void setNextState(int state, int stepsSurvived, int energy, WaTorCell movedFrom) } package cellsociety.model.simulation.cell; public class GameOfLifeCell extends Cell { public GameOfLifeCell(int state, GameOfLifeRule rule) public GameOfLifeCell(int state, GameOfLifeRule rule, String language) protected GameOfLifeCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.cell; public abstract class Cell, R extends Rule, P extends Parameters> { public Cell(int state, R rule) public Cell(int state, R rule, String language) public void saveCurrentState() public boolean stepBack() public void calcNextState() public void step() protected abstract C getSelf(); public void resetParameters() public int getCurrentState() public void setCurrentState(int state) public int getNextState() public void setNextState(int state) public int[] getPosition() public void setPosition(int[] position) public List getNeighbors() public void setNeighbors(List neighbors) public boolean addNeighbor(C neighbor) public boolean removeNeighbor(C neighbor) public int getStateLength() public void setDirectionalNeighbors(Map> directionalNeighbors) public List getDirectionalNeighbors(DirectionType direction) public void clearNeighbors() } package cellsociety.model.simulation.cell; public class FallingSandCell extends Cell { public FallingSandCell(int state, FallingSandRule rule) public FallingSandCell(int state, FallingSandRule rule, String language) public void calcNextState() protected FallingSandCell getSelf() public void setCurrentState(int state) public void setNextState(int state) } package cellsociety.model.simulation.parameters; public class ChouReg2Parameters extends Parameters { public ChouReg2Parameters() public ChouReg2Parameters(String language) } package cellsociety.model.simulation.parameters; public class PercolationParameters extends Parameters { public PercolationParameters() public PercolationParameters(String language) } package cellsociety.model.simulation.parameters; public class SegregationParameters extends Parameters { public SegregationParameters() public SegregationParameters(String language) } package cellsociety.model.simulation.parameters; public class FireParameters extends Parameters { public FireParameters() public FireParameters(String language) } package cellsociety.model.simulation.parameters; public class LangtonParameters extends Parameters { public LangtonParameters() public LangtonParameters(String language) } package cellsociety.model.simulation.parameters; public class GameOfLifeParameters extends Parameters { public GameOfLifeParameters() public GameOfLifeParameters(String language) public GameOfLifeParameters(List survive, List born) public GameOfLifeParameters(List survive, List born, String language) public List getSurviveRules() public void setSurviveRules(List survive) public List getBornRules() public void setBornRules(List born) } package cellsociety.model.simulation.parameters; public class WaTorParameters extends Parameters { public WaTorParameters() public WaTorParameters(String language) } package cellsociety.model.simulation.parameters; public class RockPaperScissParameters extends Parameters { public RockPaperScissParameters() public RockPaperScissParameters(String language) } package cellsociety.model.simulation.parameters; public class FallingSandParameters extends Parameters { public FallingSandParameters() public FallingSandParameters(String language) } package cellsociety.model.simulation.parameters; public abstract class Parameters { public Parameters() public Parameters(String language) public Map getParameters() public void setParameters(Map newParams) public double getParameter(String key) public void setParameter(String key, double value) public List getParameterKeys() public boolean isValidKey(String key) public ResourceBundle getResources() } package cellsociety.model.simulation.parameters; public class PetelkaParameters extends Parameters { public PetelkaParameters() public PetelkaParameters(String language) } package cellsociety.model.simulation.rules; public class PercolationRule extends Rule { public PercolationRule(PercolationParameters parameters) public PercolationRule(PercolationParameters parameters, String language) public int apply(PercolationCell cell) } package cellsociety.model.simulation.rules; public class SegregationRule extends Rule { public SegregationRule(SegregationParameters parameters) public SegregationRule(SegregationParameters parameters, String language) public int apply(SegregationCell cell) } package cellsociety.model.simulation.rules; public class LangtonRule extends Rule { public LangtonRule(LangtonParameters parameters) public LangtonRule(LangtonParameters parameters, String language) public int apply(LangtonCell cell) } package cellsociety.model.simulation.rules; public class PetelkaRule extends Rule { public PetelkaRule(PetelkaParameters parameters) public PetelkaRule(PetelkaParameters parameters, String language) public int apply(PetelkaCell cell) } package cellsociety.model.simulation.rules; public class ChouReg2Rule extends Rule { public ChouReg2Rule(ChouReg2Parameters parameters) public ChouReg2Rule(ChouReg2Parameters parameters, String language) public int apply(ChouReg2Cell cell) } package cellsociety.model.simulation.rules; public class FireRule extends Rule { public FireRule(FireParameters parameters) public FireRule(FireParameters parameters, String language) public int apply(FireCell cell) } package cellsociety.model.simulation.rules; public class WaTorRule extends Rule { public WaTorRule(WaTorParameters parameters) public WaTorRule(WaTorParameters parameters, String language) public int apply(WaTorCell cell) } package cellsociety.model.simulation.rules; public class RockPaperScissRule extends Rule { public RockPaperScissRule(RockPaperScissParameters parameters) public RockPaperScissRule(RockPaperScissParameters parameters, String language) public int apply(RockPaperScissCell cell) public int getMaxState() } package cellsociety.model.simulation.rules; public class FallingSandRule extends Rule { public FallingSandRule(FallingSandParameters parameters) public FallingSandRule(FallingSandParameters parameters, String language) public int apply(FallingSandCell cell) } package cellsociety.model.simulation.rules; public abstract class Rule, P extends Parameters> { public Rule(P parameters) public Rule(P parameters, String language) public abstract int apply(C cell); public P getParameters() protected boolean matchesDirection(C cell, C neighbor, DirectionType direction) protected String getStateKey(C cell, DirectionType[] directions) public ResourceBundle getResources() } package cellsociety.model.simulation.rules; public class GameOfLifeRule extends Rule { public GameOfLifeRule(GameOfLifeParameters parameters) public GameOfLifeRule(GameOfLifeParameters parameters, String language) public int apply(GameOfLifeCell cell) } package cellsociety.model.simulation.grid; public abstract class Grid> { public Grid(List cells, int rows, int cols) public Grid(List cells, int rows, int cols, ShapeType shape, NeighborhoodType neighborhoodType, public Grid(List cells, int rows, int cols, String language) public abstract void setNeighbors(); public void setNeighbors(ShapeType shape, NeighborhoodType neighborhood, EdgeType edge) public void setNeighbors(ShapeType shape, NeighborhoodType neighborhood) public void initializeCells(List cells) public List getNeighbors(int[] position) public boolean isValidPosition(int row, int col) public T getCell(int row, int col) public void setCell(int row, int col, T cell) public int getRows() public int getCols() public List> getGrid() public List getCells() public ResourceBundle getResources() } package cellsociety.model.simulation.grid; public class AdjacentGrid> extends Grid { public AdjacentGrid(List cells, int rows, int cols) public AdjacentGrid(List cells, int rows, int cols, String language) public void setNeighbors() } package cellsociety.model.simulation.grid; public class RectangularGrid> extends Grid { public RectangularGrid(List cells, int rows, int cols) public RectangularGrid(List cells, int rows, int cols, String language) public void setNeighbors() } package cellsociety.model.factories.statefactory.handler; public class PetelkaStateHandler extends CellStateHandlerStatic { public PetelkaStateHandler() } package cellsociety.model.factories.statefactory.handler; public class FallingSandStateHandler extends CellStateHandlerStatic { public FallingSandStateHandler() } package cellsociety.model.factories.statefactory.handler; public class LangtonStateHandler extends CellStateHandlerStatic { public LangtonStateHandler() } package cellsociety.model.factories.statefactory.handler; public class CellStateHandlerStatic implements CellStateHandler { public CellStateHandlerStatic(Map cellStates) public List getStateInt() public int stateFromString(String state) public String statetoString(int state) public boolean isValidState(int state) } package cellsociety.model.factories.statefactory.handler; public class WaTorStateHandler extends CellStateHandlerStatic { public WaTorStateHandler() } package cellsociety.model.factories.statefactory.handler; public class CellStateHandlerDynamic implements CellStateHandler { public CellStateHandlerDynamic() public void addState(int state, String name) public List getStateInt() public int stateFromString(String state) public String statetoString(int state) public boolean isValidState(int state) } package cellsociety.model.factories.statefactory.handler; public class PercolationStateHandler extends CellStateHandlerStatic { public PercolationStateHandler() } package cellsociety.model.factories.statefactory.handler; public interface CellStateHandler { List getStateInt(); int stateFromString(String state); String statetoString(int state); boolean isValidState(int state); } package cellsociety.model.factories.statefactory.handler; public class GameOfLifeStateHandler extends CellStateHandlerStatic { public GameOfLifeStateHandler() } package cellsociety.model.factories.statefactory.handler; public class FireStateHandler extends CellStateHandlerStatic { public FireStateHandler() } package cellsociety.model.factories.statefactory.handler; public class SegregationStateHandler extends CellStateHandlerStatic { public SegregationStateHandler() } package cellsociety.model.factories.statefactory.exceptions; public class CellStateFactoryException extends IllegalArgumentException { public CellStateFactoryException(String message) } package cellsociety.model.factories.statefactory; public class CellStateFactory { public static CellStateHandler getHandler(int simulationId, SimType simulationType, } package cellsociety.model.factories.edgefactory.handler; public class NoneEdgeHandler implements EdgeHandler { public Optional> handleEdgeNeighbor(int currRow, int curCol, int totalRow, } package cellsociety.model.factories.edgefactory.handler; public class ToroidalEdgeHandler implements EdgeHandler { public Optional> handleEdgeNeighbor(int currRow, int curCol, int totalRow, } package cellsociety.model.factories.edgefactory.handler; public class MirrorEdgeHandler implements EdgeHandler { public Optional> handleEdgeNeighbor(int currRow, int curCol, int totalRow, } package cellsociety.model.factories.edgefactory.handler; public interface EdgeHandler { Optional> handleEdgeNeighbor(int currRow, int curCol, int totalRow, int totalCol, } package cellsociety.model.factories.edgefactory; public class EdgeFactory { public static EdgeHandler getHandler(EdgeType edgeType) } package cellsociety.model.factories; public class RuleFactory { public static void updateLanguage(String language) public static Rule createRule(String ruleType, Map parameters, } package cellsociety.model.factories; public class GridFactory { public static Map getDirections(ShapeType shape, NeighborhoodType neighborhood) } package cellsociety.view.utils; public class SimViewConstants { } package cellsociety.view.utils; public class FileExplorer { public static FileChooser getFileLoadChooser() public static FileChooser getSaveFileChooser() } package cellsociety.view.utils; public class ResourceAnalyzer { public static List getAvailableLanguages() public static List getAvailableStylesheets() } package cellsociety.view.utils; public class DateTime { public static String getLocalDateTime() } package cellsociety.view.components; public class SimulationView { public SimulationView(double width, double height, String language) public Pane getDisplay() public void configureFromXml(XmlData xmlData) public void initializeGridView() public void flipDisplayHorizontally() public void flipDisplayVertically() public void stepGridSimulation() public void toggleGridlines(boolean enable) public void resetGrid() public Simulation getSimulation() public List getCellViewList() public void updateCellColorsForState(int state, Color newColor) } package cellsociety.view.components; public class ControlPanel { public ControlPanel(UserView userView) public void applyCurrentlySelectedTheme() public VBox getPanel() } package cellsociety.view.components.cell; public class FallingSandCellView extends CellView { public FallingSandCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class FireCellView extends CellView { public FireCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class LangtonCellView extends CellView { public LangtonCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class ChouReg2CellView extends LangtonCellView { public ChouReg2CellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class PetelkaCellView extends CellView { public PetelkaCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class SegregationCellView extends CellView { public SegregationCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class CellViewFactory { public static CellView createCellView(SimType simType, double[] position, double width, } package cellsociety.view.components.cell; public class PercolationCellView extends CellView { public PercolationCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class GameOfLifeCellView extends CellView { public GameOfLifeCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components.cell; public class WaTorCellView extends CellView { public WaTorCellView(double x, double y, double width, double height, int cellState) } package cellsociety.view.components; public class StateColorLegend { public StateColorLegend(UserView userView, String language) public VBox getLegendBox() public void clearLegend() public void updateLegend(XmlData xmlData) } package cellsociety.view.components; public class RandomSimulationGenerator { public static XmlData createRandomGameOfLifeXml() } package cellsociety.view.components; public class InformationBox { public InformationBox(ResourceBundle resources) public TextArea getTextArea() public void updateInfo(XmlData data) public void emptyFields() } package cellsociety.view.window; public class SplashScreenView { public SplashScreenView(Stage stage) } package cellsociety.view.window; public class UserView { public UserView(int sceneWidth, int sceneHeight, Stage stage, String language) public void resetView() public void playSimulation() public void pauseSimulation() public void stopAndResetSimulation() public void chooseFileAndLoadSimulation() public static void showMessage(AlertType type, String message) public void saveSimulation() public void flipGridHorizontally() public void flipGridVertically() public void changeSimulationSpeed(double adjustmentFactor) public void loadRandomGameOfLife() public void toggleGridlines(boolean enable) public ViewState getState() public ResourceBundle getResources() public String getLanguage() public Scene getScene() public List getCellViewList() public void updateColorForState(int state, Color newColor) } package cellsociety.view.interfaces; public abstract class CellView { protected CellView(double x, double y, double width, double height, int cellState, protected Shape createShape(double x, double y, double width, double height) public Shape getShape() public void setCellState(int state) public int getCellState() public void updateViewColor() public Color getColorForState(int state) public void setColorForState(int state, Color color) public int getNumStates() public void toggleOutlines(boolean enable) }