use of com.collabnet.subversion.merge.MergeResultsFolder in project subclipse by subclipse.
the class ShowRemoteHistoryAction method getSelectedRemoteResources.
protected ISVNRemoteResource[] getSelectedRemoteResources() {
MergeOutput mergeOutput = null;
ISVNRemoteResource remoteResource = null;
Iterator iter = fSelection.iterator();
while (iter.hasNext()) {
Object object = iter.next();
if (object instanceof MergeResult) {
MergeResult mergeResult = (MergeResult) object;
IResource resource = mergeResult.getResource();
mergeOutput = mergeResult.getMergeOutput();
MergeOptions mergeOptions = mergeOutput.getMergeOptions();
SVNUrl svnUrl = mergeOptions.getFromUrl();
ISVNLocalResource svnResource = SVNWorkspaceRoot.getSVNResourceFor(resource);
try {
String resourceSubString = resource.getFullPath().toOSString().substring(mergeOutput.getTarget().length() + 1);
if (!resourceSubString.startsWith("/"))
// $NON-NLS-1$ //$NON-NLS-2$
resourceSubString = "/" + resourceSubString;
SVNUrl remoteResourceUrl = new SVNUrl(svnUrl.toString() + // $NON-NLS-1$ //$NON-NLS-2$
resourceSubString.replaceAll("\\\\", "/"));
remoteResource = svnResource.getRepository().getRemoteFile(remoteResourceUrl);
} catch (Exception e) {
Activator.handleError(Messages.ShowRemoteHistoryAction_error, e);
MessageDialog.openError(getShell(), Messages.ShowRemoteHistoryAction_title, e.getLocalizedMessage());
}
break;
}
if (object instanceof MergeResultsFolder) {
MergeResultsFolder mergeResultsFolder = (MergeResultsFolder) object;
IContainer folder = mergeResultsFolder.getFolder();
mergeOutput = mergeResultsFolder.getMergeOutput();
MergeOptions mergeOptions = mergeOutput.getMergeOptions();
SVNUrl svnUrl = mergeOptions.getFromUrl();
ISVNLocalResource svnResource = SVNWorkspaceRoot.getSVNResourceFor(folder);
try {
String resourceSubString = folder.getFullPath().toOSString().substring(mergeOutput.getTarget().length() + 1);
if (!resourceSubString.startsWith("/"))
// $NON-NLS-1$ //$NON-NLS-2$
resourceSubString = "/" + resourceSubString;
SVNUrl remoteResourceUrl = new SVNUrl(svnUrl.toString() + // $NON-NLS-1$ //$NON-NLS-2$
resourceSubString.replaceAll("\\\\", "/"));
remoteResource = svnResource.getRepository().getRemoteFile(remoteResourceUrl);
} catch (Exception e) {
Activator.handleError(Messages.ShowRemoteHistoryAction_error, e);
MessageDialog.openError(getShell(), Messages.ShowRemoteHistoryAction_title, e.getLocalizedMessage());
}
break;
}
}
if (remoteResource != null) {
ISVNRemoteResource[] selectedResource = { remoteResource };
SVNRevision.Number startRevision = null;
try {
startRevision = (SVNRevision.Number) SVNRevision.getRevision(Long.toString(mergeOutput.getLowerRevision()));
} catch (ParseException e) {
}
SVNRevision.Number endRevision = null;
if (mergeOutput.getUpperRevision() > 0) {
try {
endRevision = (SVNRevision.Number) SVNRevision.getRevision(Long.toString(mergeOutput.getUpperRevision()));
} catch (ParseException e) {
}
}
HistorySearchViewerFilter historySearchViewerFilter = new HistorySearchViewerFilter(null, null, null, null, true, startRevision, endRevision);
SVNHistoryPage.setHistorySearchViewerFilter(historySearchViewerFilter);
return selectedResource;
}
return new ISVNRemoteResource[0];
}
Aggregations