ÆË¾÷ ¸Þ´º

ID: org.eclipse.ui.popupMenus

¼³¸í: ÀÌ È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×ÀÎ ¼ÒÀ¯ÀÇ ÄÁÅØ½ºÆ® ¸Þ´º¿¡ Á¶Ä¡¸¦ »õ·Î Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ƯÁ¤ ¿ÀºêÁ§Æ® À¯Çü(objectContribution) ¶Ç´Â º¸±â³ª ÆíÁý±â ÆÄÆ®ÀÇ Æ¯Á¤ ÄÁÅØ½ºÆ® ¸Þ´º(viewerContribution)¿¡ ´ëÇØ Á¶Ä¡ Áö½Ã¹®ÀÌ ÀÛ¼ºµË´Ï´Ù. objectContribution¸¦ »ç¿ëÇÒ ¶§, ÁöÁ¤µÈ À¯ÇüÀÇ ¿ÀºêÁ§Æ®°¡ ¼±ÅÃµÈ ¸ðµç º¸±â ¶Ç´Â ÆíÁý±â ÆÄÆ® ÄÁÅØ½ºÆ® ¸Þ´º¿¡ Áö½Ã¹®ÀÌ ³ªÅ¸³³´Ï´Ù. ¹Ý¸é, viewerContributionÀ» »ç¿ëÇÏ¿© Áö½Ã¹®ÀÌ ¼±ÅûçÇ×°ú °ü°è¾øÀÌ ÁöÁ¤µÈ º¸±â³ª ÆíÁý±â ÆÄÆ® ÄÁÅØ½ºÆ® ¸Þ´º¿¡¼­¸¸ ³ªÅ¸³³´Ï´Ù.

¼±ÅûçÇ×ÀÌ À̱âÁ¾À̸é Áö½Ã¹®Àº ¼±ÅûçÇ×ÀÇ °øÅë À¯Çü¿¡ ´ëÇØ µî·ÏµÈ °æ¿ì¿¡ Àû¿ëµË´Ï´Ù. Á÷Á¢ ÀÏÄ¡°¡ °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¼öÆÛŬ·¡½º ¹× ¼öÆÛÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ ÀÏÄ¡ÇÏ´Â Ç׸ñÀ» ã½À´Ï´Ù.

À̸§ ÇÊÅ͸¦ »ç¿ëÇÏ¿© ¼±ÅûçÇ×À» ´õ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§ ÇÊÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì ¼±ÅûçÇ×ÀÇ ¸ðµç ¿ÀºêÁ§Æ®°¡ ÇØ´ç ÇÊÅÍ¿Í ÀÏÄ¡ÇØ¾ß¸¸ Áö½Ã¹®À» Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿ÀºêÁ§Æ® Áö½Ã¹®ÀÇ °³º° Á¶Ä¡´Â enablesFor ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÇØ´ç Á¶Ä¡°¡ ´ÜÀÏ, ´ÙÁß ¶Ç´Â ±âŸ ¼±ÅûçÇ× À¯Çü Áß ¾î´À À¯Çü¿¡ ´ëÇØ¼­¸¸ Àû¿ëµÇ¾î¾ß ÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·¯ÇÑ ÇÊÅ͸µ ¸ÞÄ¿´ÏÁòÀÌ Àû´çÇÏÁö ¾ÊÀ¸¸é, Á¶Ä¡ Áö½Ã¹®Àº filter ¸ÞÄ¿´ÏÁòÀ¸·Î »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì ´ë»ó ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼ºÀº ÀÏ·ÃÀÇ À̸§ °ª ½Ö¿¡ ¼³¸íµË´Ï´Ù. ¼±ÅûçÇ׿¡ Àû¿ëµÇ´Â ¼Ó¼ºÀº ƯÁ¤ À¯Çü°ú °ü·ÃµÇ¸ç Workbench ÀÚüÀÇ µµ¸ÞÀÎ ¹üÀ§¸¦ ³Ñ¾î¼­¹Ç·Î ÀÌ ·¹º§ÀÇ ÇÊÅ͸µ¿¡¼­´Â ½ÇÁ¦ ¼±ÅûçÇ×ÀÌ Workbench¸¦ ´ëÇ¥ÇÕ´Ï´Ù.

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

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

±¸¼º ¸¶Å©¾÷:

   <!ELEMENT extension (objectContribution , viewerContribution)>

   <!ATTLIST extension
     point CDATA #REQUIRED
     id    CDATA #IMPLIED
     name  CDATA #IMPLIED
   >

   <!ELEMENT objectContribution (filter* , visibility? , menu* , action*)>

  ÀÌ ¿ä¼Ò´Â ÁöÁ¤µÈ À¯ÇüÀÇ ¿ÀºêÁ§Æ®¸¦ ¼±ÅÃÇϴ ǥ½Ã±â ÄÁÅØ½ºÆ® ¸Þ´º¿¡ ´ëÇØ ¸Þ´º ¹×/¶Ç´Â Á¶Ä¡ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

   <!ATTLIST objectContribution
     id          CDATA #REQUIRED
     objectClass CDATA #REQUIRED
     nameFilter  CDATA #IMPLIED
     adaptable   (true | false) "false"
   >

   <!ELEMENT viewerContribution (visibility? , menu* , action*)>

  ÀÌ ¿ä¼Ò´Â ƯÁ¤ º¸±â ¶Ç´Â ÆíÁý±â ÆÄÆ® ÄÁÅØ½ºÆ® ¸Þ´º¿¡ ´ëÇØ ¸Þ´º ¹×/¶Ç´Â Á¶Ä¡ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

   <!ATTLIST viewerContribution
     id       CDATA #REQUIRED
     targetID CDATA #REQUIRED
   >

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

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

   <!ATTLIST action
     id               CDATA #REQUIRED
     label            CDATA #REQUIRED
     menubarPath      CDATA #IMPLIED
     icon             CDATA #IMPLIED
     helpContextId    CDATA #IMPLIED
     style            (push|radio|toggle)
     state            (true | false)
      class            CDATA #REQUIRED
     enablesFor       CDATA #IMPLIED
     overrideActionId CDATA #IMPLIED
     tooltip          CDATA #IMPLIED
   >

   <!ELEMENT filter EMPTY>

  ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡ ÁöÁ¤µÈ ¼Ó¼º »óÅÂÀÇ °æ¿ì ÀÏÄ¡ÇÕ´Ï´Ù. ¼±ÅûçÇ׿¡¼­ °¢ ¿ÀºêÁ§Æ®´Â ±¸ÇöÇϰųª org.eclipse.ui.IActionFilter¿¡ Àû¿ë½ÃÄÑ¾ß ÇÕ´Ï´Ù.

   <!ATTLIST filter
     name  CDATA #REQUIRED
     value CDATA #REQUIRED
   >

   <!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>

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

   <!ATTLIST groupMarker
     name CDATA #REQUIRED
   >

   <!ELEMENT selection EMPTY>

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

   <!ATTLIST selection
     class CDATA #REQUIRED
     name  CDATA #IMPLIED
   >

   <!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>

  ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡¼­ ÁöÁ¤µÈ Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸé Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù.

   <!ATTLIST objectClass
     name CDATA #REQUIRED
   >

   <!ELEMENT objectState EMPTY>

  ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡ ÁöÁ¤µÈ ¼Ó¼º »óŰ¡ ÀÖÀ¸¸é Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù. Ç¥Çö½ÄÀÇ ÀÌ À¯ÇüÀ» Æò°¡ÇÏ·Á¸é ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¸¦ ±¸ÇöÇϰųª org.eclipse.ui.IActionFilter ÀÎÅÍÆäÀ̽º¿¡ Àû¿ë½ÃÄÑ¾ß ÇÕ´Ï´Ù.

   <!ATTLIST objectState
     name  CDATA #REQUIRED
     value CDATA #REQUIRED
   >

   <!ELEMENT pluginState EMPTY>

  ÀÌ ¿ä¼Ò´Â Ç÷¯±×ÀÎÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ç÷¯±×ÀÎÀÇ »óÅ´ installed ¶Ç´Â activated Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.

   <!ATTLIST pluginState
     id    CDATA #REQUIRED
     value (installed|activated) "installed"
   >

   <!ELEMENT systemProperty EMPTY>

  ÀÌ ¿ä¼Ò´Â ÀϺΠ½Ã½ºÅÛ Æ¯¼ºÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ư¼º °ªÀº java.lang.System¿¡¼­ °Ë»öµË´Ï´Ù.

   <!ATTLIST systemProperty
     name  CDATA #REQUIRED
     value CDATA #REQUIRED
   >
¿¹Á¦: ´ÙÀ½Àº ÆË¾÷ ¸Þ´º È®ÀåÁ¡ÀÇ ¿¹Á¦ÀÔ´Ï´Ù.

   <extension point="org.eclipse.ui.popupMenus"> 
      <objectContribution 
         id="com.xyz.C1" 
            objectClass="org.eclipse.core.resources.IFile" 
         nameFilter="*.java"> 
         <menu
            id="com.xyz.xyzMenu" 
            path="additions" 
            label="&amp;XYZ Java Tools"> 
            <separator name="group1"/> 
         </menu> 
         <action
            id="com.xyz.runXYZ" 
            label="&amp;Run XYZ Tool"
            style="push"
            menubarPath="com.xyz.xyzMenu/group1" 
            icon="icons/runXYZ.gif" 
            helpContextId="com.xyz.run_action_context" 
            class="com.xyz.actions.XYZToolActionDelegate" 
              enablesFor="1"> 
         </action> 
      </objectContribution> 
      <viewerContribution 
         id="com.xyz.C2" 
         targetID="org.eclipse.ui.views.TaskList"> 
         <action
            id="com.xyz.showXYZ" 
            label="&amp;Show XYZ"
            style="toggle"
            state="true"
            menubarPath="additions" 
            icon="icons/showXYZ.gif" 
            helpContextId="com.xyz.show_action_context" 
            class="com.xyz.actions.XYZShowActionDelegate"> 
         </action> 
      </viewerContribution> 
   </extension> 

À§ÀÇ ¿¹¿¡¼­ ÁöÁ¤µÈ ¿ÀºêÁ§Æ® Áö½Ã¹® Á¶Ä¡´Â ´ÜÀÏ ¼±ÅûçÇ×(enablesFor ¼Ó¼º)¿¡ ´ëÇØ¼­¸¸ Ȱ¼ºÈ­µË´Ï´Ù. ¶ÇÇÑ ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®´Â ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º(IFile)¸¦ ±¸ÇöÇØ¾ß Çϸç Java ÆÄÀÏÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌ Á¶Ä¡´Â ÀÌÀü¿¡ ÀÛ¼ºµÈ ¼­ºê¸Þ´º¿¡ Ãß°¡µË´Ï´Ù. ÀÌ Áö½Ã¹®Àº Çʼö ¼±ÅûçÇ×ÀÌ ÀÖ´Â ¸ðµç º¸±â¿¡ Àû¿ëµË´Ï´Ù.

¹Ý¸é, À§ÀÇ Ç¥½Ã±â Áö½Ã¹®Àº Ÿ½ºÅ© º¸±â ÄÁÅØ½ºÆ® ¸Þ´º¿¡¼­¸¸ ³ªÅ¸³ª¸ç º¸±âÀÇ ¼±ÅûçÇ׿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.

´ÙÀ½Àº ÇÊÅÍ ¸ÞÄ¿´ÏÁòÀÇ ¿¹ÀÔ´Ï´Ù. ÀÌ °æ¿ì Á¶Ä¡´Â ¿ì¼±¼øÀ§°¡ ³ô°í ¿Ï·áµÈ IMarkers¿¡ ´ëÇØ¼­¸¸ ³ªÅ¸³³´Ï´Ù.

   <extension point="org.eclipse.ui.popupMenus"> 
      <objectContribution 
         id="com.xyz.C3" 
         objectClass="org.eclipse.core.resources.IMarker"> 
         <filter name="done" value="true"/> 
         <filter name="priority" value="2"/> 
         <action
            id="com.xyz.runXYZ" 
            label="High Priority Completed Action Tool" 
            icon="icons/runXYZ.gif" 
            class="com.xyz.actions.MarkerActionDelegate"> 
         </action> 
      </objectContribution> 
   </extension> 

´ÙÀ½Àº Ç¥½Ã ¿©ºÎ ¿ä¼Ò »ç¿ëÀÇ ±âŸ ¿¹Á¦ÀÔ´Ï´Ù.

   <extension point="org.eclipse.ui.popupMenus"> 
      <viewerContribution 
         id="com.xyz.C4" 
         targetID="org.eclipse.ui.views.TaskList">
         <visibility>
            <and>
               <pluginState id="com.xyz" value="activated"/>
               <systemProperty name="ADVANCED_MODE" value="true"/>
            </and>
         </visibility>
         <action
            id="com.xyz.showXYZ" 
            label="&amp;Show XYZ"
            style="push"
            menubarPath="additions" 
            icon="icons/showXYZ.gif" 
            helpContextId="com.xyz.show_action_context" 
            class="com.xyz.actions.XYZShowActionDelegate"> 
         </action> 
      </viewerContribution> 
   </extension> 

À§ÀÇ ¿¹Á¦¿¡¼­ ÁöÁ¤ÇÑ Á¶Ä¡´Â "com.xyz" Ç÷¯±×ÀÎÀÌ È°¼ºÈ­µÇ°í ÁöÁ¤ÇÑ ½Ã½ºÅÛ Æ¯¼ºÀÌ true·Î ¼³Á¤µÈ °æ¿ì¿¡¸¸ Ÿ½ºÅ© º¸±â ÅØ½ºÆ® ¸Þ´º¿¡ ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù.

API Á¤º¸: Á¶Ä¡ ¼Ó¼º classÀÇ °ªÀº org.eclipse.ui.IObjectActionDelegate(¿ÀºêÁ§Æ® Áö½Ã¹®ÀÇ °æ¿ì), org.eclipse.ui.IViewActionDelegate(º¸±â¿¡ ¼ÓÇϴ ǥ½Ã±â¿¡ ´ëÇÑ Áö½Ã¹®ÀÇ °æ¿ì), ¶Ç´Â org.eclipse.ui.IEditorActionDelegate(ÆíÁý±â¿¡ ¼ÓÇϴ ǥ½Ã±â¿¡ ´ëÇÑ Áö½Ã¹®ÀÇ °æ¿ì)¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ Å¬·¡½º À̸§À̾î¾ß ÇÕ´Ï´Ù. ¸ðµç °æ¿ì¿¡¼­, ½ÇÁúÀûÀ¸·Î ÇÊ¿äÇϱâ Àü¿¡ Àüü Ç÷¯±×ÀÎÀÌ ·ÎµåµÇ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ °¡´ÉÇÑ ´Ê°Ô ÀÌ Å¬·¡½º¸¦ ·ÎµåÇÕ´Ï´Ù.

Âü°í: ÀÌÀü ¹öÀü°úÀÇ È£È¯¼ºÀ» À§ÇØ org.eclipse.ui.IActionDelegate°¡ ¿ÀºêÁ§Æ® Áö½Ã¹®¿¡ ´ëÇØ ±¸ÇöµÉ ¼ö ÀÖ½À´Ï´Ù.

ÆÄÆ® ³»ÀÇ ÄÁÅØ½ºÆ® ¸Þ´º È®ÀåÀº ´ë»ó ÆÄÆ®°¡ È®Àå¿¡ ÇØ´çÇÏ´Â ¸Þ´º¸¦ °ø°³ÇÒ ¶§¸¸ °¡´ÉÇÕ´Ï´Ù. ÀÌ È®ÀåÀº Á¦Ç°ÀÇ È®À强À» Çâ»ó½ÃŰ¹Ç·Î ±ÇÀåµË´Ï´Ù. À̸¦ ¼ºÃëÇÏ·Á¸é °¢ ÆÄÆ®´Â IWorkbenchPartSite.registerContextMenu¸¦ È£ÃâÇÏ¿© Á¤ÀǵǴ ÄÁÅØ½ºÆ® ¸Þ´º¸¦ °ø°³ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷ÀÌ ¿Ï·áµÇ¸é Workbench´Â ±âÁ¸ÀÇ Á¶Ä¡ È®ÀåÀ» ÀÚµ¿À¸·Î »ðÀÔÇÕ´Ï´Ù.

¸Þ´º ID´Â µî·ÏµÈ °¢ ¸Þ´º¿¡ ´ëÇØ Á¦°øµÇ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ÆÄÆ® »çÀÌÀÇ Àϰü¼ºÀ» À§ÇØ ¸ðµç ÆÄÆ® ±¸ÇöÀÚ°¡ ´ÙÀ½ °èȹÀ» äÅÃÇØ¾ß ÇÕ´Ï´Ù.

¶ÇÇÑ Workbench¿¡ µî·ÏµÈ ¸ðµç ÄÁÅÙ½ºÆ® ¸Þ´º¿¡´Â ID IWorkbenchActionConstants.MB_ADDITIONS¸¦ °®´Â Ç¥ÁØ »ðÀÔÁ¡ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±âŸ Ç÷¯±×ÀÎÀº ÀÌ °ªÀ» »ðÀÔÀ» À§ÇÑ ÂüÁ¶Á¡À¸·Î »ç¿ëÇÕ´Ï´Ù. »ðÀÔÁ¡Àº ÀûÀýÇÑ »ðÀÔ À§Ä¡¿¡¼­ ¸Þ´º¿¡ GroupMarker¸¦ Ãß°¡ÇÏ¿© Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÄÁÅØ½ºÆ® ¸Þ´ºÀÇ ¼±ÅûçÇ×ÀÎ WorkbenchÀÇ ¿ÀºêÁ§Æ®´Â org.eclipse.ui.IActionFilter¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ÇÊÅ͸µ ƯÁ¤ À¯ÇüÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ÇÊÅ͸µ °èȹÀÔ´Ï´Ù. Workbench´Â IActionFilter¸¦ ±¸ÇöÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ Å×½ºÆ®ÇÏ¿© ¼±ÅûçÇ׿¡ ´ëÇÑ ÇÊÅ͸¦ °Ë»öÇÕ´Ï´Ù. ½ÇÆÐÇÏ´Â °æ¿ì Workbench´Â IAdaptable ¸ÞÄ¿´ÏÁòÀ» ÅëÇØ ÇÊÅ͸¦ ¿ä±¸ÇÕ´Ï´Ù.

Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´Ï¸ð´ÐÀ» ÀÎÄÚµåÇϴ Ư¼ö ¹®ÀÚ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. º¯È¯µÇ´Â ÅØ½ºÆ®¿¡¼­ ¼±ÅÃÇÑ ¹®ÀÚ ¾Õ¿¡ ¾ÚÆÛ»÷µå('&') ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÀÌ Æ¯¼ö ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. 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>

±âº» Á¦°ø ±¸Çö: Workbench º¸±â¿¡´Â ¿©·¯ °³ÀÇ Á¶Ä¡¿Í ÇÔ²² ÀÌ¹Ì ·ÎµåµÈ ³»Àå ÄÁÅØ½ºÆ® ¸Þ´º°¡ ÀÖ½À´Ï´Ù. Ç÷¯±×ÀÎÀº ÀÌ·¯ÇÑ ¸Þ´º¿¡ µµ¿òÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. Ç¥½Ã±â¿¡ ÀÌ·¯ÇÑ Áö½Ã¹®À» À§ÇØ ¿¹¾àµÈ ½½·ÔÀÌ ÀÖ°í ÇØ´ç ½½·ÔÀÌ °ø¿ëÀ¸·Î ¸¸µé¾îÁø °æ¿ì¿¡´Â ½½·Ô À̸§À» °æ·Î·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â Á¶Ä¡ ¹× ¼­ºê¸Þ´º°¡ ÆË¾÷ ¸Þ´ºÀÇ ³¡¿¡ Ãß°¡µË´Ï´Ù.

Copyright (c) 2000, 2003 IBM Corporation and others. All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ¸ç http://www.eclipse.org/legal/cpl-v10.html¿¡¼­ º¼ ¼ö ÀÖ´Â ÀÏ¹Ý °ø¿ë ¶óÀ̼¾½º v1.0ÀÇ Á¶Ç׿¡ ÀǰÅÇÏ¿© »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.