Merged refactoring from development branch.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / view / datasource / handler / DeleteDataSourceHandler.java
similarity index 52%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/handler/DeleteDataSourceHandler.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/DeleteDataSourceHandler.java
index 7ed505218e22d4353687c44914249fa0791190e5..0d3faffacfbf856233518c60959127c74e3cd5cb 100644 (file)
@@ -8,16 +8,17 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.datasource.handler;
+package eu.etaxonomy.taxeditor.view.datasource.handler;
 
 import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-import eu.etaxonomy.taxeditor.datasource.view.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
 
 /**
  * <p>DeleteDataSourceHandler class.</p>
@@ -34,15 +35,21 @@ public class DeleteDataSourceHandler extends AbstractDataSourceHandler {
        /** {@inheritDoc} */
        @Override
        public boolean specificExecute(ExecutionEvent event) {
-               ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);
-               Object[] selectedObjects = ((StructuredSelection) menuSelection).toArray();
+               ISelection selection = HandlerUtil.getActivePart(event).getSite().getSelectionProvider().getSelection();
+               if(selection instanceof IStructuredSelection){
+                       Object[] selectedObjects = ((IStructuredSelection) selection).toArray();
                
-               // Delete from persistent data sources          
-               for(Object object : selectedObjects){
-                       CdmPersistentDataSource dataSource = (CdmPersistentDataSource) ((CdmMetaDataAwareDataSourceContainer) object).getDataSource();
-                       CdmDataSourceRepository.delete(dataSource);
+                       if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you want to delete the selected datasources?")){
+                               return false;
+                       }
+                       // Delete from persistent data sources          
+                       for(Object object : selectedObjects){
+                               CdmPersistentDataSource dataSource = (CdmPersistentDataSource) ((CdmMetaDataAwareDataSourceContainer) object).getDataSource();
+                               CdmDataSourceRepository.delete(dataSource);
+                       }
+                       
+                       return true;
                }
-               
-               return true;
+               return false;
        }
 }