º¸±â ¸Þ´º, µµ±¸ ¸ðÀ½ ¹× Á¶Ä¡

org.eclipse.ui.viewActions

ÀÌ È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×Àο¡¼­ µî·ÏÇÑ º¸±âÀÇ Ç®´Ù¿î ¸Þ´º ¹× µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. °¢ º¸±â¿¡´Â ´ë°³ ¸Ç À§ ¿À¸¥ÂÊ »ï°¢Çü ´ÜÃ߸¦ Ŭ¸¯Çϸé Ȱ¼ºÈ­µÇ´Â ·ÎÄà Ǯ´Ù¿î ¸Þ´º°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼­ ÀÌ ¸Þ´º¿¡ ¼­ºê¸Þ´º ¹× Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷¯±×Àο¡¼­´Â º¸±â µµ±¸ ¸ðÀ½¿¡µµ Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿µ¿ªÀº º¸±â ¼ÒÀ¯ÀÚ°¡ ¸ÕÀú ä¿ï ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ´Ù¸¥ Ç÷¯±×Àο¡ ÀÇÇØ ¼±ÅÃÀûÀ¸·Î Ãß°¡ÇÏ´Â Ç׸ñÀÌ Ãß°¡µË´Ï´Ù.

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

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

<!ELEMENT extension (viewContribution+)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT viewContribution (menu* , action*)>

<!ATTLIST viewContribution

id       CDATA #REQUIRED

targetID CDATA #REQUIRED>

ÀÌ ¿ä¼Ò´Â º¸±â Á¶Ä¡ ¶Ç´Â ¸Þ´ºÀÇ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.



<!ELEMENT action (selection* | enablement?)>

<!ATTLIST action

id            CDATA #REQUIRED

label         CDATA #REQUIRED

menubarPath   CDATA #IMPLIED

toolbarPath   CDATA #IMPLIED

icon          CDATA #IMPLIED

disabledIcon  CDATA #IMPLIED

hoverIcon     CDATA #IMPLIED

tooltip       CDATA #IMPLIED

helpContextId CDATA #IMPLIED

style         (push|radio|toggle) "push"

state         (true | false)

class         CDATA #REQUIRED

enablesFor    CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â UI¿¡¼­ »ç¿ëÀÚ°¡ È£ÃâÇÒ ¼ö ÀÖ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù.



<!ELEMENT menu (separator+ , groupMarker*)>

<!ATTLIST menu

id    CDATA #REQUIRED

label CDATA #REQUIRED

path  CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.



<!ELEMENT separator EMPTY>

<!ATTLIST separator

name CDATA #REQUIRED>

ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ ¸Þ´º ºÐ¸®ÀÚ¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.



<!ELEMENT groupMarker EMPTY>

<!ATTLIST groupMarker

name CDATA #REQUIRED>

ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ À̸§ ÁöÁ¤µÈ ±×·ìÀ» ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. separator ¿ä¼Ò¿Í´Â ´Þ¸® »õ ¸Þ´º¿¡ ½Ã°¢ÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.



<!ELEMENT selection EMPTY>

<!ATTLIST selection

class CDATA #REQUIRED

name  CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ±âÃÊÇÑ Á¶Ä¡ Ȱ¼º ÆÇº°À» µ½´Â µ¥ »ç¿ëµË´Ï´Ù. enablement ¿ä¼Ò°¡ ÁöÁ¤µÇ´Â °æ¿ì ¹«½ÃµË´Ï´Ù.



<!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.viewActions"

>

<viewContribution id=

"com.xyz.xyzViewC1"

targetID=

"org.eclipse.ui.views.navigator.ResourceNavigator"

>

<menu id=

"com.xyz.xyzMenu"

label=

"XYZ Menu"

path=

"additions"

>

<separator name=

"group1"

/>

</menu>

<action id=

"com.xyz.runXYZ"

label=

"&amp;Run XYZ Tool"

menubarPath=

"com.xyz.xyzMenu/group1"

toolbarPath=

"Normal/additions"

style=

"toggle"

state=

"true"

icon=

"icons/runXYZ.gif"

tooltip=

"Run XYZ Tool"

helpContextId=

"com.xyz.run_action_context"

class=

"com.xyz.actions.RunXYZ"

>

<selection class=

"org.eclipse.core.resources.IFile"

name=

"*.java"

/>

</action>

</viewContribution>

</extension>

À§ÀÇ ¿¹¿¡¼­ ÁöÁ¤µÈ Á¶Ä¡´Â ´ÜÀÏ ¼±ÅûçÇ×(enablesFor ¼Ó¼º)¿¡ ´ëÇØ¼­¸¸ Ȱ¼ºÈ­µË´Ï´Ù. ¶ÇÇÑ ¼±ÅûçÇ×ÀÇ ¿ÀºêÁ§Æ®´Â Java ÆÄÀÏ ÀÚ¿øÀ̾î¾ß ÇÕ´Ï´Ù.

´ÙÀ½Àº º¸±â Á¶Ä¡ È®ÀåÀÇ ±âŸ ¿¹Á¦ÀÔ´Ï´Ù.

   

<extension point=

"org.eclipse.ui.viewActions"

>

<viewContribution id=

"com.xyz.xyzViewC1"

targetID=

"org.eclipse.ui.views.navigator.ResourceNavigator"

>

<menu id=

"com.xyz.xyzMenu"

label=

"XYZ Menu"

path=

"additions"

>

<separator name=

"group1"

/>

</menu>

<action id=

"com.xyz.runXYZ2"

label=

"&amp;Run XYZ2 Tool"

menubarPath=

"com.xyz.xyzMenu/group1"

style=

"push"

icon=

"icons/runXYZ2.gif"

tooltip=

"Run XYZ2 Tool"

helpContextId=

"com.xyz.run_action_context2"

class=

"com.xyz.actions.RunXYZ2"

>

<enablement>

<and>

<objectClass name=

"org.eclipse.core.resources.IFile"

/>

<not>

<objectState name=

"extension"

value=

"java"

/>

</not>

</and>

</enablement>

</action>

</viewContribution>

</extension>

À§ÀÇ ¿¹Á¦¿¡¼­ ÁöÁ¤µÈ Á¶Ä¡´Â ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù. ¼±ÅûçÇ׿¡ Java ÆÄÀÏ ÀÚ¿øÀÌ ¾ø´Â °æ¿ì¿¡ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

class ¼Ó¼º °ªÀº org.eclipse.ui.IViewActionDelegate¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À̾î¾ß ÇÕ´Ï´Ù. ½ÇÁúÀûÀ¸·Î ÇÊ¿äÇϱâ Àü¿¡ Àüü Ç÷¯±×ÀÎÀÌ ·ÎµåµÇ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ °¡´ÉÇÑ ´Ê°Ô ÀÌ Å¬·¡½º¸¦ ·ÎµåÇÕ´Ï´Ù.

org.eclipse.ui.IViewActionDelegate ÀÎÅÍÆäÀ̽º´Â org.eclipse.ui.IActionDelegate¸¦ È®ÀåÇϸç, À§ÀÓÀÌ Áö½ÃÇϰí ÀÖ´Â º¸±â ÀνºÅϽº·Î ÃʱâÈ­ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â Ãß°¡ ¸Þ¼Òµå¸¦ Ãß°¡ÇÕ´Ï´Ù.

ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© ´ë»ó º¸±â¿¡¼­ ÀÌÀü¿¡ ¸¸µç ¸Þ´º·Î Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. menu path ¼Ó¼ºÀ» »ý·«Çϸé Ç®´Ù¿î ¸Þ´ºÀÇ ³¡¿¡ »õ ¸Þ´º ¶Ç´Â Á¶Ä¡°¡ Ãß°¡µË´Ï´Ù.

Á¶Ä¡ È®Àå¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor¿Í selection ¶Ç´Â enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ À§ÀÓÀÌ ÀνºÅϽºÈ­µÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå¿¡¼­ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÏ¿© ´Ï¸ð´ÐÀ» ÀÎÄÚµùÇϴ Ư¼ö ¹®ÀÚ°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

  1. º¯È¯µÈ ÅØ½ºÆ®ÀÇ ¼±Åà ¹®ÀÚ ¾Õ¿¡ ¾ÚÆÛ»÷µå('&') ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ´Ï¸ð´ÐÀ» ÁöÁ¤ÇÕ´Ï´Ù. XML ¹®ÀÚ¿­¿¡´Â ¾ÚÆÛ»÷µå¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î &amp; ¹®ÀÚ ¿£Æ¼Æ¼¸¦ »ç¿ëÇϽʽÿÀ.
µÑ ÀÌ»óÀÇ Á¶Ä¡°¡ ÇϳªÀÇ ´ÜÀÏ È®Àå¿¡ ÀÇÇØ ¸Þ´º ¶Ç´Â µµ±¸ ¸ðÀ½¿¡ Á¦°øµÈ °æ¿ì Á¶Ä¡´Â plugin.xml ÆÄÀÏ¿¡ ³ª¿­µÇ´Â ¼ø¼­¿Í ¹Ý´ë·Î ³ªÅ¸³³´Ï´Ù. À̰ÍÀº È®½ÇÇÏ°Ô Á÷°üÀûÀÌÁö ¾Ê½À´Ï´Ù. ±×·¯³ª À̰ÍÀ» Eclipse Ç÷§Æû API°¡ È®Á¤µÈ ÈÄ ¹ß°ßÇß½À´Ï´Ù. ÀÌ ÀÛµ¿À» Áö±Ý º¯°æÇÏ¸é ±âÁ¸ ÀÛµ¿¿¡ ÀÇÁ¸ÇÏ´Â ¸ðµç Ç÷¯±×ÀÎÀÌ Áߴܵ˴ϴÙ.

selection ¹× enablement ¿ä¼Ò´Â ¼­·Î °°ÀÌ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. enablement ¿ä¼Ò´Â objectClass ¹× objectState ÇÏÀ§ ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© selection ¿ä¼Ò¸¦ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

 

<selection class=

"org.eclipse.core.resources.IFile"

name=

"*.java"

>

</selection>

´ÙÀ½À» »ç¿ëÇÏ¿© Ç¥ÇöµÉ ¼ö ÀÖ½À´Ï´Ù.
 

<enablement>

<and>

<objectClass name=

"org.eclipse.core.resources.IFile"

/>

<objectState name=

"extension"

value=

"java"

/>

</and>

</enablement>

°¢ º¸±â´Â ÀϹÝÀûÀ¸·Î Ç®´Ù¿î ¸Þ´º ¹× ·ÎÄà µµ±¸ ¸ðÀ½ÀÇ ¿©·¯ °³ÀÇ Ç¥ÁØ Ç׸ñ°ú ÇÔ²² Á¦°øµË´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼­ Ãß°¡µÈ °ÍµéÀº Ç¥ÁØ º¸¿Ï¿¡ Ãß°¡µË´Ï´Ù.