1 11 12 package org.eclipse.team.internal.ccvs.core.filehistory; 13 14 import org.eclipse.core.filesystem.IFileStore; 15 import org.eclipse.core.resources.IResource; 16 import org.eclipse.core.runtime.IProgressMonitor; 17 import org.eclipse.team.core.TeamException; 18 import org.eclipse.team.core.history.*; 19 import org.eclipse.team.core.history.provider.FileHistoryProvider; 20 import org.eclipse.team.internal.ccvs.core.*; 21 import org.eclipse.team.internal.ccvs.core.client.listeners.LogEntry; 22 import org.eclipse.team.internal.ccvs.core.filesystem.CVSFileStore; 23 import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; 24 import org.eclipse.team.internal.ccvs.core.resources.RemoteFile; 25 import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo; 26 27 public class CVSFileHistoryProvider extends FileHistoryProvider { 28 29 32 public IFileHistory getFileHistoryFor(IResource resource, int flags, IProgressMonitor monitor) { 33 ICVSRemoteResource remoteResource; 34 try { 35 monitor.beginTask(null, 100); 36 if ((flags == IFileHistoryProvider.SINGLE_REVISION) || ((flags == IFileHistoryProvider.SINGLE_LINE_OF_DESCENT))) { 37 remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(resource); 38 monitor.worked(40); 39 CVSFileHistory remoteFile = null; 40 if (remoteResource instanceof ICVSFile) { 41 remoteFile = new CVSFileHistory((ICVSFile) remoteResource, flags); 42 remoteFile.refresh(CVSFileHistory.REFRESH_ALL, monitor); 43 } 44 return remoteFile; 45 } else { 46 remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(resource); 48 monitor.worked(40); 49 CVSFileHistory remoteFile = null; 50 if (remoteResource instanceof ICVSFile) { 51 remoteFile = new CVSFileHistory((ICVSFile) remoteResource); 52 remoteFile.refresh(CVSFileHistory.REFRESH_ALL, monitor); 53 } 54 return remoteFile; 55 } 56 } catch (CVSException e) { 57 } catch (TeamException e) { 58 } finally { 59 monitor.done(); 60 } 61 62 return null; 63 } 64 65 public IFileRevision getWorkspaceFileRevision(IResource resource) { 66 67 ICVSRemoteResource remoteResource; 68 try { 69 remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(resource); 70 if (remoteResource != null && 71 remoteResource instanceof RemoteFile){ 72 ResourceSyncInfo syncInfo = remoteResource.getSyncInfo(); 73 LogEntry cvsEntry = new LogEntry((RemoteFile) remoteResource, syncInfo.getRevision(), "", null,"","", new CVSTag[0]); return new CVSFileRevision(cvsEntry); 75 } 76 } catch (CVSException e) { 77 } 78 79 return null; 80 } 81 82 public IFileHistory getFileHistoryFor(IFileStore store, int flags, IProgressMonitor monitor) { 83 if (store instanceof CVSFileStore) { 84 85 CVSFileStore fileStore = (CVSFileStore) store; 86 ICVSRemoteFile file = fileStore.getCVSURI().toFile(); 87 if (file != null){ 88 try{ 89 if ((flags == IFileHistoryProvider.SINGLE_REVISION) || ((flags == IFileHistoryProvider.SINGLE_LINE_OF_DESCENT))) { 90 CVSFileHistory history = new CVSFileHistory(file, flags); 91 history.refresh(CVSFileHistory.REFRESH_ALL, monitor); 92 return history; 93 } else{ 94 CVSFileHistory history = new CVSFileHistory(file); 95 history.refresh(CVSFileHistory.REFRESH_ALL, monitor); 96 return history; 97 } } catch (TeamException ex){} 98 } 99 } 100 return null; 101 } 102 103 } 104 | Popular Tags |