sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject [sis] 01/03: Add a listener on `KeyEvent` for removing selected row.
Date Thu, 14 Jan 2021 23:21:31 GMT
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 20e03deec7ffcc8c1dd9c1607c25b86f252124c7
Author: Martin Desruisseaux <martin.desruisseaux@geomatys.com>
AuthorDate: Fri Jan 15 00:02:47 2021 +0100

    Add a listener on `KeyEvent` for removing selected row.
---
 .../sis/internal/gui/control/ValueColorMapper.java      | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ValueColorMapper.java
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ValueColorMapper.java
index fa8f611..1973ca3 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ValueColorMapper.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ValueColorMapper.java
@@ -27,6 +27,8 @@ import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
 import javafx.scene.paint.Color;
+import javafx.scene.input.KeyCode;
+import javafx.scene.input.KeyEvent;
 import javafx.scene.control.TableView;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.cell.CheckBoxTableCell;
@@ -327,6 +329,21 @@ public final class ValueColorMapper extends ColorColumnHandler<ValueColorMapper.
          */
         table.getItems().add(new Step());
         trigger.registerTo(table);
+        table.setOnKeyPressed(ValueColorMapper::deleteRow);
         return table;
     }
+
+    /**
+     * Invoked when user presses a key. If the key is "delete", then the current row is removed.
+     */
+    private static void deleteRow(final KeyEvent event) {
+        final TableView<?> table = (TableView<?>) event.getSource();
+        if (event.getCode() == KeyCode.DELETE) {
+            final int row = table.getSelectionModel().getSelectedIndex();
+            final ObservableList<?> items = table.getItems();
+            if (row >= 0 && row < items.size() - 1) {           // Do not delete
last row, which is insertion row.
+                items.remove(row);
+            }
+        }
+    }
 }


Mime
View raw message