MCPcopy Create free account
hub / github.com/rambaut/figtree / FigTreePanel

Class FigTreePanel

src/figtree/panel/FigTreePanel.java:50–240  ·  view source on GitHub ↗

This is a panel that has a TreeViewer and a BasicControlPalette with the default Controllers and Painters. @author Andrew Rambaut @version $Id$ $HeadURL$ $LastChangedBy$ $LastChangedDate$ $LastChangedRevision$

Source from the content-addressed store, hash-verified

48 * $LastChangedRevision$
49 */
50public class FigTreePanel extends JPanel {
51 public enum Style {
52 DEFAULT,
53 SIMPLE,
54 MINIMAL,
55 ICARUS,
56 ICARUS_SMALL
57 }
58
59 public FigTreePanel(Style style) {
60 this(new SimpleTreeViewer(), new SimpleControlPalette(), null, style);
61 }
62
63 public FigTreePanel(final TreeViewer treeViewer,
64 ControlPalette controlPalette1,
65 ControlPalette controlPalette2,
66 Style style) {
67
68 this.treeViewer = treeViewer;
69
70 if (controlPalette1 != null) {
71 controlPalette1.getPanel().setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.GRAY));
72 controlPalette1.getPanel().setBackground(new Color(231, 237, 246));
73 controlPalette1.getPanel().setOpaque(true);
74 }
75
76 if (controlPalette2 != null) {
77 controlPalette2.getPanel().setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
78 controlPalette2.getPanel().setBackground(new Color(231, 237, 246));
79 controlPalette2.getPanel().setOpaque(true);
80 }
81
82 // Create a tip label painter and its controller
83 final SimpleLabelPainter tipLabelPainter = new SimpleLabelPainter(SimpleLabelPainter.PainterIntent.TIP);
84 // Create a node label painter and its controller
85 final SimpleLabelPainter nodeLabelPainter = new SimpleLabelPainter(SimpleLabelPainter.PainterIntent.NODE);
86 nodeLabelPainter.setVisible(false);
87 final SimpleLabelPainter branchLabelPainter = new SimpleLabelPainter(SimpleLabelPainter.PainterIntent.BRANCH);
88 branchLabelPainter.setVisible(false);
89
90 setLayout(new BorderLayout());
91
92 switch (style) {
93
94 case DEFAULT:
95 if (controlPalette1 == null) {
96 throw new IllegalArgumentException("DEFAULT style requires a controlPalette");
97 }
98 controlPalette1.addController(new TreeViewerController(treeViewer));
99
100 controlPalette1.addController(new TreeAppearanceController(
101 treeViewer,
102 "tipLabels", tipLabelPainter,
103 "nodeLabels", nodeLabelPainter,
104 "branchLabels", branchLabelPainter));
105
106 controlPalette1.addController(new TreesController(treeViewer));
107

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…