- Fixes sendValueChange in TextFieldConnector - VTextField now adds/removes dependent stylename "focus" on focus/blur Change-Id: I965c30dd296cdab43ee5dc6cc8c7f8306392d8a2tags/8.0.0.alpha1
@@ -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); | |||
} | |||
} |
@@ -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(); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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 { |
@@ -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()); | |||
} | |||
} |