* Make value changes in color picker user originated This is not a programmatically initiated event, so it should have the 'userOriginated' property set to 'true'. - Added test to verify that indeed event is user originated after the changetags/8.6.1
@@ -464,8 +464,8 @@ public abstract class AbstractColorPicker extends AbstractField<Color> { | |||
window.addCloseListener( | |||
event -> getState().popupVisible = false); | |||
window.addValueChangeListener(event -> { | |||
setValue(event.getValue()); | |||
rpc.changeColor(event.getValue().getCSS()); | |||
window.setValue(color); | |||
setValue(event.getValue(), true); | |||
}); | |||
window.getHistory().setValue(color); | |||
window.setPositionX(positionX); |
@@ -0,0 +1,38 @@ | |||
package com.vaadin.tests.components.colorpicker; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.shared.ui.colorpicker.Color; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.AbstractColorPicker; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.ColorPicker; | |||
import com.vaadin.ui.Label; | |||
public class ColorPickerUserColorChange extends AbstractTestUI { | |||
public static final String value = "User originated: "; | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
AbstractColorPicker colorpicker = new ColorPicker("ColorPicker", | |||
Color.GREEN); | |||
Label isUserOriginated = new Label(value); | |||
isUserOriginated.setId("labelValue"); | |||
colorpicker.setPosition(250, 0); | |||
colorpicker.setId("clp"); | |||
colorpicker.setRGBVisibility(true); | |||
colorpicker.setHSVVisibility(true); | |||
colorpicker.setTextfieldVisibility(true); | |||
colorpicker.setSwatchesVisibility(true); | |||
colorpicker.addValueChangeListener(event -> { | |||
isUserOriginated.setValue(value + event.isUserOriginated()); | |||
}); | |||
addComponent(isUserOriginated); | |||
addComponent(colorpicker); | |||
Button changeColor = new Button("Change Color", e -> { | |||
colorpicker.setValue(Color.YELLOW); | |||
}); | |||
changeColor.setId("changeColor"); | |||
addComponent(changeColor); | |||
} | |||
} |
@@ -0,0 +1,32 @@ | |||
package com.vaadin.tests.components.colorpicker; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import org.openqa.selenium.WebElement; | |||
import static org.junit.Assert.assertEquals; | |||
public class ColorPickerUserColorChangeTest extends MultiBrowserTest { | |||
@Test | |||
public void testUserOriginatedTrue() { | |||
openTestURL(); | |||
// Open colorPicker | |||
findElement(By.className("v-button-v-colorpicker ")).click(); | |||
sleep(100); | |||
// click somewhere inside the gradient layer | |||
findElement(By.className("v-colorpicker-gradient-clicklayer")).click(); | |||
// confirm selection by clicking "OK" button | |||
findElements(By.className("v-button")).stream() | |||
.filter(el -> el.getText().equals("OK")).findFirst().get() | |||
.click(); | |||
WebElement label = findElement(By.id("labelValue")); | |||
assertEquals(true, label.getText().endsWith("true")); | |||
findElement(By.id("changeColor")).click(); | |||
assertEquals(false, label.getText().endsWith("true")); | |||
assertEquals(true, label.getText().endsWith("false")); | |||
} | |||
} |