From 5dc79b2e8287e723c92f0525446e6767f4fb9a45 Mon Sep 17 00:00:00 2001 From: evan-miller-jumpmind <70151986+evan-miller-jumpmind@users.noreply.github.com> Date: Fri, 5 Feb 2021 13:46:24 -0500 Subject: [PATCH] 0004813: Improved multi-select grid behavior --- .../org/jumpmind/vaadin/ui/common/CommonUiUtils.java | 6 ++++-- .../vaadin/ui/sqlexplorer/DatabaseInfoPanel.java | 12 ++++++++---- .../vaadin/ui/sqlexplorer/SqlHistoryDialog.java | 6 ++++-- .../vaadin/ui/sqlexplorer/TableSelectionLayout.java | 6 ++++-- .../vaadin/ui/sqlexplorer/TabularResultLayout.java | 9 --------- .../vaadin/ui/sqlexplorer/TriggerTableLayout.java | 2 +- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/common/CommonUiUtils.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/common/CommonUiUtils.java index 483c7c08af..5eee1a27f9 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/common/CommonUiUtils.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/common/CommonUiUtils.java @@ -195,8 +195,10 @@ public static Grid> putResultsInGrid(final ResultSet rs, int maxRes grid.setSelectionMode(SelectionMode.MULTI); grid.setColumnReorderingAllowed(true); grid.addItemClickListener(event -> { - grid.deselectAll(); - grid.select(event.getItem()); + if (event.getColumn() != null) { + grid.deselectAll(); + grid.select(event.getItem()); + } }); List> outerList = new ArrayList>(); diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DatabaseInfoPanel.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DatabaseInfoPanel.java index 4342ec3c90..ae5bd23533 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DatabaseInfoPanel.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DatabaseInfoPanel.java @@ -177,8 +177,10 @@ private Grid> createGridWithReflection(Class reflectionClass, Ob grid.setSelectionMode(SelectionMode.MULTI); grid.setSizeFull(); grid.addItemClickListener(event -> { - grid.deselectAll(); - grid.select(event.getItem()); + if (event.getColumn() != null) { + grid.deselectAll(); + grid.select(event.getItem()); + } }); grid.addColumn(row -> row.get(0)).setCaption("Property").setWidth(400); @@ -231,8 +233,10 @@ private Grid createGridFromString(String data, String columnName) { grid.setSelectionMode(SelectionMode.MULTI); grid.setSizeFull(); grid.addItemClickListener(event -> { - grid.deselectAll(); - grid.select(event.getItem()); + if (event.getColumn() != null) { + grid.deselectAll(); + grid.select(event.getItem()); + } }); grid.addColumn(row -> row).setCaption(columnName); diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/SqlHistoryDialog.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/SqlHistoryDialog.java index 44a3b37c18..42f3326812 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/SqlHistoryDialog.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/SqlHistoryDialog.java @@ -90,8 +90,10 @@ public SqlHistoryDialog(ISettingsProvider settingsProvider, QueryPanel queryPane logTextFilterCell.setComponent(filterField); grid.addItemClickListener(event -> { - grid.deselectAll(); - grid.select(event.getItem()); + if (event.getColumn() != null) { + grid.deselectAll(); + grid.select(event.getItem()); + } if (event.getMouseEventDetails().isDoubleClick()) { select(); } diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TableSelectionLayout.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TableSelectionLayout.java index 75c12eb603..77be831ff2 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TableSelectionLayout.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TableSelectionLayout.java @@ -139,8 +139,10 @@ protected void createTableSelectionLayout(String titleKey) { listOfTablesGrid.setSizeFull(); listOfTablesGrid.setSelectionMode(SelectionMode.MULTI); listOfTablesGrid.addItemClickListener(event -> { - listOfTablesGrid.deselectAll(); - listOfTablesGrid.select(event.getItem()); + if (event.getColumn() != null) { + listOfTablesGrid.deselectAll(); + listOfTablesGrid.select(event.getItem()); + } }); listOfTablesGrid.addSelectionListener(event -> { selectedTablesSet.clear(); diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TabularResultLayout.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TabularResultLayout.java index a8c34f093b..04ea86d0e6 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TabularResultLayout.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TabularResultLayout.java @@ -64,7 +64,6 @@ import com.vaadin.data.Binder.Binding; import com.vaadin.data.provider.Query; import com.vaadin.icons.VaadinIcons; -import com.vaadin.shared.MouseEventDetails.MouseButton; import com.vaadin.shared.ui.MarginInfo; import com.vaadin.ui.Alignment; import com.vaadin.ui.HorizontalLayout; @@ -225,14 +224,6 @@ public void menuSelected(MenuItem selectedItem) { followToMenu = menu.addItem("Follow to", null); buildFollowToMenu(); } - - grid.addItemClickListener(event -> { - MouseButton button = event.getMouseEventDetails().getButton(); - if (button == MouseButton.LEFT) { - grid.deselectAll(); - grid.select(event.getItem()); - } - }); Editor> editor = grid.getEditor(); Binder> binder = editor.getBinder(); diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TriggerTableLayout.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TriggerTableLayout.java index 773dbf987c..e9f57aae83 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TriggerTableLayout.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/TriggerTableLayout.java @@ -79,7 +79,7 @@ public void menuSelected(MenuItem selectedItem) { grid.addItemClickListener(event -> { MouseButton button = event.getMouseEventDetails().getButton(); - if (button == MouseButton.LEFT) { + if (button == MouseButton.LEFT && event.getColumn() != null) { if (event.getMouseEventDetails().isDoubleClick()) { String colId = event.getColumn().getId(); if (colId.equals("property")) {