1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.theplugin.idea;
18
19 import com.atlassian.theplugin.idea.ui.tree.AtlassianTree;
20 import com.atlassian.theplugin.idea.ui.tree.AtlassianTreeModel;
21
22 import javax.swing.tree.TreeCellRenderer;
23 import javax.swing.tree.TreePath;
24 import java.awt.event.ComponentAdapter;
25 import java.awt.event.ComponentEvent;
26
27
28
29
30
31
32
33
34 public class CommentTree extends AtlassianTree {
35
36 public CommentTree(AtlassianTreeModel model) {
37 super(model);
38 putClientProperty("JTree.lineStyle", "None");
39 setShowsRootHandles(false);
40 setRootVisible(false);
41 setRowHeight(0);
42 }
43
44 public CommentTree() {
45 super();
46 }
47
48 @Override
49 protected void setExpandedState(final TreePath path, final boolean state) {
50 if (state) {
51 super.setExpandedState(path, state);
52 }
53 }
54
55 public void initializeUI() {
56 registerUI();
57 addComponentListener(new ComponentAdapter() {
58 @Override
59 public void componentResized(ComponentEvent e) {
60 if (CommentTree.this.isVisible()) {
61 registerUI();
62 }
63 }
64 });
65 }
66
67 private void registerUI() {
68 CommentTree.this.setUI(new MyTreeUI());
69 }
70
71 private class MyTreeUI extends BasicWideNodeTreeUI {
72 @Override
73 protected TreeCellRenderer createDefaultCellRenderer() {
74 return DISPATCHING_RENDERER;
75 }
76 }
77
78
79 }