8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package javafx.beans.property;
27
28 import javafx.beans.InvalidationListener;
29 import javafx.beans.value.ChangeListener;
30
31 /**
32 * This class provides a convenient class to define read-only properties. It
33 * creates two properties that are synchronized. One property is read-only
34 * and can be passed to external users. The other property is read- and
35 * writable and should be used internally only.
36 *
37 * @since JavaFX 2.0
38 */
39 public class ReadOnlyBooleanWrapper extends SimpleBooleanProperty {
40
41 private ReadOnlyPropertyImpl readOnlyProperty;
42
43 /**
44 * The constructor of {@code ReadOnlyBooleanWrapper}
45 */
46 public ReadOnlyBooleanWrapper() {
47 }
48
49 /**
50 * The constructor of {@code ReadOnlyBooleanWrapper}
83 super(bean, name, initialValue);
84 }
85
86 /**
87 * Returns the readonly property, that is synchronized with this
88 * {@code ReadOnlyBooleanWrapper}.
89 *
90 * @return the readonly property
91 */
92 public ReadOnlyBooleanProperty getReadOnlyProperty() {
93 if (readOnlyProperty == null) {
94 readOnlyProperty = new ReadOnlyPropertyImpl();
95 }
96 return readOnlyProperty;
97 }
98
99 /**
100 * {@inheritDoc}
101 */
102 @Override
103 public void addListener(InvalidationListener listener) {
104 getReadOnlyProperty().addListener(listener);
105 }
106
107 /**
108 * {@inheritDoc}
109 */
110 @Override
111 public void removeListener(
112 InvalidationListener listener) {
113 if (readOnlyProperty != null) {
114 readOnlyProperty.removeListener(listener);
115 }
116 }
117
118 /**
119 * {@inheritDoc}
120 */
121 @Override
122 public void addListener(ChangeListener<? super Boolean> listener) {
123 getReadOnlyProperty().addListener(listener);
124 }
125
126 /**
127 * {@inheritDoc}
128 */
129 @Override
130 public void removeListener(ChangeListener<? super Boolean> listener) {
131 if (readOnlyProperty != null) {
132 readOnlyProperty.removeListener(listener);
133 }
134 }
135
136 /**
137 * {@inheritDoc}
138 */
139 @Override
140 protected void fireValueChangedEvent() {
141 if (readOnlyProperty != null) {
142 readOnlyProperty.fireValueChangedEvent();
143 }
144 }
145
146 private class ReadOnlyPropertyImpl extends ReadOnlyBooleanPropertyBase {
147
148 @Override
149 public boolean get() {
150 return ReadOnlyBooleanWrapper.this.get();
151 }
152
153 @Override
154 public Object getBean() {
155 return ReadOnlyBooleanWrapper.this.getBean();
156 }
157
158 @Override
159 public String getName() {
160 return ReadOnlyBooleanWrapper.this.getName();
|
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package javafx.beans.property;
27
28 /**
29 * This class provides a convenient class to define read-only properties. It
30 * creates two properties that are synchronized. One property is read-only
31 * and can be passed to external users. The other property is read- and
32 * writable and should be used internally only.
33 *
34 * @since JavaFX 2.0
35 */
36 public class ReadOnlyBooleanWrapper extends SimpleBooleanProperty {
37
38 private ReadOnlyPropertyImpl readOnlyProperty;
39
40 /**
41 * The constructor of {@code ReadOnlyBooleanWrapper}
42 */
43 public ReadOnlyBooleanWrapper() {
44 }
45
46 /**
47 * The constructor of {@code ReadOnlyBooleanWrapper}
80 super(bean, name, initialValue);
81 }
82
83 /**
84 * Returns the readonly property, that is synchronized with this
85 * {@code ReadOnlyBooleanWrapper}.
86 *
87 * @return the readonly property
88 */
89 public ReadOnlyBooleanProperty getReadOnlyProperty() {
90 if (readOnlyProperty == null) {
91 readOnlyProperty = new ReadOnlyPropertyImpl();
92 }
93 return readOnlyProperty;
94 }
95
96 /**
97 * {@inheritDoc}
98 */
99 @Override
100 protected void fireValueChangedEvent() {
101 super.fireValueChangedEvent();
102 if (readOnlyProperty != null) {
103 readOnlyProperty.fireValueChangedEvent();
104 }
105 }
106
107 private class ReadOnlyPropertyImpl extends ReadOnlyBooleanPropertyBase {
108
109 @Override
110 public boolean get() {
111 return ReadOnlyBooleanWrapper.this.get();
112 }
113
114 @Override
115 public Object getBean() {
116 return ReadOnlyBooleanWrapper.this.getBean();
117 }
118
119 @Override
120 public String getName() {
121 return ReadOnlyBooleanWrapper.this.getName();
|