001 /*
002 * Copyright 2008-2015 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package griffon.javafx.support;
017
018 import javafx.beans.property.BooleanProperty;
019 import javafx.beans.property.ObjectProperty;
020 import javafx.beans.property.SimpleBooleanProperty;
021 import javafx.beans.property.SimpleObjectProperty;
022 import javafx.beans.property.SimpleStringProperty;
023 import javafx.beans.property.StringProperty;
024 import javafx.event.ActionEvent;
025 import javafx.event.EventHandler;
026 import javafx.scene.input.KeyCombination;
027
028 /**
029 * @author Andres Almiray
030 */
031 public class JavaFXAction {
032 // -- onAction
033
034 private ObjectProperty<EventHandler<ActionEvent>> onAction;
035
036 public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty() {
037 if (onAction == null) {
038 onAction = new SimpleObjectProperty<>(this, "onAction");
039 }
040 return onAction;
041 }
042
043 public void setOnAction(EventHandler<ActionEvent> value) {
044 onActionProperty().set(value);
045 }
046
047 public EventHandler<ActionEvent> getOnAction() {
048 return onAction == null ? null : onActionProperty().get();
049 }
050
051 // -- name
052
053 private StringProperty name;
054
055 public final StringProperty nameProperty() {
056 if (name == null) {
057 name = new SimpleStringProperty(this, "name");
058 }
059 return name;
060 }
061
062 public void setName(String name) {
063 nameProperty().set(name);
064 }
065
066 public String getName() {
067 return name == null ? null : nameProperty().get();
068 }
069
070 // -- description
071
072 private StringProperty description;
073
074 public final StringProperty descriptionProperty() {
075 if (description == null) {
076 description = new SimpleStringProperty(this, "description");
077 }
078 return description;
079 }
080
081 public void setDescription(String description) {
082 descriptionProperty().set(description);
083 }
084
085 public String getDescription() {
086 return description == null ? null : descriptionProperty().get();
087 }
088
089 // -- enabled
090
091 private BooleanProperty enabled;
092
093 public final BooleanProperty enabledProperty() {
094 if (enabled == null) {
095 enabled = new SimpleBooleanProperty(this, "enabled", true);
096 }
097 return enabled;
098 }
099
100 public void setEnabled(boolean enabled) {
101 enabledProperty().set(enabled);
102 }
103
104 public boolean getEnabled() {
105 return enabled != null && enabledProperty().get();
106 }
107
108 // -- accelerator
109
110 private ObjectProperty<KeyCombination> accelerator;
111
112 public void setAccelerator(String accelerator) {
113 setAccelerator(KeyCombination.keyCombination(accelerator));
114 }
115
116 public final void setAccelerator(KeyCombination value) {
117 acceleratorProperty().set(value);
118 }
119
120 public final KeyCombination getAccelerator() {
121 return accelerator == null ? null : accelerator.get();
122 }
123
124 public final ObjectProperty<KeyCombination> acceleratorProperty() {
125 if (accelerator == null) {
126 accelerator = new SimpleObjectProperty<>(this, "accelerator");
127 }
128 return accelerator;
129 }
130
131 // -- icon
132
133 private StringProperty icon;
134
135 public final StringProperty iconProperty() {
136 if (icon == null) {
137 icon = new SimpleStringProperty(this, "icon");
138 }
139 return icon;
140 }
141
142 public void setIcon(String icon) {
143 iconProperty().set(icon);
144 }
145
146 public String getIcon() {
147 return icon == null ? null : iconProperty().get();
148 }
149
150 // -- selected
151
152 private BooleanProperty selected;
153
154 public final BooleanProperty selectedProperty() {
155 if (selected == null) {
156 selected = new SimpleBooleanProperty(this, "selected");
157 }
158 return selected;
159 }
160
161 public void setSelected(boolean selected) {
162 selectedProperty().set(selected);
163 }
164
165 public boolean getSelected() {
166 return selected != null && selectedProperty().get();
167 }
168 }
|