ÆíÁý±â ¸Þ´º, µµ±¸ ¸ðÀ½ ¹× Á¶Ä¡
ID: org.eclipse.ui.editorActions
¼³¸í: ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© ´Ù¸¥ Ç÷¯±×Àο¡¼ µî·ÏÇÑ ÆíÁý±âÀÇ ¸Þ´º¿Í µµ±¸
¸ðÀ½¿¡ Á¶Ä¡¸¦ Ãß°¡ÇÕ´Ï´Ù.
ÆíÁý±â¿¡ ´ëÇÑ ÃÖÃÊ Á¦°ø ¼¼Æ®´Â ´Ù¸¥ È®ÀåÁ¡(org.eclipse.ui.editors)¿¡¼
Á¤ÀÇÇÕ´Ï´Ù.
Á¶Ä¡ ÇÑ ¼¼Æ®°¡ ¸¸µé¾îÁö°í °°Àº ÆíÁý±â À¯ÇüÀÇ ¸ðµç ÀνºÅϽº¿¡¼ °øÀ¯ÇÕ´Ï´Ù. Á¶Ä¡¸¦ È£ÃâÇϸé Á¶Ä¡´Â Ȱ¼º ÆíÁý±â¿¡
µû¶ó ÀÛµ¿ÇÕ´Ï´Ù.
ÀÌ È®ÀåÁ¡Àº °°Àº ÆÐÅÏÀ» µû¸¨´Ï´Ù. Á¶Ä¡ È®ÀåÀÌ ¸¸µé¾îÁö°í °°Àº ÆíÁý±â À¯ÇüÀÇ ¸ðµç ÀνºÅϽº¿¡¼
°øÀ¯ÇÕ´Ï´Ù. org.eclipse.ui.IEditorActionDelegate¸¦ ±¸ÇöÇÏ·Á¸é Á¶Ä¡ Ŭ·¡½º°¡ ÇÊ¿äÇÕ´Ï´Ù.
IEditorActionDelegate#setActiveEditor¸¦ È£ÃâÇÏ¿©
Ȱ¼º ÆíÁý±â¸¦ ´ëÇ¥ÀÚ¿¡°Ô Àü´ÞÇÕ´Ï´Ù.
±¸¼º ¸¶Å©¾÷:
<!ELEMENT editorContribution (menu | action)*>
<!ATTLIST editorContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
id - ÀÌ Áö½Ã¹®À» ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ÇÑ ID
editorID - ÀÌ Áö½Ã¹®ÀÇ ´ë»óÀÎ ÀÌÀü¿¡ µî·ÏÇÑ ÆíÁý±âÀÇ °íÀ¯ÇÑ ID
<!ELEMENT menu (separator)+>
<!ATTLIST menu
id
CDATA #REQUIRED
label
CDATA #REQUIRED
path
CDATA #IMPLIED
>
-
id - ÇØ´ç ¸Þ´º¸¦ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ÇÑ ID
-
label - »õ ¸Þ´ºÀÇ ÅØ½ºÆ® ·¹À̺í. ·¹ÀÌºí¿¡´Â ´Ï¸ð´Ð Á¤º¸°¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.
-
path - ¸Þ´º Ç¥½ÃÁÙÀÇ ·çÆ®¿¡¼ ½ÃÀÛÇÏ´Â ¸Þ´ºÀÇ À§Ä¡. »ý·«Çϸé
¸Þ´º Ç¥½ÃÁÙÀÇ ½½·Ô additions¿¡ ¸Þ´º°¡ Ãß°¡µË´Ï´Ù. °æ·ÎÀÇ ¸ðµç ÅäÅ«Àº ¸¶Áö¸· ÅäÅ«¸¸
Á¦¿ÜÇϰí WorkbenchÀÇ ±âÁ¸ ¸Þ´º¸¦ ³ªÅ¸³»¾ß ÇÕ´Ï´Ù. ¸¶Áö¸· ÅäÅ«Àº °æ·ÎÀÇ ¸¶Áö¸· ¸Þ´º¿¡ ÀÖ´Â À̸§ ÁöÁ¤µÈ
±×·ìÀ» ³ªÅ¸³À´Ï´Ù.
<!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 - µµ±¸ ¸ðÀ½ÀÇ Á¶Ä¡ À§Ä¡¸¦ ÁöÁ¤Çϱâ À§ÇØ »ç¿ëÇÑ ½½·¡½Ã('/')·Î ±¸ºÐÇÑ °æ·Î.
ù ¹øÂ° ÅäÅ«Àº µµ±¸ ¸ðÀ½ ID(±âº» µµ±¸ ¸ðÀ½Àº "Normal")¸¦ ³ªÅ¸³»°í µÎ ¹øÂ° ÅäÅ«Àº µµ±¸ ¸ðÀ½ÀÇ
À̸§ ÁöÁ¤µÈ ±×·ìÀÔ´Ï´Ù. µµ±¸ ¸ðÀ½¿¡ ±×·ìÀÌ ¾øÀ¸¸é ±×·ìÀÌ ¸¸µé¾îÁý´Ï´Ù. µµ±¸ ¸ðÀ½ °æ·Î¸¦ »ý·«Çϸé
Á¶Ä¡°¡ ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù.
-
icon - ÄÁÅØ½ºÆ®ÀÇ Á¶Ä¡¸¦ ½Ã°¢ÀûÀ¸·Î ³ªÅ¸³»±â À§ÇØ »ç¿ëÇÒ ¾ÆÀÌÄÜÀÇ »ó´ë °æ·Î. À̸¦
»ý·«ÇÏ°í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ Ç¥½ÃÇÒ °æ¿ì Workbench¿¡¼´Â À§Ä¡ Ç¥½Ã±â ¾ÆÀÌÄÜÀ» »ç¿ëÇÕ´Ï´Ù. °æ·Î´Â
Á¦°øÇÏ´Â Ç÷¯±×ÀÎÀÇ plugin.xml ÆÄÀÏ À§Ä¡¿¡ µû¶ó ´Ù¸¨´Ï´Ù.
-
tooltip - Á¶Ä¡°¡ µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³¯ °æ¿ì »ç¿ëÇÔ. ±×·¸Áö
¾ÊÀ¸¸é ¹«½ÃµË´Ï´Ù.
-
helpContextId - ÇØ´ç Á¶Ä¡¿¡ ´ëÇÑ µµ¿ò¸» ÄÁÅØ½ºÆ® id¸¦ °¡¸®Å°´Â °íÀ¯ÇÑ ID. Á¶Ä¡°¡ ¸Þ´º
Ç׸ñÀ¸·Î Ç¥½ÃµÉ °æ¿ì ¸Þ´º Ç׸ñÀ» °Á¶Ç¥½ÃÇϰí F1 ۸¦ ´©¸£¸é ÁöÁ¤ÇÑ ÄÁÅØ½ºÆ® ID¿¡ ´ëÇÑ
µµ¿ò¸»ÀÌ Ç¥½ÃµË´Ï´Ù.
-
state - Á¶Ä¡°¡ ÅäŬ À¯ÇüÀÎÁö ³ªÅ¸³»´Â ¼±ÅÃÀûÀÎ ¼Ó¼º. ¸Þ´º¿¡ Ãß°¡ÇÒ °æ¿ì ¼±Åöõ
Ç׸ñÀ¸·Î ManifestµË´Ï´Ù. µµ±¸ ¸ðÀ½¿¡ Ãß°¡ÇÒ °æ¿ì Åä±Û ´ÜÃß°¡ µË´Ï´Ù.
ÀÌ ¼Ó¼º°ªÀ» Á¤ÀÇÇϸé Ãʱ⠻óÅÂ(true ¶Ç´Â false)·Î »ç¿ëµË´Ï´Ù.
-
class - org.eclipse.ui.IEditorActionDelegate¸¦ ±¸ÇöÇÏ´Â ¿ÏÀüÇÑ Å¬·¡½ºÀÇ À̸§.
-
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.editorActions">
<editorContribution
id="com.xyz.xyzContribution"
targetID="com.ibm.XMLEditor">
<menu id="com.xyz.xyzMenu"
label="&XYZ Menu">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
state="true"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ">
</action>
</editorContribution>
</extension>
À§ ¿¹¿¡¼ ÁöÁ¤ÇÑ Á¶Ä¡´Â ¸Þ´º¿¡ ¼±Åöõ Ç׸ñÀ¸·Î ³ªÅ¸³ª°í µµ±¸ ¸ðÀ½¿¡´Â Åä±Û ´ÜÃß·Î
³ªÅ¸³³´Ï´Ù.
API Á¤º¸: class ¼Ó¼º °ªÀº
org.eclipse.ui.IEditorActionDelegate¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À̾î¾ß ÇÕ´Ï´Ù.
ÇÊ¿äÇϱâ Àü¿¡ Àüü Ç÷¯±×ÀÎÀÌ ·ÎµåµÇ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ
°¡´ÉÇÑ ´Ê°Ô ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ·ÎµåÇÕ´Ï´Ù. ÁöÁ¤ÇÑ À¯ÇüÀÇ ÆíÁý±â¸¦
Ȱ¼ºÈÇÒ ¶§¸¶´Ù setActiveEditor ¸Þ¼Òµå°¡ È£ÃâµË´Ï´Ù.
ÇöÀç Workbench¿¡ ¿·Á ÀÖ´Â ÆíÁý±â ÀνºÅϽº ¼ö¿¡ »ó°ü¾øÀÌ ÁöÁ¤ÇÑ ÆíÁý±â À¯ÇüÀÇ ¸ðµç ÀνºÅϽº¿¡
ÇÑ ¼¼Æ®ÀÇ Á¶Ä¡¿Í ¸Þ´º¸¸ ¸¸µé¾îÁý´Ï´Ù.
ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© ´ë»ó ÆíÁý±â¿¡¼ ÀÌÀü¿¡ ¸¸µç ¸Þ´º·Î Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í
¸Þ´º¿Í Á¶Ä¡¸¦ Workbench â¿¡ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. Workbench â ³»ÀÇ Á¶Ä¡¿Í ÁÖ ±×·ì¿¡ ´ëÇÑ
ID´Â org.eclipse.ui.IWorkbenchActionConstants¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.
À̸¦ »õ Á¶Ä¡ÀÇ Ãß°¡¸¦ À§ÇÑ ÂüÁ¶Á¡À¸·Î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
path ¼Ó¼º¿¡ ´ëÇÑ ´ÙÀ½ °ªÀ» »ç¿ëÇÏ¿© »óÀ§ ·¹º§ ¸Þ´º°¡ ¸¸µé¾îÁý´Ï´Ù.
-
additions - â ¸Þ´ºÀÇ ¿ÞÂÊ¿¡ ÀÖ´Â ±×·ìÀ» ³ªÅ¸³À´Ï´Ù.
ÀÌ °æ·Î¿¡ Ãß°¡µÈ Á¶Ä¡¿Í ¸Þ´º´Â °ü·ÃµÈ ÆíÁý±â°¡ Ȱ¼ºÈµÈ °æ¿ì¿¡¸¸ Ç¥½ÃµË´Ï´Ù. ÆíÁý±â°¡ ´ÝÈ÷¸é ¸Þ´º¿Í
Á¶Ä¡°¡ Á¦°ÅµË´Ï´Ù.
±âº» Á¦°ø ±¸Çö: Workbench¿¡¼´Â Áßø "±âº» ¹®¼ ÆíÁý±â"¸¦ Á¦°øÇÕ´Ï´Ù. ±âŸ
Ç÷¯±×Àο¡¼ Á¦°øÇÑ ±âº» ÆíÁý±â ¶Ç´Â ÆíÁý±â¿¡ Ç÷¯±×ÀÎ ±â´ÉÀÌ Á¦°øµÉ ¼ö ÀÖ½À´Ï´Ù.