Validation Results View Example
/* Code revised from Desktop Java Live: http://www.sourcebeat.com/downloads/ */ import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import com.jgoodies.validation.ValidationResult; import com.jgoodies.validation.util.DefaultValidationResultModel; import com.jgoodies.validation.util.ValidationResultModel; import com.jgoodies.validation.view.ValidationResultViewFactory; public class ValidationResultsViewExample extends JPanel { private ValidationResultModel validationResultModel; public ValidationResultsViewExample() { PanelBuilder panelBuilder = new PanelBuilder(new FormLayout("right:pref, 3dlu, p:g")); panelBuilder.setDefaultDialogBorder(); this.validationResultModel = new DefaultValidationResultModel(); CellConstraints cc = new CellConstraints(); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(1, 4)); panel.add(new JButton(new SetValidationResults("Empty"))); panel.add(new JButton(new SetValidationResults("Errors"))); panel.add(new JButton(new SetValidationResults("Warnings"))); panel.add(new JButton(new SetValidationResults("Mixed"))); panelBuilder.appendRow("t:30dlu"); panelBuilder.add(panel, cc.xywh(1, panelBuilder.getRow(), 3, 1)); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Icon and Text Label", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportIconAndTextLabel(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Icon and TextPane", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportIconAndTextPane(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Icon Label", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportIconLabel(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Report List", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportList(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Report List with Color", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportList(this.validationResultModel, Color.white), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Text Area", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportTextArea(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Text Area with Color", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportTextArea(this.validationResultModel, Color.white), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Text Pane", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportTextPane(this.validationResultModel), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); panelBuilder.appendRow("2dlu"); panelBuilder.nextLine(); panelBuilder.appendRow("t:30dlu"); panelBuilder.addLabel("Text Pane with Color", cc.xy(1, panelBuilder.getRow())); panelBuilder.add(ValidationResultViewFactory.createReportTextPane(this.validationResultModel, Color.white), cc.xy(3, panelBuilder.getRow())); panelBuilder.nextLine(); add(panelBuilder.getPanel()); } private class SetValidationResults extends AbstractAction { public SetValidationResults(String name) { super(name); } public void actionPerformed(ActionEvent e) { if ("Errors".equals(this.getValue(Action.NAME))) { validationResultModel.setResult(createErrorResult()); } else if ("Mixed".equals(this.getValue(Action.NAME))) { validationResultModel.setResult(createMixedResult()); } else if ("Warnings".equals(this.getValue(Action.NAME))) { validationResultModel.setResult(createWarningResult()); } else if ("Empty".equals(this.getValue(Action.NAME))) { validationResultModel.setResult(createEmptyResult()); } } } private ValidationResult createEmptyResult() { return ValidationResult.EMPTY; } private ValidationResult createErrorResult() { ValidationResult validationResult = new ValidationResult(); validationResult.addError("Error message one."); validationResult.addError("Error message two."); validationResult.addError("Error message three."); return validationResult; } private ValidationResult createWarningResult() { ValidationResult validationResult = new ValidationResult(); validationResult.addWarning("Warning message one."); validationResult.addWarning("Warning message two."); validationResult.addWarning("Warning message three."); return validationResult; } private ValidationResult createMixedResult() { ValidationResult validationResult = new ValidationResult(); validationResult.addError("Error message one."); validationResult.addWarning("Warning message one."); validationResult.addWarning("Warning message two."); validationResult.addError("Error message two."); validationResult.addError("Error message three."); validationResult.addWarning("Warning message three."); return validationResult; } public static void main(String[] a){ JFrame f = new JFrame("Validation Results View Example"); f.setDefaultCloseOperation(2); f.add(new ValidationResultsViewExample()); f.pack(); f.setVisible(true); } }