| package junit.swingui; |
| |
| import java.awt.*; |
| |
| import javax.swing.*; |
| |
| /** |
| * A panel with test run counters |
| */ |
| public class CounterPanel extends JPanel { |
| private JTextField fNumberOfErrors; |
| private JTextField fNumberOfFailures; |
| private JTextField fNumberOfRuns; |
| private Icon fFailureIcon= TestRunner.getIconResource(getClass(), "icons/failure.gif"); |
| private Icon fErrorIcon= TestRunner.getIconResource(getClass(), "icons/error.gif"); |
| |
| private int fTotal; |
| |
| public CounterPanel() { |
| super(new GridBagLayout()); |
| fNumberOfErrors= createOutputField(5); |
| fNumberOfFailures= createOutputField(5); |
| fNumberOfRuns= createOutputField(9); |
| |
| addToGrid(new JLabel("Runs:", JLabel.CENTER), |
| 0, 0, 1, 1, 0.0, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.NONE, |
| new Insets(0, 0, 0, 0)); |
| addToGrid(fNumberOfRuns, |
| 1, 0, 1, 1, 0.33, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, |
| new Insets(0, 8, 0, 0)); |
| |
| addToGrid(new JLabel("Errors:", fErrorIcon, SwingConstants.LEFT), |
| 2, 0, 1, 1, 0.0, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.NONE, |
| new Insets(0, 8, 0, 0)); |
| addToGrid(fNumberOfErrors, |
| 3, 0, 1, 1, 0.33, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, |
| new Insets(0, 8, 0, 0)); |
| |
| addToGrid(new JLabel("Failures:", fFailureIcon, SwingConstants.LEFT), |
| 4, 0, 1, 1, 0.0, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.NONE, |
| new Insets(0, 8, 0, 0)); |
| addToGrid(fNumberOfFailures, |
| 5, 0, 1, 1, 0.33, 0.0, |
| GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, |
| new Insets(0, 8, 0, 0)); |
| } |
| |
| private JTextField createOutputField(int width) { |
| JTextField field= new JTextField("0", width); |
| // force a fixed layout to avoid accidental hiding on relayout |
| field.setMinimumSize(field.getPreferredSize()); |
| field.setMaximumSize(field.getPreferredSize()); |
| field.setHorizontalAlignment(JTextField.LEFT); |
| field.setFont(StatusLine.BOLD_FONT); |
| field.setEditable(false); |
| field.setBorder(BorderFactory.createEmptyBorder()); |
| return field; |
| } |
| |
| public void addToGrid(Component comp, |
| int gridx, int gridy, int gridwidth, int gridheight, |
| double weightx, double weighty, |
| int anchor, int fill, |
| Insets insets) { |
| |
| GridBagConstraints constraints= new GridBagConstraints(); |
| constraints.gridx= gridx; |
| constraints.gridy= gridy; |
| constraints.gridwidth= gridwidth; |
| constraints.gridheight= gridheight; |
| constraints.weightx= weightx; |
| constraints.weighty= weighty; |
| constraints.anchor= anchor; |
| constraints.fill= fill; |
| constraints.insets= insets; |
| add(comp, constraints); |
| } |
| |
| public void reset() { |
| setLabelValue(fNumberOfErrors, 0); |
| setLabelValue(fNumberOfFailures, 0); |
| setLabelValue(fNumberOfRuns, 0); |
| fTotal= 0; |
| } |
| |
| public void setTotal(int value) { |
| fTotal= value; |
| } |
| |
| public void setRunValue(int value) { |
| fNumberOfRuns.setText(Integer.toString(value) + "/" + fTotal); |
| } |
| |
| public void setErrorValue(int value) { |
| setLabelValue(fNumberOfErrors, value); |
| } |
| |
| public void setFailureValue(int value) { |
| setLabelValue(fNumberOfFailures, value); |
| } |
| |
| private void setLabelValue(JTextField label, int value) { |
| label.setText(Integer.toString(value)); |
| } |
| } |