< prev index next >

modules/controls/src/test/java/test/javafx/scene/control/TableViewTest.java

Print this page




  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package test.javafx.scene.control;
  27 
  28 import static test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils.assertStyleClassContains;
  29 import static javafx.scene.control.TableColumn.SortType.ASCENDING;
  30 import static javafx.scene.control.TableColumn.SortType.DESCENDING;
  31 import static org.junit.Assert.*;
  32 
  33 import java.util.*;
  34 import java.util.concurrent.atomic.AtomicLong;
  35 import java.util.function.Supplier;
  36 
  37 import com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList;
  38 import com.sun.javafx.scene.control.SelectedCellsMap;

  39 import com.sun.javafx.scene.control.behavior.TableCellBehavior;
  40 import javafx.beans.InvalidationListener;
  41 import test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils;
  42 import test.com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
  43 import test.com.sun.javafx.scene.control.infrastructure.KeyModifier;
  44 import test.com.sun.javafx.scene.control.infrastructure.MouseEventFirer;
  45 import test.com.sun.javafx.scene.control.infrastructure.StageLoader;
  46 import javafx.application.Platform;
  47 import javafx.beans.binding.Bindings;
  48 import javafx.beans.binding.ObjectBinding;
  49 import javafx.beans.property.*;
  50 import javafx.collections.FXCollections;
  51 import javafx.collections.ListChangeListener;
  52 import javafx.collections.ObservableList;
  53 import javafx.collections.transformation.SortedList;
  54 import javafx.event.EventHandler;
  55 import javafx.geometry.Orientation;
  56 import javafx.scene.Group;
  57 import javafx.scene.Scene;
  58 import javafx.scene.control.cell.*;


1938 
1939 //    @Ignore("Test started intermittently failing, most probably due to RT-36855 changeset")
1940     @Test public void test_rt_34493() {
1941         TableView<Person> table = new TableView<>();
1942         table.setItems(FXCollections.observableArrayList(
1943                 new Person("John", "Smith", "jacob.smith@example.com")
1944         ));
1945 
1946         TableColumn<Person,String> first = new TableColumn<Person,String>("first");
1947         first.setCellValueFactory(new PropertyValueFactory("firstName"));
1948         TableColumn<Person,String> last = new TableColumn<Person,String>("last");
1949         first.setCellValueFactory(new PropertyValueFactory("lastName"));
1950         TableColumn<Person,String> email = new TableColumn<Person,String>("email");
1951         first.setCellValueFactory(new PropertyValueFactory("email"));
1952         table.getColumns().addAll(first, last, email);
1953 
1954         // load the table
1955         StageLoader sl = new StageLoader(table);
1956 
1957         // resize the last column
1958         last.impl_setWidth(400);
1959         assertEquals(400, last.getWidth(), 0.0);
1960 
1961         // hide the first column
1962         table.getColumns().remove(first);
1963         Toolkit.getToolkit().firePulse();
1964 
1965         // the last column should still be 400px, not the default width or any
1966         // other value (based on the width of the content in that column)
1967         assertEquals(400, last.getWidth(), 0.0);
1968 
1969         sl.dispose();
1970     }
1971 
1972     @Test public void test_rt_34685_directEditCall_cellSelectionMode() {
1973         test_rt_34685_commitCount = 0;
1974         test_rt_34685(false, true);
1975     }
1976 
1977     @Test public void test_rt_34685_directEditCall_rowSelectionMode() {
1978         test_rt_34685_commitCount = 0;


3327         // Drag column 1 to slot 1 again. What? Why did they swap positions this time?
3328         TableColumnHeaderUtil.moveColumn(column1, 0);
3329         assertEquals(column1, table.getVisibleLeafColumn(0));
3330         assertEquals(column2, table.getVisibleLeafColumn(1));
3331         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3332         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3333 
3334         sl.dispose();
3335     }
3336 
3337     @Test public void test_rt_37057_test1_MouseEvents() {
3338         // create table with a bunch of column and no rows...
3339         TableView<Integer> table = new TableView<>();
3340         for ( int i = 1; i <= 10; i++ ) {
3341             TableColumn<Integer, Integer> column = new TableColumn<>("" + i);
3342             table.getColumns().add( column );
3343 
3344             // sneak some hidden columns in there
3345             column = new TableColumn<>("h" + i);
3346             column.setVisible( false );
3347             column.impl_setWidth(50);
3348             column.setResizable(false);
3349             table.getColumns().add( column );
3350         }
3351 
3352         StageLoader sl = new StageLoader(table);
3353 
3354         TableColumn column1 = table.getVisibleLeafColumn(0);
3355         TableColumn column2 = table.getVisibleLeafColumn(1);
3356 
3357         // get the headers of a few columns
3358         TableColumnHeader header1 = VirtualFlowTestUtils.getTableColumnHeader(table, column1);
3359         TableColumnHeader header2 = VirtualFlowTestUtils.getTableColumnHeader(table, column2);
3360 
3361         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3362         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3363 
3364         // move as per first instructions in RT-37057. The dragOffset and sceneX
3365         // values passed into moveColumn have been derived from a manual run of
3366         // the test application attached to RT-37057 with debug output printed
3367         // in TableColumnHeader


3448         assertEquals(column1, table.getVisibleLeafColumn(0));
3449         assertEquals(column4, table.getVisibleLeafColumn(1));
3450         assertEquals(column2, table.getVisibleLeafColumn(2));
3451         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3452         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header4));
3453         assertEquals(2, TableColumnHeaderShim.getColumnIndex(header2));
3454 
3455         sl.dispose();
3456     }
3457 
3458     @Test public void test_rt_37057_test2_MouseEvents() {
3459         // create table with a bunch of column and no rows...
3460         TableView<Integer> table = new TableView<>();
3461         for ( int i = 1; i <= 10; i++ ) {
3462             TableColumn<Integer, Integer> column = new TableColumn<>("" + i);
3463             table.getColumns().add( column );
3464 
3465             // sneak some hidden columns in there
3466             column = new TableColumn<>("h" + i);
3467             column.setVisible( false );
3468             column.impl_setWidth(50);
3469             column.setResizable(false);
3470             table.getColumns().add( column );
3471         }
3472 
3473         StageLoader sl = new StageLoader(table);
3474 
3475         TableColumn column1 = table.getVisibleLeafColumn(0);
3476         TableColumn column2 = table.getVisibleLeafColumn(1);
3477         TableColumn column4 = table.getVisibleLeafColumn(3);
3478 
3479         // get the headers of a few columns
3480         TableColumnHeader header1 = VirtualFlowTestUtils.getTableColumnHeader(table, column1);
3481         TableColumnHeader header2 = VirtualFlowTestUtils.getTableColumnHeader(table, column2);
3482         TableColumnHeader header4 = VirtualFlowTestUtils.getTableColumnHeader(table, column4);
3483 
3484         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3485         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3486 
3487         // move as per second instructions in RT-37057. The dragOffset and sceneX
3488         // values passed into moveColumn have been derived from a manual run of




  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package test.javafx.scene.control;
  27 
  28 import static test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils.assertStyleClassContains;
  29 import static javafx.scene.control.TableColumn.SortType.ASCENDING;
  30 import static javafx.scene.control.TableColumn.SortType.DESCENDING;
  31 import static org.junit.Assert.*;
  32 
  33 import java.util.*;
  34 import java.util.concurrent.atomic.AtomicLong;
  35 import java.util.function.Supplier;
  36 
  37 import com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList;
  38 import com.sun.javafx.scene.control.SelectedCellsMap;
  39 import com.sun.javafx.scene.control.TableColumnBaseHelper;
  40 import com.sun.javafx.scene.control.behavior.TableCellBehavior;
  41 import javafx.beans.InvalidationListener;
  42 import test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils;
  43 import test.com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
  44 import test.com.sun.javafx.scene.control.infrastructure.KeyModifier;
  45 import test.com.sun.javafx.scene.control.infrastructure.MouseEventFirer;
  46 import test.com.sun.javafx.scene.control.infrastructure.StageLoader;
  47 import javafx.application.Platform;
  48 import javafx.beans.binding.Bindings;
  49 import javafx.beans.binding.ObjectBinding;
  50 import javafx.beans.property.*;
  51 import javafx.collections.FXCollections;
  52 import javafx.collections.ListChangeListener;
  53 import javafx.collections.ObservableList;
  54 import javafx.collections.transformation.SortedList;
  55 import javafx.event.EventHandler;
  56 import javafx.geometry.Orientation;
  57 import javafx.scene.Group;
  58 import javafx.scene.Scene;
  59 import javafx.scene.control.cell.*;


1939 
1940 //    @Ignore("Test started intermittently failing, most probably due to RT-36855 changeset")
1941     @Test public void test_rt_34493() {
1942         TableView<Person> table = new TableView<>();
1943         table.setItems(FXCollections.observableArrayList(
1944                 new Person("John", "Smith", "jacob.smith@example.com")
1945         ));
1946 
1947         TableColumn<Person,String> first = new TableColumn<Person,String>("first");
1948         first.setCellValueFactory(new PropertyValueFactory("firstName"));
1949         TableColumn<Person,String> last = new TableColumn<Person,String>("last");
1950         first.setCellValueFactory(new PropertyValueFactory("lastName"));
1951         TableColumn<Person,String> email = new TableColumn<Person,String>("email");
1952         first.setCellValueFactory(new PropertyValueFactory("email"));
1953         table.getColumns().addAll(first, last, email);
1954 
1955         // load the table
1956         StageLoader sl = new StageLoader(table);
1957 
1958         // resize the last column
1959         TableColumnBaseHelper.setWidth(last, 400);
1960         assertEquals(400, last.getWidth(), 0.0);
1961 
1962         // hide the first column
1963         table.getColumns().remove(first);
1964         Toolkit.getToolkit().firePulse();
1965 
1966         // the last column should still be 400px, not the default width or any
1967         // other value (based on the width of the content in that column)
1968         assertEquals(400, last.getWidth(), 0.0);
1969 
1970         sl.dispose();
1971     }
1972 
1973     @Test public void test_rt_34685_directEditCall_cellSelectionMode() {
1974         test_rt_34685_commitCount = 0;
1975         test_rt_34685(false, true);
1976     }
1977 
1978     @Test public void test_rt_34685_directEditCall_rowSelectionMode() {
1979         test_rt_34685_commitCount = 0;


3328         // Drag column 1 to slot 1 again. What? Why did they swap positions this time?
3329         TableColumnHeaderUtil.moveColumn(column1, 0);
3330         assertEquals(column1, table.getVisibleLeafColumn(0));
3331         assertEquals(column2, table.getVisibleLeafColumn(1));
3332         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3333         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3334 
3335         sl.dispose();
3336     }
3337 
3338     @Test public void test_rt_37057_test1_MouseEvents() {
3339         // create table with a bunch of column and no rows...
3340         TableView<Integer> table = new TableView<>();
3341         for ( int i = 1; i <= 10; i++ ) {
3342             TableColumn<Integer, Integer> column = new TableColumn<>("" + i);
3343             table.getColumns().add( column );
3344 
3345             // sneak some hidden columns in there
3346             column = new TableColumn<>("h" + i);
3347             column.setVisible( false );
3348             TableColumnBaseHelper.setWidth(column, 50);
3349             column.setResizable(false);
3350             table.getColumns().add( column );
3351         }
3352 
3353         StageLoader sl = new StageLoader(table);
3354 
3355         TableColumn column1 = table.getVisibleLeafColumn(0);
3356         TableColumn column2 = table.getVisibleLeafColumn(1);
3357 
3358         // get the headers of a few columns
3359         TableColumnHeader header1 = VirtualFlowTestUtils.getTableColumnHeader(table, column1);
3360         TableColumnHeader header2 = VirtualFlowTestUtils.getTableColumnHeader(table, column2);
3361 
3362         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3363         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3364 
3365         // move as per first instructions in RT-37057. The dragOffset and sceneX
3366         // values passed into moveColumn have been derived from a manual run of
3367         // the test application attached to RT-37057 with debug output printed
3368         // in TableColumnHeader


3449         assertEquals(column1, table.getVisibleLeafColumn(0));
3450         assertEquals(column4, table.getVisibleLeafColumn(1));
3451         assertEquals(column2, table.getVisibleLeafColumn(2));
3452         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3453         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header4));
3454         assertEquals(2, TableColumnHeaderShim.getColumnIndex(header2));
3455 
3456         sl.dispose();
3457     }
3458 
3459     @Test public void test_rt_37057_test2_MouseEvents() {
3460         // create table with a bunch of column and no rows...
3461         TableView<Integer> table = new TableView<>();
3462         for ( int i = 1; i <= 10; i++ ) {
3463             TableColumn<Integer, Integer> column = new TableColumn<>("" + i);
3464             table.getColumns().add( column );
3465 
3466             // sneak some hidden columns in there
3467             column = new TableColumn<>("h" + i);
3468             column.setVisible( false );
3469             TableColumnBaseHelper.setWidth(column, 50);
3470             column.setResizable(false);
3471             table.getColumns().add( column );
3472         }
3473 
3474         StageLoader sl = new StageLoader(table);
3475 
3476         TableColumn column1 = table.getVisibleLeafColumn(0);
3477         TableColumn column2 = table.getVisibleLeafColumn(1);
3478         TableColumn column4 = table.getVisibleLeafColumn(3);
3479 
3480         // get the headers of a few columns
3481         TableColumnHeader header1 = VirtualFlowTestUtils.getTableColumnHeader(table, column1);
3482         TableColumnHeader header2 = VirtualFlowTestUtils.getTableColumnHeader(table, column2);
3483         TableColumnHeader header4 = VirtualFlowTestUtils.getTableColumnHeader(table, column4);
3484 
3485         assertEquals(0, TableColumnHeaderShim.getColumnIndex(header1));
3486         assertEquals(1, TableColumnHeaderShim.getColumnIndex(header2));
3487 
3488         // move as per second instructions in RT-37057. The dragOffset and sceneX
3489         // values passed into moveColumn have been derived from a manual run of


< prev index next >