< prev index next >

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

Print this page
rev 8906 : RT-46083: TimelineClipCore exceptions handling improvent


  61 import javafx.event.EventHandler;
  62 import javafx.geometry.Orientation;
  63 import javafx.scene.Group;
  64 import javafx.scene.Scene;
  65 import javafx.scene.control.cell.*;
  66 import javafx.scene.image.ImageView;
  67 import javafx.scene.input.KeyCode;
  68 import javafx.scene.input.KeyEvent;
  69 import javafx.scene.layout.StackPane;
  70 import javafx.scene.layout.VBox;
  71 import javafx.scene.paint.Color;
  72 import javafx.scene.shape.Rectangle;
  73 import javafx.util.Callback;
  74 
  75 import com.sun.javafx.tk.Toolkit;
  76 import org.junit.Before;
  77 import org.junit.Ignore;
  78 import org.junit.Test;
  79 
  80 import com.sun.javafx.scene.control.TableColumnComparatorBase.TableColumnComparator;

  81 import com.sun.javafx.scene.control.infrastructure.VirtualFlowTestUtils;
  82 import com.sun.javafx.scene.control.test.Person;
  83 import com.sun.javafx.scene.control.test.RT_22463_Person;
  84 
  85 import static com.sun.javafx.scene.control.skin.TableColumnHeaderRetriever.*;
  86 import static org.junit.Assert.assertEquals;
  87 
  88 public class TableViewTest {
  89     private TableView<String> table;
  90     private TableView.TableViewSelectionModel sm;
  91     private TableView.TableViewFocusModel<String> fm;
  92 
  93     private ObservableList<Person> personTestData;
  94 
  95     @Before public void setup() {
  96         table = new TableView<>();
  97         sm = table.getSelectionModel();
  98         fm = table.getFocusModel();
  99 
 100         personTestData = FXCollections.observableArrayList(


3532         if (scroll) {
3533             // we scroll to force the table cells to update the objects they observe
3534             table.scrollTo(index);
3535             Toolkit.getToolkit().firePulse();
3536         }
3537 
3538         TableCell cell = (TableCell) VirtualFlowTestUtils.getCell(table, index + 3, 0);
3539         final int initialValue = (Integer) cell.getItem();
3540 
3541         // increment the offset value
3542         offset.setValue(offset.get() + 1);
3543         Toolkit.getToolkit().firePulse();
3544 
3545         final int incrementedValue = (Integer) cell.getItem();
3546         assertEquals(initialValue + 1, incrementedValue);
3547 
3548         sl.dispose();
3549     }
3550 
3551     @Test public void test_rt_37429() {
3552         // get the current exception handler before replacing with our own,
3553         // as ListListenerHelp intercepts the exception otherwise
3554         final Thread.UncaughtExceptionHandler exceptionHandler = Thread.currentThread().getUncaughtExceptionHandler();
3555         Thread.currentThread().setUncaughtExceptionHandler((t, e) -> fail("We don't expect any exceptions in this test!"));
3556 
3557         // table columns - 1 column; name
3558         TableColumn<String, String> nameColumn = new TableColumn<>("name");
3559         nameColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue()));
3560         nameColumn.setPrefWidth(200);
3561 
3562         // table
3563         TableView<String> table = new TableView<>();
3564         table.setItems(FXCollections.observableArrayList("one", "two", "three", "four", "five"));
3565         table.getColumns().addAll(nameColumn);
3566 
3567         table.getSelectionModel().getSelectedItems().addListener((ListChangeListener<String>) c -> {
3568             while (c.next()) {
3569                 if(c.wasRemoved()) {
3570                     // The removed list of items must be iterated or the AIOOBE will
3571                     // not be thrown when getAddedSubList is called.
3572                     c.getRemoved().forEach(item -> {});
3573                 }
3574 
3575                 if (c.wasAdded()) {
3576                     c.getAddedSubList();
3577                 }
3578             }
3579         });
3580 

3581         StageLoader sl = new StageLoader(table);
3582 
3583         table.getSelectionModel().select(0);
3584         table.getSortOrder().add(nameColumn);
3585 
3586         sl.dispose();
3587 
3588         // reset the exception handler
3589         Thread.currentThread().setUncaughtExceptionHandler(exceptionHandler);
3590     }
3591 
3592     private int rt_37429_items_change_count = 0;
3593     private int rt_37429_cells_change_count = 0;
3594     @Test public void test_rt_37429_sortEventsShouldNotFireExtraChangeEvents() {
3595         // table columns - 1 column; name
3596         TableColumn<String, String> nameColumn = new TableColumn<>("name");
3597         nameColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue()));
3598         nameColumn.setPrefWidth(200);
3599 
3600         // table
3601         TableView<String> table = new TableView<>();
3602         table.setItems(FXCollections.observableArrayList("a", "c", "b"));
3603         table.getColumns().addAll(nameColumn);
3604 
3605         table.getSelectionModel().getSelectedItems().addListener((ListChangeListener<String>) c -> {
3606             while (c.next()) {
3607                 rt_37429_items_change_count++;
3608             }
3609         });




  61 import javafx.event.EventHandler;
  62 import javafx.geometry.Orientation;
  63 import javafx.scene.Group;
  64 import javafx.scene.Scene;
  65 import javafx.scene.control.cell.*;
  66 import javafx.scene.image.ImageView;
  67 import javafx.scene.input.KeyCode;
  68 import javafx.scene.input.KeyEvent;
  69 import javafx.scene.layout.StackPane;
  70 import javafx.scene.layout.VBox;
  71 import javafx.scene.paint.Color;
  72 import javafx.scene.shape.Rectangle;
  73 import javafx.util.Callback;
  74 
  75 import com.sun.javafx.tk.Toolkit;
  76 import org.junit.Before;
  77 import org.junit.Ignore;
  78 import org.junit.Test;
  79 
  80 import com.sun.javafx.scene.control.TableColumnComparatorBase.TableColumnComparator;
  81 import com.sun.javafx.scene.control.infrastructure.ControlTestUtils;
  82 import com.sun.javafx.scene.control.infrastructure.VirtualFlowTestUtils;
  83 import com.sun.javafx.scene.control.test.Person;
  84 import com.sun.javafx.scene.control.test.RT_22463_Person;
  85 
  86 import static com.sun.javafx.scene.control.skin.TableColumnHeaderRetriever.*;
  87 import static org.junit.Assert.assertEquals;
  88 
  89 public class TableViewTest {
  90     private TableView<String> table;
  91     private TableView.TableViewSelectionModel sm;
  92     private TableView.TableViewFocusModel<String> fm;
  93 
  94     private ObservableList<Person> personTestData;
  95 
  96     @Before public void setup() {
  97         table = new TableView<>();
  98         sm = table.getSelectionModel();
  99         fm = table.getFocusModel();
 100 
 101         personTestData = FXCollections.observableArrayList(


3533         if (scroll) {
3534             // we scroll to force the table cells to update the objects they observe
3535             table.scrollTo(index);
3536             Toolkit.getToolkit().firePulse();
3537         }
3538 
3539         TableCell cell = (TableCell) VirtualFlowTestUtils.getCell(table, index + 3, 0);
3540         final int initialValue = (Integer) cell.getItem();
3541 
3542         // increment the offset value
3543         offset.setValue(offset.get() + 1);
3544         Toolkit.getToolkit().firePulse();
3545 
3546         final int incrementedValue = (Integer) cell.getItem();
3547         assertEquals(initialValue + 1, incrementedValue);
3548 
3549         sl.dispose();
3550     }
3551 
3552     @Test public void test_rt_37429() {





3553         // table columns - 1 column; name
3554         TableColumn<String, String> nameColumn = new TableColumn<>("name");
3555         nameColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue()));
3556         nameColumn.setPrefWidth(200);
3557 
3558         // table
3559         TableView<String> table = new TableView<>();
3560         table.setItems(FXCollections.observableArrayList("one", "two", "three", "four", "five"));
3561         table.getColumns().addAll(nameColumn);
3562 
3563         table.getSelectionModel().getSelectedItems().addListener((ListChangeListener<String>) c -> {
3564             while (c.next()) {
3565                 if(c.wasRemoved()) {
3566                     // The removed list of items must be iterated or the AIOOBE will
3567                     // not be thrown when getAddedSubList is called.
3568                     c.getRemoved().forEach(item -> {});
3569                 }
3570 
3571                 if (c.wasAdded()) {
3572                     c.getAddedSubList();
3573                 }
3574             }
3575         });
3576 
3577         final Thread.UncaughtExceptionHandler exceptionHandler = ControlTestUtils.setHandler();
3578         StageLoader sl = new StageLoader(table);
3579         try {
3580             table.getSelectionModel().select(0);
3581             table.getSortOrder().add(nameColumn);
3582         } finally {
3583             sl.dispose();
3584             ControlTestUtils.resetHandler(exceptionHandler);
3585         }

3586     }
3587 
3588     private int rt_37429_items_change_count = 0;
3589     private int rt_37429_cells_change_count = 0;
3590     @Test public void test_rt_37429_sortEventsShouldNotFireExtraChangeEvents() {
3591         // table columns - 1 column; name
3592         TableColumn<String, String> nameColumn = new TableColumn<>("name");
3593         nameColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper(param.getValue()));
3594         nameColumn.setPrefWidth(200);
3595 
3596         // table
3597         TableView<String> table = new TableView<>();
3598         table.setItems(FXCollections.observableArrayList("a", "c", "b"));
3599         table.getColumns().addAll(nameColumn);
3600 
3601         table.getSelectionModel().getSelectedItems().addListener((ListChangeListener<String>) c -> {
3602             while (c.next()) {
3603                 rt_37429_items_change_count++;
3604             }
3605         });


< prev index next >