데코레이터

org.eclipse.ui.decorators

릴리스 2.0

이 확장점은 데코레이터 관리자를 가입하는 보기에 데코레이터를 추가하는 데 사용합니다. 2.1에서는 데코레이터의 이미지 관리를 처리할 간단한 데코레이터의 개념이 적용됩니다. 사용 가능할 때 플러그인에서 구현이 필요하지 않은 아이콘을 오버레이하는 간단한 데코레이터를 선언할 수도 있습니다.

enablementvisibility 요소를 각각 사용하여 조치의 활성 및/또는 표시 여부를 정의할 수 있습니다. 이들 두 요소는 활성 및/또는 표시 여부를 판별하는 데 평가되는 부울 표현식을 포함합니다.

구문은 enablementvisibility 요소에 대해 동일합니다. 이들 두 요소는 하나의 부울 표현식 하위 요소를 포함합니다. 가장 간단한 경우에 이것은 objectClass, objectState, pluginState 또는 systemProperty 요소가 됩니다. 복잡한 경우에는 and, ornot 요소가 조합되어 부울 표현식을 형성할 수 있습니다. and 요소와 or 요소는 모두 두 개의 하위 요소를 포함해야 합니다. not 요소는 1개의 부속요소만 포함해야 합니다.

<!ELEMENT extension (decorator*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT decorator (description? , enablement?)>

<!ATTLIST decorator

id          CDATA #REQUIRED

label       CDATA #REQUIRED

class       CDATA #IMPLIED

objectClass CDATA #IMPLIED

adaptable   (true | false)

state       (true | false)

lightweight (true|false)

icon        CDATA #IMPLIED

location    (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY) >


<!ELEMENT description (#PCDATA)>

데코레이터의 간단한 설명을 제공하는 텍스트가 본문에 있는 선택적 부속요소. 데코레이터 환경 설정 페이지에서 표시되므로 이를 포함시키는 것이 좋습니다. 기본값은 빈 문자열입니다.



<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>

이 요소는 확장의 활성을 정의하는 데 사용됩니다.



<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>

이 요소는 확장의 가시성을 정의하는 데 사용됩니다.



<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>

이 요소는 두 개의 하위 요소 표현식 평가 결과에서 부울 AND 연산을 나타냅니다.



<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>

이 요소는 두 개의 하위 요소 표현식 평가 결과에서 부울 OR 연산을 나타냅니다.



<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>

이 요소는 하위 요소 표현식 평가 결과에서 부울 NOT 연산을 나타냅니다.



<!ELEMENT objectClass EMPTY>

<!ATTLIST objectClass

name CDATA #REQUIRED>

이 요소는 현재 선택사항에 있는 각 오브젝트의 클래스 또는 인터페이스를 평가하는 데 사용됩니다. 선택사항의 각 오브젝트에서 지정된 클래스 또는 인터페이스를 구현하면 표현식은 true로 평가됩니다.



<!ELEMENT objectState EMPTY>

<!ATTLIST objectState

name  CDATA #REQUIRED

value CDATA #REQUIRED>

이 요소는 현재 선택사항의 각 오브젝트 속성 상태를 평가하는 데 사용됩니다. 선택사항의 각 오브젝트에 지정된 속성 상태가 있으면 표현식은 true로 평가됩니다. 표현식의 이 유형을 평가하려면 선택사항의 각 오브젝트를 구현하거나 org.eclipse.ui.IActionFilter 인터페이스에 적용시켜야 합니다.



<!ELEMENT pluginState EMPTY>

<!ATTLIST pluginState

id    CDATA #REQUIRED

value (installed|activated) "installed">

이 요소는 플러그인의 상태를 평가하는 데 사용됩니다. 플러그인의 상태는 installed(OSGi의 "resolved" 개념에 해당) 또는 activated(OSGi의 "active" 개념에 해당) 중 하나일 수 있습니다.



<!ELEMENT systemProperty EMPTY>

<!ATTLIST systemProperty

name  CDATA #REQUIRED

value CDATA #REQUIRED>

이 요소는 일부 시스템 특성의 상태를 평가하는 데 사용됩니다. 특성 값은 java.lang.System에서 검색됩니다.



다음은 데코레이터의 예제입니다.

전체 데코레이터. 플러그인 데코레이터는 고유한 이미지 지원을 처리해야 합니다.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.decorator"

label=

"XYZ Decorator"

state=

"true"

class=

"com.xyz.DecoratorContributor"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

간단한 데코레이터. 명확한 클래스가 있지만 ILightweightLabelDecorator이므로 텍스트와 ImageDescriptor를 제공하기만 하면 되고 자원을 처리하지 않아도 됩니다.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.decorator"

label=

"XYZ Lightweight Decorator"

state=

"false"

class=

"com.xyz.LightweightDecoratorContributor"

lightweight=

"true"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

선언적 간단한 데코레이터. 명확한 클래스가 없으므로 아이콘 및 아이콘이 적용될 4분면을 제공합니다.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.declarative.decorator"

label=

"XYZ Lightweight Declarative Decorator"

state=

"false"

lightweight=

"true"

icon=

"icons/full/declarative.gif"

location=

"TOP_LEFT"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

class 속성 값은 org.eclipse.jface.viewers.ILabelDecorator(lightweight가 false인 경우) 또는 org.eclipse.jface.viewers.ILightweightLabelDecorator를 구현하는 클래스의 완전한 이름이어야 합니다. 실질적으로 필요하기 전에 전체 플러그인이 로드되는 것을 방지하기 위해 가능한 늦게 이 클래스를 로드합니다. 선언적 데코레이터는 플러그인 활성화를 수반하지 않으며 가능할 경우 언제든지 사용되어야 합니다. 간단하지 않은 데코레이터는 결국 사용되지 않습니다.

플러그인은 이 확장점을 사용하여 데코레이터 관리자를 사용하는 보기에 적용될 새 데코레이터를 레이블 데코레이터로 추가할 수 있습니다. 데코레이터 관리자를 사용하려면 IViewPart.getDecoratorManager()의 결과를 DecoratingLabelProvider 인스턴스에 대한 데코레이터로 사용하십시오. 이것은 현재 자원 네비게이터에서 사용하고 있습니다.