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> | ||