use of com.collabnet.subversion.merge.MergeResult in project subclipse by subclipse.
the class MergeResultsViewContentProvider method getChildren.
public Object[] getChildren(Object parentElement) {
int mode = store.getInt(MergeResultsView.LAYOUT_PREFERENCE);
boolean conflictsOnly = store.getBoolean(MergeResultsView.CONFLICTS_ONLY_PREFERENCE);
if (parentElement instanceof MergeResultsView) {
return MergeOutput.getMergeOutputs();
}
if (parentElement instanceof MergeOutput) {
MergeOutput mergeOutput = (MergeOutput) parentElement;
if (mode == MergeResultsView.MODE_FLAT) {
if (conflictsOnly)
return mergeOutput.getConflictedMergeResults();
else
// else return mergeOutput.getNonSkippedMergeResults();
return mergeOutput.getMergeResults();
}
if (mode == MergeResultsView.MODE_COMPRESSED_FOLDERS) {
MergeResult[] rootMergeResults = mergeOutput.getRootMergeResults(conflictsOnly);
MergeResultsFolder[] mergeResultFolders = mergeOutput.getCompressedFolders(conflictsOnly);
ArrayList returnObjects = new ArrayList();
for (int i = 0; i < mergeResultFolders.length; i++) returnObjects.add(mergeResultFolders[i]);
for (int i = 0; i < rootMergeResults.length; i++) returnObjects.add(rootMergeResults[i]);
Object[] returnArray = new Object[returnObjects.size()];
returnObjects.toArray(returnArray);
return returnArray;
}
}
if (parentElement instanceof MergeResultsFolder) {
MergeResultsFolder folder = (MergeResultsFolder) parentElement;
if (folder.isCompressed()) {
return folder.getMergeResults(conflictsOnly);
}
}
return new Object[0];
}
use of com.collabnet.subversion.merge.MergeResult in project subclipse by subclipse.
the class MergeResultsViewLabelProvider method getForeground.
public Color getForeground(Object element) {
if (element instanceof MergeResult) {
MergeResult mergeResult = (MergeResult) element;
if (mergeResult.getAction().equals(MergeResult.ACTION_SKIP))
return Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
}
if (element instanceof MergeResultsFolder) {
MergeResultsFolder mergeResultsFolder = (MergeResultsFolder) element;
MergeResult mergeResult = mergeResultsFolder.getMergeResult();
if (mergeResult != null && mergeResult.getAction().equals(MergeResult.ACTION_SKIP))
return Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
}
return null;
}
use of com.collabnet.subversion.merge.MergeResult in project subclipse by subclipse.
the class MergeResultsViewLabelProvider method getImage.
public Image getImage(Object element) {
if (element instanceof MergeOutput) {
Image image = null;
if (((MergeOutput) element).isIncomplete())
image = Activator.getImage(Activator.IMAGE_MERGE_OUTPUT_ABORTED);
else {
if (((MergeOutput) element).isAbnormalEnd())
image = Activator.getImage(Activator.IMAGE_MERGE_OUTPUT_ABNORMAL);
else if (((MergeOutput) element).isInProgress())
image = Activator.getImage(Activator.IMAGE_MERGE_OUTPUT_IN_PROGRESS);
else
image = Activator.getImage(Activator.IMAGE_MERGE_OUTPUT);
}
return compareConfiguration.getImage(image, Differencer.NO_CHANGE);
}
if (element instanceof MergeResult) {
MergeResult mergeResult = (MergeResult) element;
if (mergeResult.getResource() == null || mergeResult.getResource().getName() == null) {
return super.getImage(element);
}
return getImage(mergeResult);
}
if (element instanceof MergeResultsFolder) {
MergeResultsFolder mergeResultsFolder = (MergeResultsFolder) element;
Image image;
if (mergeResultsFolder.getFolder().getFullPath().makeRelative().toString().length() > mergeResultsFolder.getRootFolderLength())
image = workbenchLabelProvider.getImage(mergeResultsFolder.getFolder());
else
image = workbenchLabelProvider.getImage(mergeResultsFolder.getMergeOutput().getResource());
MergeResult mergeResult = mergeResultsFolder.getMergeResult();
if (mergeResult != null)
return getImage(mergeResult);
return compareConfiguration.getImage(image, Differencer.NO_CHANGE);
}
return super.getImage(element);
}
use of com.collabnet.subversion.merge.MergeResult in project subclipse by subclipse.
the class MergeViewResolveAction method execute.
protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
boolean treeConflictDialogShown = false;
boolean compare = false;
mergePath = null;
if (showDialog) {
List resources = new ArrayList();
Iterator iter = fSelection.iterator();
boolean folderSelected = false;
boolean textConflicts = false;
boolean propertyConflicts = false;
boolean treeConflicts = false;
while (iter.hasNext()) {
MergeResult mergeResult = null;
Object selectedObject = iter.next();
if (selectedObject instanceof MergeResult)
mergeResult = (MergeResult) selectedObject;
if (selectedObject instanceof MergeResultsFolder) {
folderSelected = true;
MergeResultsFolder mergeResultsFolder = (MergeResultsFolder) selectedObject;
resources.add(mergeResultsFolder.getFolder());
mergeResult = mergeResultsFolder.getMergeResult();
}
if (mergeResult != null && (mergeResult.hasTreeConflict() || mergeResult.isConflicted() || mergeResult.isPropertyConflicted())) {
if (mergeResult.isConflicted())
textConflicts = true;
if (mergeResult.isPropertyConflicted())
propertyConflicts = true;
if (mergeResult.hasTreeConflict())
treeConflicts = true;
if (!(selectedObject instanceof MergeResultsFolder)) {
resources.add(mergeResult.getResource());
}
}
}
if (resources.size() > 1) {
if (!MessageDialog.openConfirm(getShell(), Messages.MergeViewResolveAction_confirm, Messages.MergeViewResolveAction_confirmMultiple))
return;
setResolution(ISVNConflictResolver.Choice.chooseMerged);
} else if (treeConflicts) {
IResource resource = (IResource) resources.get(0);
treeConflict = getTreeConflict(resource);
if (treeConflict == null) {
String message = Messages.MergeViewResolveAction_confirmTreeConflict + resource.getName() + // $NON-NLS-1$
"?";
if (!MessageDialog.openConfirm(getShell(), Messages.MergeViewResolveAction_confirm, message))
return;
setResolution(ISVNConflictResolver.Choice.chooseMerged);
} else {
ResolveTreeConflictWizard wizard = new ResolveTreeConflictWizard(treeConflict, getTargetPart());
WizardDialog dialog = new SizePersistedWizardDialog(Display.getDefault().getActiveShell(), wizard, // $NON-NLS-1$
"ResolveTreeConflict");
if (dialog.open() != WizardDialog.OK)
return;
treeConflictDialogShown = true;
compare = wizard.isCompare();
mergePath = wizard.getMergePath();
}
} else if (folderSelected) {
IResource resource = (IResource) resources.get(0);
String message = Messages.MergeViewResolveAction_confirmProperty + resource.getFullPath() + // $NON-NLS-1$
"?";
if (!MessageDialog.openConfirm(getShell(), Messages.MergeViewResolveAction_confirm, message))
return;
selectedResolution = ISVNConflictResolver.Choice.chooseMerged;
setResolution(selectedResolution);
} else {
IResource[] resourceArray = new IResource[resources.size()];
resources.toArray(resourceArray);
DialogWizard dialogResolveWizard = new DialogWizard(DialogWizard.MARK_RESOLVED);
dialogResolveWizard.setResources(resourceArray);
dialogResolveWizard.setTextConflicts(textConflicts);
dialogResolveWizard.setPropertyConflicts(propertyConflicts);
dialogResolveWizard.setTreeConflicts(treeConflicts);
MergeWizardDialog resolveDialog = new MergeWizardDialog(Display.getDefault().getActiveShell(), dialogResolveWizard);
if (resolveDialog.open() == MergeWizardDialog.CANCEL)
return;
selectedResolution = dialogResolveWizard.getResolution();
setResolution(selectedResolution);
}
}
if (!treeConflictDialogShown)
super.execute(action);
ArrayList mergeOutputs = new ArrayList();
Iterator iter = fSelection.iterator();
while (iter.hasNext()) {
MergeResult mergeResult = null;
Object selectedObject = iter.next();
if (selectedObject instanceof MergeResult)
mergeResult = (MergeResult) selectedObject;
if (selectedObject instanceof MergeResultsFolder) {
MergeResultsFolder mergeResultsFolder = (MergeResultsFolder) selectedObject;
mergeResult = mergeResultsFolder.getMergeResult();
}
if (mergeResult != null && (mergeResult.hasTreeConflict() || mergeResult.isConflicted() || mergeResult.isPropertyConflicted())) {
if (!compare) {
String conflictResolution = Integer.toString(selectedResolution);
mergeResult.setConflictResolution(conflictResolution);
mergeResult.setPropertyResolution(conflictResolution);
mergeResult.setTreeConflictResolution(conflictResolution);
if (mergePath != null) {
MergeResult[] allResults = mergeResult.getMergeOutput().getMergeResults();
for (MergeResult checkResult : allResults) {
if (checkResult.getResource().getLocation().toFile().equals(mergePath)) {
try {
LocalResourceStatus status = SVNProviderPlugin.getPlugin().getStatusCacheManager().getStatus(checkResult.getResource());
if (status.isTextConflicted()) {
checkResult.setAction(MergeResult.ACTION_CONFLICT);
checkResult.setConflictResolution(" ");
checkResult.setError(true);
}
} catch (SVNException e) {
}
break;
}
}
}
}
if (!mergeOutputs.contains(mergeResult.getMergeOutput()))
mergeOutputs.add(mergeResult.getMergeOutput());
}
}
iter = mergeOutputs.iterator();
while (iter.hasNext()) {
MergeOutput mergeOutput = (MergeOutput) iter.next();
mergeOutput.store();
}
MergeResultsView.getView().refresh();
iter = mergeOutputs.iterator();
while (iter.hasNext()) {
MergeOutput mergeOutput = (MergeOutput) iter.next();
if (!mergeOutput.hasUnresolvedConflicts()) {
DialogWizard dialogWizard = new DialogWizard(DialogWizard.CONFLICTS_RESOLVED);
dialogWizard.setMergeOutput(mergeOutput);
MergeWizardDialog dialog = new MergeWizardDialog(Display.getDefault().getActiveShell(), dialogWizard, true);
if (dialog.open() != MergeWizardDialog.CANCEL)
MergeResultsView.getView().refresh();
}
}
}
use of com.collabnet.subversion.merge.MergeResult 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