Databinding

lumo

Top Contributor
Hallo,

ich habe meine objekte als beans ausprogrammiert und einzelne werte (string, Integer etc)
mit firepropertychange überwacht.
jetzt habe ich etwas im code geändert und zwar hab ich
ALT:
Java:
String region1 = "";
String region2 = "";
getRegion1();
setRegion1(String value);
getRegion2();
setRegion2(String value);
zu NEU:
Java:
String region[] = new String[2];
getRegion(int index);
setRegion(int index, String value);
geändert.

dazu musste ich natürlich auch die firePropertyChange funktion verwerfen und verwende stattdessen nun fireIndexedPropertyChange, welches den index mit angibt!

meine frage hier ist nun... wie binde ich das an meine swt's?

bis jetzt habe ich das so gemacht:

Java:
IObservableValue observedControl = SWTObservables.observeDelayedValue(delay,
					SWTObservables.observeText(myTextControl, SWT.Modify));
final IObservableValue observableValue = BeansObservables.observeValue(obj, fieldName);
final Binding b = bindingContext.bindValue(observedControl, observableValue,	null, null);
final Product p = new Product(b, bindable, obj, fieldName);

wenn ich das unverändert lasse funktioniert es nicht (irgendwie logisch ;) )
bitte um den hinweis auf lösung, auch wenns DOC ist... ich find nicht, wo's sein könnte, gehn wirds wohl...
 
G

Gast2

Gast
Kommt drauf an, an was du es binden willst...
An EIN Textfeld kannst du keine 2 Werte binden...
 

lumo

Top Contributor
:D
das hatte ich nicht vor.
ich habe jeweils ein textfeld für den wert.
nur hab ich eben meine getter/setter mit index angegeben (mehr hat sich nicht geändert, allerdings spart mir das einiges code ein, da ich etliche solcher fälle habe...)

also:
1 wert wird an x felder gebunden (je nach dem wieviele felder im gui auf den wert gebunden werden... - klappte mit der alten version schon bestens)
 

lumo

Top Contributor
mein product speichert ein binding.
wird die gui componente disposed wird automatisch auch das binding dazu wieder freigegeben.
die products brauch ich somit nur zum aufräumen....
 
G

Gast2

Gast
Ich denke du brauchst eine UpdateValueStrategy und musst ihm da sagen welchen index er nehmen soll... Und du brauchst eine setter und getter für dein Array...
 
G

Gast2

Gast
Ja du musst ein String[] Array in einen einzelenen String umwandeln und andersherum...

Wie oben schon paar mal gesagt afaik arbeitet das Databinding mit Java Beans und du hast kein Java Bean...
 

Neue Themen


Oben