Browse Source

Don't use !important for ColorPicker width in Valo (#17140).

Change-Id: I47feff9c78a39e30233f388b938c7e4e53b52051
tags/7.5.0.beta1
Denis Anisimov 9 years ago
parent
commit
4217d7bbc8

+ 3
- 0
WebContent/VAADIN/themes/base/colorpicker/colorpicker.scss View File

@@ -18,6 +18,9 @@
margin: 1px auto;
}

.#{$name}.v-default-caption-width {
width: 100px;
}

/***************** COLOR HISTORY COMPONENT *****************************/
.#{$name}-history {

+ 1
- 1
WebContent/VAADIN/themes/valo/components/_colorpicker.scss View File

@@ -198,7 +198,7 @@
}

.#{$primary-stylename} {
width: auto !important;
width: auto;
}

.#{$primary-stylename}-button-color {

+ 16
- 0
client/src/com/vaadin/client/ui/colorpicker/AbstractColorPickerConnector.java View File

@@ -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.
*

+ 0
- 12
server/src/com/vaadin/ui/ColorPicker.java View File

@@ -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";
}
}

}

+ 72
- 0
uitest/src/com/vaadin/tests/components/colorpicker/DefaultCaptionWidth.java View File

@@ -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;
}
}

+ 67
- 0
uitest/src/com/vaadin/tests/components/colorpicker/DefaultCaptionWidthTest.java View File

@@ -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"));
}
}

}

+ 29
- 0
uitest/src/com/vaadin/tests/themes/valo/ValoDefaultCaptionWidth.java View File

@@ -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 {

}

+ 56
- 0
uitest/src/com/vaadin/tests/themes/valo/ValoDefaultCaptionWidthTest.java View File

@@ -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)));
}
}

Loading…
Cancel
Save