OpenJDK / openjfx / 8u-dev / rt
changeset 6988:07114320d480
RT-24658: When Tab is disabled, its content must be disabled,too
author | jgiles |
---|---|
date | Fri, 09 May 2014 11:09:40 +1200 |
parents | 3faf10865303 |
children | 923349122172 |
files | modules/controls/src/main/java/javafx/scene/control/Tab.java modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java |
diffstat | 2 files changed, 27 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/modules/controls/src/main/java/javafx/scene/control/Tab.java Thu May 08 13:32:07 2014 +1200 +++ b/modules/controls/src/main/java/javafx/scene/control/Tab.java Fri May 09 11:09:40 2014 +1200 @@ -645,7 +645,14 @@ } private void updateDisabled() { - setDisabled(isDisable() || (getTabPane() != null && getTabPane().isDisabled())); + boolean disabled = isDisable() || (getTabPane() != null && getTabPane().isDisabled()); + setDisabled(disabled); + + // Fix for RT-24658 - content should be disabled if the tab is disabled + Node content = getContent(); + if (content != null) { + content.setDisable(disabled); + } } /**
--- a/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java Thu May 08 13:32:07 2014 +1200 +++ b/modules/controls/src/test/java/javafx/scene/control/TabPaneTest.java Fri May 09 11:09:40 2014 +1200 @@ -964,4 +964,23 @@ assertEquals(1, pane.getSelectionModel().getSelectedIndex()); assertEquals(tab1, pane.getSelectionModel().getSelectedItem()); } + + @Test public void test_rt_24658() { + Button btn = new Button("Button"); + final Tab disabled = new Tab("Disabled"); + disabled.setContent(btn); + + TabPane pane = new TabPane(); + pane.getTabs().addAll(disabled); + + assertEquals(0, pane.getSelectionModel().getSelectedIndex()); + assertEquals(disabled, pane.getSelectionModel().getSelectedItem()); + assertFalse(btn.isDisabled()); + + disabled.setDisable(true); + assertTrue(btn.isDisabled()); + + disabled.setDisable(false); + assertFalse(btn.isDisabled()); + } }