aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Baumgart2010-09-01 04:54:00 (EDT)
committerJens Baumgart2010-09-01 04:54:00 (EDT)
commit951605b66dd26bddc80c04568923a239eab66485 (patch)
treebabd02fd920ab7499441108ec91e7ecdd8dc3bea
parent80ba015267932d62692d24b680e0b8218eb0db51 (diff)
downloadegit-951605b66dd26bddc80c04568923a239eab66485.zip
egit-951605b66dd26bddc80c04568923a239eab66485.tar.gz
egit-951605b66dd26bddc80c04568923a239eab66485.tar.bz2
Fix bugs in MergeCommandrefs/changes/78/1478/1
1. Add missing scheduling rule to execution job. 2. The information dialog sometimes closed automatically. This was caused by the usage of the wrong parent shell. Change-Id: I12b7e6c214726b4b54b6bacf3b4a0fc1cfe96adf Signed-off-by: Jens Baumgart <jens.baumgart@sap.com>
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/MergeCommand.java37
1 files changed, 16 insertions, 21 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/MergeCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/MergeCommand.java
index 569f57f..0f8705e 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/MergeCommand.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/MergeCommand.java
@@ -37,6 +37,8 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryState;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
/**
* Implements "Merge"
@@ -95,6 +97,7 @@ public class MergeCommand extends
}
};
job.setUser(true);
+ job.setRule(op.getSchedulingRule());
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent jobEvent) {
@@ -102,18 +105,14 @@ public class MergeCommand extends
if (result.getSeverity() == IStatus.CANCEL) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- try {
- MessageDialog
- .openInformation(
- getActiveShell(event),
- UIText.MergeAction_MergeCanceledTitle,
- UIText.MergeAction_MergeCanceledMessage);
- } catch (ExecutionException e) {
- Activator
- .handleError(
- UIText.MergeAction_MergeCanceledMessage,
- null, true);
- }
+ // don't use getShell(event) here since
+ // the active shell has changed since the
+ // execution has been triggered.
+ Shell shell = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getShell();
+ MessageDialog.openInformation(shell,
+ UIText.MergeAction_MergeCanceledTitle,
+ UIText.MergeAction_MergeCanceledMessage);
}
});
} else if (!result.isOK()) {
@@ -122,15 +121,11 @@ public class MergeCommand extends
} else {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- try {
- MessageDialog.openInformation(
- getActiveShell(event),
- UIText.MergeAction_MergeResultTitle, op
- .getResult().toString());
- } catch (ExecutionException e) {
- Activator.handleError(
- op.getResult().toString(), null, true);
- }
+ Shell shell = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getShell();
+ MessageDialog.openInformation(shell,
+ UIText.MergeAction_MergeResultTitle, op
+ .getResult().toString());
}
});
}