Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
| eclipse-riena:validation 2016/01/08 13:02 | eclipse-riena:validation 2020/01/22 20:59 aktuell | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| [[eclipse-riena|Java - Eclipse-Riena]]\\ | [[eclipse-riena|Java - Eclipse-Riena]]\\ | ||
| ====== Validierung ====== | ====== 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:\\ | + | 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.\\ |
| <html> | <html> | ||
| <script type="text/javascript"><!-- | <script type="text/javascript"><!-- | ||
| Zeile 23: | Zeile 23: | ||
| \\ | \\ | ||
| \\ | \\ | ||
| + | In einem View wird unter anderem das Textfeld für die Plz erstellt: | ||
| + | <code java> | ||
| + | public class MyView extends SubModuleView { | ||
| + | @Override | ||
| + | protected void basicCreatePartControl(Composite parent) { | ||
| + | // ... | ||
| + | UIControlsFactory.createLabel(parent, "Plz:"); | ||
| + | UIControlsFactory.createText(composite, SWT.NONE, "zip"); | ||
| + | //... | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | \\ | ||
| + | \\ | ||
| + | Die Validierung wird im Controller durchgeführt: | ||
| + | <code java> | ||
| + | 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); | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | \\ | ||
| + | \\ | ||
| + | Möchte man, dass die Fehlermeldungen auch in der Statuszeile angezeigt werden, so kann dies mittels einer Extension eingeschaltet werden: | ||
| + | <code xml> | ||
| + | <extension point="org.eclipse.riena.core.configuration"> | ||
| + | <property key="riena.showRidgetMessagesInStatusline" value="true" /> | ||
| + | </extension> | ||
| + | </code> | ||