001 package org.shiftone.jrat.provider.tree.ui.hierarchy;
002
003 import org.jdesktop.swingx.JXTreeTable;
004 import org.shiftone.jrat.ui.util.PercentTableCellRenderer;
005 import org.shiftone.jrat.desktop.util.JXTableWatcher;
006 import org.shiftone.jrat.provider.tree.ui.summary.SummaryTableModel;
007 import org.shiftone.jrat.provider.tree.ui.summary.SummaryPanel;
008
009 import javax.swing.*;
010 import java.awt.*;
011 import java.util.prefs.Preferences;
012
013 /**
014 * @author (jeff@shiftone.org) Jeff Drost
015 */
016 public class HierarchyPanel extends JPanel {
017
018 private JXTreeTable treeTable;
019
020 public HierarchyPanel(HierarchyTreeTableModel model) {
021 treeTable = new JXTreeTable();
022 treeTable.setTreeTableModel(model);
023 treeTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
024 for (int i = 1; i < treeTable.getColumnCount(); i++) {
025 treeTable.getColumn(i).setMaxWidth(160);
026 }
027 PercentTableCellRenderer.setDefaultRenderer(treeTable);
028
029 treeTable.setTreeCellRenderer(new HierarchyTreeCellRenderer());
030 treeTable.setColumnControlVisible(true);
031 treeTable.setShowGrid(true);
032
033 JXTableWatcher.initialize(
034 treeTable,
035 Preferences.userNodeForPackage(HierarchyPanel.class).node("columns"),
036 HierarchyTreeTableModel.getColumns());
037
038 setLayout(new BorderLayout());
039 add(new JScrollPane(treeTable), BorderLayout.CENTER);
040
041 }
042 }