Browse Source

Fix TextField and related tests

- Fixes sendValueChange in TextFieldConnector
- VTextField now adds/removes dependent stylename "focus" on focus/blur

Change-Id: I965c30dd296cdab43ee5dc6cc8c7f8306392d8a2
tags/8.0.0.alpha1
Aleksi Hietanen 7 years ago
parent
commit
628adbf01a

+ 19
- 2
client/src/main/java/com/vaadin/client/ui/VTextField.java View File

@@ -17,6 +17,10 @@
package com.vaadin.client.ui;

import com.google.gwt.dom.client.Element;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.TextBoxBase;

@@ -26,18 +30,21 @@ import com.google.gwt.user.client.ui.TextBoxBase;
* @author Vaadin Ltd.
*
*/
public class VTextField extends TextBoxBase implements Field {
public class VTextField extends TextBoxBase
implements Field, FocusHandler, BlurHandler {

public static final String CLASSNAME = "v-textfield";
public static final String CLASSNAME_FOCUS = "focus";

public VTextField() {
this(DOM.createInputText());
setStyleName(CLASSNAME);
}

protected VTextField(Element node) {
super(node);
setStyleName(CLASSNAME);
addFocusHandler(this);
addBlurHandler(this);
}

public void setMaxLength(int maxLength) {
@@ -55,4 +62,14 @@ public class VTextField extends TextBoxBase implements Field {
getElement().removeAttribute("placeholder");
}
}

@Override
public void onBlur(BlurEvent event) {
removeStyleDependentName(CLASSNAME_FOCUS);
}

@Override
public void onFocus(FocusEvent event) {
addStyleDependentName(CLASSNAME_FOCUS);
}
}

+ 2
- 0
client/src/main/java/com/vaadin/client/ui/textfield/TextFieldConnector.java View File

@@ -149,5 +149,7 @@ public class TextFieldConnector extends AbstractComponentConnector {
}
getRpcProxy(TextFieldServerRpc.class).setText(getWidget().getValue(),
getWidget().getCursorPos());
getState().text = getWidget().getValue();
getState().cursorPosition = getWidget().getCursorPos();
}
}

+ 1
- 2
uitest/src/main/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayout.java View File

@@ -19,7 +19,7 @@ import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.FormLayout;
import com.vaadin.v7.ui.TextField;
import com.vaadin.ui.TextField;

public class RelativeSizeInUndefinedCssLayout extends AbstractTestUI {

@@ -40,7 +40,6 @@ public class RelativeSizeInUndefinedCssLayout extends AbstractTestUI {
TextField tf = new TextField("Enter something");
tf.setWidth("100%");
formLayout.addComponent(tf);

}

}

+ 1
- 1
uitest/src/test/java/com/vaadin/tests/components/grid/GridThemeUITest.java View File

@@ -24,12 +24,12 @@ import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridEditorElement;
import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserThemeTest;
import com.vaadin.v7.testbench.customelements.DateFieldElement;
import com.vaadin.v7.testbench.customelements.GridElement;
import com.vaadin.v7.testbench.customelements.NativeSelectElement;
import com.vaadin.v7.testbench.customelements.TextFieldElement;

@TestCategory("grid")
public class GridThemeUITest extends MultiBrowserThemeTest {

+ 2
- 3
uitest/src/test/java/com/vaadin/tests/components/textfield/InputPromptAndCursorPositionTest.java View File

@@ -17,14 +17,13 @@ public class InputPromptAndCursorPositionTest extends MultiBrowserTest {

// Clear the current value and reveal the input prompt.
TextFieldElement textFieldElement = $(TextFieldElement.class).get(0);
textFieldElement.setValue("");
textFieldElement.clear();

// Update cursor position.
$(ButtonElement.class).get(0).click();

// The cursor position should now be zero (not the input prompt length).
LabelElement cursorPosLabel = $(LabelElement.class).get(1);
assertEquals(cursorPosLabel.getText(), "Cursor position: 0");
assertEquals("Cursor position: 0", cursorPosLabel.getText());
}

}

Loading…
Cancel
Save