Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchCompareInput.java')
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchCompareInput.java180
1 files changed, 0 insertions, 180 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchCompareInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchCompareInput.java
deleted file mode 100644
index d99a4f819..000000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchCompareInput.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.io.ByteArrayInputStream;
-import java.text.MessageFormat;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.*;
-
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.internal.*;
-
-
-/**
- * A PatchCompareInput uses a Patcher to
- * patch selected workspace resources.
- */
-/* package */ class PatchCompareInput extends CompareEditorInput {
-
- static class Rejected extends DiffNode implements IStreamContentAccessor {
- Diff fDiff;
- String fName;
- Rejected(IDiffContainer parent, String name, Diff diff) {
- super(parent, Differencer.NO_CHANGE);
- fName= name;
- fDiff= diff;
- }
- public String getName() {
- return fName + " *"; //$NON-NLS-1$
- }
- public String getType() {
- return "txt"; //$NON-NLS-1$
- }
- public Image getImage() {
- return CompareUI.getImage("file"); //$NON-NLS-1$
- }
- public InputStream getContents() {
- return new ByteArrayInputStream(fDiff.fRejected.getBytes());
- }
- }
-
- private DiffNode fRoot;
- private IResource fTarget;
- private Patcher fPatcher;
-
- /**
- * Creates an compare editor input for the given selection.
- */
- /* package */ PatchCompareInput(CompareConfiguration config, Patcher patcher, ISelection selection) {
- super(config);
- fPatcher= patcher;
- IResource[] s= Utilities.getResources(selection);
- if (s.length == 1)
- fTarget= s[0];
- }
-
- /**
- * Performs a two-way or three-way diff on the current selection.
- */
- public Object prepareInput(IProgressMonitor pm) throws InvocationTargetException {
-
- CompareConfiguration cc= (CompareConfiguration) getCompareConfiguration();
-
- try {
- Diff[] diffs= fPatcher.getDiffs();
-
- pm.beginTask(Utilities.getString("ResourceCompare.taskName"), diffs.length); //$NON-NLS-1$
-
- fRoot= new DiffNode(0);
- IContainer rootFolder= null;
- if (fTarget instanceof IContainer)
- rootFolder= (IContainer) fTarget;
-
- for (int i= 0; i < diffs.length; i++) {
- Diff diff= diffs[i];
- if (diff.isEnabled()) {
- IPath path= fPatcher.getPath(diff);
- createPath(fRoot, rootFolder, path, diff, false);
-
- String rej= diff.fRejected;
- if (rej != null) {
- IPath pp= path.removeLastSegments(1);
- pp= pp.append(path.lastSegment() + ".rej"); //$NON-NLS-1$
- createPath(fRoot, rootFolder, pp, diff, true);
- }
- }
- pm.worked(1);
- }
-
- fTarget.refreshLocal(IResource.DEPTH_INFINITE, pm);
-
- String leftLabel= fTarget.getName();
- cc.setLeftLabel(leftLabel);
- cc.setLeftImage(CompareUIPlugin.getImage(fTarget));
-
- String rformat= PatchMessages.getString("PatchCompareInput.RightTitle.format"); //$NON-NLS-1$
- String rightLabel= MessageFormat.format(rformat, new String[] { fPatcher.getName() } );
- cc.setRightLabel(rightLabel);
- //cc.setRightImage(CompareUIPlugin.getImage(fRightResource));
-
- String format= Utilities.getString("ResourceCompare.twoWay.title"); //$NON-NLS-1$
- String title= MessageFormat.format(format, new String[] {leftLabel, rightLabel} );
- setTitle(title);
-
- return fRoot;
-
- } catch (CoreException ex) {
- throw new InvocationTargetException(ex);
- } finally {
- pm.done();
- }
- }
-
- 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);
- }
- }
- }
-
- private void createPath(DiffContainer root, IContainer folder, IPath path, Diff diff, boolean reject) {
- if (path.segmentCount() > 1) {
- IFolder f= folder.getFolder(path.uptoSegment(1));
- IDiffElement child= root.findChild(path.segment(0));
- if (child == null) {
- ResourceNode rn= new ResourceNode(f);
- child= new DiffNode(root, Differencer.CHANGE, null, rn, rn);
- }
- if (child instanceof DiffContainer)
- createPath((DiffContainer)child, f, path.removeFirstSegments(1), diff, reject);
- } else {
- // a leaf
- BufferedResourceNode rn= new BufferedResourceNode(folder.getFile(path));
- if (reject) {
- new Rejected(root, path.segment(0), diff);
- } else {
- new DiffNode(root, diff.getType(), null, rn, new PatchedResource(rn, diff, path, fPatcher));
- }
- }
- }
-}
-
-

Back to the top