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