Web-разработка, иностранные языки, Eclipse и разные разности

Zygo Profile

Санскрит - словоформы

Verbos Irregulares

Eclipse: особые иконки в Project Explorer для проекта с определенной Nature

01.03.2017
Периодически появляется необходимость отображать новые иконки в Project Explorer для разных типов ресурсов, в том числе, для проектов с определенной Nature. Приведу возможное решение:

В начале создается проект плагина (Create > New > Plug-in Project), если еще не создан. Создается plugin.xml

Решить задачу можно двумя способами:

1) Создать точку расширения "org.eclipse.ui.ide.projectNatureImages"

1
2
3
4
5
6
7
     <extension point="org.eclipse.ui.ide.projectNatureImages">
      <image 
        id="myNatureImageId"
        natureId="myNatureId"
        icon="icons/sample.gif">
      </image>
     </extension> 
Это самый простой способ. Но он имеет ограничение: Необходимо, чтобы наша Nature myNatureId шла первой в списке Nature для проекта. Поскольку проект может иметь несколько разных nature и наша nature далеко не всегда может идти первой. Текущее расположение порядка nature можно посмотреть в файле .project

2) Создать декоратор. Точка расширения - "org.eclipse.ui.decorators"

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<extension point="org.eclipse.ui.decorators">
        <decorator
            id="myProjectDecoratorId" 
            label="My Project Decorator" 
            state="true" 
            lightweight="true" 
            icon="icons/sample.gif" 
            location="TOP_RIGHT"
            adaptable="true"
            > 
            <enablement>
            <and>
              <objectClass name="org.eclipse.core.resources.IResource"/>
              <objectState
                  name="nature"
                  value="myNatureId">
              </objectState>                              
            </and>              
            </enablement>
            <description>
              Пример работы декоратора
            </description>

        </decorator>
    </extension> 

Примечание:

  • state(true/false) - флаг обозначает, активирован ли декоратор по умолчанию. Значение по умолчанию данного флага - false. Отключить / включить декоратор во время работы в Eclipse можно, зайдя в Preferences > General > Appearance > Label Decorations

  • lightweight (true/false) - более поздний и функциональный из двух типов декораторов. реализует интерфейс org.eclipse.jface.viewers.ILightweightLabelDecorator В случае lightweight декоратора нет необходимости указывать класс декоратора, в котором описывать работу с изображениями. Все манипуляции с картинками lightweight декоратор берет на себя. Достаточно указать лишь 2 параметра: icon и location

  • adaptable (true/false) - что данное свойство распространяется и на объекты, чьи типы могут быть адаптированы к типу, указанному в objectClass.

Ссылки:

  1. Eclipse Help - Decorators
  2. Understanding Decorators in Eclipse
Облако тегов
Меню
Архив
© Psytronica.ru. Блог существа SherZa. 2015-2017 Наверх