Validierung
Das Beispiel zeigt die Validerung eines Eingabefeldes für die Postleitzahl. Dabei wird darauf geprüft, ob die Eingabe nur Ziffern enthält und ob die Anzahl der Ziffern wirklich fünf beträgt.
In einem View wird unter anderem das Textfeld für die Plz erstellt:
public class MyView extends SubModuleView { @Override protected void basicCreatePartControl(Composite parent) { // ... UIControlsFactory.createLabel(parent, "Plz:"); UIControlsFactory.createText(composite, SWT.NONE, "zip"); //... } }
Die Validierung wird im Controller durchgeführt:
public class MyController extends SubModuleController { @Override public void configureRidgets() { super.configureRidgets(); // ... ITextRidget ridgetZip = getRidget(ITextRidget.class, "plz"); ridgetZip.addValidationRule(new IValidator() { @Override public IStatus validate(Object value) { try { Integer.valueOf((String) value); // Versuch den Text in eine Zahl zu wandeln } catch (NumberFormatException e) { return ValidationRuleStatus.error(false, "Nur Ziffern sind erlaubt!"); } if (String.valueOf(value).length() != 5) return ValidationRuleStatus.error(false, "Die Länge der Plz muss 5 Zeichen betragen!"); return ValidationRuleStatus.ok(); } }, ValidationTime.ON_UI_CONTROL_EDIT); } }
Möchte man, dass die Fehlermeldungen auch in der Statuszeile angezeigt werden, so kann dies mittels einer Extension eingeschaltet werden:
<extension point="org.eclipse.riena.core.configuration"> <property key="riena.showRidgetMessagesInStatusline" value="true" /> </extension>