123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /*
- * Copyright 2000-2014 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.vaadin.tests.components.textfield;
-
- import com.vaadin.data.Property.ValueChangeEvent;
- import com.vaadin.data.Property.ValueChangeListener;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractTestUIWithLog;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.Button.ClickListener;
- import com.vaadin.ui.CheckBox;
- import com.vaadin.ui.TextField;
-
- /**
- * Test to verify fields become implicitly "immediate" when adding value change
- * listener to them.
- *
- * @since 7.2
- * @author Vaadin Ltd
- */
- public class AutomaticImmediate extends AbstractTestUIWithLog {
-
- /**
- *
- */
- static final String BUTTON = "button";
- /**
- *
- */
- static final String EXPLICIT_FALSE = "explicit-false";
- /**
- *
- */
- static final String FIELD = "field";
- /**
- *
- */
- static final String LISTENER_TOGGLE = "listener-toggle";
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server.
- * VaadinRequest)
- */
- @Override
- protected void setup(VaadinRequest request) {
-
- final TextField textField = new TextField() {
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.AbstractField#fireValueChange(boolean)
- */
- @Override
- protected void fireValueChange(boolean repaintIsNotNeeded) {
- log("fireValueChange");
- super.fireValueChange(repaintIsNotNeeded);
- }
- };
- textField.setId(FIELD);
-
- final ValueChangeListener listener = new ValueChangeListener() {
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- log("Value changed: " + event.getProperty().getValue());
- }
- };
-
- final CheckBox checkBox = new CheckBox("Toggle listener");
- checkBox.addValueChangeListener(new ValueChangeListener() {
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (checkBox.getValue()) {
- textField.addValueChangeListener(listener);
- } else {
- textField.removeValueChangeListener(listener);
- }
- }
- });
- checkBox.setId(LISTENER_TOGGLE);
-
- Button b = new Button(
- "setImmediate(false), sets explicitly false and causes server roundtrip",
- new ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- textField.setImmediate(false);
- }
- });
- b.setId(EXPLICIT_FALSE);
-
- Button b2 = new Button("Hit server, causes server roundtrip",
- new ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- }
- });
- b2.setId(BUTTON);
-
- addComponent(textField);
- addComponent(checkBox);
- addComponent(b);
- addComponent(b2);
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
- */
- @Override
- protected String getTestDescription() {
- return "Field should be immediate automatically if it has value change listener";
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber()
- */
- @Override
- protected Integer getTicketNumber() {
- return 8029;
- }
-
- }
|