From: Artur Signell Date: Wed, 5 Jun 2013 06:51:53 +0000 (+0300) Subject: Properly disable combobox when parent is disabled (#10734) X-Git-Tag: 7.0.7~7 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=bd3f975;p=vaadin-framework.git Properly disable combobox when parent is disabled (#10734) Change-Id: I3fc238b684d213f509b136d520e67920cb6ed1a4 --- diff --git a/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java b/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java index d9eac91e2b..f91ff9e2b9 100644 --- a/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java +++ b/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java @@ -50,9 +50,6 @@ public class ComboBoxConnector extends AbstractFieldConnector implements getWidget().paintableId = uidl.getId(); getWidget().readonly = isReadOnly(); - getWidget().enabled = isEnabled(); - - getWidget().tb.setEnabled(getWidget().enabled); getWidget().updateReadOnly(); if (!isRealUpdate(uidl)) { @@ -280,4 +277,11 @@ public class ComboBoxConnector extends AbstractFieldConnector implements widget.updateRootWidth(); } } + + @Override + public void setWidgetEnabled(boolean widgetEnabled) { + super.setWidgetEnabled(widgetEnabled); + getWidget().enabled = widgetEnabled; + getWidget().tb.setEnabled(widgetEnabled); + } } diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.html b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.html new file mode 100644 index 0000000000..ab8c4f81d0 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.html @@ -0,0 +1,125 @@ + + + + + + +New Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
New Test
open/run/com.vaadin.tests.components.combobox.ComboBoxParentDisable?restartApplication
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[1]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VFilterSelect[0]#button6,16
assertText//div[@id='VAADIN_COMBOBOX_OPTIONLIST']/div/div[2]/table/tbody/tr[2]/td/spanItem 1
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/domChild[1]371,22
assertElementNotPresent//div[@id='VAADIN_COMBOBOX_OPTIONLIST']Item 1
clickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[2]/VButton[0]/domChild[0]
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[1]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VFilterSelect[0]#button8,12
assertElementNotPresent//div[@id='VAADIN_COMBOBOX_OPTIONLIST']Item 1
clickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[2]/VButton[0]/domChild[0]
pause100
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[1]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VFilterSelect[0]#button8,12
assertElementPresent//div[@id='VAADIN_COMBOBOX_OPTIONLIST']Item 1
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/domChild[1]371,22
clickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[3]/VButton[0]/domChild[0]/domChild[0]
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[1]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VFilterSelect[0]#button8,12
assertElementNotPresent//div[@id='VAADIN_COMBOBOX_OPTIONLIST']Item 1
clickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[3]/VButton[0]/domChild[0]/domChild[0]
pause100
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/Slot[1]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VFilterSelect[0]#button8,12
assertElementPresent//div[@id='VAADIN_COMBOBOX_OPTIONLIST']Item 1
mouseClickvaadin=runcomvaadintestscomponentscomboboxComboBoxParentDisable::/VVerticalLayout[0]/domChild[1]371,22
+ + diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.java new file mode 100644 index 0000000000..84355c4d89 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxParentDisable.java @@ -0,0 +1,81 @@ +package com.vaadin.tests.components.combobox; + +import com.vaadin.data.Property; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.FormLayout; +import com.vaadin.ui.VerticalLayout; + +/** + * The Application's "main" class + */ +@SuppressWarnings("serial") +public class ComboBoxParentDisable extends AbstractTestUIWithLog { + + @Override + protected void setup(VaadinRequest request) { + final VerticalLayout layout = new VerticalLayout(); + layout.setMargin(true); + setContent(layout); + + final FormLayout formLayout = new FormLayout(); + + final ComboBox combo = new ComboBox("Item:"); + combo.addItem("Item 1"); + combo.addItem("Item 2"); + combo.addItem("Item 3"); + combo.addItem("Item 4"); + combo.addValueChangeListener(new MyValueChangeListener()); + combo.setImmediate(true); + + Button btn1 = new Button("Click me"); + btn1.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + log.log("you clicked me"); + } + }); + + formLayout.addComponent(combo); + formLayout.addComponent(btn1); + + layout.addComponent(formLayout); + + Button btn = new Button("Enable/Disable combobox", + new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + combo.setEnabled(!combo.isEnabled()); + } + }); + layout.addComponent(btn); + btn = new Button("Enable/Disable parent", new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + formLayout.setEnabled(!formLayout.isEnabled()); + } + }); + layout.addComponent(btn); + + } + + private class MyValueChangeListener implements Property.ValueChangeListener { + @Override + public void valueChange(Property.ValueChangeEvent event) { + log.log("you made a selection change"); + } + } + + @Override + protected String getTestDescription() { + return "Test for ensuring that disabling a parent properly disables the combobox"; + } + + @Override + protected Integer getTicketNumber() { + return 10734; + } +} \ No newline at end of file