Fixed Retarget Project enablement in Apply Patch Wizard
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index a8d53b5..40c0ed4 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -212,6 +212,7 @@
private PreviewPatchPage2 previewPatchPage;
private HashMap nodesToDiffs;
+ private HashMap contributedActions;
public PatcherCompareEditorInput() {
super(new CompareConfiguration());
@@ -538,16 +539,14 @@
public void contributeDiffViewerToolbarItems(Action[] actions, boolean workspacePatch){
ToolBarManager tbm= CompareViewerPane.getToolBarManager(viewer.getControl().getParent());
+ contributedActions = new HashMap();
if (tbm != null) {
tbm.removeAll();
tbm.add(new Separator("contributed")); //$NON-NLS-1$
for (int i = 0; i < actions.length; i++) {
- //If this is a workspace patch, make sure all actions are enabled
- if (workspacePatch)
- actions[i].setEnabled(true);
-
+ contributedActions.put(actions[i].getId(), actions[i]);
tbm.appendToGroup("contributed", actions[i]); //$NON-NLS-1$
}
@@ -628,4 +627,11 @@
public void setPreviewPatchPage(PreviewPatchPage2 page) {
previewPatchPage = page;
}
+
+ public void setContributedActionEnablement(String actionID, boolean enabled){
+ Object obj = contributedActions.get(actionID);
+ if (obj != null && obj instanceof Action){
+ ((Action) obj).setEnabled(enabled);
+ }
+ }
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
index c8bc66a..2a5c301 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
@@ -64,8 +64,13 @@
private Text fFuzzField;
private Action fRetargetSelection;
+ private static final String retargetID = "PreviewPatchPage_retargetSelection"; //$NON-NLS-1$
+
private Action fIgnoreWhiteSpace;
+ private static final String ignoreWSID = "PreviewPatchPage_ignoreWhiteSpace"; //$NON-NLS-1$
+
private Action fReversePatch;
+ private static final String reversePatchID = "PreviewPatchPage_reversePatch"; //$NON-NLS-1$
protected boolean pageRecalculate= true;
@@ -237,6 +242,7 @@
};
fRetargetSelection.setToolTipText(PatchMessages.PreviewPatchPage2_RetargetTooltip);
fRetargetSelection.setEnabled(false);
+ fRetargetSelection.setId(retargetID);
fIgnoreWhiteSpace = new Action(PatchMessages.PreviewPatchPage2_IgnoreWSAction, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_ENABLED)){
public void run(){
@@ -249,6 +255,7 @@
fIgnoreWhiteSpace.setChecked(false);
fIgnoreWhiteSpace.setToolTipText(PatchMessages.PreviewPatchPage2_IgnoreWSTooltip);
fIgnoreWhiteSpace.setDisabledImageDescriptor(CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_DISABLED));
+ fIgnoreWhiteSpace.setId(ignoreWSID);
fReversePatch = new Action(PatchMessages.PreviewPatchPage_ReversePatch_text, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.REVERSE_PATCH_ENABLED)){
public void run(){
@@ -260,6 +267,7 @@
};
fReversePatch.setChecked(false);
fReversePatch.setToolTipText(PatchMessages.PreviewPatchPage_ReversePatch_text);
+ fReversePatch.setId(reversePatchID);
return new Action[]{fIgnoreWhiteSpace, fRetargetSelection, fReversePatch};
}
@@ -287,6 +295,10 @@
patcherCompareEditorInput.updateInput(fPatchWizard.getPatcher());
+ if (fPatchWizard.getPatcher().isWorkspacePatch()){
+ patcherCompareEditorInput.setContributedActionEnablement(retargetID, true);
+ }
+
}
/*
* Create the group for setting various patch options
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index a8d53b5..40c0ed4 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -212,6 +212,7 @@
private PreviewPatchPage2 previewPatchPage;
private HashMap nodesToDiffs;
+ private HashMap contributedActions;
public PatcherCompareEditorInput() {
super(new CompareConfiguration());
@@ -538,16 +539,14 @@
public void contributeDiffViewerToolbarItems(Action[] actions, boolean workspacePatch){
ToolBarManager tbm= CompareViewerPane.getToolBarManager(viewer.getControl().getParent());
+ contributedActions = new HashMap();
if (tbm != null) {
tbm.removeAll();
tbm.add(new Separator("contributed")); //$NON-NLS-1$
for (int i = 0; i < actions.length; i++) {
- //If this is a workspace patch, make sure all actions are enabled
- if (workspacePatch)
- actions[i].setEnabled(true);
-
+ contributedActions.put(actions[i].getId(), actions[i]);
tbm.appendToGroup("contributed", actions[i]); //$NON-NLS-1$
}
@@ -628,4 +627,11 @@
public void setPreviewPatchPage(PreviewPatchPage2 page) {
previewPatchPage = page;
}
+
+ public void setContributedActionEnablement(String actionID, boolean enabled){
+ Object obj = contributedActions.get(actionID);
+ if (obj != null && obj instanceof Action){
+ ((Action) obj).setEnabled(enabled);
+ }
+ }
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
index c8bc66a..2a5c301 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
@@ -64,8 +64,13 @@
private Text fFuzzField;
private Action fRetargetSelection;
+ private static final String retargetID = "PreviewPatchPage_retargetSelection"; //$NON-NLS-1$
+
private Action fIgnoreWhiteSpace;
+ private static final String ignoreWSID = "PreviewPatchPage_ignoreWhiteSpace"; //$NON-NLS-1$
+
private Action fReversePatch;
+ private static final String reversePatchID = "PreviewPatchPage_reversePatch"; //$NON-NLS-1$
protected boolean pageRecalculate= true;
@@ -237,6 +242,7 @@
};
fRetargetSelection.setToolTipText(PatchMessages.PreviewPatchPage2_RetargetTooltip);
fRetargetSelection.setEnabled(false);
+ fRetargetSelection.setId(retargetID);
fIgnoreWhiteSpace = new Action(PatchMessages.PreviewPatchPage2_IgnoreWSAction, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_ENABLED)){
public void run(){
@@ -249,6 +255,7 @@
fIgnoreWhiteSpace.setChecked(false);
fIgnoreWhiteSpace.setToolTipText(PatchMessages.PreviewPatchPage2_IgnoreWSTooltip);
fIgnoreWhiteSpace.setDisabledImageDescriptor(CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_DISABLED));
+ fIgnoreWhiteSpace.setId(ignoreWSID);
fReversePatch = new Action(PatchMessages.PreviewPatchPage_ReversePatch_text, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.REVERSE_PATCH_ENABLED)){
public void run(){
@@ -260,6 +267,7 @@
};
fReversePatch.setChecked(false);
fReversePatch.setToolTipText(PatchMessages.PreviewPatchPage_ReversePatch_text);
+ fReversePatch.setId(reversePatchID);
return new Action[]{fIgnoreWhiteSpace, fRetargetSelection, fReversePatch};
}
@@ -287,6 +295,10 @@
patcherCompareEditorInput.updateInput(fPatchWizard.getPatcher());
+ if (fPatchWizard.getPatcher().isWorkspacePatch()){
+ patcherCompareEditorInput.setContributedActionEnablement(retargetID, true);
+ }
+
}
/*
* Create the group for setting various patch options