Author: fmancinelli
Date: 2007-11-06 17:17:12 +0100 (Tue, 06 Nov 2007)
New Revision: 5677

Modified:
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/RemoveConnectionHandler.java
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
Log:
* Simplified code and interface by binding remove operations to the standard 
Eclipse delete action.

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/RemoveConnectionHandler.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/RemoveConnectionHandler.java
       2007-11-06 15:39:55 UTC (rev 5676)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/handlers/RemoveConnectionHandler.java
       2007-11-06 16:17:12 UTC (rev 5677)
@@ -24,6 +24,8 @@
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.xwiki.xeclipse.XWikiConnectionManager;
 import org.xwiki.xeclipse.model.IXWikiConnection;
@@ -44,13 +46,23 @@
             IXWikiConnection xwikiConnection = (IXWikiConnection) 
selectedObject;
 
             try {
-                xwikiConnection.dispose();
+                MessageBox messageBox =
+                    new MessageBox(HandlerUtil.getActiveShell(event), SWT.YES 
| SWT.NO
+                        | SWT.ICON_QUESTION);
+                messageBox.setMessage(String.format(
+                    "Do you really want to remove connection '[EMAIL 
PROTECTED]'?", xwikiConnection
+                        .getUserName(), xwikiConnection.getServerUrl()));
+                int result = messageBox.open();
+                if (result == SWT.YES) {
+                    xwikiConnection.dispose();
+                    
XWikiConnectionManager.getDefault().removeConnection(xwikiConnection);
+                }
+
             } catch (XWikiConnectionException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }
-            
-            
XWikiConnectionManager.getDefault().removeConnection(xwikiConnection);          
  
+
         }
 
         return null;

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
        2007-11-06 15:39:55 UTC (rev 5676)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
        2007-11-06 16:17:12 UTC (rev 5677)
@@ -29,6 +29,9 @@
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.swt.SWT;
@@ -40,6 +43,7 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.IHandlerActivation;
 import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.menus.CommandContributionItem;
 import org.eclipse.ui.model.WorkbenchLabelProvider;
@@ -63,12 +67,14 @@
 import org.xwiki.xeclipse.model.IXWikiSpace;
 import org.xwiki.xeclipse.utils.XWikiEclipseUtil;
 
-public class XWikiExplorerView extends ViewPart implements 
IXWikiEclipseEventListener
+public class XWikiExplorerView extends ViewPart implements 
IXWikiEclipseEventListener, ISelectionChangedListener
 {
     public static final String ID = "org.xwiki.xeclipse.views.XWikiExplorer";
 
     private TreeViewer treeViewer;
 
+    private IHandlerActivation deleteCommandActivation;
+
     @Override
     public void createPartControl(Composite parent)
     {
@@ -78,6 +84,7 @@
         treeViewer.setLabelProvider(new WorkbenchLabelProvider());
         getSite().setSelectionProvider(treeViewer);
         treeViewer.setInput(XWikiConnectionManager.getDefault());
+        treeViewer.addSelectionChangedListener(this);
 
         treeViewer.addDoubleClickListener(new IDoubleClickListener()
         {
@@ -136,26 +143,12 @@
             null,
             null,
             null,
-            SWT.NONE));
+            SWT.NONE));        
 
         menuManager.add(new Separator());
-
+        
         menuManager.add(new CommandContributionItem(getSite(),
             null,
-            XWikiEclipseConstants.REMOVE_CONNECTION_COMMAND,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            SWT.NONE));
-
-        menuManager.add(new Separator());
-
-        menuManager.add(new CommandContributionItem(getSite(),
-            null,
             XWikiEclipseConstants.NEW_SPACE_COMMAND,
             null,
             null,
@@ -182,7 +175,7 @@
 
         menuManager.add(new CommandContributionItem(getSite(),
             null,
-            XWikiEclipseConstants.REMOVE_SPACE_COMMAND,
+            "org.eclipse.ui.edit.delete",
             null,
             null,
             null,
@@ -191,19 +184,7 @@
             null,
             null,
             SWT.NONE));
-
-        menuManager.add(new CommandContributionItem(getSite(),
-            null,
-            XWikiEclipseConstants.REMOVE_PAGE_COMMAND,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            SWT.NONE));
-
+        
         menuManager.add(new Separator());
 
         menuManager.add(new CommandContributionItem(getSite(),
@@ -340,32 +321,7 @@
                     return EvaluationResult.FALSE;
                 }
             });
-
-        
handlerService.activateHandler(XWikiEclipseConstants.REMOVE_CONNECTION_COMMAND,
-            new RemoveConnectionHandler(), new Expression()
-            {
-                @Override
-                public void collectExpressionInfo(ExpressionInfo info)
-                {
-                    
info.addVariableNameAccess(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                }
-
-                @Override
-                public EvaluationResult evaluate(IEvaluationContext context) 
throws CoreException
-                {
-                    Object selection =
-                        
context.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                    Object selectedObject =
-                        
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
-
-                    if (selectedObject instanceof IXWikiConnection) {
-                        return EvaluationResult.TRUE;
-                    }
-
-                    return EvaluationResult.FALSE;
-                }
-            });
-
+        
         handlerService.activateHandler(XWikiEclipseConstants.NEW_SPACE_COMMAND,
             new NewSpaceHandler(), new Expression()
             {
@@ -420,60 +376,7 @@
                 }
             });
 
-        
handlerService.activateHandler(XWikiEclipseConstants.REMOVE_SPACE_COMMAND,
-            new RemoveSpaceHandler(), new Expression()
-            {
-                @Override
-                public void collectExpressionInfo(ExpressionInfo info)
-                {
-                    
info.addVariableNameAccess(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                }
-
-                @Override
-                public EvaluationResult evaluate(IEvaluationContext context) 
throws CoreException
-                {
-                    Object selection =
-                        
context.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                    Object selectedObject =
-                        
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
-
-                    if (selectedObject instanceof IXWikiSpace) {
-                        IXWikiSpace xwikiPage = (IXWikiSpace) selectedObject;
-                        return xwikiPage.getConnection().isConnected() ? 
EvaluationResult.TRUE
-                            : EvaluationResult.FALSE;
-                    }
-
-                    return EvaluationResult.FALSE;
-                }
-            });
-
-        
handlerService.activateHandler(XWikiEclipseConstants.REMOVE_PAGE_COMMAND,
-            new RemovePageHandler(), new Expression()
-            {
-                @Override
-                public void collectExpressionInfo(ExpressionInfo info)
-                {
-                    
info.addVariableNameAccess(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                }
-
-                @Override
-                public EvaluationResult evaluate(IEvaluationContext context) 
throws CoreException
-                {
-                    Object selection =
-                        
context.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-                    Object selectedObject =
-                        
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
-
-                    if (selectedObject instanceof IXWikiPage) {
-                        IXWikiPage xwikiPage = (IXWikiPage) selectedObject;
-                        return xwikiPage.getConnection().isConnected() ? 
EvaluationResult.TRUE
-                            : EvaluationResult.FALSE;
-                    }
-
-                    return EvaluationResult.FALSE;
-                }
-            });
-
+        
     }
 
     public void handleEvent(final Object sender, final XWikiEclipseEvent 
event, final Object data)
@@ -523,4 +426,31 @@
 
     }
 
+    public void selectionChanged(SelectionChangedEvent event)
+    {
+        IHandlerService handlerService = (IHandlerService) 
getSite().getService(IHandlerService.class);
+        if(deleteCommandActivation != null) {
+            handlerService.deactivateHandler(deleteCommandActivation);
+        }
+        
+        IStructuredSelection selection = (IStructuredSelection) 
event.getSelection();
+        if(selection.size() == 1) {
+            Object selectedObject = selection.getFirstElement();
+            if(selectedObject instanceof IXWikiConnection) {
+                deleteCommandActivation = 
handlerService.activateHandler("org.eclipse.ui.edit.delete", new 
RemoveConnectionHandler());
+            }
+            else if(selectedObject instanceof IXWikiSpace) {
+                deleteCommandActivation = 
handlerService.activateHandler("org.eclipse.ui.edit.delete", new 
RemoveSpaceHandler());
+            }
+            else if(selectedObject instanceof IXWikiPage) {
+                deleteCommandActivation = 
handlerService.activateHandler("org.eclipse.ui.edit.delete", new 
RemovePageHandler());
+            }                
+        }
+        
+        
+        
+        
+        
+    }
+
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to