java-org.hwo.ui/src/org/hwo/ui/treetable/DefaultTreeTableModel.java

84 lines
1.7 KiB
Java

package org.hwo.ui.treetable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class DefaultTreeTableModel implements TreeTableModel {
private TreeTableElement rootNode;
private List<TreeTableModelListener> treeTableModelListener;
public DefaultTreeTableModel()
{
treeTableModelListener = new LinkedList<TreeTableModelListener>();
}
@Override
public Object getParent(Object node) {
return ((TreeTableElement)node).getParent();
}
@Override
public int getChildCount(Object parent) {
return ((TreeTableElement)parent).getChildCount();
}
@Override
public Object getChild(Object parent, int index) {
return ((TreeTableElement)parent).getChild(index);
}
@Override
public Object getRoot() {
return getRootNode();
}
@Override
public boolean isLeaf(Object node) {
if (((TreeTableElement)node).getChildCount()==0)
return true;
else
return false;
}
@Override
public Object getValue(Object node, int column) {
return ((TreeTableElement)node).getValue(column);
}
public TreeTableElement getRootNode() {
return rootNode;
}
public void setRootNode(TreeTableElement rootNode) {
this.rootNode = rootNode;
fireRowsChanged();
}
@Override
public TreeTableColumnModel getDefaultColumnModel() {
return new DefaultTreeTableColumnModel();
}
@Override
public void addTreeTableModelListener(TreeTableModelListener listener) {
treeTableModelListener.add(listener);
}
@Override
public void removeTreeTableModelListener(TreeTableModelListener listener) {
treeTableModelListener.remove(listener);
}
private void fireRowsChanged()
{
for (TreeTableModelListener listener:treeTableModelListener)
listener.rowsChanged();
}
}