Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2006-10-12 20:03:27 +0000
committerMichael Valenta2006-10-12 20:03:27 +0000
commita098d48ef9a46804dc00bd9737baaa875be6546b (patch)
treeca31bd3037ab8ee7bbd126ffbce159a15e290b12 /bundles/org.eclipse.team.ui
parent4f5c5d87ade9e4784eca85f9c6ab3e520ae66b65 (diff)
downloadeclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.tar.gz
eclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.tar.xz
eclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.zip
Bug 72995 When comparing with CVS we see a wrong encoding
Diffstat (limited to 'bundles/org.eclipse.team.ui')
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java4
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java33
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java5
4 files changed, 38 insertions, 6 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java
index 8d91015f3..179035fea 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java
@@ -131,4 +131,8 @@ public abstract class StorageTypedElement implements ITypedElement, IEncodedStre
*/
protected abstract IEditorInput getDocumentKey(Object element);
+ public String getLocalEncoding() {
+ return localEncoding;
+ }
+
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java
index 5086a4468..4544182fb 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java
@@ -10,10 +10,10 @@
*******************************************************************************/
package org.eclipse.team.internal.ui.history;
+import java.io.InputStream;
import java.util.Date;
-import org.eclipse.core.resources.IFileState;
-import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.*;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.osgi.util.NLS;
@@ -43,6 +43,31 @@ public class FileRevisionEditorInput extends PlatformObject implements IWorkbenc
return new FileRevisionEditorInput(revision, storage);
}
+ private static IStorage wrapStorage(final IStorage storage, final String charset) {
+ if (charset == null)
+ return storage;
+ return new IEncodedStorage() {
+ public Object getAdapter(Class adapter) {
+ return storage.getAdapter(adapter);
+ }
+ public boolean isReadOnly() {
+ return storage.isReadOnly();
+ }
+ public String getName() {
+ return storage.getName();
+ }
+ public IPath getFullPath() {
+ return storage.getFullPath();
+ }
+ public InputStream getContents() throws CoreException {
+ return storage.getContents();
+ }
+ public String getCharset() throws CoreException {
+ return charset;
+ }
+ };
+ }
+
/**
* Creates FileRevisionEditorInput on the given revision.
* @param revision the file revision
@@ -59,6 +84,10 @@ public class FileRevisionEditorInput extends PlatformObject implements IWorkbenc
this(state, state);
}
+ public FileRevisionEditorInput(Object revision, IStorage storage, String charset) {
+ this(revision, wrapStorage(storage, charset));
+ }
+
public IStorage getStorage() throws CoreException {
return storage;
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java
index d105234dd..0e360b403 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java
@@ -106,7 +106,7 @@ public class FileRevisionTypedElement extends StorageTypedElement {
*/
public IEditorInput getDocumentKey(Object element) {
if (element == this && getBufferedStorage() != null) {
- return new FileRevisionEditorInput(fileRevision, getBufferedStorage());
+ return new FileRevisionEditorInput(fileRevision, getBufferedStorage(), getLocalEncoding());
}
return null;
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java
index 44d9cb91a..1d367f541 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java
@@ -12,8 +12,7 @@ package org.eclipse.team.internal.ui.synchronize;
import org.eclipse.compare.ITypedElement;
import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.*;
import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.variants.IResourceVariant;
import org.eclipse.team.internal.core.mapping.ResourceVariantFileRevision;
@@ -69,7 +68,7 @@ public class RemoteResourceTypedElement extends StorageTypedElement {
*/
public IEditorInput getDocumentKey(Object element) {
if (element == this && getBufferedStorage() != null) {
- return new FileRevisionEditorInput(new ResourceVariantFileRevision(remote), getBufferedStorage());
+ return new FileRevisionEditorInput(new ResourceVariantFileRevision(remote), getBufferedStorage(), getLocalEncoding());
}
return null;
}

Back to the top