Merge "Tuleap #720 - Add comment menu not available"
diff --git a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/Messages.java b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/Messages.java
index c6f6bcb..8144458 100644
--- a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/Messages.java
+++ b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/Messages.java
@@ -41,6 +41,10 @@
public static String ReviewTableDefinition_verify;
+ public static String Starred;
+
+ public static String Not_Starred;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/ReviewTableLabelProvider.java b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/ReviewTableLabelProvider.java
index 4bab546..5d0cc79 100644
--- a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/ReviewTableLabelProvider.java
+++ b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/ReviewTableLabelProvider.java
@@ -196,7 +196,11 @@
switch (aIndex) {
case 0:
Boolean starred = reviewSummary.isStarred();
- return starred.toString(); // Needed for the sorter
+ if (starred) {
+ return Messages.Starred;
+ } else {
+ return Messages.Not_Starred;
+ }
case 1:
return Integer.toString(reviewSummary.get_number());
case 2:
diff --git a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/messages.properties b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/messages.properties
index f7a7c54..94ae5d8 100644
--- a/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/messages.properties
+++ b/org.eclipse.egerrit.dashboard.ui/src/org/eclipse/egerrit/internal/dashboard/ui/model/messages.properties
@@ -19,3 +19,5 @@
ReviewTableDefinition_status=Status
ReviewTableDefinition_updated=Updated
ReviewTableDefinition_verify=V
+Starred=Starred review
+Not_Starred=Not starred review
\ No newline at end of file
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/RebaseProcess.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/RebaseProcess.java
index 070225f..cc7c48b 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/RebaseProcess.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/RebaseProcess.java
@@ -21,6 +21,7 @@
import org.eclipse.egerrit.internal.model.ChangeInfo;
import org.eclipse.egerrit.internal.model.RevisionInfo;
import org.eclipse.egerrit.internal.ui.editors.QueryHelpers;
+import org.eclipse.egerrit.internal.ui.editors.RefreshRelatedEditors;
import org.eclipse.egerrit.internal.ui.utils.Messages;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -81,10 +82,13 @@
try {
rebaseCmd.call();
+
//After a rebase, we reload and reset the user selected revision
//Note that here we are not using the model loader because we want a synchronous call so we can set the user selection
CompletableFuture.runAsync(() -> QueryHelpers.loadBasicInformation(gerritClient, changeInfo, false))
.thenRun(() -> changeInfo.setUserSelectedRevision(changeInfo.getRevision()));
+
+ new RefreshRelatedEditors(changeInfo, gerritClient).schedule();
} catch (EGerritException e1) {
if (e1.getCode() == EGerritException.SHOWABLE_MESSAGE) {
MessageDialog.open(MessageDialog.INFORMATION, null, Messages.RebaseProcess_failed,
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/SubmitProcess.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/SubmitProcess.java
index 1d0c46a..969572f 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/SubmitProcess.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/process/SubmitProcess.java
@@ -20,6 +20,7 @@
import org.eclipse.egerrit.internal.core.rest.SubmitInput;
import org.eclipse.egerrit.internal.model.ChangeInfo;
import org.eclipse.egerrit.internal.ui.editors.QueryHelpers;
+import org.eclipse.egerrit.internal.ui.editors.RefreshRelatedEditors;
import org.eclipse.egerrit.internal.ui.utils.Messages;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
@@ -42,6 +43,8 @@
//Note that here we are not using the model loader because we want a synchronous call so we can set the user selection
CompletableFuture.runAsync(() -> QueryHelpers.loadBasicInformation(gerritClient, changeInfo, false))
.thenRun(() -> changeInfo.setUserSelectedRevision(changeInfo.getRevision()));
+
+ new RefreshRelatedEditors(changeInfo, gerritClient).schedule();
} catch (EGerritException e3) {
EGerritCorePlugin.logError(gerritClient.getRepository().formatGerritVersion() + e3.getMessage());
MessageDialog.open(MessageDialog.INFORMATION, null, Messages.SubmitProcess_failed, e3.getLocalizedMessage(),
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/compare/GerritDifferences.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/compare/GerritDifferences.java
index 4961b6f..136c2fe 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/compare/GerritDifferences.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/compare/GerritDifferences.java
@@ -17,35 +17,35 @@
/**
* Difference constant (value 0) indicating no difference.
*/
- public static final int NO_CHANGE = 0;
+ public static final int NO_CHANGE = Differencer.NO_CHANGE;
/**
* Difference constant (value 1) indicating one side was added.
*/
- public static final int ADDITION = 1;
+ public static final int ADDITION = 16 + Differencer.ADDITION;
/**
* Difference constant (value 2) indicating one side was removed.
*/
- public static final int DELETION = 2;
+ public static final int DELETION = 32 + Differencer.DELETION;
/**
* Difference constant (value 3) indicating side changed.
*/
- public static final int CHANGE = 3;
+ public static final int CHANGE = 64 + Differencer.CHANGE;
/**
* Difference constant (value 4) indicating renaming.
*/
- public static final int RENAMED = 4;
+ public static final int RENAMED = 128;
/**
* Difference constant (value 5) indicating renaming.
*/
- public static final int COPIED = 5;
+ public static final int COPIED = 256;
/**
* Difference constant (value 6) indicating renaming.
*/
- public static final int REWRITTEN = 6;
+ public static final int REWRITTEN = 512;
}
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/ChangeDetailEditor.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/ChangeDetailEditor.java
index a1b811d..ab516e9 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/ChangeDetailEditor.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/ChangeDetailEditor.java
@@ -543,6 +543,7 @@
try {
abandonCmd.call();
+ new RefreshRelatedEditors(fChangeInfo, fGerritClient).schedule();
} catch (EGerritException e3) {
EGerritCorePlugin.logError(fGerritClient.getRepository().formatGerritVersion() + e3.getMessage());
}
@@ -568,6 +569,7 @@
try {
restoreCmd.call();
+ new RefreshRelatedEditors(fChangeInfo, fGerritClient).schedule();
} catch (EGerritException e3) {
EGerritCorePlugin.logError(fGerritClient.getRepository().formatGerritVersion() + e3.getMessage());
}
@@ -585,6 +587,7 @@
RebaseProcess rebaseProcess = new RebaseProcess();
rebaseProcess.handleRebase(rebaseButton.getShell(), fChangeInfo, fChangeInfo.getUserSelectedRevision(),
fGerritClient);
+
}
});
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/RefreshRelatedEditors.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/RefreshRelatedEditors.java
new file mode 100644
index 0000000..5444911
--- /dev/null
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/editors/RefreshRelatedEditors.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Ericsson AB.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ericsson - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.egerrit.internal.ui.editors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.egerrit.internal.core.GerritClient;
+import org.eclipse.egerrit.internal.model.ChangeInfo;
+import org.eclipse.egerrit.internal.model.RelatedChangeAndCommitInfo;
+import org.eclipse.egerrit.internal.ui.editors.model.ChangeDetailEditorInput;
+import org.eclipse.egerrit.internal.ui.utils.Messages;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Class that, when run, refreshes opened related changes in Egerrit editors.
+ */
+public class RefreshRelatedEditors extends Job {
+
+ private ChangeInfo fChangeInfo;
+
+ private GerritClient fGerritClient;
+
+ public RefreshRelatedEditors(ChangeInfo changeInfo, GerritClient gerritClient) {
+ super(Messages.ChangeDetailEditor_updatingRelatedChanges);
+ fChangeInfo = changeInfo;
+ fGerritClient = gerritClient;
+ }
+
+ @Override
+ public IStatus run(IProgressMonitor monitor) {
+ /* Get list of related changes and remove current one */
+ List<String> changeIds = new ArrayList<String>();
+ for (RelatedChangeAndCommitInfo change : fChangeInfo.getRelatedChanges().getChanges()) {
+ if (change.getChange_id() != null && !change.getChange_id().equals(fChangeInfo.getChange_id())) {
+ changeIds.add(change.getChange_id());
+ }
+ }
+ if (changeIds.size() == 0) {
+ return Status.OK_STATUS;
+ }
+
+ //Obtain the list of editors opened
+ IEditorReference[][] editorRefs = new IEditorReference[1][];
+ Display.getDefault().syncExec(() -> {
+ editorRefs[0] = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
+ });
+
+ /* Iterate over all the open editors in the workbench */
+ for (IEditorReference editorRef : editorRefs[0]) {
+ /* Check for the opened EGerrit editors */
+ IEditorPart part = editorRef.getEditor(false);
+
+ if (part instanceof ChangeDetailEditor) {
+ ChangeDetailEditorInput changeInput = (ChangeDetailEditorInput) part.getEditorInput();
+ if (!changeInput.getChange().getChange_id().equals(fChangeInfo.getChange_id())) {
+ if (changeIds.contains(changeInput.getChange().getChange_id())) {
+ QueryHelpers.loadBasicInformation(fGerritClient, changeInput.getChange(), true);
+ }
+ }
+ }
+ }
+ return Status.OK_STATUS;
+ }
+}
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/table/model/FilesTableModel.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/table/model/FilesTableModel.java
index 3f62eaa..0d52fcc 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/table/model/FilesTableModel.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/table/model/FilesTableModel.java
@@ -29,9 +29,9 @@
// Moveable, Alignment}
public enum FilesTableModel implements ITableModel {
// Name Width Resize Moveable Alignment
- REVIEWED("", 30, true, true, SWT.LEFT), //$NON-NLS-1$
+ REVIEWED("", 35, true, true, SWT.LEFT), //$NON-NLS-1$
MOD_TYPE("", 30, true, true, SWT.LEFT), //$NON-NLS-1$
- FILE_PATH(Messages.FilesTableDefinition_filePath, 540, true, true, SWT.LEFT), //
+ FILE_PATH(Messages.FilesTableDefinition_filePath, 250, true, true, SWT.LEFT), //
COMMENTS(Messages.FilesTableDefinition_comments, 220, true, true, SWT.LEFT), //
SIZE(Messages.FilesTableDefinition_size, 80, false, true, SWT.LEFT);
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/Messages.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/Messages.java
index 5cbf7cf..cdf1bc8 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/Messages.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/Messages.java
@@ -84,6 +84,8 @@
public static String ChangeDetailEditor_cherryPickBranch;
+ public static String ChangeDetailEditor_updatingRelatedChanges;
+
public static String CheckoutRevision_0;
public static String CheckoutRevision_1;
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/messages.properties b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/messages.properties
index d2630ec..e1fdb5a 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/messages.properties
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/utils/messages.properties
@@ -44,6 +44,7 @@
ChangeDetailEditor_7=Markers for patchset
ChangeDetailEditor_9=Reload this change from the server.
ChangeDetailEditor_cherryPickBranch=Cherry pick change to a different branch
+ChangeDetailEditor_updatingRelatedChanges=Updating opened related changes
CheckoutRevision_0=Checkout...
CheckoutRevision_1=No repository found
CheckoutRevision_12=Change " {0} " \ has previously been checked out in branch " {1} ".\n\n\