Skip to content

Commit

Permalink
gs-reactor: Use Consumer<Context> for prefix/postfixBindings
Browse files Browse the repository at this point in the history
At the moment, it’s only possible to add a prefix or postfix binding via the
methods
    addPrefixBinding(Consumer<Context> consumer)
    addPostixBinding(Consumer<Context> consumer)
so the HtmlDomNode parameter is never used.

The HtmlDomNode can be accessed from within the consumer using the method
getHtmlDomNode(Tag tag) from the Context class.
  • Loading branch information
fducroquet committed Sep 22, 2016
1 parent a07fde5 commit c783bc9
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

import org.genericsystem.defaults.tools.TransformationObservableList;
import org.genericsystem.reactor.Tag.RootTag;
Expand Down Expand Up @@ -94,8 +94,8 @@ protected <BETWEEN> void init(int index) {
modelContext.register(this);
if (parent != null)
insertChild(index);
for (BiConsumer<Context, HtmlDomNode> binding : tag.getPreFixedBindings())
binding.accept(modelContext, this);
for (Consumer<Context> binding : tag.getPreFixedBindings())
binding.accept(modelContext);
for (Tag childTag : tag.getObservableChildren()) {
MetaBinding<BETWEEN> metaBinding = childTag.<BETWEEN> getMetaBinding();
if (metaBinding != null) {
Expand All @@ -110,8 +110,8 @@ protected <BETWEEN> void init(int index) {
createChildDomNode(0, modelContext, childTag);

}
for (BiConsumer<Context, HtmlDomNode> binding : tag.getPostFixedBindings())
binding.accept(modelContext, this);
for (Consumer<Context> binding : tag.getPostFixedBindings())
binding.accept(modelContext);
}

public void createChildDomNode(int index, Context childContext, Tag childTag) {
Expand Down
31 changes: 15 additions & 16 deletions gs-reactor/src/main/java/org/genericsystem/reactor/Tag.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.genericsystem.reactor;

import io.vertx.core.http.ServerWebSocket;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
Expand All @@ -11,16 +9,6 @@
import java.util.function.Consumer;
import java.util.function.Function;

import javafx.beans.binding.ListBinding;
import javafx.beans.property.Property;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.MapChangeListener;
import javafx.collections.ObservableList;
import javafx.collections.ObservableMap;
import javafx.util.StringConverter;

import org.genericsystem.api.core.ApiStatics;
import org.genericsystem.common.Generic;
import org.genericsystem.defaults.tools.BindingsTools;
Expand All @@ -36,6 +24,17 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import io.vertx.core.http.ServerWebSocket;
import javafx.beans.binding.ListBinding;
import javafx.beans.property.Property;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.MapChangeListener;
import javafx.collections.ObservableList;
import javafx.collections.ObservableMap;
import javafx.util.StringConverter;

/**
* @author Nicolas Feybesse
*
Expand All @@ -47,22 +46,22 @@ public interface Tag extends TextPropertyDefaults, StylesDefaults, AttributesDef

public String getTag();

public List<BiConsumer<Context, HtmlDomNode>> getPreFixedBindings();
public List<Consumer<Context>> getPreFixedBindings();

public List<BiConsumer<Context, HtmlDomNode>> getPostFixedBindings();
public List<Consumer<Context>> getPostFixedBindings();

public <BETWEEN> MetaBinding<BETWEEN> getMetaBinding();

public <BETWEEN> void setMetaBinding(MetaBinding<BETWEEN> metaBinding);

@Override
default void addPrefixBinding(Consumer<Context> consumer) {
getPreFixedBindings().add((modelContext, node) -> consumer.accept(modelContext));
getPreFixedBindings().add(consumer);
}

@Override
default void addPostfixBinding(Consumer<Context> consumer) {
getPostFixedBindings().add((modelContext, node) -> consumer.accept(modelContext));
getPostFixedBindings().add(consumer);
}

default void bindOptionalStyleClass(String styleClass, String propertyName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@

import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import java.util.function.Consumer;

import org.genericsystem.reactor.Context;
import org.genericsystem.reactor.HtmlDomNode;
import org.genericsystem.reactor.MetaBinding;
import org.genericsystem.reactor.Tag;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

public class GSTagImpl implements Tag {

private final String tag;
private MetaBinding<?> metaBinding;
private final List<BiConsumer<Context, HtmlDomNode>> preFixedBindings = new ArrayList<>();
private final List<BiConsumer<Context, HtmlDomNode>> postFixedBindings = new ArrayList<>();
private final List<Consumer<Context>> preFixedBindings = new ArrayList<>();
private final List<Consumer<Context>> postFixedBindings = new ArrayList<>();
private Tag parent;
private final ObservableList<Tag> children = FXCollections.observableArrayList();

Expand Down Expand Up @@ -47,12 +46,12 @@ public String getTag() {
}

@Override
public List<BiConsumer<Context, HtmlDomNode>> getPreFixedBindings() {
public List<Consumer<Context>> getPreFixedBindings() {
return preFixedBindings;
}

@Override
public List<BiConsumer<Context, HtmlDomNode>> getPostFixedBindings() {
public List<Consumer<Context>> getPostFixedBindings() {
return postFixedBindings;
}

Expand Down

0 comments on commit c783bc9

Please sign in to comment.