Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Weinand2001-10-11 16:05:19 +0000
committerAndre Weinand2001-10-11 16:05:19 +0000
commitf1bba4f15d92c3913fb745fd3e3c7400c4808ea6 (patch)
tree691cf148bc0796a99190bb1ec5171c860e6d09e8
parentb79f0611c8cd7d0b6b726e65f90df3af75a4d971 (diff)
downloadeclipse.platform.team-0_204.tar.gz
eclipse.platform.team-0_204.tar.xz
eclipse.platform.team-0_204.zip
second cut of patchv0_204
-rw-r--r--bundles/org.eclipse.compare/buildnotes_compare.html26
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java13
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java)2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/Diff.java)10
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java)2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java)3
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java)2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java)35
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java)2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java)2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java)30
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java)4
-rw-r--r--bundles/org.eclipse.compare/plugin.xml2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html26
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java13
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java)2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Diff.java)10
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java)2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java)3
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java)2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java)35
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java)2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java)2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java (renamed from bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java)30
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java (renamed from bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java)4
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml2
26 files changed, 210 insertions, 56 deletions
diff --git a/bundles/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/buildnotes_compare.html
index d6ded24d6..8a81b81a5 100644
--- a/bundles/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/buildnotes_compare.html
@@ -11,6 +11,32 @@
<h1>
Eclipse Platform Build Notes<br>
Compare (including example)</h1>
+Eclipse SDK Build 204, October 12th, 2001
+
+<h2>
+What's new in this drop</h2>
+First cut of patch support.
+
+<h3>
+API changes</h3>
+
+<h3>
+API Additions</h3>
+
+<h3>
+Other highlights</h3>
+
+<h2>
+Known deficiencies</h2>
+
+<h2>
+Problem reports fixed</h2>
+
+<h2>
+Problem reports closed</h2>
+
+<h1>
+<hr WIDTH="100%"></h1>
Eclipse SDK Build 202, September 27th, 2001
<h2>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index 8e09aa12e..64cc51c4a 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -932,13 +932,13 @@ public class TextMergeViewer extends ContentMergeViewer {
protected byte[] getContents(boolean left) {
if (left) {
- if (fLeftContentsChanged)
+ //if (fLeftContentsChanged) // TRY
return fLeft.getDocument().get().getBytes();
} else {
- if (fRightContentsChanged)
+ //if (fRightContentsChanged) // TRY
return fRight.getDocument().get().getBytes();
}
- return null;
+ //return null;
}
private IRegion normalizeDocumentRegion(IDocument doc, IRegion region) {
@@ -1439,12 +1439,15 @@ public class TextMergeViewer extends ContentMergeViewer {
boolean leftToRight= false;
boolean rightToLeft= false;
- if (fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
+ if (fCurrentDiff != null) {
IMergeViewerContentProvider cp= getMergeContentProvider();
if (cp != null) {
rightToLeft= cp.isLeftEditable(getInput());
leftToRight= cp.isRightEditable(getInput());
}
+ }
+
+ if (fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
fDirectionLabel.setImage(fCurrentDiff.getImage());
} else {
fDirectionLabel.setImage(null);
@@ -2180,7 +2183,7 @@ public class TextMergeViewer extends ContentMergeViewer {
}
fLeftLineCount= fLeft.getLineCount();
setLeftDirty(true);
- fLeftContentsChanged= false;
+ fLeftContentsChanged= false;
}
doDiff();
invalidateLines();
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java
index bb0375e7a..c07d28129 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/Diff.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
index ff84d576b..87d496ee9 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/Diff.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.*;
import java.io.*;
@@ -92,11 +92,11 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
// return 0;
// }
- /* package */ InputStream patch(InputStream is) {
+ /* package */ String patch(InputStream is) {
return patch(new BufferedReader(new InputStreamReader(is)));
}
-
- /* package */ InputStream patch(BufferedReader reader) {
+
+ /* package */ String patch(BufferedReader reader) {
List lines= new LineReader(reader).readLines();
if (lines == null)
lines= new ArrayList();
@@ -112,7 +112,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
iter= lines.iterator();
while (iter.hasNext())
sb.append((String)iter.next());
- return new ByteArrayInputStream(sb.toString().getBytes());
+ return sb.toString();
}
/* package */ void compare(List l1, List l2) {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java
index d6772dd6c..9f53bc0c1 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.List;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
index 031cd4201..a5d4d1215 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
@@ -51,6 +51,7 @@ import org.eclipse.compare.internal.Utilities;
InputPatchPage(PatchWizard pw) {
super("Select Patch Input", "Select Patch Input", null);
fPatchWizard= pw;
+ //setPageComplete(false);
}
/**
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java
index 2466ac69d..3ae6ca5b7 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.util.*;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
index 517f82b8a..2008989ce 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.io.ByteArrayInputStream;
@@ -93,6 +93,39 @@ import org.eclipse.compare.internal.*;
}
}
+ public void saveChanges(IProgressMonitor pm) throws CoreException {
+ if (fRoot instanceof DiffNode) {
+ try {
+ commit(pm, (DiffNode) fRoot);
+ } finally {
+ setDirty(false);
+ }
+ }
+ }
+
+ /*
+ * Recursively walks the diff tree and commits all changes.
+ */
+ private static void commit(IProgressMonitor pm, DiffNode node) throws CoreException {
+
+ ITypedElement left= node.getLeft();
+ if (left instanceof BufferedResourceNode)
+ ((BufferedResourceNode) left).commit(pm);
+
+ ITypedElement right= node.getRight();
+ if (right instanceof BufferedResourceNode)
+ ((BufferedResourceNode) right).commit(pm);
+
+ IDiffElement[] children= node.getChildren();
+ if (children != null) {
+ for (int i= 0; i < children.length; i++) {
+ IDiffElement element= children[i];
+ if (element instanceof DiffNode)
+ commit(pm, (DiffNode) element);
+ }
+ }
+ }
+
/* package */ void createPath(DiffContainer root, IContainer folder, String path, Diff diff) {
int pos= path.indexOf('/');
if (pos >= 0) {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java
index 2ec188d24..34a6ebd14 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.util.*;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java
index b8139d0fa..7e1d8af33 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.wizard.*;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java
index 7ebbb3b61..89d744c98 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java
@@ -2,10 +2,9 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
+import java.io.*;
import org.eclipse.compare.*;
import org.eclipse.core.runtime.CoreException;
@@ -17,6 +16,7 @@ import org.eclipse.swt.graphics.Image;
Diff fDiff;
IStreamContentAccessor fCurrent;
String fName;
+ byte[] fContent;
/* package */ PatchedResource(IStreamContentAccessor current, Diff diff, String name) {
fDiff= diff;
@@ -25,13 +25,25 @@ import org.eclipse.swt.graphics.Image;
}
public InputStream getContents() throws CoreException {
- InputStream is= null;
- try {
- is= fCurrent.getContents();
- } catch (CoreException ex) {
- is= new ByteArrayInputStream(new byte[0]);
+ if (fContent == null) {
+ InputStream is= null;
+
+ try {
+ is= fCurrent.getContents();
+ } catch (CoreException ex) {
+ is= new ByteArrayInputStream(new byte[0]);
+ }
+ if (is != null) {
+ String s= fDiff.patch(is);
+ if (s != null)
+ fContent= s.getBytes();
+ try {
+ is.close();
+ } catch (IOException ex) {
+ }
+ }
}
- return fDiff.patch(is);
+ return new ByteArrayInputStream(fContent);
}
public Image getImage() {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
index 25456a82e..41e213e29 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.*;
@@ -33,6 +33,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
/* package */ PreviewPatchPage(PatchWizard pw) {
super("Preview Patch", "Preview Patch", null);
fPatchWizard= pw;
+ //setPageComplete(false);
}
/* (non-Javadoc)
@@ -49,6 +50,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
* list of Diffs.
*/
private void update() {
+ setPageComplete(true);
if (fTree != null && !fTree.isDisposed()) {
fTree.removeAll();
fText.setText("");
diff --git a/bundles/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugin.xml
index 93a4cf99b..0cd8eac71 100644
--- a/bundles/org.eclipse.compare/plugin.xml
+++ b/bundles/org.eclipse.compare/plugin.xml
@@ -90,7 +90,7 @@
label="%CompareWithPatchAction.label"
tooltip="%CompareWithPatchAction.tooltip"
menubarPath="compareWithMenu/compareWithGroup"
- class="org.eclipse.patch.CompareWithPatchAction">
+ class="org.eclipse.compare.patch.CompareWithPatchAction">
</action>
</objectContribution>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
index d6ded24d6..8a81b81a5 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
@@ -11,6 +11,32 @@
<h1>
Eclipse Platform Build Notes<br>
Compare (including example)</h1>
+Eclipse SDK Build 204, October 12th, 2001
+
+<h2>
+What's new in this drop</h2>
+First cut of patch support.
+
+<h3>
+API changes</h3>
+
+<h3>
+API Additions</h3>
+
+<h3>
+Other highlights</h3>
+
+<h2>
+Known deficiencies</h2>
+
+<h2>
+Problem reports fixed</h2>
+
+<h2>
+Problem reports closed</h2>
+
+<h1>
+<hr WIDTH="100%"></h1>
Eclipse SDK Build 202, September 27th, 2001
<h2>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index 8e09aa12e..64cc51c4a 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -932,13 +932,13 @@ public class TextMergeViewer extends ContentMergeViewer {
protected byte[] getContents(boolean left) {
if (left) {
- if (fLeftContentsChanged)
+ //if (fLeftContentsChanged) // TRY
return fLeft.getDocument().get().getBytes();
} else {
- if (fRightContentsChanged)
+ //if (fRightContentsChanged) // TRY
return fRight.getDocument().get().getBytes();
}
- return null;
+ //return null;
}
private IRegion normalizeDocumentRegion(IDocument doc, IRegion region) {
@@ -1439,12 +1439,15 @@ public class TextMergeViewer extends ContentMergeViewer {
boolean leftToRight= false;
boolean rightToLeft= false;
- if (fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
+ if (fCurrentDiff != null) {
IMergeViewerContentProvider cp= getMergeContentProvider();
if (cp != null) {
rightToLeft= cp.isLeftEditable(getInput());
leftToRight= cp.isRightEditable(getInput());
}
+ }
+
+ if (fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
fDirectionLabel.setImage(fCurrentDiff.getImage());
} else {
fDirectionLabel.setImage(null);
@@ -2180,7 +2183,7 @@ public class TextMergeViewer extends ContentMergeViewer {
}
fLeftLineCount= fLeft.getLineCount();
setLeftDirty(true);
- fLeftContentsChanged= false;
+ fLeftContentsChanged= false;
}
doDiff();
invalidateLines();
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java
index bb0375e7a..c07d28129 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/CompareWithPatchAction.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/CompareWithPatchAction.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Diff.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
index ff84d576b..87d496ee9 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Diff.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.*;
import java.io.*;
@@ -92,11 +92,11 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
// return 0;
// }
- /* package */ InputStream patch(InputStream is) {
+ /* package */ String patch(InputStream is) {
return patch(new BufferedReader(new InputStreamReader(is)));
}
-
- /* package */ InputStream patch(BufferedReader reader) {
+
+ /* package */ String patch(BufferedReader reader) {
List lines= new LineReader(reader).readLines();
if (lines == null)
lines= new ArrayList();
@@ -112,7 +112,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
iter= lines.iterator();
while (iter.hasNext())
sb.append((String)iter.next());
- return new ByteArrayInputStream(sb.toString().getBytes());
+ return sb.toString();
}
/* package */ void compare(List l1, List l2) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java
index d6772dd6c..9f53bc0c1 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/Hunk.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Hunk.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.List;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
index 031cd4201..a5d4d1215 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/InputPatchPage.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
@@ -51,6 +51,7 @@ import org.eclipse.compare.internal.Utilities;
InputPatchPage(PatchWizard pw) {
super("Select Patch Input", "Select Patch Input", null);
fPatchWizard= pw;
+ //setPageComplete(false);
}
/**
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java
index 2466ac69d..3ae6ca5b7 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/LineReader.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/LineReader.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.util.*;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
index 517f82b8a..2008989ce 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchCompareInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.io.ByteArrayInputStream;
@@ -93,6 +93,39 @@ import org.eclipse.compare.internal.*;
}
}
+ public void saveChanges(IProgressMonitor pm) throws CoreException {
+ if (fRoot instanceof DiffNode) {
+ try {
+ commit(pm, (DiffNode) fRoot);
+ } finally {
+ setDirty(false);
+ }
+ }
+ }
+
+ /*
+ * Recursively walks the diff tree and commits all changes.
+ */
+ private static void commit(IProgressMonitor pm, DiffNode node) throws CoreException {
+
+ ITypedElement left= node.getLeft();
+ if (left instanceof BufferedResourceNode)
+ ((BufferedResourceNode) left).commit(pm);
+
+ ITypedElement right= node.getRight();
+ if (right instanceof BufferedResourceNode)
+ ((BufferedResourceNode) right).commit(pm);
+
+ IDiffElement[] children= node.getChildren();
+ if (children != null) {
+ for (int i= 0; i < children.length; i++) {
+ IDiffElement element= children[i];
+ if (element instanceof DiffNode)
+ commit(pm, (DiffNode) element);
+ }
+ }
+ }
+
/* package */ void createPath(DiffContainer root, IContainer folder, String path, Diff diff) {
int pos= path.indexOf('/');
if (pos >= 0) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java
index 2ec188d24..34a6ebd14 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PatchParser.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchParser.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.io.*;
import java.util.*;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java
index b8139d0fa..7e1d8af33 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchWizard.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchWizard.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.wizard.*;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java
index 7ebbb3b61..89d744c98 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/patch/PatchedResource.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchedResource.java
@@ -2,10 +2,9 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
+import java.io.*;
import org.eclipse.compare.*;
import org.eclipse.core.runtime.CoreException;
@@ -17,6 +16,7 @@ import org.eclipse.swt.graphics.Image;
Diff fDiff;
IStreamContentAccessor fCurrent;
String fName;
+ byte[] fContent;
/* package */ PatchedResource(IStreamContentAccessor current, Diff diff, String name) {
fDiff= diff;
@@ -25,13 +25,25 @@ import org.eclipse.swt.graphics.Image;
}
public InputStream getContents() throws CoreException {
- InputStream is= null;
- try {
- is= fCurrent.getContents();
- } catch (CoreException ex) {
- is= new ByteArrayInputStream(new byte[0]);
+ if (fContent == null) {
+ InputStream is= null;
+
+ try {
+ is= fCurrent.getContents();
+ } catch (CoreException ex) {
+ is= new ByteArrayInputStream(new byte[0]);
+ }
+ if (is != null) {
+ String s= fDiff.patch(is);
+ if (s != null)
+ fContent= s.getBytes();
+ try {
+ is.close();
+ } catch (IOException ex) {
+ }
+ }
}
- return fDiff.patch(is);
+ return new ByteArrayInputStream(fContent);
}
public Image getImage() {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
index 25456a82e..41e213e29 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/patch/PreviewPatchPage.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
@@ -2,7 +2,7 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-package org.eclipse.patch;
+package org.eclipse.compare.patch;
import java.util.*;
@@ -33,6 +33,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
/* package */ PreviewPatchPage(PatchWizard pw) {
super("Preview Patch", "Preview Patch", null);
fPatchWizard= pw;
+ //setPageComplete(false);
}
/* (non-Javadoc)
@@ -49,6 +50,7 @@ import org.eclipse.compare.structuremergeviewer.Differencer;
* list of Diffs.
*/
private void update() {
+ setPageComplete(true);
if (fTree != null && !fTree.isDisposed()) {
fTree.removeAll();
fText.setText("");
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
index 93a4cf99b..0cd8eac71 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
@@ -90,7 +90,7 @@
label="%CompareWithPatchAction.label"
tooltip="%CompareWithPatchAction.tooltip"
menubarPath="compareWithMenu/compareWithGroup"
- class="org.eclipse.patch.CompareWithPatchAction">
+ class="org.eclipse.compare.patch.CompareWithPatchAction">
</action>
</objectContribution>

Back to the top