1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.atlassian.theplugin.idea.crucible.tree;
17
18 import com.atlassian.theplugin.commons.crucible.api.model.RecentlyOpenReviewsFilter;
19 import com.atlassian.theplugin.crucible.model.CrucibleReviewListModel;
20 import com.atlassian.theplugin.idea.ui.tree.paneltree.AbstractTreeNode;
21 import com.atlassian.theplugin.idea.ui.tree.paneltree.SelectableLabel;
22
23 import javax.swing.*;
24
25
26
27
28 public class CrucibleRecentlyOpenFilterTreeNode extends AbstractTreeNode {
29 private static final String NAME = "Recently Viewed Reviews";
30 private final CrucibleReviewListModel reviewListModel;
31 private RecentlyOpenReviewsFilter recenltyOpenFilter;
32
33 public CrucibleRecentlyOpenFilterTreeNode(final RecentlyOpenReviewsFilter recentlyOpenReviewsFilter,
34 CrucibleReviewListModel reviewListModel) {
35 super(NAME, null, null);
36 this.reviewListModel = reviewListModel;
37 this.recenltyOpenFilter = recentlyOpenReviewsFilter;
38 }
39
40 public String toString() {
41 int cnt = reviewListModel.getReviewCount(recenltyOpenFilter);
42 String txt = NAME;
43 if (cnt > -1) {
44 txt += " (" + cnt + ")";
45 }
46 return txt;
47 }
48
49 public JComponent getRenderer(JComponent c, boolean selected, boolean expanded, boolean hasFocus) {
50 String txt = selected ? "<html>" + toString() : NAME;
51 return new SelectableLabel(selected, c.isEnabled(), c.getFont(), txt, ICON_HEIGHT);
52 }
53
54 public RecentlyOpenReviewsFilter getRecentlyOpenReviewsFilter() {
55 return recenltyOpenFilter;
56 }
57 }