/** @return a fluent {@link SetPropertyBinder} to set a value on {@code other} when this condition is true. */ public <Q> WhenIsSetValueBinder<P, Q> set(final TakesValue<Q> value) { return new WhenIsSetValueBinder<P, Q>(b, property, condition, value); }
@Test public void whenSetToTakesValuesDoesNotTouchOnInitialEvaluation() { final BooleanProperty b = booleanProperty("b", true); final StringProperty s = stringProperty("s"); binder.when(b).is(true).set(s).to("t"); assertThat(s.get(), is("t")); assertThat(s.isTouched(), is(false)); }
@Test public void whenSetToOrElse() { final BooleanProperty b = booleanProperty("b"); binder.when(b).is(true).set(s).toOrElse("a", "b"); assertThat(s.get(), is("b")); b.set(true); assertThat(s.get(), is("a")); b.set(false); assertThat(s.get(), is("b")); }
@Test public void whenAlreadyTrueSetAnotherProperty() { final BooleanProperty b = booleanProperty("b", true); final IntegerProperty i = integerProperty("i", 1); binder.when(b).is(true).set(i).to(10); assertThat(i.get(), is(10)); }
@Test public void whenSetToHasValue() { final BooleanProperty b = booleanProperty("b", false); binder.when(b).is(true).set(box).to(s); s.set("some new value"); assertThat(box.getValue(), is("")); b.set(true); assertThat(box.getValue(), is("some new value")); }
@Test public void whenTrueSetAnotherProperty() { final BooleanProperty b = booleanProperty("b", false); final IntegerProperty i = integerProperty("i", 1); binder.when(b).is(true).set(i).to(10); b.set(true); assertThat(i.get(), is(10)); }
@Test public void whenSetToTakesValues() { final BooleanProperty b = booleanProperty("b", false); final StubElement e = new StubElement(); binder.when(b).is(true).set(textOf(e)).to("t"); b.set(true); assertThat(e.getInnerText(), is("t")); }
private <T extends HasAllDragAndDropHandlers & IsWidget> void set(String type, IsFlowPanel root, Property<T> current, T a) { // just to see one of them not be draggable if (a != view.a4() && a != view.l4()) { a.getIsElement().setAttribute("draggable", "true"); } binder.when(draggingOver(a)).is(true).set(view.style().bold()).on(a); binder.when(dragging(a)).is(true).set(current).to(a); a.addDragStartHandler(e -> e.setData("text", type)); a.addDragOverHandler(e -> e.preventDefault()); a.addDropHandler(e -> { if (type.equals(e.getData("text")) && current.get() != a) { GWT.log("Dropped " + current + " onto " + a); root.remove(current.get()); root.insert(current.get(), root.getWidgetIndex(a)); } e.preventDefault(); }); }