< prev index next >
modules/javafx.controls/src/test/java/test/javafx/scene/control/cell/TextFieldTableCellTest.java
Print this page
rev 10463 : 8089514: [TableView, TreeView, ListView, TreeTableView] Clicking outside of the edited cell, node, or entry should commit the value
*** 1,7 ****
/*
! * 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
--- 1,7 ----
/*
! * Copyright (c) 2013, 2017, 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
*** 23,32 ****
--- 23,33 ----
* questions.
*/
package test.javafx.scene.control.cell;
+ import javafx.util.converter.DefaultStringConverter;
import test.com.sun.javafx.scene.control.infrastructure.MouseEventFirer;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.collections.FXCollections;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
*** 359,369 ****
cell.cancelEdit();
assertFalse(cell.isEditing());
assertNull(cell.getGraphic());
}
! @Test public void test_cancelEdit_usingTableCancelEdit() {
TableColumn tc = new TableColumn();
TableView tableView = new TableView(FXCollections.observableArrayList("TEST"));
tableView.getColumns().add(tc);
tableView.setEditable(true);
TextFieldTableCell<Object,Object> cell = new TextFieldTableCell<>();
--- 360,371 ----
cell.cancelEdit();
assertFalse(cell.isEditing());
assertNull(cell.getGraphic());
}
! @Test
! public void test_cancelEdit_usingTableCancelEdit_nullConverter() {
TableColumn tc = new TableColumn();
TableView tableView = new TableView(FXCollections.observableArrayList("TEST"));
tableView.getColumns().add(tc);
tableView.setEditable(true);
TextFieldTableCell<Object,Object> cell = new TextFieldTableCell<>();
*** 374,383 ****
--- 376,408 ----
tableView.edit(0, tc);
assertTrue(cell.isEditing());
assertNotNull(cell.getGraphic());
+ // a null converter will mean that when editing is cancelled, the currently-editing cell
+ // will be unable to be committed as the returned value internally will be empty.
+ // Editing will stop as usual though.
+ tableView.edit(-1, null);
+ assertFalse(cell.isEditing());
+ assertNull(cell.getGraphic());
+ }
+
+ @Test public void test_cancelEdit_usingTableCancelEdit_nonNullConverter() {
+ TableColumn tc = new TableColumn();
+ TableView tableView = new TableView(FXCollections.observableArrayList("TEST"));
+ tableView.getColumns().add(tc);
+ tableView.setEditable(true);
+ TextFieldTableCell<Object,String> cell = new TextFieldTableCell<>(new DefaultStringConverter());
+ cell.updateTableView(tableView);
+ cell.updateIndex(0);
+ cell.updateTableColumn(tc);
+ cell.setEditable(true);
+
+ tableView.edit(0, tc);
+ assertTrue(cell.isEditing());
+ assertNotNull(cell.getGraphic());
+
tableView.edit(-1, null);
assertFalse(cell.isEditing());
assertNull(cell.getGraphic());
}
< prev index next >