diff options
2 files changed, 9 insertions, 13 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/Binding.java b/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/Binding.java index 38fce75cf..2c49e8090 100644 --- a/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/Binding.java +++ b/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/Binding.java @@ -1,7 +1,5 @@ package org.eclipse.fx.ui.controls.form;
-import java.util.Optional;
-
import org.eclipse.fx.core.Status;
import javafx.beans.property.ReadOnlyObjectProperty;
@@ -10,6 +8,6 @@ import javafx.scene.Node; public interface Binding {
public String id();
public ReadOnlyObjectProperty<Status> validationStatusProperty();
- public Optional<Node> decoratedNode();
+ public Node nodeWithStatus();
public void dispose();
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/DefaultForm.java b/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/DefaultForm.java index 870c48a5f..7d4a163c2 100644 --- a/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/DefaultForm.java +++ b/bundles/runtime/org.eclipse.fx.ui.controls/src/org/eclipse/fx/ui/controls/form/DefaultForm.java @@ -173,7 +173,7 @@ public class DefaultForm implements Form { private BindingConfiguration type;
private final DefaultForm form;
private Node decoratedNode;
- private Optional<Node> cachedNode;
+ private Node cachedNode;
public BindingImpl(DefaultForm form, String id, Node decoratedNode, Property<T> validatedProperty,
Property<T> oppositeProperty,
@@ -237,16 +237,14 @@ public class DefaultForm implements Form { }
@Override
- public Optional<Node> decoratedNode() {
+ public Node nodeWithStatus() {
if( this.cachedNode == null ) {
- this.cachedNode = Optional.ofNullable(this.decoratedNode)
- .map( n -> this.form.decorator.decorate(this.validationStatus, n))
- .map( n -> {
- if( this.nodeMutatorList != null ) {
- this.nodeMutatorList.forEach( m -> m.mutator.accept(n, m.data));
- }
- return n;
- });
+ this.cachedNode = this.form.decorator.decorate(this.validationStatus, this.decoratedNode);
+ if( this.nodeMutatorList != null ) {
+ this.nodeMutatorList.forEach( m -> m.mutator.accept(this.cachedNode, m.data));
+ }
+ } else {
+ this.cachedNode = new StatusNode(this.validationStatus);
}
return this.cachedNode;
}
|