/*
 * Copyright 2000-2010 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.intellij.openapi.vcs.actions;

import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.vcs.annotate.FileAnnotation;
import com.intellij.openapi.vcs.annotate.LineAnnotationAspect;
import com.intellij.openapi.vcs.annotate.TextAnnotationPresentation;
import com.intellij.openapi.vcs.history.VcsRevisionNumber;

import java.awt.*;
import java.util.Map;

/**
 * @author Konstantin Bulenkov
 */
class HistoryIdColumn extends AnnotationFieldGutter {
  private final Map<String, Integer> myHistoryIds;

  HistoryIdColumn(FileAnnotation annotation,
                  Editor editor,
                  LineAnnotationAspect aspect,
                  final TextAnnotationPresentation presentation,
                  Map<String, Color> colorScheme,
                  Map<String, Integer> ids) {
    super(annotation, editor, aspect, presentation, colorScheme);
    myHistoryIds = ids;
  }

  @Override
  public String getLineText(int line, Editor editor) {
    final VcsRevisionNumber revisionNumber = myAnnotation.getLineRevisionNumber(line);
    if (revisionNumber != null) {
      final Integer num = myHistoryIds.get(revisionNumber.asString());
      if (num != null) {
        final String size = String.valueOf(myHistoryIds.size());
        String value = num.toString() + "/" + size;
        final int len = 2 * String.valueOf(myHistoryIds.size()).length() + 1;
        while (value.length() < len) {
          value = " " + value;
        }
        return value;
      }
    }
    return "";
  }
}

@@ -716,31 +716,17 @@
 vcs.
-annotate.FileAnnotation
+VcsBundle
 ;%0Aim
@@ -764,19 +764,19 @@
 nnotate.
-Lin
+Fil
 eAnnotat
@@ -778,22 +778,16 @@
 notation
-Aspect
 ;%0Aimport
@@ -1159,16 +1159,22 @@
         
+final 
 Editor e
@@ -1184,55 +1184,8 @@
 or,%0A
-                  LineAnnotationAspect aspect,%0A
     
@@ -1375,14 +1375,12 @@
 or, 
-aspect
+null
 , pr
@@ -1824,99 +1824,8 @@
 ng()
- + %22/%22 + size;%0A        final int len = 2 * String.valueOf(myHistoryIds.size()).length() + 1
 ;%0A  
@@ -1841,16 +1841,32 @@
 le (valu
+e.length() %3C siz
 e.length
@@ -1871,14 +1871,8 @@
 th()
- %3C len
 ) %7B%0A
@@ -1966,11 +1966,112 @@
  %22%22;%0A  %7D
+%0A%0A  @Override%0A  public String getID() %7B%0A    return VcsBundle.message(%22annotation.commit.number%22);%0A  %7D
 %0A%7D%0A

Make it shorter