package com.link_intersystems.gitdirstat.ui.treeobjects;
import java.math.BigInteger;
import javax.swing.ListModel;
import javax.swing.table.TableModel;
import com.link_intersystems.gitdirstat.domain.TreeObject;
import com.link_intersystems.swing.AbstractListModelTableModelAdapter;
import com.link_intersystems.swing.SumTableModel;
public class TreeObjectTableModel extends
AbstractListModelTableModelAdapter<TreeObject> {
private static final long serialVersionUID = 1037872939612640074L;
private static final int COL_PATH = 0;
private static final int COL_SIZE = 1;
private SumTableModel sumTableModel = new SumTableModel(this);
@Override
public int getColumnCount() {
return 2;
}
@Override
public void setEntryModel(ListModel entryModel) {
super.setEntryModel(entryModel);
}
@Override
public Class<?> getColumnClass(int columnIndex) {
Class<?> columnClass = null;
switch (columnIndex) {
case COL_PATH:
columnClass = String.class;
break;
case COL_SIZE:
columnClass = BigInteger.class;
break;
}
return columnClass;
}
@Override
public String getColumnName(int column) {
String columnName = null;
switch (column) {
case COL_PATH:
columnName = "Path";
break;
case COL_SIZE:
columnName = "Total size";
break;
}
return columnName;
}
@Override
protected Object getColumnValue(TreeObject treeObject, int columnIndex) {
Object columnValue = null;
switch (columnIndex) {
case COL_PATH:
columnValue = treeObject.getRootRelativePath().getPathname();
break;
case COL_SIZE:
columnValue = treeObject.getSize();
break;
}
return columnValue;
}
public TableModel getSummaryTableModel() {
return sumTableModel;
}
}