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)); | |
} | |
} |