package de.zigapeda.flowspring.gui.treetable;
import de.zigapeda.flowspring.data.DataNode;
import de.zigapeda.flowspring.interfaces.TreeRow;
public class DataModel extends AbstractTreeTableModel {
// Spalten Name.
static public String[] columnNames = { "Name", "Artist", "Album", "Genre", "Track", "Year", "Duration", "Comment", "Rating", "Playcount" };
// Spalten Typen.
static protected Class<?>[] columnTypes = { TreeTableModel.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class };
public DataModel(DataNode rootNode) {
super(rootNode);
root = rootNode;
}
public Object getChild(Object parent, int index) {
return ((DataNode) parent).getChildren().get(index);
}
public int getChildCount(Object parent) {
Integer type = ((DataNode)parent).getData().getType();
if(type != TreeRow.Title && type != TreeRow.YoutubeVideo) {
return ((DataNode) parent).getChildren().size();
}
return 0;
}
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int column) {
return columnNames[column];
}
public Class<?> getColumnClass(int column) {
return columnTypes[column];
}
public Object getValueAt(Object node, int column) {
TreeRow data = ((DataNode)node).getData();
switch(column) {
case 0:
return data.getName();
case 1:
return data.getArtist();
case 2:
return data.getAlbum();
case 3:
return data.getGenre();
case 4:
return data.getTrack();
case 5:
return data.getYear();
case 6:
return data.getDuration();
case 7:
return data.getComment();
case 8:
return data.getRating();
case 9:
return data.getPlaycount();
}
return null;
}
public boolean isCellEditable(Object node, int column) {
if(column == 0) {
return true;
}
return false;
}
public void setValueAt(Object aValue, Object node, int column) {
}
}