comparison org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableSet.d @ 98:48d4ee626868

rm databinding.observable seems to be duplicate, databinding.beans now building
author Frank Benoit <benoit@tionex.de>
date Wed, 22 Apr 2009 07:30:21 +0200
parents c86eb8b3098e
children
comparison
equal deleted inserted replaced
97:c86eb8b3098e 98:48d4ee626868
73 super(realm, new HashSet(), elementType); 73 super(realm, new HashSet(), elementType);
74 this.object = object; 74 this.object = object;
75 this.descriptor = descriptor; 75 this.descriptor = descriptor;
76 if (attachListeners) { 76 if (attachListeners) {
77 PropertyChangeListener listener = new class() PropertyChangeListener { 77 PropertyChangeListener listener = new class() PropertyChangeListener {
78 public void propertyChange(java.beans.PropertyChangeEvent event) { 78 public void propertyChange(java.beans.PropertyChangeEvent.PropertyChangeEvent event) {
79 if (!updating) { 79 if (!updating) {
80 getRealm().exec(new class() Runnable { 80 getRealm().exec(new class() Runnable {
81 public void run() { 81 public void run() {
82 Set newElements = new HashSet(Arrays 82 Set newElements = new HashSet(Arrays
83 .asList(getValues())); 83 .asList(getValues()));
122 private Object[] getValues() { 122 private Object[] getValues() {
123 Object[] values = null; 123 Object[] values = null;
124 124
125 Object result = primGetValues(); 125 Object result = primGetValues();
126 if (descriptor.getPropertyType().isArray()) 126 if (descriptor.getPropertyType().isArray())
127 values = cast(Object[]) result; 127 values = arrayFromObject!(Object)( result );
128 else { 128 else {
129 // TODO add jUnit for POJO (var. SettableValue) collections 129 // TODO add jUnit for POJO (var. SettableValue) collections
130 Collection list = cast(Collection) result; 130 Collection list = cast(Collection) result;
131 if (list !is null) 131 if (list !is null)
132 values = list.toArray(); 132 values = list.toArray();
138 138
139 private void setValues() { 139 private void setValues() {
140 if (descriptor.getPropertyType().isArray()) { 140 if (descriptor.getPropertyType().isArray()) {
141 Class componentType = descriptor.getPropertyType() 141 Class componentType = descriptor.getPropertyType()
142 .getComponentType(); 142 .getComponentType();
143 Object[] newArray = cast(Object[]) Array.newInstance(componentType, 143 Object[] newArray = arrayFromObject!(Object)(Array.newInstance(componentType,
144 wrappedSet.size()); 144 wrappedSet.size()));
145 wrappedSet.toArray(newArray); 145 wrappedSet.toArray(newArray);
146 primSetValues(newArray); 146 primSetValues(new ArrayWrapperObject(newArray));
147 } else { 147 } else {
148 // assume that it is a java.util.Set 148 // assume that it is a java.util.Set
149 primSetValues(new HashSet(wrappedSet)); 149 primSetValues(new HashSet(wrappedSet));
150 } 150 }
151 } 151 }
271 try { 271 try {
272 Method writeMethod = descriptor.getWriteMethod(); 272 Method writeMethod = descriptor.getWriteMethod();
273 if (!writeMethod.isAccessible()) { 273 if (!writeMethod.isAccessible()) {
274 writeMethod.setAccessible(true); 274 writeMethod.setAccessible(true);
275 } 275 }
276 writeMethod.invoke(object, new Object[] { newValue }); 276 writeMethod.invoke(object, [ newValue ]);
277 return; 277 return;
278 } catch (IllegalArgumentException e) { 278 } catch (IllegalArgumentException e) {
279 ex = e; 279 ex = e;
280 } catch (IllegalAccessException e) { 280 } catch (IllegalAccessException e) {
281 ex = e; 281 ex = e;