µ¥ÄÚ·¹ÀÌÅÍ

org.eclipse.ui.decorators

¸±¸®½º 2.0

ÀÌ È®ÀåÁ¡Àº µ¥ÄÚ·¹ÀÌÅÍ °ü¸®ÀÚ¸¦ °¡ÀÔÇÏ´Â º¸±â¿¡ µ¥ÄÚ·¹ÀÌÅ͸¦ Ãß°¡ÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. 2.1¿¡¼­´Â µ¥ÄÚ·¹ÀÌÅÍÀÇ À̹ÌÁö °ü¸®¸¦ ó¸®ÇÒ °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅÍÀÇ °³³äÀÌ Àû¿ëµË´Ï´Ù. »ç¿ë °¡´ÉÇÒ ¶§ Ç÷¯±×Àο¡¼­ ±¸ÇöÀÌ ÇÊ¿äÇÏÁö ¾ÊÀº ¾ÆÀÌÄÜÀ» ¿À¹ö·¹ÀÌÇÏ´Â °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅ͸¦ ¼±¾ðÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

enablement ¹× visibility ¿ä¼Ò¸¦ °¢°¢ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â Ȱ¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ ÆÇº°ÇÏ´Â µ¥ Æò°¡µÇ´Â ºÎ¿ï Ç¥Çö½ÄÀ» Æ÷ÇÔÇÕ´Ï´Ù.

±¸¹®Àº enablement ¹× visibility ¿ä¼Ò¿¡ ´ëÇØ µ¿ÀÏÇÕ´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â ÇϳªÀÇ ºÎ¿ï Ç¥Çö½Ä ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù. °¡Àå °£´ÜÇÑ °æ¿ì¿¡ À̰ÍÀº objectClass, objectState, pluginState ¶Ç´Â systemProperty ¿ä¼Ò°¡ µË´Ï´Ù. º¹ÀâÇÑ °æ¿ì¿¡´Â and, or ¹× not ¿ä¼Ò°¡ Á¶ÇÕµÇ¾î ºÎ¿ï Ç¥Çö½ÄÀ» Çü¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. and ¿ä¼Ò¿Í or ¿ä¼Ò´Â ¸ðµÎ 2°³ÀÇ ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. 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 (#CDATA)>

µ¥ÄÚ·¹ÀÌÅÍÀÇ °£´ÜÇÑ ¼³¸íÀ» Á¦°øÇÏ´Â ÅØ½ºÆ®°¡ º»¹®¿¡ ÀÖ´Â ¼±ÅÃÀû ºÎ¼Ó¿ä¼Ò. µ¥ÄÚ·¹ÀÌÅÍ È¯°æ ¼³Á¤ ÆäÀÌÁö¿¡¼­ Ç¥½ÃµÇ¹Ç·Î À̸¦ Æ÷ÇÔ½ÃŰ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ±âº»°ªÀº ºó ¹®ÀÚ¿­ÀÔ´Ï´Ù.



<!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 ¶Ç´Â activated Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.



<!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 ÀνºÅϽº¿¡ ´ëÇÑ µ¥ÄÚ·¹ÀÌÅÍ·Î »ç¿ëÇϽʽÿÀ. À̰ÍÀº ÇöÀç ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ¿¡¼­ »ç¿ëÇϰí ÀÖ½À´Ï´Ù.