¼³¸í: ÀÌ È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×Àο¡¼ µî·ÏÇÑ º¸±âÀÇ ¸Þ´º ¹× µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. °¢ º¸±â¿¡´Â ´ë°³ ¸Ç À§ ¿À¸¥ÂÊ ¿µ¿ªÀ» Ŭ¸¯Çϸé Ȱ¼ºÈµÇ´Â ·ÎÄà Ǯ´Ù¿î ¸Þ´º°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼ ÀÌ ¸Þ´º¿¡ ¼ºê¸Þ´º ¹× Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷¯±×Àο¡¼´Â º¸±â µµ±¸ ¸ðÀ½¿¡µµ Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿µ¿ªÀº º¸±â ¼ÒÀ¯ÀÚ°¡ ¸ÕÀú ä¿ï ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ´Ù¸¥ Ç÷¯±×Àο¡ ÀÇÇØ ¼±ÅÃÀûÀ¸·Î Ãß°¡ÇÏ´Â Ç׸ñÀÌ Ãß°¡µË´Ï´Ù.
±¸¼º ¸¶Å©¾÷:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id - ÀÌ Áö½Ã¹®À» ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ ID targetID - Áö½Ã¹®À¸·Î ¸¸µé¾îÁø º¸±â(·¹Áö½ºÆ®¸®¿¡¼ ÁöÁ¤)ÀÇ °íÀ¯ ID
<!ELEMENT action (selection)* (enablement)?>name - ³ªÁß¿¡ Á¶Ä¡ °æ·ÎÀÇ ¸¶Áö¸· ÅäÅ«À¸·Î ÂüÁ¶µÉ ¼ö ÀÖ´Â ºÐ¸®ÀÚÀÇ À̸§. µû¶ó¼ ºÐ¸®ÀÚ´Â Á¶Ä¡¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â À̸§ ÁöÁ¤µÈ ±×·ìÀÇ ¿ªÇÒÀ» ÇÕ´Ï´Ù.
Eclipse ¹öÀü 2.0¿¡¼´Â enablement ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼ºÈ¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. enablement ¿ä¼Ò »ç¿ë¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â actionExpressions.html¸¦ ÂüÁ¶ÇϽʽÿÀ.Á¶Ä¡ È®ÀåÀÚ¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor, selection ¹× enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ ´ëÇ¥ÀÚ°¡ ÀνºÅϽºÈµÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå ³»¿¡¼ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´Ï¸ð´ÐÀ» ÀÎÄÚµåÇϴ Ư¼ö ¹®ÀÚ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. º¯È¯µÇ´Â ÅØ½ºÆ®¿¡¼ ´Ï¸ð´Ð ¹®ÀÚ ¾Õ¿¡ ¾ÚÆÛ»÷µå('&') ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÀÌ ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. XML ¹®ÀÚ¿¿¡´Â ¾ÚÆÛ»÷µå¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î & ¹®ÀÚ ¿£Æ¼Æ¼¸¦ »ç¿ëÇϽʽÿÀ.
¸Þ´º³ª µµ±¸ ¸ðÀ½¿¡ ÇϳªÀÇ È®ÀåÀ¸·Î µÎ °³ ÀÌ»óÀÇ Á¶Ä¡°¡ Á¦°øµÇ¸é plugin.xml ÆÄÀÏ¿¡ ³ª¿µÈ ¼ø¼¿Í ¹Ý´ë·Î Á¶Ä¡°¡ ³ªÅ¸³³´Ï´Ù. À̰ÍÀº È®½ÇÇÏ°Ô Á÷°üÀûÀÌÁö ¾Ê½À´Ï´Ù. ±×·¯³ª À̰ÍÀ» Eclipse Ç÷§Æû API°¡ È®Á¤µÈ ÈÄ ¹ß°ßÇÏ¿´½À´Ï´Ù. ÀÌ ÀÛµ¿À» Áö±Ý º¯°æÇÏ¸é ±âÁ¸ ÀÛµ¿¿¡ ÀÇÁ¸ÇÏ´Â ¸ðµç Ç÷¯±×ÀÎÀÌ Áߴܵ˴ϴÙ.
¿¹:
´ÙÀ½Àº º¸±â Á¶Ä¡ È®ÀåÁ¡ÀÇ ¿¹ÀÔ´Ï´Ù. (ºÎ¼Ó¿ä¼Ò¿Í ¼Ó¼º »ç¿ë ¹æ¹ý¿¡ ÁÖÀÇÇϽʽÿÀ.)
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<menu id="com.xyz.xyzMenu"
label="XYZ Menu"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ"
enablesFor="1"/>
<selection class="org.eclipse.core.resources.IFile" name="*.java">
</action>
</viewContribution>
</extension>
À§ÀÇ ¿¹¿¡¼ ÁöÁ¤µÈ Á¶Ä¡´Â ´ÜÀÏ ¼±ÅûçÇ×(enablesFor ¼Ó¼º)¿¡ ´ëÇØ¼¸¸ Ȱ¼ºÈµË´Ï´Ù. ¶ÇÇÑ ÀÌ ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®´Â ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º(IFile)¸¦ ±¸ÇöÇØ¾ß Çϸç Java ÆÄÀÏÀ̾î¾ß ÇÕ´Ï´Ù. ´ÙÁß selection ¿ä¼Ò¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖÀ¸¸ç ÀÌ´Â 'ÀÌ Áß Çϳª'¸¦ ¼±ÅÃÇÔÀ» ÀǹÌÇÕ´Ï´Ù.
API Á¤º¸: class ¼Ó¼ºÀÇ °ªÀº org.eclipse.ui.IViewActionDelegate¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À̾î¾ß ÇÕ´Ï´Ù. ½ÇÁ¦·Î ÇÊ¿äÇϱâ Àü¿¡ Ç÷¯±×ÀÎ Àüü°¡ ·ÎµåµÇ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ °¡´ÉÇÑ ³ªÁß¿¡ ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ·ÎµåÇÕ´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â org.eclipse.ui.IActionDelegate¸¦ È®ÀåÇϸç, ´ëÇ¥ÀÚ°¡ Áö½ÃÇϰí ÀÖ´Â º¸±â ÀνºÅϽº·Î ÃʱâÈÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â Ãß°¡ ¸Þ¼Òµå¸¦ Ãß°¡ÇÕ´Ï´Ù.
±âº» Á¦°ø ±¸Çö: °¢ º¸±âÀÇ Ç®´Ù¿î ¸Þ´º ¹× ·ÎÄà µµ±¸ ¸ðÀ½¿¡´Â ´ë°³ ¿©·¯ °³ÀÇ Ç¥ÁØ Ç׸ñÀÌ ÇÔ²² ³ªÅ¸³³´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼ Ãß°¡ÇÏ´Â Ç׸ñÀº Ç¥ÁØ º¸Ãæ Ç׸ñ¿¡ Ãß°¡µË´Ï´Ù. ÀÌ´Â °ø¿ë ÀÎÅÍÆäÀ̽º ³»¿¡¼ º¸±âÀÇ Á¶Ä¡ ID¸¦ °ø°³ÇÏ´Â µ¥ À¯¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Workbench âÀÇ Á¶Ä¡ ¹× ´ëºÎºÐÀÇ ±×·ìÀº org.eclipse.ui.IWorkbenchActionConstants¿¡ Á¤Àǵ˴ϴÙ.