RCP JFace Databinding von Color-Objekten

MaxPow3r

Mitglied
Hi,

zur Situation:

Ich habe Objekte mit diversen Attributen von Strings über Integers bis hin zu einem Color Attribut.

Diese Objekte möchte ich über einen Editor manipulieren. Das Databinding für die Strings klappt wunderbar. Ich habe Text Objekte an die ich den Value aus dem Model binde.

Für die Darstellung der Farbe, nutze ich ein Label welches eingefärbt wird.

Mein Problem ist jetzt aber das ich kein Color Objekt binden kann (Widget Color is not supported) ein Label funktioniert ebenso wenig und wenn ich einen Text binden würde, funktioniert da ja lediglich mit dem Text nicht aber dem Background.

Weiß jemand Rat?

Gruß

p.s.: ich habe absichtlich auf Code-Schnipsel verzichtet wenn dies jedoch gewünscht wird kann ich diese ger nnachreichen.
 

MaxPow3r

Mitglied
ich habe es jetzt mal mit SWTObservables probiert.

Dort werden ja die Methoden observeBackground und observeForeground zur Verfügung gestellt.

Ergebnis ist, dass zwar keine Exception kommt aber leider hat der Text auch keine Färbung.

Hier mal das TextWidget

Code:
        final Text coloredText = toolkit.createText(colorComposite, "           ");
        coloredText.setBackground(color);
        bindColor(coloredText, editor);

und die bind-Methode

Code:
    private void bindColor(Text coloredText, StandbyTypeEditor editor) {
        IObservableValue colorWidget = SWTObservables.observeBackground(coloredText);
        IObservableValue colorModel = PojoProperties.value(StandbyTypeVO.COLOR_VO_FIELD).observeDetail(
            editor.getModel());
        UpdateValueStrategy colorToTarget = new UpdateValueStrategy();
        editor.getBindingContext().bindValue(colorWidget, colorModel, null, colorToTarget);
        EditorUtils.setReadOnly(coloredText, false);
    }

Vielleicht sieht ja einer von euch wo das Problem liegt, dass die Farbe nicht dargestellt wird.
 
Zuletzt bearbeitet:

MaxPow3r

Mitglied
Habe es letztendlich doch noch geschafft. Das Problem war, das aus dem Model nicht der erwartete Datentyp zurück kam.

Abhilfe schaffte im Endeffekt ein Konverter für die UpdateValueStrategy.

Danke für die Hilfe.
 

Ähnliche Java Themen


Oben