use of com.android.tools.idea.ui.properties.core.BoolProperty in project android by JetBrains.
the class SyncFieldsDemo method init.
public void init() {
// Wrap UI elements in properties
final StringProperty projectText = new TextProperty(myProjectNameField);
final StringProperty activityText = new TextProperty(myActivityNameField);
final BoolProperty isSynced = new SelectedProperty(mySyncActivityNameCheckBox);
final BoolProperty createActivity = new SelectedProperty(myCreateActivityCheckBox);
BoolProperty isActivityEnabled = new EnabledProperty(myActivityNameField);
BoolProperty isLinkEnabled = new EnabledProperty(mySyncActivityNameCheckBox);
projectText.set("MyProject");
// Bind activityText <- nameExpression(projectText), but only if conditions are met
final FormatExpression activityNameExpression = new FormatExpression("%1$sActivity", projectText);
myBindings.bind(activityText, activityNameExpression, isSynced.and(createActivity));
myBindings.bind(isActivityEnabled, createActivity);
myBindings.bind(isLinkEnabled, createActivity);
// Listen to activityText - if it is changed by the user and not its binding, break syncing!
activityText.addListener(new InvalidationListener() {
@Override
public void onInvalidated(@NotNull ObservableValue<?> sender) {
isSynced.set(activityText.get().equals(activityNameExpression.get()));
}
});
}
Aggregations