annotate org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2007, 2008 IBM Corporation and others.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Matthew Hall - bug 221704
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 *******************************************************************************/
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12
96
b74ac5dfcc06 package to module and java.lang.all import
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
13 module org.eclipse.core.databinding.beans.PojoObservables;
97
c86eb8b3098e packageimport
Frank Benoit <benoit@tionex.de>
parents: 96
diff changeset
14 import org.eclipse.core.databinding.beans.BeansObservables;
96
b74ac5dfcc06 package to module and java.lang.all import
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
15
b74ac5dfcc06 package to module and java.lang.all import
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
16 import java.lang.all;
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import java.beans.PropertyChangeEvent;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import java.beans.PropertyDescriptor;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import org.eclipse.core.databinding.observable.IObservable;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import org.eclipse.core.databinding.observable.Realm;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import org.eclipse.core.databinding.observable.list.IObservableList;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import org.eclipse.core.databinding.observable.map.IObservableMap;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import org.eclipse.core.databinding.observable.set.IObservableSet;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import org.eclipse.core.databinding.observable.value.IObservableValue;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import org.eclipse.core.internal.databinding.beans.BeanObservableMapDecorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import org.eclipse.core.internal.databinding.beans.JavaBeanPropertyObservableMap;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * A factory for creating observable objects for POJOs (plain old java objects)
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * that conform to idea of an object with getters and setters but does not
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * provide {@link PropertyChangeEvent property change events} on change. This
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * factory is identical to {@link BeansObservables} except for this fact.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * @since 1.1
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 final public class PojoObservables {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * Returns an observable value in the default realm tracking the current
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * value of the named property of the given pojo.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * the object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * @return an observable value tracking the current value of the named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * property of the given pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 public static IObservableValue observeValue(Object pojo, String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 return observeValue(Realm.getDefault(), pojo, propertyName);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * Returns an observable value in the given realm tracking the current value
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * of the named property of the given pojo.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * the realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * the object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * @return an observable value tracking the current value of the named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * property of the given pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 public static IObservableValue observeValue(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
81 Class.fromObject(pojo), propertyName);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 return new JavaBeanObservableValue(realm, pojo, descriptor, false);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * Returns an observable map in the default realm tracking the current
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * values of the named property for the pojos in the given set.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * @param domain
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * the set of pojo objects
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * @param pojoClass
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * the common base type of pojo objects that may be in the set
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * @return an observable map tracking the current values of the named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * property for the pojos in the given domain set
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 public static IObservableMap observeMap(IObservableSet domain,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 Class pojoClass, String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 pojoClass, propertyName);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 return new JavaBeanObservableMap(domain, descriptor, false);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * Returns an array of observable maps in the default realm tracking the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * current values of the named propertys for the pojos in the given set.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * @param domain
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * the set of objects
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * @param pojoClass
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * the common base type of objects that may be in the set
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * @param propertyNames
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * the array of property names
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * @return an array of observable maps tracking the current values of the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * named propertys for the pojos in the given domain set
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 public static IObservableMap[] observeMaps(IObservableSet domain,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 Class pojoClass, String[] propertyNames) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 IObservableMap[] result = new IObservableMap[propertyNames.length];
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 for (int i = 0; i < propertyNames.length; i++) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 result[i] = observeMap(domain, pojoClass, propertyNames[i]);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 return result;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * Returns an observable map in the given realm tracking the map-typed named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * property of the given pojo object.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * the realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * the pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * @return an observable map tracking the map-typed named property of the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * given pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 public static IObservableMap observeMap(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
143 Class.fromObject(pojo), propertyName);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 return new JavaBeanPropertyObservableMap(realm, pojo, descriptor, false);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * Returns an observable list in the given realm tracking the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * collection-typed named property of the given pojo object. The returned
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 * list is mutable.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * the realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * the object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * the name of the collection-typed property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 * @return an observable list tracking the collection-typed named property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * of the given pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 * @see #observeList(Realm, Object, String, Class)
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 public static IObservableList observeList(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 return observeList(realm, pojo, propertyName, null);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * Returns an observable list in the given realm tracking the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * collection-typed named property of the given bean object. The returned
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * list is mutable. When an item is added or removed the setter is invoked
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 * for the list on the parent bean to provide notification to other
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 * listeners via <code>PropertyChangeEvents</code>. This is done to
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 * provide the same behavior as is expected from arrays as specified in the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 * bean spec in section 7.2.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * the realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * the bean object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 * @param elementType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * type of the elements in the list. If <code>null</code> and
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 * the property is an array the type will be inferred. If
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * <code>null</code> and the property type cannot be inferred
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * element type will be <code>null</code>.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 * @return an observable list tracking the collection-typed named property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 * of the given bean object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 public static IObservableList observeList(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 String propertyName, Class elementType) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 PropertyDescriptor propertyDescriptor = BeansObservables
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
193 .getPropertyDescriptor(Class.fromObject(pojo), propertyName);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 elementType = BeansObservables.getCollectionElementType(elementType,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 propertyDescriptor);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 return new JavaBeanObservableList(realm, pojo, propertyDescriptor,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 elementType, false);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * Returns an observable set in the given realm tracking the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 * collection-typed named property of the given pojo object.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * the realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 * the pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * @return an observable set tracking the collection-typed named property of
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * the given pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 public static IObservableSet observeSet(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 return observeSet(realm, pojo, propertyName, null);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * @param pojo
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * @param elementType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * can be <code>null</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 * @return an observable set that tracks the current value of the named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * property for given pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 public static IObservableSet observeSet(Realm realm, Object pojo,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 String propertyName, Class elementType) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 PropertyDescriptor propertyDescriptor = BeansObservables
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
231 .getPropertyDescriptor(Class.fromObject(pojo), propertyName);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 elementType = BeansObservables.getCollectionElementType(elementType,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 propertyDescriptor);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 return new JavaBeanObservableSet(realm, pojo, propertyDescriptor,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 elementType, false);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * Returns a factory for creating obervable values tracking the given
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 * property of a particular pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 * the realm to use
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * @return an observable value factory
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 */
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
249 public static IObservableFactory valueFactory(Realm realm,
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
250 String propertyName) {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
251 return new class(realm, propertyName) IObservableFactory {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
252 Realm realm_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
253 String propertyName_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
254 this(Realm r, String p){
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
255 realm_=r;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
256 propertyName_=p;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
257 }
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 public IObservable createObservable(Object target) {
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
259 return observeValue(realm_, target, propertyName_);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 };
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 * Returns a factory for creating obervable lists tracking the given
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 * property of a particular pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 * the realm to use
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * @param elementType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * @return an observable list factory
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 */
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
275 public static IObservableFactory listFactory(Realm realm,
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
276 String propertyName, Class elementType) {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
277 return new class(realm, propertyName, elementType) IObservableFactory {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
278 Realm realm_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
279 String propertyName_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
280 Class elementType_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
281 this(Realm r, String p, Class e){
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
282 realm_=r;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
283 propertyName_=p;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
284 elementType_=e;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
285 }
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 public IObservable createObservable(Object target) {
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
287 return observeList(realm_, target, propertyName_, elementType_);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 };
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 * Returns a factory for creating obervable sets tracking the given property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 * of a particular pojo object
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * the realm to use
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * @return an observable set factory
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 */
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
302 public static IObservableFactory setFactory(Realm realm,
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
303 String propertyName) {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
304 return new class(realm, propertyName) IObservableFactory {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
305 Realm realm_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
306 String propertyName_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
307 this(Realm r, String p){
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
308 realm_=r;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
309 propertyName_=p;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
310 }
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 public IObservable createObservable(Object target) {
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
312 return observeSet(realm_, target, propertyName_);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 };
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * @param elementType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * can be <code>null</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 * @return an observable set factory for creating observable sets
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 */
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
324 public static IObservableFactory setFactory(Realm realm,
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
325 String propertyName, Class elementType) {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
326 return new class(realm, propertyName, elementType) IObservableFactory {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
327 Realm realm_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
328 String propertyName_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
329 Class elementType_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
330 this(Realm r, String p, Class e){
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
331 realm_=r;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
332 propertyName_=p;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
333 elementType_=e;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
334 }
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 public IObservable createObservable(Object target) {
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
336 return observeSet(realm_, target, propertyName_, elementType_);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 };
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * Returns a factory for creating an observable map. The factory, when
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 * provided with a pojo object, will create an {@link IObservableMap} in the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * given realm that tracks the map-typed named property for the specified
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 * pojo.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * the realm assigned to observables created by the returned
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 * factory.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * the name of the property
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 * @return a factory for creating {@link IObservableMap} objects.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 */
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
354 public static IObservableFactory mapPropertyFactory(Realm realm,
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
355 String propertyName) {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
356 return new class(realm, propertyName) IObservableFactory {
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
357 Realm realm_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
358 String propertyName_;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
359 this(Realm r, String p){
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
360 realm_=r;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
361 propertyName_=p;
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
362 }
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 public IObservable createObservable(Object target) {
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
364 return observeMap(realm_, target, propertyName_);
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 };
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 * Helper method for
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 propertyName), propertyType)</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 * @param master
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 * @param propertyType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * can be <code>null</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 * @return an observable value that tracks the current value of the named
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * property for the current value of the master observable value
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 * @see MasterDetailObservables
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 public static IObservableValue observeDetailValue(Realm realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 IObservableValue master, String propertyName, Class propertyType) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 IObservableValue value = MasterDetailObservables.detailValue(master,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 valueFactory(realm, propertyName), propertyType);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 BeanObservableValueDecorator decorator = new BeanObservableValueDecorator(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 value, master, BeansObservables.getValueTypePropertyDescriptor(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 master, propertyName));
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 return decorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 * Helper method for
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 * <code>MasterDetailObservables.detailList(master, listFactory(realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 propertyName, propertyType), propertyType)</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * @param master
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 * @param propertyType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 * can be <code>null</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 * @return an observable list that tracks the named property for the current
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 * value of the master observable value
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 * @see MasterDetailObservables
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 public static IObservableList observeDetailList(Realm realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 IObservableValue master, String propertyName, Class propertyType) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 IObservableList observableList = MasterDetailObservables.detailList(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 master, listFactory(realm, propertyName, propertyType),
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 propertyType);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 BeanObservableListDecorator decorator = new BeanObservableListDecorator(
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
417 observableList, cast(Object)master, BeansObservables
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 .getValueTypePropertyDescriptor(master, propertyName));
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 return decorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 * Helper method for
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * <code>MasterDetailObservables.detailSet(master, setFactory(realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 propertyName), propertyType)</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 * @param master
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 * @param propertyType
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 * can be <code>null</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 * @return an observable set that tracks the named property for the current
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 * value of the master observable value
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 * @see MasterDetailObservables
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 public static IObservableSet observeDetailSet(Realm realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 IObservableValue master, String propertyName, Class propertyType) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441 IObservableSet observableSet = MasterDetailObservables.detailSet(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 master, setFactory(realm, propertyName, propertyType),
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443 propertyType);
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 BeanObservableSetDecorator decorator = new BeanObservableSetDecorator(
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
445 observableSet, cast(Object)master, BeansObservables
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 .getValueTypePropertyDescriptor(master, propertyName));
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 return decorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 /**
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452 * Helper method for
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 * <code>MasterDetailObservables.detailMap(master, mapFactory(realm, propertyName))</code>
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 *
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455 * @param realm
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 * @param master
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 * @param propertyName
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 * @return an observable map that tracks the map-type named property for the
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 * current value of the master observable value.
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 */
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 public static IObservableMap observeDetailMap(Realm realm,
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 IObservableValue master, String propertyName) {
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 IObservableMap observableMap = MasterDetailObservables.detailMap(
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 master, mapPropertyFactory(realm, propertyName));
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 BeanObservableMapDecorator decorator = new BeanObservableMapDecorator(
98
48d4ee626868 rm databinding.observable seems to be duplicate, databinding.beans now building
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
466 observableMap, cast(Object)master, BeansObservables
95
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 .getValueTypePropertyDescriptor(master, propertyName));
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 return decorator;
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469 }
6208d4f6a277 Added trees for databinding.beans and observable
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 }