DataBinding und Validierung mittels Eclipse RCP

Eclipse Logo

Logo von Eclipse, Quelle: https://wiki.eclipse.org

In Eclipse RCP gibt für die Bindung zwischen Model und UI ein Framework für das DataBinding. Das DataBinding Framework verbindet Eigenschaften/Properteries von Objekten. Es wird typischerweise verwendet, um Eigenschaften der Benutzeroberfläche mit Eigenschaften anderer Java-Objekte zu synchronisieren. Diese Java-Objekte repräsentieren in der Regel das Datenmodell oder Domänenmodell.

Somit synchronisiert dieses DataBinding Frameworks Veränderungen dieser Eigenschaften/Properteries zwischen UI und Modell. Es unterstützt auch eine Validierung und Umwandlung bei der Synchronisation.

In der Beispiel-Anwendung aus dem Artikel „Einrichtung einer Eclipse RCP Anwendung“ wurde dieses DataBinding eingesetzt. Dort wird es verwendet, um die Änderungen zwischen dem Eingabe-Editor und dem Modell des Kontaktes zu synchronisieren. In der Klasse „ContactEditor.java“ findet sich dieses Binding:

protected void initDataBindings() {
        bindingContext = new DataBindingContext();
        //
        IObservableValue observeTextForenameTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(forenameText);
        IObservableValue forenameContactObserveValue = PojoProperties.value("forename").observe(contact);
        bindingContext.bindValue(observeTextForenameTextObserveWidget, forenameContactObserveValue, null, null);
        //
        IObservableValue observeTextSurnameTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(surnameText);
        IObservableValue surnameContactObserveValue = PojoProperties.value("surname").observe(contact);
        bindingContext.bindValue(observeTextSurnameTextObserveWidget, surnameContactObserveValue, null, null);
        //
        IObservableValue observeTextAddressTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(addressText);
        IObservableValue addressContactObserveValue = PojoProperties.value("address").observe(contact);
        bindingContext.bindValue(observeTextAddressTextObserveWidget, addressContactObserveValue, null, null);
    }

Dies sorgt dafür, das die Eigenschaften (Vorname, Nachname, Adresse) zwischen Oberfläche und Modell synchron bleiben.

Das Beispiel findet sich unter meinem GitHub als Tag „DemoContacts“. Zum Ausprobieren wird die Eclipse Platform IDE benötigt oder es müssen die erforderlichen Plugins in Eclipse nachinstalliert werden.

Weitere Informationen zum DataBinding finden sich hier:

Schreibe einen Kommentar