added revert handler + ctor for abstract controller
diff --git a/org.eclipse.emf.emfstore.client.ui/plugin.xml b/org.eclipse.emf.emfstore.client.ui/plugin.xml
index 678b54f..c044cb5 100644
--- a/org.eclipse.emf.emfstore.client.ui/plugin.xml
+++ b/org.eclipse.emf.emfstore.client.ui/plugin.xml
@@ -6,7 +6,7 @@
<extension
point="org.eclipse.ui.handlers">
<handler
- class="org.eclipse.emf.emfstore.client.ui.commands.RevertHandler"
+ class="org.eclipse.emf.emfstore.client.ui.commands.handler.handler.RevertHandler"
commandId="org.eclipse.emf.emfstore.client.ui.revert">
<enabledWhen>
<and>
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/AbstractEMFStoreUIController.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/AbstractEMFStoreUIController.java
index 739d504..0e5d7d1 100644
--- a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/AbstractEMFStoreUIController.java
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/AbstractEMFStoreUIController.java
@@ -12,7 +12,11 @@
public abstract class AbstractEMFStoreUIController implements GenericCallback {
protected Shell shell;
- protected ProgressMonitorDialog progressDialog;
+ private ProgressMonitorDialog progressDialog;
+
+ public AbstractEMFStoreUIController(Shell shell) {
+ setShell(shell);
+ }
public Shell getShell() {
return shell;
@@ -31,7 +35,7 @@
closeProgress();
}
- protected ProgressMonitorDialog getProgressMonitorDialog() {
+ protected ProgressMonitorDialog openProgress() {
progressDialog = new ProgressMonitorDialog(getShell());
progressDialog.open();
progressDialog.setCancelable(true);
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIRevertController.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIRevertController.java
new file mode 100644
index 0000000..470c778
--- /dev/null
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIRevertController.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.emfstore.client.ui.commands.handler.controller;
+
+import org.eclipse.emf.emfstore.client.model.ProjectSpace;
+import org.eclipse.emf.emfstore.client.ui.commands.handler.AbstractEMFStoreUIController;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+
+public class UIRevertController extends AbstractEMFStoreUIController {
+
+ public UIRevertController(Shell shell) {
+ super(shell);
+ }
+
+ public void revert(ProjectSpace projectSpace) {
+ Boolean resultValue = false;
+ MessageDialog dialog = new MessageDialog(null, "Confirmation", null,
+ "Do you really want to revert all your changes on project " + projectSpace.getProjectName(),
+ MessageDialog.QUESTION, new String[] { "Yes", "No" }, 0);
+ int result = dialog.open();
+ if (result == Window.OK) {
+ getProgressMonitor().beginTask("Revert project...", 100);
+ getProgressMonitor().worked(10);
+ // BEGIN SUPRESS CATCH EXCEPTION
+ try {
+ projectSpace.revert();
+ resultValue = true;
+ } catch (RuntimeException e) {
+ handleException(e);
+ }
+ }
+
+ if (resultValue) {
+ MessageDialog.openInformation(null, "Revert", "Reverted project ");
+ }
+ }
+}
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIShareProjectController.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIShareProjectController.java
index 2dca5f2..a1dbe2b 100644
--- a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIShareProjectController.java
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIShareProjectController.java
@@ -7,17 +7,18 @@
import org.eclipse.emf.emfstore.client.model.impl.ProjectSpaceImpl;
import org.eclipse.emf.emfstore.client.ui.commands.handler.AbstractEMFStoreUIController;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.swt.widgets.Shell;
public class UIShareProjectController extends AbstractEMFStoreUIController implements GenericCallback {
public UIShareProjectController(Shell shell) {
- setShell(shell);
+ super(shell);
}
public void share(ProjectSpace projectSpace) {
- getProgressMonitorDialog();
- ((ProjectSpaceImpl) projectSpace).shareProject(null, this, getProgressMonitor());
+ ProgressMonitorDialog progressDialog = openProgress();
+ ((ProjectSpaceImpl) projectSpace).shareProject(null, this, progressDialog.getProgressMonitor());
}
public void shareCompleted(ProjectSpace projectSpace, boolean successful) {
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIUpdateProjectController.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIUpdateProjectController.java
index 4018ca1..f4736e3 100644
--- a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIUpdateProjectController.java
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/controller/UIUpdateProjectController.java
@@ -23,7 +23,7 @@
public class UIUpdateProjectController extends AbstractEMFStoreUIController implements UpdateCallback {
public UIUpdateProjectController(Shell shell) {
- this.setShell(shell);
+ super(shell);
}
public void update(ProjectSpace projectSpace) {
@@ -32,7 +32,7 @@
public void update(ProjectSpace projectSpace, VersionSpec version) {
// TODO sanity check projectspace (is null, is shared)
- getProgressMonitorDialog();
+ openProgress();
projectSpace.update(version, this, getProgressMonitor());
}
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/RevertHandler.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/RevertHandler.java
new file mode 100644
index 0000000..7d76bc9
--- /dev/null
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/RevertHandler.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.emfstore.client.ui.commands.handler.handler;
+
+import org.eclipse.emf.emfstore.client.model.ProjectSpace;
+import org.eclipse.emf.emfstore.client.ui.commands.handler.AbstractEMFStoreHandler;
+import org.eclipse.emf.emfstore.client.ui.commands.handler.controller.UIRevertController;
+
+public class RevertHandler extends AbstractEMFStoreHandler {
+
+ @Override
+ public Object doExecute() {
+ new UIRevertController(getShell()).revert(requireSelection(ProjectSpace.class));
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/UpdateProjectHandler.java b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/UpdateProjectHandler.java
index 586d87b..b4ed62c 100644
--- a/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/UpdateProjectHandler.java
+++ b/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/client/ui/commands/handler/handler/UpdateProjectHandler.java
@@ -13,6 +13,7 @@
@Override
protected void doRun() {
new UIUpdateProjectController(getShell()).update(requireSelection(ProjectSpace.class));
+ // EMFStore.update(requireSelection(ProjectSpace.class));
}
}.run(true);
return null;