package nl.tudelft.bw4t.scenariogui.util;
import java.util.HashSet;
import java.util.Set;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import nl.tudelft.bw4t.scenariogui.BW4TClientConfig;
import nl.tudelft.bw4t.scenariogui.ScenarioEditor;
/**
* This class creates a table which can hold entities.
*/
public abstract class AbstractTableModel implements TableModel {
private Set<TableModelListener> listeners = new HashSet<>();
private ScenarioEditor parent = null;
/** Prevents this class from being instantiated. */
public AbstractTableModel() {}
protected BW4TClientConfig getConfig() {
if(parent == null || parent.getController() == null)
return null;
return parent.getController().getModel();
}
public void setEnvironmentStore(ScenarioEditor parent) {
this.parent = parent;
}
/**
* Update all attached listeners.
*/
public void update() {
final TableModelEvent tableModelEvent = new TableModelEvent(this);
for (TableModelListener listener : listeners) {
listener.tableChanged(tableModelEvent);
}
}
@Override
public void addTableModelListener(TableModelListener listener) {
listeners.add(listener);
}
@Override
public void removeTableModelListener(TableModelListener listener) {
listeners.remove(listener);
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return String.class;
}
}