Skip to content

Commit 4881d19

Browse files
committed
InputSample was failing randomly in FF & Safari.
Use new Polymer.function method to avoid casting when binding templates.
1 parent b4d1bd5 commit 4881d19

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

demo/src/main/java/com/vaadin/polymer/demo/client/sampler/iron/IronIconsSample.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.google.gwt.user.client.ui.Composite;
77
import com.google.gwt.user.client.ui.HTMLPanel;
88
import com.vaadin.polymer.Polymer;
9-
import com.vaadin.polymer.elemental.Function;
109
import com.vaadin.polymer.elemental.Template;
1110

1211
public class IronIconsSample extends Composite {
@@ -21,7 +20,7 @@ public IronIconsSample() {
2120
initWidget(ourUiBinder.createAndBindUi(this));
2221

2322
// Example of how to bind functions to custom elements.
24-
Polymer.property(bindTemplate, "getIconNames",
25-
(Function<?,?>) iconSet -> Polymer.apply(iconSet, "getIconNames"));
23+
Polymer.function(bindTemplate, "getIconNames",
24+
iconSet -> Polymer.apply(iconSet, "getIconNames"));
2625
}
2726
}

demo/src/main/java/com/vaadin/polymer/demo/client/sampler/iron/IronInputSample.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.google.gwt.user.client.ui.Composite;
88
import com.google.gwt.user.client.ui.HTMLPanel;
99
import com.vaadin.polymer.Polymer;
10-
import com.vaadin.polymer.elemental.Function;
1110
import com.vaadin.polymer.elemental.HTMLElement;
1211
import com.vaadin.polymer.elemental.NodeList;
1312
import com.vaadin.polymer.elemental.Template;
@@ -35,7 +34,7 @@ public IronInputSample() {
3534
initWidget(ourUiBinder.createAndBindUi(this));
3635

3736
// Wait until the template has been rendered by polymer to query the dom.
38-
Polymer.whenReady(o -> {
37+
Polymer.ready(bindTemplate, o -> {
3938
NodeList inputs = ((HTMLElement)getElement()).querySelectorAll("input");
4039
ironInput = inputs.item(0);
4140
input1 = inputs.item(1);
@@ -44,17 +43,15 @@ public IronInputSample() {
4443
});
4544

4645
// Bind functions to the template
47-
Polymer.property(bindTemplate, "function1",
48-
(Function<?,?>) e -> {
49-
ironInput.setBindValue(input1.getValue());
50-
return null;
51-
});
52-
Polymer.property(bindTemplate, "function2",
53-
(Function<?,?>) e -> {
54-
// TODO: casting because api-generator does not support extending
55-
// native elements yet, hence we use gwt input.value instead.
56-
((InputElement)ironInput).setValue(input2.getValue());
57-
return null;
58-
});
46+
Polymer.function(bindTemplate, "function1", o -> {
47+
ironInput.setBindValue(input1.getValue());
48+
return null;
49+
});
50+
Polymer.function(bindTemplate, "function2", o -> {
51+
// TODO: casting because api-generator does not support extending
52+
// native elements yet, hence we use gwt input.value instead.
53+
((InputElement) ironInput).setValue(input2.getValue());
54+
return null;
55+
});
5956
}
6057
}

demo/src/main/java/com/vaadin/polymer/demo/client/sampler/iron/IronInputSample.ui.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
.vertical-section {
99
line-height: 40px;
1010
}
11+
input {
12+
width: 150px;
13+
}
1114
input[is=iron-input] {
1215
width: 100%;
1316
}

0 commit comments

Comments
 (0)