Change-Id: I47feff9c78a39e30233f388b938c7e4e53b52051tags/7.5.0.beta1
@@ -18,6 +18,9 @@ | |||
margin: 1px auto; | |||
} | |||
.#{$name}.v-default-caption-width { | |||
width: 100px; | |||
} | |||
/***************** COLOR HISTORY COMPONENT *****************************/ | |||
.#{$name}-history { |
@@ -198,7 +198,7 @@ | |||
} | |||
.#{$primary-stylename} { | |||
width: auto !important; | |||
width: auto; | |||
} | |||
.#{$primary-stylename}-button-color { |
@@ -30,6 +30,8 @@ import com.vaadin.shared.ui.colorpicker.ColorPickerState; | |||
public abstract class AbstractColorPickerConnector extends | |||
AbstractComponentConnector implements ClickHandler { | |||
private static final String DEFAULT_WIDTH_STYLE = "v-default-caption-width"; | |||
@Override | |||
public ColorPickerState getState() { | |||
return (ColorPickerState) super.getState(); | |||
@@ -59,6 +61,7 @@ public abstract class AbstractColorPickerConnector extends | |||
|| stateChangeEvent.hasPropertyChanged("showDefaultCaption")) { | |||
setCaption(getCaption()); | |||
refreshDefaultCaptionStyle(); | |||
} | |||
} | |||
@@ -83,6 +86,19 @@ public abstract class AbstractColorPickerConnector extends | |||
return getState().caption; | |||
} | |||
/** | |||
* Add/remove default caption style. | |||
*/ | |||
protected void refreshDefaultCaptionStyle() { | |||
if (getState().showDefaultCaption | |||
&& (getState().caption == null || getState().caption.isEmpty()) | |||
&& getState().width.isEmpty()) { | |||
getWidget().addStyleName(DEFAULT_WIDTH_STYLE); | |||
} else { | |||
getWidget().removeStyleName(DEFAULT_WIDTH_STYLE); | |||
} | |||
} | |||
/** | |||
* Set caption of the color picker widget. | |||
* |
@@ -64,16 +64,4 @@ public class ColorPicker extends AbstractColorPicker { | |||
addStyleName(STYLENAME_DEFAULT); | |||
} | |||
@Override | |||
public void beforeClientResponse(boolean initial) { | |||
super.beforeClientResponse(initial); | |||
if (isDefaultCaptionEnabled() | |||
&& ((getState().caption == null || "" | |||
.equals(getState().caption))) | |||
&& "".equals(getState().width)) { | |||
getState().width = "100px"; | |||
} | |||
} | |||
} |
@@ -0,0 +1,72 @@ | |||
/* | |||
* 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.colorpicker; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.Button.ClickEvent; | |||
import com.vaadin.ui.ColorPicker; | |||
/** | |||
* Test for color picker with default caption. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class DefaultCaptionWidth extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
final ColorPicker colorPicker = new ColorPicker(); | |||
addComponent(colorPicker); | |||
colorPicker.setDefaultCaptionEnabled(true); | |||
Button setWidth = new Button("Set explicit width", | |||
new Button.ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
colorPicker.setCaption(null); | |||
colorPicker.setWidth("150px"); | |||
} | |||
}); | |||
setWidth.addStyleName("set-width"); | |||
addComponent(setWidth); | |||
Button setCaption = new Button("Set explicit caption", | |||
new Button.ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
colorPicker.setCaption("caption"); | |||
colorPicker.setWidthUndefined(); | |||
} | |||
}); | |||
setCaption.addStyleName("set-caption"); | |||
addComponent(setCaption); | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "Color picker with default caption enabled should get appropriate style"; | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 17140; | |||
} | |||
} |
@@ -0,0 +1,67 @@ | |||
/* | |||
* 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.colorpicker; | |||
import org.junit.Assert; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import com.vaadin.testbench.elements.ColorPickerElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
/** | |||
* Test for default caption behavior in color picker. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class DefaultCaptionWidthTest extends MultiBrowserTest { | |||
@Before | |||
public void setUp() { | |||
openTestURL(); | |||
} | |||
@Test | |||
public void setDefaultCaption_sizeAndCaptionAreNotSet_pickerGetsStyle() { | |||
checkStylePresence(true); | |||
} | |||
@Test | |||
public void setDefaultCaption_explicitSizeIsSet_pickerNoCaptionStyle() { | |||
findElement(By.className("set-width")).click(); | |||
checkStylePresence(false); | |||
} | |||
@Test | |||
public void setDefaultCaption_explicitCaptionIsSet_pickerNoCaptionStyle() { | |||
findElement(By.className("set-caption")).click(); | |||
checkStylePresence(false); | |||
} | |||
protected void checkStylePresence(boolean expectedStyle) { | |||
String clazz = $(ColorPickerElement.class).first() | |||
.getAttribute("class"); | |||
if (expectedStyle) { | |||
Assert.assertTrue("Default caption style is not found", | |||
clazz.contains("v-default-caption-width")); | |||
} else { | |||
Assert.assertFalse("Found unexpected default caption style", | |||
clazz.contains("v-default-caption-width")); | |||
} | |||
} | |||
} |
@@ -0,0 +1,29 @@ | |||
/* | |||
* 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.themes.valo; | |||
import com.vaadin.annotations.Theme; | |||
import com.vaadin.tests.components.colorpicker.DefaultCaptionWidth; | |||
/** | |||
* Test for color picker with default caption. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
@Theme("valo") | |||
public class ValoDefaultCaptionWidth extends DefaultCaptionWidth { | |||
} |
@@ -0,0 +1,56 @@ | |||
/* | |||
* 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.themes.valo; | |||
import static org.hamcrest.Matchers.greaterThan; | |||
import static org.hamcrest.Matchers.is; | |||
import static org.hamcrest.Matchers.lessThan; | |||
import static org.junit.Assert.assertThat; | |||
import org.junit.Test; | |||
import com.vaadin.testbench.elements.ColorPickerElement; | |||
import com.vaadin.tests.components.colorpicker.DefaultCaptionWidthTest; | |||
/** | |||
* Test for default caption behavior in color picker using Valo theme. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class ValoDefaultCaptionWidthTest extends DefaultCaptionWidthTest { | |||
@Override | |||
@Test | |||
public void setDefaultCaption_sizeAndCaptionAreNotSet_pickerGetsStyle() { | |||
super.setDefaultCaption_sizeAndCaptionAreNotSet_pickerGetsStyle(); | |||
int width = $(ColorPickerElement.class).first().getSize().getWidth(); | |||
// Make sure that implicit width is less than one that will be | |||
// explicitly set by the test | |||
assertThat("Width of color picker is overriden by " | |||
+ "default caption feature", width, is(lessThan(148))); | |||
} | |||
@Override | |||
@Test | |||
public void setDefaultCaption_explicitSizeIsSet_pickerNoCaptionStyle() { | |||
super.setDefaultCaption_explicitSizeIsSet_pickerNoCaptionStyle(); | |||
int width = $(ColorPickerElement.class).first().getSize().getWidth(); | |||
// Width should be 150px but let's just check that it's not which is | |||
// used when default caption is used and at least >= 150-1 | |||
assertThat("Width of color picker is overriden by " | |||
+ "default caption feature", width, is(greaterThan(149))); | |||
} | |||
} |