diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java index c42e9a164..b7e178ace 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSCatchupReleaseViewer.java @@ -41,8 +41,8 @@ import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo; import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.HistoryView; import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants; -import org.eclipse.team.internal.ccvs.ui.OverlayIcon;
-import org.eclipse.team.internal.ccvs.ui.OverlayIconCache;
+import org.eclipse.team.internal.ccvs.ui.OverlayIcon; +import org.eclipse.team.internal.ccvs.ui.OverlayIconCache; import org.eclipse.team.internal.ccvs.ui.Policy; import org.eclipse.team.internal.ccvs.ui.merge.OverrideUpdateMergeAction; import org.eclipse.team.internal.ccvs.ui.merge.UpdateMergeAction; @@ -65,20 +65,20 @@ public class CVSCatchupReleaseViewer extends CatchupReleaseViewer { private HistoryAction showInHistory; private OverrideUpdateMergeAction forceUpdateMergeAction; - private static class DiffOverlayIcon extends OverlayIcon {
- private static final int HEIGHT = 16;
- private static final int WIDTH = 22;
- public DiffOverlayIcon(Image baseImage, ImageDescriptor overlay) {
- super(baseImage, new ImageDescriptor[] { overlay }, new Point(WIDTH, HEIGHT));
+ private static class DiffOverlayIcon extends OverlayIcon { + private static final int HEIGHT = 16; + private static final int WIDTH = 22; + public DiffOverlayIcon(Image baseImage, ImageDescriptor overlay) { + super(baseImage, new ImageDescriptor[] { overlay }, new Point(WIDTH, HEIGHT)); } - protected void drawOverlays(ImageDescriptor[] overlays) {
- ImageDescriptor overlay = overlays[0];
+ protected void drawOverlays(ImageDescriptor[] overlays) { + ImageDescriptor overlay = overlays[0]; ImageData overlayData = overlay.getImageData(); drawImage(overlayData, WIDTH - overlayData.width, (HEIGHT - overlayData.height) / 2); } } -
- private static class HistoryAction extends Action implements ISelectionChangedListener {
+ + private static class HistoryAction extends Action implements ISelectionChangedListener { IStructuredSelection selection; public HistoryAction(String label) { super(label); @@ -98,10 +98,16 @@ public class CVSCatchupReleaseViewer extends CatchupReleaseViewer { ICVSRemoteFile baseFile = (ICVSRemoteFile)remoteSyncElement.getBase(); // can only show history if remote exists or local has a base. + String currentRevision = null; + try { + currentRevision = baseFile!=null ? baseFile.getRevision(): null; + } catch(TeamException e) { + CVSUIPlugin.log(e.getStatus()); + } if(remoteFile!=null) { - view.showHistory(remoteFile); + view.showHistory(remoteFile, currentRevision); } else if(baseFile!=null) { - view.showHistory(baseFile); + view.showHistory(baseFile, currentRevision); } } public void selectionChanged(SelectionChangedEvent event) { @@ -143,19 +149,19 @@ public class CVSCatchupReleaseViewer extends CatchupReleaseViewer { final ImageDescriptor questionableDescriptor = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_QUESTIONABLE); final LabelProvider oldProvider = (LabelProvider)getLabelProvider(); setLabelProvider(new LabelProvider() { - private OverlayIconCache iconCache = new OverlayIconCache();
-
- public void dispose() {
- iconCache.disposeAll();
- oldProvider.dispose();
- }
+ private OverlayIconCache iconCache = new OverlayIconCache(); + + public void dispose() { + iconCache.disposeAll(); + oldProvider.dispose(); + } public Image getImage(Object element) { Image image = oldProvider.getImage(element); if (element instanceof ITeamNode) { ITeamNode node = (ITeamNode)element; int kind = node.getKind(); if ((kind & IRemoteSyncElement.AUTOMERGE_CONFLICT) != 0) { - return iconCache.getImageFor(new DiffOverlayIcon(image, conflictDescriptor));
+ return iconCache.getImageFor(new DiffOverlayIcon(image, conflictDescriptor)); } if (kind == (IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION)) { IResource resource = node.getResource(); @@ -163,7 +169,7 @@ public class CVSCatchupReleaseViewer extends CatchupReleaseViewer { try { ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile) resource); if (cvsFile.getSyncInfo() == null) { - return iconCache.getImageFor(new DiffOverlayIcon(image, questionableDescriptor));
+ return iconCache.getImageFor(new DiffOverlayIcon(image, questionableDescriptor)); } } catch (TeamException e) { ErrorDialog.openError(getControl().getShell(), null, null, e.getStatus()); |