blob: 2b7356a935c61c9912e4036e3b6fb2de2fe2df15 [file] [log] [blame]
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));
}
}