Bug 529998 - [revision] problem to lauch revision mode and create author
diff --git a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/advice/AdviceRemove.java b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/advice/AdviceRemove.java
index f64a4b0..8d6603a 100755
--- a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/advice/AdviceRemove.java
+++ b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/advice/AdviceRemove.java
@@ -18,6 +18,7 @@
import org.eclipse.gmf.runtime.common.core.command.IdentityCommand;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
import org.eclipse.papyrus.infra.emf.gmf.command.EMFtoGMFCommandWrapper;
import org.eclipse.papyrus.revision.tool.command.PreventRemoveCommand;
import org.eclipse.papyrus.revision.tool.ui.ReviewsEditor;
diff --git a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/core/ReviewResourceManager.java b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/core/ReviewResourceManager.java
index 288b6dd..60c1f26 100755
--- a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/core/ReviewResourceManager.java
+++ b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/core/ReviewResourceManager.java
@@ -253,7 +253,7 @@
final Model reviewModel=getCurrentReviewModel();
NamedElement author=reviewModel.getPackagedElement(authorName);
if( author==null||!(author instanceof Actor)){
- RecordingCommand cmd= new RecordingCommand(getDomain(), "createReviewModel") {
+ final RecordingCommand cmd= new RecordingCommand(getDomain(), "createReviewModel") {
@Override
protected void doExecute() {
currentAuthor=UMLFactory.eINSTANCE.createActor();
@@ -267,7 +267,9 @@
currentAuthor.setValue(authorStereotype, I_VersioningStereotype.AUTHOR_COLOR_ATT, colorString);
}
};
- getDomain().getCommandStack().execute(cmd);
+ getDomain().getCommandStack().execute(cmd);
+
+
}
else{
currentAuthor=(Actor)author;
diff --git a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/handlers/LaunchRevisionMode.java b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/handlers/LaunchRevisionMode.java
index fd2b9b1..dc58c0c 100755
--- a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/handlers/LaunchRevisionMode.java
+++ b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/handlers/LaunchRevisionMode.java
@@ -13,30 +13,34 @@
*****************************************************************************/
package org.eclipse.papyrus.revision.tool.handlers;
+import java.util.Map;
+
import org.eclipse.core.commands.Command;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.papyrus.revision.tool.ui.ReviewsEditor;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.IElementUpdater;
import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.menus.UIElement;
/**
* This handler is used to launch the revision mode
*
*/
-public class LaunchRevisionMode extends RevisionAbstractHandler {
+public class LaunchRevisionMode extends RevisionAbstractHandler implements IElementUpdater {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Command command = event.getCommand();
- boolean oldValue = HandlerUtil.toggleCommandState(command);
+
IWorkbenchPart part=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("org.eclipse.papyrus.revisiontool.commentview");
if( part instanceof ReviewsEditor){
- if(oldValue==false){
+ boolean isRunning = ((ReviewsEditor)part).modeRevisionIsRunning();
+ if(isRunning==false){
//now the revison mode is activated
-
((ReviewsEditor)part).startModeRevision();
}
else{
@@ -53,5 +57,18 @@
}
return true;
}
+ @Override
+ public void updateElement(UIElement uiElement, Map map) {
+ IWorkbenchPart part=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("org.eclipse.papyrus.revisiontool.commentview");
+ if( part instanceof ReviewsEditor){
+ boolean isRunning = ((ReviewsEditor)part).modeRevisionIsRunning();
+ uiElement.setChecked(isRunning);
+ }
+ else {
+ uiElement.setChecked(false);
+ }
+ }
}
+
+
diff --git a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/ui/ReviewsEditor.java b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/ui/ReviewsEditor.java
index faff9fb..25feb72 100755
--- a/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/ui/ReviewsEditor.java
+++ b/plugins/revision/org.eclipse.papyrus.revisiontool/src/org/eclipse/papyrus/revision/tool/ui/ReviewsEditor.java
@@ -279,6 +279,7 @@
viewer.setInput(reviewResourceManager.getCurrentReviewModel());
reviewResourceManager.getDomain().addResourceSetListener(getResourceListener());
reviewResourceManager.startModeRevision();
+ reviewResourceManager.getCurrentAuthor();
}
/**
* stop the model revision and load review model in the editor
@@ -290,6 +291,12 @@
}
/**
+ * @return true if the mode revision is running.
+ */
+ public boolean modeRevisionIsRunning() {
+ return reviewResourceManager.modeRevisionRunning();
+ }
+ /**
* Retrieves the {@link IPropertySheetPage} that his Model Explorer uses.
*
* @return