º¸±â ¸Þ´º, µµ±¸ ¸ðÀ½ ¹× Á¶Ä¡
ID: org.eclipse.ui.viewActions
¼³¸í: ÀÌ È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×Àο¡¼ µî·ÏÇÑ º¸±âÀÇ ¸Þ´º ¹× µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦
Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. °¢ º¸±â¿¡´Â ´ë°³ ¸Ç À§ ¿À¸¥ÂÊ ¿µ¿ªÀ» Ŭ¸¯Çϸé Ȱ¼ºÈµÇ´Â ·ÎÄà Ǯ´Ù¿î ¸Þ´º°¡
ÀÖ½À´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼ ÀÌ ¸Þ´º¿¡ ¼ºê¸Þ´º ¹× Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç÷¯±×Àο¡¼´Â º¸±â µµ±¸ ¸ðÀ½¿¡µµ Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿µ¿ªÀº º¸±â ¼ÒÀ¯ÀÚ°¡ ¸ÕÀú ä¿ï ¼ö
ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ´Ù¸¥ Ç÷¯±×Àο¡ ÀÇÇØ ¼±ÅÃÀûÀ¸·Î Ãß°¡ÇÏ´Â
Ç׸ñÀÌ Ãß°¡µË´Ï´Ù.
±¸¼º ¸¶Å©¾÷:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
id - ÀÌ Áö½Ã¹®À» ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ ID
targetID - Áö½Ã¹®ÀÌ ÀÛ¼ºµÇ´Â º¸±âÀÇ °íÀ¯ ID(·¹Áö½ºÆ®¸®¿¡ ÁöÁ¤)
<!ELEMENT menu (separator)+>
<!ATTLIST menu
id
CDATA #REQUIRED
label
CDATA #REQUIRED
path
CDATA #IMPLIED
>
-
id - ÀÌ ¸Þ´º¸¦ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ ID
-
label - »õ ¸Þ´ºÀÇ ÅØ½ºÆ® ·¹À̺í. ÀÌ ·¹ÀÌºí¿¡´Â ´Ï¸ð´Ð Á¤º¸°¡
Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.
-
path - Ç®´Ù¿î¿¡¼ ½ÃÀÛÇÏ´Â ¸Þ´ºÀÇ À§Ä¡. ¸¶Áö¸·
ÅäÅ«Àº À̸§ ÁöÁ¤µÈ ±×·ìÀ» ³ªÅ¸³À´Ï´Ù.
ÀÌ ¼Ó¼ºÀ» »ý·«ÇÏ¸é ¸Þ´º´Â Ç®´Ù¿îÀÇ ³¡¿¡ Ãß°¡µË´Ï´Ù.
<!ELEMENT separator EMPTY>
<!ATTLIST separator
name
CDATA #REQUIRED
>
name - ³ªÁß¿¡ Á¶Ä¡ °æ·ÎÀÇ ¸¶Áö¸· ÅäÅ«À¸·Î ÂüÁ¶µÉ
¼ö ÀÖ´Â ºÐ¸®ÀÚÀÇ À̸§. µû¶ó¼ ºÐ¸®ÀÚ´Â Á¶Ä¡¸¦
Ãß°¡ÇÒ ¼ö ÀÖ´Â À̸§ ÁöÁ¤µÈ ±×·ìÀÇ ¿ªÇÒÀ» ÇÕ´Ï´Ù.
<!ELEMENT action (selection)*>
<!ATTLIST action
id
NMTOKEN #REQUIRED
label
CDATA #REQUIRED
menubarPath
CDATA #IMPLIED
toolbarPath
CDATA #IMPLIED
icon
CDATA #IMPLIED
tooltip
CDATA #IMPLIED
helpContextId
CDATA #IMPLIED
state
(true | false) #IMPLIED
class
CDATA #REQUIRED
enablesFor
CDATA #IMPLIED
>
-
id - ÀÌ Á¶Ä¡¿¡ ´ëÇÑ ÂüÁ¶·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ ID
-
label - ÄÁÅØ½ºÆ®¿¡ µû¶ó ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î »ç¿ëµÇ´Â º¯È¯ °¡´ÉÇÑ À̸§. ¸Þ´º¿¡¼´Â ¸Þ´º ÅØ½ºÆ®·Î
»ç¿ëµÇ¸ç µµ±¸ ¸ðÀ½¿¡¼´Â ´ÜÃß ·¹À̺í·Î »ç¿ëµË´Ï´Ù. ·¹ÀÌºí¿¡´Â JFace ÀÎÄÚµù ´Ï¸ð´Ð ¹× ´ÜÃàŰ Á¤º¸°¡
Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù(¿¹ ÂüÁ¶).
-
menubarPath - Ç®´Ù¿î ¸Þ´º¿¡¼ Á¶Ä¡ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â ½½·¡½Ã·Î ±¸ºÐµÈ
°æ·Î('/'). °æ·Î¿¡¼ ¸¶Áö¸· ÅäÅ«À» Á¦¿ÜÇÑ °¢ ÅäÅ«Àº °èÃþ ±¸Á¶¿¡ ÀÖ´Â ±âÁ¸ ¸Þ´º¸¦ ³ªÅ¸³À´Ï´Ù.
¸¶Áö¸· ÅäÅ«Àº Á¶Ä¡°¡ Ãß°¡µÉ À̸§ ÁöÁ¤µÈ ºÐ¸®ÀÚ ±×·ìÀ» ³ªÅ¸³À´Ï´Ù. °æ·Î¸¦ »ý·«Çϸé Á¶Ä¡°¡
Ç®´Ù¿î¿¡ ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù.
-
toolbarPath - ´ë»ó º¸±âÀÇ ·ÎÄà µµ±¸ ¸ðÀ½ ³»¿¡ ÀÖ´Â À̸§ ÁöÁ¤µÈ ±×·ì. ±×·ìÀÌ ¾øÀ¸¸é ÀÛ¼ºµË´Ï´Ù.
ÀÌ ¼Ó¼ºÀ» »ý·«Çϸé Á¶Ä¡°¡ ·ÎÄà µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù.
-
icon - ÄÁÅØ½ºÆ®¿¡ ÀÖ´Â Á¶Ä¡¸¦ ½Ã°¢ÀûÀ¸·Î ³ªÅ¸³»´Â µ¥ »ç¿ëÇÒ
¾ÆÀÌÄÜÀÇ »ó´ë °æ·Î. ÀÌ ¼Ó¼ºÀÌ
»ý·«µÇ°í Á¶Ä¡°¡ ·ÎÄà µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³ª¸é Workbench¿¡¼´Â À§Ä¡ Ç¥½Ã±â ¾ÆÀÌÄÜÀ» »ç¿ëÇÕ´Ï´Ù.
ÀÌ °æ·Î´Â Áö½Ã Ç÷¯±×ÀÎÀÇ plugin.xml ÆÄÀÏ À§Ä¡¿¡ ´ëÇÑ »ó´ë °æ·ÎÀÔ´Ï´Ù.
-
state - Á¶Ä¡ À¯ÇüÀÌ Åä±Û À¯ÇüÀ̾î¾ß ÇÔÀ» Ç¥½ÃÇÏ´Â ¼±ÅÃÀû ¼Ó¼º. ¸Þ´º¿¡ Ãß°¡ÇÏ´Â °æ¿ì
ÀÌ ¼Ó¼º ÀÚü¸¦ ¼±Åöõ Ç׸ñÀ¸·Î ¸í½ÃÇÕ´Ï´Ù. µµ±¸ ¸ðÀ½¿¡ Ãß°¡ÇÏ´Â °æ¿ì¿¡´Â Àüȯ ´ÜÃß°¡ µË´Ï´Ù.
Á¤ÀÇµÈ °æ¿ì ¼Ó¼º°ªÀº Ãʱ⠻óÅÂ(true ¶Ç´Â false)·Î »ç¿ëµË´Ï´Ù.
-
tooltip - Á¶Ä¡°¡ ·ÎÄà µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³¯ °æ¿ì¿¡ »ç¿ëµÇ¸ç, ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ¹«½ÃµË´Ï´Ù.
-
helpContextId - ÀÌ Á¶Ä¡¿¡ ´ëÇÑ µµ¿ò¸» ÄÁÅØ½ºÆ® ID¸¦ Ç¥½ÃÇÏ´Â
°íÀ¯ ID. Á¶Ä¡°¡ ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³ª´Â
°æ¿ì ¸Þ´º Ç׸ñÀÌ °Á¶Ç¥½ÃµÇ¾î ÀÖÀ» ¶§ F1À» ´©¸£¸é ÁÖ¾îÁø ÄÁÅØ½ºÆ® ID¿¡ °üÇÑ µµ¿ò¸»ÀÌ Ç¥½ÃµË´Ï´Ù.
-
class - org.eclipse.ui.IViewActionDelegate¸¦ ±¸ÇöÇÏ´Â ¿ÏÀüÇÑ Å¬·¡½º À̸§
-
enablesFor - Á¶Ä¡¸¦ Ȱ¼ºÈÇϱâ À§ÇØ ÃæÁ·µÇ¾î¾ß ÇÏ´Â ¼±ÅûçÇ× °è¼ö¸¦ Ç¥½ÃÇÏ´Â °ª. ÀÌ ¼Ó¼ºÀÌ
ÁöÁ¤µÈ °æ¿ì Á¶°ÇÀÌ ÃæÁ·µÇ¸é Á¶Ä¡°¡ Ȱ¼ºÈµË´Ï´Ù. Á¶°ÇÀÌ ÃæÁ·µÇÁö ¾ÊÀ¸¸é Á¶Ä¡´Â Ȱ¼ºÈµÇÁö
¾Ê½À´Ï´Ù. ¼Ó¼ºÀÌ ÁöÁ¤µÇÁö ¾Ê´Â °æ¿ì Á¶Ä¡´Â ÀÓÀÇÀÇ °³¼ö·Î ¼±ÅÃµÈ Ç׸ñ¿¡ ´ëÇØ Ȱ¼ºÈµË´Ï´Ù. ´ÙÀ½
¼Ó¼º Çü½ÄÀÌ Áö¿øµË´Ï´Ù.
! - 0°³ÀÇ Ç׸ñ ¼±ÅÃ
? - 0 ¶Ç´Â 1°³ÀÇ Ç׸ñ ¼±ÅÃ
+ - 1°³ ÀÌ»óÀÇ Ç׸ñ ¼±ÅÃ
multiple, 2+ - 2°³ ÀÌ»óÀÇ Ç׸ñ ¼±ÅÃ
n - ÁöÁ¤µÈ °³¼öÀÇ Ç׸ñ ¼±ÅÃ(¿¹: 4)
* - ÀÓÀÇ °³¼öÀÇ Ç׸ñ ¼±ÅÃ
<!ELEMENT selection EMPTY>
<!ATTLIST selection
class
CDATA #REQUIRED
name
CDATA #IMPLIED
>
-
class - ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®°¡ Á¶Ä¡¸¦ Ȱ¼ºÈÇϱâ À§ÇØ ¼ºêŬ·¡½º·Î ºÐ·ùÇϰųª ±¸ÇöÇØ¾ß Çϴ Ŭ·¡½º
¶Ç´Â ÀÎÅÍÆäÀ̽ºÀÇ ¿ÏÀüÇÑ À̸§
-
name - ¼±ÅûçÇ×ÀÇ ¿ÀºêÁ§Æ®¿¡ ¼±ÅÃÀûÀ¸·Î Àû¿ëÇÒ ¼ö ÀÖ´Â ¿ÍÀϵå Ä«µå ÇÊÅÍ. ÀÌ ÇÊÅͰ¡ ÁöÁ¤µÈ °æ¿ì
ÀÏÄ¡ÇÏ´Â Ç׸ñÀ» ãÁö ¸øÇϸé ÇØ´ç Á¶Ä¡´Â ºñȰ¼ºÈµË´Ï´Ù.
Á¶Ä¡ È®Àå¿¡ ´ëÇÑ È°¼ºÈ ±âÁØÀº óÀ½¿¡ enablesFor ¹× selection¿¡ ÀÇÇØ
Á¤Àǵ˴ϴÙ. ±×·¯³ª Á¶Ä¡ ´ëÇ¥ÀÚ°¡ ÀνºÅϽºÈµÇ¸é ÇØ´ç ´ëÇ¥ÀÚ°¡ selectionChanged ¸Þ¼Òµå ³»¿¡¼
Á÷Á¢ Á¶Ä¡ÀÇ »ç¿ë °¡´É »óŸ¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÏ¿© ´Ï¸ð´Ð°ú
´ÜÃà۸¦ ÀÎÄÚµåÇϴ Ư¼ö ¹®ÀÚ°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.
-
´Ï¸ð´ÐÀº º¯È¯ °¡´ÉÇÑ ÅØ½ºÆ®¿¡¼ ´Ï¸ð´Ð ¹®ÀÚÀÇ ¾Õ¿¡ ¾ÚÆÛ»÷µå('&') ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µË´Ï´Ù.
XML ¹®ÀÚ¿¿¡¼´Â ¾ÚÆÛ»÷µå¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î & ¹®ÀÚ ¿£Æ¼Æ¼¸¦ »ç¿ëÇÕ´Ï´Ù.
-
¼±ÅÃÀû ´ÜÃàŰ´Â À̸§ ¹®ÀÚ¿ÀÇ ³¡¿¡¼ @ ´ÙÀ½¿¡ ÀÏ·ÃÀÇ ¼öÁ¤ÀÚ¿Í ¸¶Áö¸·¿¡ ´ÜÃàŰ ¹®ÀÚ¸¦ »ç¿ëÇÏ¿©
ÁöÁ¤µË´Ï´Ù(¿¹: &Save@Ctrl+S). ¶ÇÇÑ '+' ºÎÈ£¸¦ ºÐ¸®¹®ÀÚ·Î »ç¿ëÇÏ¿© µÑ ÀÌ»óÀÇ ¼öÁ¤ÀÚ¸¦
üÀÎÈÇÒ ¼ö ÀÖ½À´Ï´Ù(¿¹: @Ctrl+Shift+S).
¿¹:
´ÙÀ½Àº º¸±â Á¶Ä¡ È®ÀåÁ¡ÀÇ ¿¹ÀÔ´Ï´Ù. (ºÎ¼Ó¿ä¼Ò¿Í ¼Ó¼º »ç¿ë ¹æ¹ý¿¡ ÁÖÀÇÇϽʽÿÀ.)
<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="&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¿¡ Á¤Àǵ˴ϴÙ.