From 773d10b1d935bbaaf5554138423b2cc1ab1abe10 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 23 Nov 2007 20:37:08 +0000 Subject: [PATCH] minor fix - need to check if encodings have changed before knowning it th ecached file should be used --- .../files/ui/actions/SystemEditFileAction.java | 14 ++++++++++++-- .../files/ui/actions/SystemEditFilesAction.java | 10 +++++++++- .../ui/actions/SystemRemoteFileOpenWithMenu.java | 14 +++++++++++++- .../files/ui/view/SystemViewRemoteFileAdapter.java | 9 ++++++++- 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java index 5502c5f2812..6e3a55eb291 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java @@ -117,10 +117,20 @@ public class SystemEditFileAction extends SystemBaseAction { boolean remoteNewer = (storedModifiedStamp != remoteModifiedStamp); - String encoding = remoteFile.getEncoding(); + + + String remoteEncoding = remoteFile.getEncoding(); String storedEncoding = properties.getEncoding(); - return (!dirty && !remoteNewer && (encoding != null && encoding.equals(storedEncoding))); + boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java index 5dcba2d31c1..d5531812500 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java @@ -142,7 +142,15 @@ public class SystemEditFilesAction extends SystemBaseAction { String storedEncoding = properties.getEncoding(); boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); - return (!dirty && !remoteNewer && !encodingChanged); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); + } return false; } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java index 82524bdeeaa..87af5813330 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java @@ -248,7 +248,19 @@ private boolean isFileCached(ISystemEditableRemoteObject editable, IRemoteFile r boolean dirty = properties.getDirty(); boolean remoteNewer = (storedModifiedStamp != remoteModifiedStamp); - return (!dirty && !remoteNewer); + + String remoteEncoding = remoteFile.getEncoding(); + String storedEncoding = properties.getEncoding(); + + boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java index 14188e1dda2..410af69f5f6 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java @@ -3045,7 +3045,14 @@ public class SystemViewRemoteFileAdapter String storedEncoding = properties.getEncoding(); boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); - return (!dirty && !remoteNewer && !encodingChanged); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; }