1 19 20 package org.netbeans.modules.junit.output; 21 22 import java.awt.BorderLayout ; 23 import java.awt.event.ItemEvent ; 24 import java.awt.event.ItemListener ; 25 import java.util.List ; 26 import javax.swing.Box ; 27 import javax.swing.BoxLayout ; 28 import javax.swing.ImageIcon ; 29 import javax.swing.JComponent ; 30 import javax.swing.JPanel ; 31 import javax.swing.JToggleButton ; 32 import javax.swing.JToolBar ; 33 import javax.swing.SwingConstants ; 34 import org.openide.util.NbBundle; 35 import org.openide.util.Utilities; 36 37 42 public final class StatisticsPanel extends JPanel implements ItemListener { 43 44 45 private final ResultPanelTree treePanel; 46 47 private JToggleButton btnFilter; 48 49 private String tooltipShowAll; 50 51 private String tooltipShowFailures; 52 53 55 public StatisticsPanel(final ResultDisplayHandler displayHandler) { 56 super(new BorderLayout (0, 0)); 57 58 JComponent toolbar = createToolbar(); 59 treePanel = new ResultPanelTree(displayHandler); 60 treePanel.setFiltered(btnFilter.isSelected()); 61 62 add(toolbar, BorderLayout.WEST); 63 add(treePanel, BorderLayout.CENTER); 64 } 65 66 68 private JComponent createToolbar() { 69 createFilterButton(); 70 71 JToolBar toolbar = new JToolBar (SwingConstants.VERTICAL); 72 toolbar.setLayout(new BoxLayout (toolbar, BoxLayout.Y_AXIS)); 73 toolbar.add(btnFilter); 74 toolbar.add(Box.createHorizontalGlue()); 75 76 toolbar.setFocusable(false); 77 toolbar.setFloatable(false); 78 toolbar.setBorderPainted(false); 79 80 return toolbar; 81 } 82 83 85 private void createFilterButton() { 86 btnFilter = new JToggleButton (new ImageIcon ( 87 Utilities.loadImage( 88 "org/netbeans/modules/junit/output/res/filter.png", true))); 90 btnFilter.getAccessibleContext().setAccessibleName( 91 NbBundle.getMessage(getClass(), "ACSN_FilterButton")); btnFilter.addItemListener(this); 93 94 updateFilterButtonLabel(); 95 } 96 97 99 private void updateFilterButtonLabel() { 100 if (tooltipShowAll == null) { 101 tooltipShowAll = NbBundle.getMessage( 102 getClass(), 103 "MultiviewPanel.btnFilter.showAll.tooltip"); tooltipShowFailures = NbBundle.getMessage( 105 getClass(), 106 "MultiviewPanel.btnFilter.showFailures.tooltip"); } 108 btnFilter.setToolTipText(btnFilter.isSelected() ? tooltipShowAll 109 : tooltipShowFailures); 110 } 111 112 114 public void itemStateChanged(ItemEvent e) { 115 116 treePanel.setFiltered(btnFilter.isSelected()); 117 updateFilterButtonLabel(); 118 } 119 120 122 void displayReport(final Report report) { 123 treePanel.displayReport(report); 124 125 btnFilter.setEnabled( 126 treePanel.getSuccessDisplayedLevel() != RootNode.ALL_PASSED_ABSENT); 127 } 128 129 131 void displayReports(final List <Report> reports) { 132 if (reports.isEmpty()) { 133 return; 134 } 135 136 treePanel.displayReports(reports); 137 138 btnFilter.setEnabled( 139 treePanel.getSuccessDisplayedLevel() != RootNode.ALL_PASSED_ABSENT); 140 } 141 142 149 void displaySuiteRunning(final String suiteName) { 150 treePanel.displaySuiteRunning(suiteName); 151 } 152 153 155 void displayMsg(final String msg) { 156 treePanel.displayMsg(msg); 157 } 158 159 } 160 | Popular Tags |