Eclipse PDE - тип аннотации маркера - цвет фона не обновляется - PullRequest
3 голосов
/ 05 февраля 2009

Я студент, и в рамках ежегодного проекта я разрабатываю плагин Eclipse.
Я столкнулся со странной проблемой и пытаюсь исправить ее в течение 2 дней:

Я добавил 3 новых типа маркеров в plugin.xml.
Для каждого маркера, который я добавил annotationTypes, и для каждого annotationType, который я добавил markerAnnotationSpecification.
Моя цель - покрасить фоновые линии.
В каждом markerAnnotationSpecification я положил разные значки и разные colorPreferenceValue.

Странная вещь такова:
При создании маркеров все в порядке, и даже отображаются значки (разные значки для каждого маркера), но цвет фона линий одинаков для всех маркеров.
Я заметил, что последний markerAnnotationSpecification colorPreferenceValue берется каждый раз.
Когда я изменил порядок markerAnnotationSpecification в plugin.xml, цвет изменился на последний.

Я не знаю, что делать?

Также я попал на страницу настроек и изменил там цвет типа аннотации - после применения я увидел, что он обновил цвет 3 типа аннотации до того же цвета.
Разве я не могу добавить больше одного (я так не думаю ...)
Можно ли программно управлять markerAnnotationSpecification.colorPreferenceValue? Если да, то как?

Я добавляю свой код - возможно, вы увидите то, чего я не вижу:

  <extension id="BatonPassing.diff_marker_b"
              name="SiteBDiffMarker"
              point="org.eclipse.core.resources.markers">
      <super type="org.eclipse.core.resources.textmarker"/>
      <persistent value="true"/>
 </extension>

 <extension
         point="org.eclipse.ui.editors.annotationTypes">
         <type
             name="diffAnnotationB"
             super="org.eclipse.ui.workbench.texteditor.info"
             markerType="BatonPassing.diff_marker_b">
             <!--markerSeverity="0"-->
         </type>
   </extension>

   <extension
         point="org.eclipse.ui.editors.markerAnnotationSpecification">
         <specification
             icon = "icons/il.gif"
             annotationType="diffAnnotationB"
             verticalRulerPreferenceKey="highlight.rulers.vertical"
             textPreferenceKey="highlight.text"
            colorPreferenceKey="highlight.color"
            highlightPreferenceKey="highlight.background"
            textPreferenceValue="true"
            textStylePreferenceValue="BOX"
            overviewRulerPreferenceKey="highlight.rulers.overview"
            presentationLayer="4"
            highlightPreferenceValue="true"
            label="DiffSiteB"
            symbolicIcon="warning"
            colorPreferenceValue="255,0,0"
            verticalRulerPreferenceValue="true"
            overviewRulerPreferenceValue="true"
            textStylePreferenceKey="highlight.text.style" >
        </specification >
    </extension>

Каждый код маркера одинаков, но идентификаторы, имена, colorPreferenceValue не совпадают.

Пожалуйста, помогите мне. Большое спасибо
Hadas

Ответы [ 3 ]

2 голосов
/ 14 июня 2012

Значение colorPreferenceKey должно быть уникальным для каждой спецификации маркера и аннотации. Это должно решить вашу проблему.

1 голос
/ 30 ноября 2012

Если кто-то все еще борется с этой проблемой. Вам нужно изменить атрибут presentationLayer, чтобы он был отдельным для каждого specification, который есть у вас под markerAnnotationSpecification. Желательно, чтобы аннотация с наивысшим приоритетом получала наименьшее число, т. Е. 1, а остальные с этого момента получали добавочные числа.

0 голосов
/ 17 ноября 2010

Вы уверены, что указали разные строки типа идентификатора маркера при создании их в коде Java вашего плагина? Просто проверка вменяемости ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...