From 0636ba7895c7e75f12ea8bc12227377d6cd8e2e2 Mon Sep 17 00:00:00 2001 From: Irina Chernushina Date: Thu, 6 Aug 2009 17:47:30 +0400 Subject: [PATCH] VCS: annotations highlighting: additionally marked with *, highlight latest revision initially --- .../openapi/vcs/actions/AnnotateToggleAction.java | 19 +++++++++++++++++++ .../vcs/annotate/HighlightAnnotationsActions.java | 10 +++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateToggleAction.java b/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateToggleAction.java index fde8eda18d..a61177b729 100644 --- a/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateToggleAction.java +++ b/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateToggleAction.java @@ -203,6 +203,7 @@ public class AnnotateToggleAction extends ToggleAction implements DumbAware { final AnnotationFieldGutter gutter = new AnnotationFieldGutter(fileAnnotation, editor, aspect, presentation); gutters.add(gutter); } + gutters.add(new MyHighlightedAdditionalColumn(fileAnnotation, editor, null, presentation, highlighting)); for (AnnotationFieldGutter gutter : gutters) { final AnnotationGutterLineConvertorProxy proxy = new AnnotationGutterLineConvertorProxy(getUpToDateLineNumber, gutter); @@ -216,6 +217,24 @@ public class AnnotateToggleAction extends ToggleAction implements DumbAware { } } + private static class MyHighlightedAdditionalColumn extends AnnotationFieldGutter { + private final HighlightAnnotationsActions myHighlighting; + + private MyHighlightedAdditionalColumn(FileAnnotation annotation, + Editor editor, + LineAnnotationAspect aspect, + TextAnnotationPresentation presentation, + final HighlightAnnotationsActions highlighting) { + super(annotation, editor, aspect, presentation); + myHighlighting = highlighting; + } + + @Override + public String getLineText(int line, Editor editor) { + return myHighlighting.isLineBold(line) ? "*" : ""; + } + } + // !! shown additionally only when merge private static class MyCurrentRevisionAnnotationFieldGutter extends AnnotationFieldGutter implements Consumer { // merge source showing is turned on diff --git a/vcs-impl/src/com/intellij/openapi/vcs/annotate/HighlightAnnotationsActions.java b/vcs-impl/src/com/intellij/openapi/vcs/annotate/HighlightAnnotationsActions.java index c40074ed71..62f13e8615 100644 --- a/vcs-impl/src/com/intellij/openapi/vcs/annotate/HighlightAnnotationsActions.java +++ b/vcs-impl/src/com/intellij/openapi/vcs/annotate/HighlightAnnotationsActions.java @@ -10,6 +10,7 @@ import com.intellij.openapi.vcs.history.VcsFileRevision; import com.intellij.openapi.vcs.history.VcsRevisionNumber; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; +import org.jetbrains.annotations.Nullable; import java.util.Arrays; import java.util.List; @@ -23,8 +24,10 @@ public class HighlightAnnotationsActions { public HighlightAnnotationsActions(final Project project, final VirtualFile virtualFile, final FileAnnotation fileAnnotation, final EditorGutterComponentEx gutter) { myGutter = gutter; - myBefore = new HightlightAction(true, project, virtualFile, fileAnnotation, myGutter); - myAfter = new HightlightAction(false, project, virtualFile, fileAnnotation, myGutter); + myBefore = new HightlightAction(true, project, virtualFile, fileAnnotation, myGutter, null); + final List fileRevisionList = fileAnnotation.getRevisions(); + final VcsFileRevision afterSelected = ((fileRevisionList != null) && (fileRevisionList.size() > 1)) ? fileRevisionList.get(0) : null; + myAfter = new HightlightAction(false, project, virtualFile, fileAnnotation, myGutter, afterSelected); myRemove = new RemoveHighlightingAction(); } @@ -73,13 +76,14 @@ public class HighlightAnnotationsActions { private Boolean myShowComments; private HightlightAction(final boolean before, final Project project, final VirtualFile virtualFile, final FileAnnotation fileAnnotation, - final EditorGutterComponentEx gutter) { + final EditorGutterComponentEx gutter, @Nullable final VcsFileRevision selectedRevision) { myBefore = before; myProject = project; myVirtualFile = virtualFile; myFileAnnotation = fileAnnotation; myGutter = gutter; myShowComments = null; + mySelectedRevision = selectedRevision; } @Override -- 2.11.4.GIT