Posts Tagged ‘DialogDescriptor’
Simple Validation API & DialogDescriptor
2010-09-2
Leave a comment
This post shows you how the Simple Validation API (HowTo, Project@Kenai) can be used together with a NetBeans Platform standard dialog (using a DialogDescriptor
).
The Simple Validation API gives you a convenience method to show a dialog like (excerpt from the BasicDemo):
JPanel panel = new JPanel(); ... // setup panel ValidationPanel vp = new ValidationPanel(); vp.setInnerComponent(panel); ... // setup validation // Convenience method to show a simple dialog if (vp.showOkCancelDialog("URL")) { System.exit(0); } else { System.exit(1); }
To use a standard NetBeans Platform dialog, the sample above can be replaced with:
... // as above DialogDescriptor dd = ValidationUtil.createDialogDescriptor(vp, panel, "URL"); Object ret = DialogDisplayer.getDefault().notify(dd); if (DialogDescriptor.OK_OPTION.equals(ret)) { System.exit(0); } else { System.exit(1); }
public class ValidationUtil { private ValidationUtil() { // default constructor suppressed for non-instantiability } public static DialogDescriptor createDialogDescriptor(ValidationPanel vp, Object innerPane, String title) { final DialogDescriptor dd = new DialogDescriptor(innerPane, title); ValidationUI okButtonEnabler = new ValidationUI() { private NotificationLineSupport nls = dd.createNotificationLineSupport(); public void showProblem(Problem problem) { if (problem != null) { switch (problem.severity()) { case FATAL: nls.setErrorMessage(problem.getMessage()); dd.setValid(false); break; case WARNING: nls.setWarningMessage(problem.getMessage()); dd.setValid(true); break; default: nls.setInformationMessage(problem.getMessage()); dd.setValid(true); } } else { nls.clearMessages(); dd.setValid(true); } } public void clearProblem() { showProblem(null); } }; vp.getValidationGroup().addUI(okButtonEnabler); vp.getValidationGroup().performValidation(); return dd; } }
Categories: Java, NB Platform, NetBeans
DialogDescriptor, Simple Validation API