From 665fe452479e92de31fcd5f21c7174f22b5f76ea Mon Sep 17 00:00:00 2001 From: Mathieu Lavigne Date: Fri, 8 Sep 2017 15:31:30 +0200 Subject: [PATCH] FIX #19 Cannot delete Index --- .../swingui/action/DeleteSelectedAction.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/ca/sqlpower/architect/swingui/action/DeleteSelectedAction.java b/src/main/java/ca/sqlpower/architect/swingui/action/DeleteSelectedAction.java index d63a86511..cbaea164e 100644 --- a/src/main/java/ca/sqlpower/architect/swingui/action/DeleteSelectedAction.java +++ b/src/main/java/ca/sqlpower/architect/swingui/action/DeleteSelectedAction.java @@ -28,6 +28,7 @@ import javax.swing.JOptionPane; import javax.swing.KeyStroke; +import javax.swing.tree.TreePath; import org.apache.log4j.Logger; @@ -86,7 +87,9 @@ public void actionPerformed(ActionEvent evt) { logger.debug("delete action detected!"); //$NON-NLS-1$ logger.debug("ACTION COMMAND: " + evt.getActionCommand()); //$NON-NLS-1$ - if (getPlaypen().getSelectedItems().size() < 1) { + final TreePath[] selectionPaths = getSession().getDBTree().getSelectionPaths(); + final int selectionPathsSize = selectionPaths != null ? selectionPaths.length : 0; + if (getPlaypen().getSelectedItems().size() + selectionPathsSize < 1) { JOptionPane.showMessageDialog(getPlaypen(), Messages.getString("DeleteSelectedAction.noItemsToDelete")); //$NON-NLS-1$ return; } @@ -218,6 +221,18 @@ List retrieveDeletableItems() { } } + // Invisible elements in the PlayPen but selected in the TreeView + TreePath[] selectionPaths = getSession().getDBTree().getSelectionPaths(); + if (selectionPaths != null) { + for (final TreePath tp : selectionPaths) { + final Object c = tp.getLastPathComponent(); + if (c instanceof SQLIndex && !deleteItems.contains(c)) { + final SQLIndex index = (SQLIndex) c; + deleteItems.add(index); + } + } + } + Set tablesWithSelectedColumns = new HashSet(); for (ListIterator it = deleteItems.listIterator(); it.hasNext(); ) {