package com.canoo.ulc.playground.developerlist;
import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.IRendererComponent;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.ULCPopupMenu;
import com.ulcjava.base.application.ULCScrollPane;
import com.ulcjava.base.application.ULCTableTree;
import com.ulcjava.base.application.tabletree.DefaultMutableTableTreeNode;
import com.ulcjava.base.application.tabletree.DefaultTableTreeCellRenderer;
import com.ulcjava.base.application.tabletree.DefaultTableTreeModel;
import com.ulcjava.base.application.tabletree.ULCTableTreeColumn;
import com.ulcjava.base.development.DevelopmentRunner;
public class PR7426 extends AbstractApplication {
public void start() {
ULCTableTree tableTree = new ULCTableTree(new SnipetTableTreeModel());
DefaultTableTreeCellRenderer renderer = new DefaultTableTreeCellRenderer() {
public IRendererComponent getTableTreeCellRendererComponent(ULCTableTree tableTree, Object value, boolean selected,
boolean hasFocus, boolean expanded, boolean leaf, Object node) {
IRendererComponent rendererComponent = super.getTableTreeCellRendererComponent(tableTree, value, selected, hasFocus,
expanded, leaf, node);
ULCPopupMenu popupMenu = new ULCPopupMenu();
popupMenu.add("First test Entry");
popupMenu.add((String)value);
setComponentPopupMenu(popupMenu);
return rendererComponent;
}
};
ULCTableTreeColumn treeColumn = tableTree.getColumnModel().getColumn(0);
treeColumn.setCellRenderer(renderer);
ULCFrame frame = new ULCFrame("Snippet");
frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
frame.getContentPane().add(new ULCScrollPane(tableTree));
frame.setVisible(true);
}
public static void main(String[] args) {
DevelopmentRunner.setApplicationClass(PR7426.class);
DevelopmentRunner.main(args);
}
public static class SnipetTableTreeModel extends DefaultTableTreeModel {
public SnipetTableTreeModel() {
super(createRoot(), createColumnNames(3));
}
private static DefaultMutableTableTreeNode createRoot() {
DefaultMutableTableTreeNode child0 = createNode("root:0", 3);
child0.add(createNode("root:0:0", 3));
child0.add(createNode("root:0:1", 3));
DefaultMutableTableTreeNode child1 = createNode("root:1", 3);
child1.add(createNode("root:1:0", 3));
child1.add(createNode("root:1:1", 3));
child1.add(createNode("root:1:2", 3));
DefaultMutableTableTreeNode child2 = createNode("root:2", 3);
child2.add(createNode("root:2:0", 3));
DefaultMutableTableTreeNode result = createNode("root", 3);
result.add(child0);
result.add(child1);
result.add(child2);
return result;
}
private static String[] createColumnNames(int columns) {
String[] result = new String[columns];
for (int i = 0; i < result.length; i++) {
result[i] = "column " + i;
}
return result;
}
private static DefaultMutableTableTreeNode createNode(String prefix, int columns) {
Object[] data = new Object[columns];
for (int i = 0; i < data.length; i++) {
data[i] = prefix + ":" + i;
}
return new DefaultMutableTableTreeNode(data);
}
}