modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java

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

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -24,17 +24,21 @@
  */
 package com.sun.javafx.scene.control.infrastructure;
 
 import static org.junit.Assert.assertNotNull;
 
-import com.sun.javafx.scene.control.skin.*;
 import javafx.geometry.Orientation;
-import javafx.scene.Group;
 import javafx.scene.Node;
-import javafx.scene.Scene;
 import javafx.scene.control.*;
-import javafx.stage.Stage;
+import javafx.scene.control.skin.ComboBoxListViewSkin;
+import com.sun.javafx.scene.control.LabeledText;
+import javafx.scene.control.skin.NestedTableColumnHeader;
+import javafx.scene.control.skin.TableColumnHeader;
+import javafx.scene.control.skin.TableHeaderRow;
+import javafx.scene.control.skin.TableViewSkinBase;
+import javafx.scene.control.skin.VirtualFlow;
+import com.sun.javafx.scene.control.VirtualScrollBar;
 import javafx.util.Callback;
 import java.util.List;
 
 import static org.junit.Assert.*;
 

@@ -310,11 +314,11 @@
     }
 
     public static void assertTableHeaderColumnExists(final Control control, final TableColumnBase column, boolean expected) {
         TableHeaderRow headerRow = getTableHeaderRow(control);
 
-        NestedTableColumnHeader rootHeader = headerRow.getRootHeader();
+        NestedTableColumnHeader rootHeader = getNestedTableColumnHeader(headerRow);
         boolean match = false;
         for (TableColumnHeader header : rootHeader.getColumnHeaders()) {
             match = column.equals(header.getTableColumn());
             if (match) break;
         }

@@ -338,11 +342,11 @@
 
         VirtualFlow<?> flow;
         if (control instanceof ComboBox) {
             final ComboBox cb = (ComboBox) control;
             final ComboBoxListViewSkin skin = (ComboBoxListViewSkin) cb.getSkin();
-            control = skin.getListView();
+            control = (ListView) skin.getPopupContent();
         }
 
         flow = (VirtualFlow<?>)control.lookup("#virtual-flow");
         
         if (stageLoaderCreated && sl != null && ! BLOCK_STAGE_LOADER_DISPOSE) {

@@ -365,11 +369,11 @@
     public static TableHeaderRow getTableHeaderRow(final Control control) {
         if (control.getSkin() == null) {
             throw new IllegalStateException("getTableHeaderRow requires the control to be visible in a stage");
         }
 
-        TableViewSkinBase<?,?,?,?,?,?> skin = (TableViewSkinBase) control.getSkin();
+        TableViewSkinBase<?,?,?,?,?> skin = (TableViewSkinBase) control.getSkin();
         TableHeaderRow headerRow = null;
         for (Node n : skin.getChildren()) {
             if (n instanceof TableHeaderRow) {
                 headerRow = (TableHeaderRow) n;
                 break;

@@ -393,11 +397,11 @@
         return scrollBar;
     }
 
     public static TableColumnHeader getTableColumnHeader(Control table, TableColumnBase<?,?> column) {
         TableHeaderRow headerRow = VirtualFlowTestUtils.getTableHeaderRow(table);
-        return findColumnHeader(headerRow.getRootHeader(), column);
+        return findColumnHeader(getNestedTableColumnHeader(headerRow), column);
     }
 
     private static TableColumnHeader findColumnHeader(NestedTableColumnHeader nestedHeader, TableColumnBase<?,?> column) {
         for (TableColumnHeader header : nestedHeader.getColumnHeaders()) {
             if (header instanceof NestedTableColumnHeader) {

@@ -411,6 +415,17 @@
                 }
             }
         }
         return null;
     }
+
+    public static NestedTableColumnHeader getNestedTableColumnHeader(TableHeaderRow headerRow) {
+        NestedTableColumnHeader rootHeader = null;
+
+        for (Node n : headerRow.getChildren()) {
+            if (n instanceof NestedTableColumnHeader) {
+                rootHeader = (NestedTableColumnHeader) n;
+            }
+        }
+        return rootHeader;
+    }
 }