Select Git revision
OwnProfile.tsx
GameModel.java 1.99 KiB
package game;
import javax.swing.table.AbstractTableModel;
public class GameModel extends AbstractTableModel {
private GameBoard board;
private GameRunner runner;
private GameRunner2 runner2; //TODO runners
private boolean editable;
public GameModel(int height, int width) {
board = new GameBoard(height, width);
runner = new GameRunner(this, board);
runner2 = new GameRunner2(this, board);
runner2.start();
editable = true;
}
public GameModel(GameBoard board){
this.board = board;
runner2 = new GameRunner2(this, board);
runner2.start();
editable = true;
}
public int getRowCount() {
return board.getHeight();
}
public int getColumnCount() {
return board.getWidth();
}
public String getColumnName(int columnIndex) {
return Integer.toString(columnIndex);
}
public Class<?> getColumnClass(int columnIndex) {
return Boolean.class;
}
public void start() {
editable=false;
//runner.start();
//TODO runners
runner2.resumeRunner();
}
public void stop(){
/*
runner.stopRunner();
while (runner.isAlive()){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
*/
//TODO runners
runner2.pauseRunner();
synchronized (board) {
editable = true;
}
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return editable;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return board.get(rowIndex, columnIndex).isAlive();
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
board.get(rowIndex, columnIndex).setAlive((boolean) aValue);
}
public void step() {
//TODO törölni
board.step();
fireTableDataChanged();
}
}