package net.dirtyfilthy.Bitten;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.event.TreeModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.tree.TreePath;
import org.jdesktop.swingx.treetable.TreeTableModel;
import com.google.bitcoin.core.GraphTransaction;
import com.google.bitcoin.core.Transaction;
public class TransactionTableModel implements TreeTableModel {
private String[] columnNames = {"id","time","from","to"};
private ArrayList<GraphTransaction> transactions;
TransactionTableModel(ArrayList<GraphTransaction> transactions){
this.transactions=transactions;
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return transactions.size();
}
public String getColumnName(int col) {
return columnNames[col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
private Object getTransactionValueAt(GraphTransaction t, int arg1){
switch(arg1){
case 0:
return t.getHash();
case 1:
return new Date((long) t.createdAt*1000);
case 2:
return t.getInputs();
case 3:
return t.getOutputs();
default:
return null;
}
}
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
return getTransactionValueAt(transactions.get(arg0),arg1);
}
@Override
public void addTreeModelListener(TreeModelListener arg0) {
// TODO Auto-generated method stub
}
@Override
public Object getChild(Object arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getChildCount(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getIndexOfChild(Object arg0, Object arg1) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getRoot() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isLeaf(Object arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeTreeModelListener(TreeModelListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void valueForPathChanged(TreePath arg0, Object arg1) {
// TODO Auto-generated method stub
}
@Override
public int getHierarchicalColumn() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getValueAt(Object arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isCellEditable(Object arg0, int arg1) {
if(arg1==6){
return true;
}
return false;
}
@Override
public void setValueAt(Object arg0, Object arg1, int arg2) {
// TODO Auto-generated method stub
}
}