Java - Eclipse-Riena

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>

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007