modules/controls/src/main/java/javafx/scene/control/TableColumn.java

Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization

@@ -23,15 +23,16 @@
  * questions.
  */
 
 package javafx.scene.control;
 
-import com.sun.javafx.scene.control.skin.NestedTableColumnHeader;
-import com.sun.javafx.scene.control.skin.TableColumnHeader;
-import com.sun.javafx.scene.control.skin.TableHeaderRow;
-import com.sun.javafx.scene.control.skin.TableViewSkin;
-import com.sun.javafx.scene.control.skin.TableViewSkinBase;
+import com.sun.javafx.scene.control.Properties;
+import javafx.scene.control.skin.NestedTableColumnHeader;
+import javafx.scene.control.skin.TableColumnHeader;
+import javafx.scene.control.skin.TableHeaderRow;
+import javafx.scene.control.skin.TableViewSkin;
+import javafx.scene.control.skin.TableViewSkinBase;
 
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.collections.FXCollections;
 import javafx.collections.ListChangeListener;

@@ -416,14 +417,14 @@
             this, "cellFactory", (Callback<TableColumn<S,T>, TableCell<S,T>>) ((Callback) DEFAULT_CELL_FACTORY)) {
                 @Override protected void invalidated() {
                     TableView<S> table = getTableView();
                     if (table == null) return;
                     Map<Object,Object> properties = table.getProperties();
-                    if (properties.containsKey(TableViewSkinBase.RECREATE)) {
-                        properties.remove(TableViewSkinBase.RECREATE);
+                    if (properties.containsKey(Properties.RECREATE)) {
+                        properties.remove(Properties.RECREATE);
                     }
-                    properties.put(TableViewSkinBase.RECREATE, Boolean.TRUE);
+                    properties.put(Properties.RECREATE, Boolean.TRUE);
                 }
             };
 
     public final void setCellFactory(Callback<TableColumn<S,T>, TableCell<S,T>> value) {
         cellFactory.set(value);

@@ -634,12 +635,23 @@
     // SB-dependency: RT-21094 has been filed to track this   
    public Node impl_styleableGetNode() {
         if (! (getTableView().getSkin() instanceof TableViewSkin)) return null;
         TableViewSkin<?> skin = (TableViewSkin<?>) getTableView().getSkin();
 
-        TableHeaderRow tableHeader = skin.getTableHeaderRow();
-        NestedTableColumnHeader rootHeader = tableHeader.getRootHeader();
+        TableHeaderRow tableHeader = null;
+        for (Node n : skin.getChildren()) {
+            if (n instanceof TableHeaderRow) {
+                tableHeader = (TableHeaderRow)n;
+            }
+        }
+
+        NestedTableColumnHeader rootHeader = null;
+        for (Node n : tableHeader.getChildren()) {
+            if (n instanceof NestedTableColumnHeader) {
+                rootHeader = (NestedTableColumnHeader) n;
+            }
+        }
 
         // we now need to do a search for the header. We'll go depth-first.
         return scan(rootHeader);
     }