44
44
import com .sun .javafx .scene .control .behavior .TreeTableCellBehavior ;
45
45
import javafx .beans .property .ReadOnlyIntegerWrapper ;
46
46
import javafx .collections .transformation .FilteredList ;
47
+ import javafx .scene .control .SelectionModel ;
47
48
import javafx .scene .control .TableColumn ;
48
49
import javafx .scene .control .TableView ;
49
50
import test .javafx .collections .MockListObserver ;
@@ -1568,7 +1569,6 @@ private void addChildren(TreeItem parent, String name) {
1568
1569
assertEquals (mikeGraham , treeTableView .getFocusModel ().getFocusedItem ());
1569
1570
}
1570
1571
1571
- @ Ignore ("Bug hasn't been fixed yet" )
1572
1572
@ Test public void test_rt28114 () {
1573
1573
myCompanyRootNode .setExpanded (true );
1574
1574
treeTableView .setRoot (myCompanyRootNode );
@@ -1584,8 +1584,6 @@ private void addChildren(TreeItem parent, String name) {
1584
1584
itSupport .getChildren ().remove (mikeGraham );
1585
1585
assertEquals (itSupport , treeTableView .getFocusModel ().getFocusedItem ());
1586
1586
assertEquals (itSupport , treeTableView .getSelectionModel ().getSelectedItem ());
1587
- assertTrue (itSupport .isLeaf ());
1588
- assertTrue (!itSupport .isExpanded ());
1589
1587
}
1590
1588
1591
1589
@ Test public void test_rt27820_1 () {
@@ -6715,6 +6713,74 @@ public void test_clearAndSelectChangeMultipleSelectionCellMode() {
6715
6713
assertEquals (1 , sm .getSelectedItems ().size ());
6716
6714
}
6717
6715
6716
+ // JDK-8187596
6717
+ @ Test
6718
+ public void testRemoveTreeItemShiftSelection () {
6719
+ TreeItem <String > a , b , a1 , a2 , a3 ;
6720
+ TreeItem <String > root = new TreeItem <>("root" );
6721
+ root .getChildren ().addAll (
6722
+ a = new TreeItem <>("a" ),
6723
+ b = new TreeItem <>("b" )
6724
+ );
6725
+ root .setExpanded (true );
6726
+
6727
+ a .getChildren ().addAll (
6728
+ a1 = new TreeItem <>("a1" ),
6729
+ a2 = new TreeItem <>("a2" ),
6730
+ a3 = new TreeItem <>("a3" )
6731
+ );
6732
+ a .setExpanded (true );
6733
+
6734
+ TreeTableView <String > stringTreeTableView = new TreeTableView <>(root );
6735
+ TreeTableColumn <String , String > column = new TreeTableColumn <>("Nodes" );
6736
+ column .setCellValueFactory (p -> new ReadOnlyStringWrapper (p .getValue ().getValue ()));
6737
+ column .setPrefWidth (200 );
6738
+ stringTreeTableView .getColumns ().add (column );
6739
+
6740
+ stringTreeTableView .setShowRoot (false );
6741
+ SelectionModel sm = stringTreeTableView .getSelectionModel ();
6742
+
6743
+ sm .clearAndSelect (3 ); //select a3
6744
+ assertEquals (a3 , sm .getSelectedItem ()); //verify
6745
+ root .getChildren ().remove (b ); //remove b
6746
+ //a3 should remain selected
6747
+ assertEquals (3 , sm .getSelectedIndex ());
6748
+ assertEquals (a3 , sm .getSelectedItem ());
6749
+ }
6750
+
6751
+ // JDK-8193442
6752
+ @ Test
6753
+ public void testRemoveTreeItemChangesSelectedItem () {
6754
+ TreeItem <String > rootNode = new TreeItem <>("Root" );
6755
+ rootNode .setExpanded (true );
6756
+ for (int i = 0 ; i < 3 ; i ++) {
6757
+ rootNode .getChildren ().add (new TreeItem <>("Node " + i ));
6758
+ }
6759
+ for (int i = 0 ; i < 2 ; i ++) {
6760
+ TreeItem <String > node = rootNode .getChildren ().get (i );
6761
+ node .setExpanded (true );
6762
+ for (int j = 0 ; j < 2 ; j ++) {
6763
+ node .getChildren ().add (new TreeItem <>("Sub Node " + i + "-" + j ));
6764
+ }
6765
+ }
6766
+
6767
+ TreeTableColumn <String , String > column = new TreeTableColumn <>("Nodes" );
6768
+ column .setCellValueFactory (p -> new ReadOnlyStringWrapper (p .getValue ().getValue ()));
6769
+ column .setPrefWidth (200 );
6770
+
6771
+ TreeTableView <String > table = new TreeTableView <>(rootNode );
6772
+ table .getColumns ().add (column );
6773
+
6774
+ int selectIndex = 4 ; // select "Node 1"
6775
+ int removeIndex = 2 ; // remove "Node 2"
6776
+ table .getSelectionModel ().select (selectIndex );
6777
+ assertEquals (4 , table .getSelectionModel ().getSelectedIndex ());
6778
+ assertEquals ("Node 1" , table .getSelectionModel ().getSelectedItem ().getValue ());
6779
+ table .getRoot ().getChildren ().remove (removeIndex );
6780
+ assertEquals (4 , table .getSelectionModel ().getSelectedIndex ());
6781
+ assertEquals ("Node 1" , table .getSelectionModel ().getSelectedItem ().getValue ());
6782
+ }
6783
+
6718
6784
@ Test
6719
6785
public void test_ChangeToStringMouseMultipleSelectionCellMode () {
6720
6786
final Thread .UncaughtExceptionHandler exceptionHandler = Thread .currentThread ().getUncaughtExceptionHandler ();
0 commit comments