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

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
       >    <!ELEMENT separator EMPTY>
       <!ATTLIST separator
          name       CDATA #REQUIRED
       >
  • name - ³ªÁß¿¡ Á¶Ä¡ °æ·ÎÀÇ ¸¶Áö¸· ÅäÅ«À¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ºÐ¸®ÀÚ À̸§. µû¶ó¼­ ºÐ¸®ÀÚ´Â Á¶Ä¡¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â À̸§ ÁöÁ¤µÈ ±×·ìÀÇ ¿ªÇÒÀ» ÇÕ´Ï´Ù.
  •    <!ELEMENT action (selection)* (enablement)?>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          accelerator       CDATA #IMPLIED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          disabledIcon      CDATA #OPTIONAL
          hoverIcon         CDATA #OPTIONAL
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          class             CDATA #REQUIRED
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       >    <!ELEMENT enablement (and | or | not | objectClass | objectState | systemProperty
            | pluginState)>
       <!ATTLIST enablement EMPTY>
    Eclipse ¹öÀü 2.0¿¡¼­´Â enablement ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼ºÈ­¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. enablement ¿ä¼Ò »ç¿ë¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â actionExpressions.htmlÀ» ÂüÁ¶ÇϽʽÿÀ.
    Á¶Ä¡ È®ÀåÀÚ¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor, selection ¹× enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ ´ëÇ¥ÀÚ°¡ ÀνºÅϽºÈ­µÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå ³»¿¡¼­ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

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

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

    ¿¹:

    ´ÙÀ½Àº ÆíÁý±â Á¶Ä¡ È®ÀåÁ¡ÀÇ ¿¹ÀÔ´Ï´Ù.

       <extension point="org.eclipse.ui.editorActions">
          <editorContribution
             id="com.xyz.xyzContribution"
             targetID="com.ibm.XMLEditor">
             <menu id="XYZ" label="&amp;XYZ Menu">
                <separator name="group1"/>
             </menu>
             <action
                  id="com.xyz.runXYZ"
                  label="&amp;Run XYZ Tool"
                  menubarPath="XYZ/group1"
                  toolbarPath="Normal/additions"
                  state="true"
                  icon="icons/runXYZ.gif"
                  tooltip="Run XYZ Tool"
                  helpContextId="com.xyz.run_action_context"
                  class="com.xyz.actions.RunXYZ">
             </action>
          </editorContribution>
       </extension>

    À§ÀÇ ¿¹Á¦¿¡¼­ ÁöÁ¤ÇÑ Á¶Ä¡´Â "XYZ ¸Þ´º"¶ó´Â »õ·Î¿î ÃÖ»óÀ§ ·¹º§ ¸Þ´º¿¡¼­ ¼±Åöõ Ç׸ñÀ¸·Î ³ªÅ¸³ª¸ç µµ±¸ ¸ðÀ½¿¡¼­´Â Àüȯ ´ÜÃß·Î ³ªÅ¸³³´Ï´Ù.

    ´ÙÀ½Àº ÆíÁý±â Á¶Ä¡ È®ÀåÁ¡ÀÇ ¿¹ÀÔ´Ï´Ù.

       <extension point="org.eclipse.ui.editorActions">
          <editorContribution
             id="com.xyz.xyz2Contribution"
             targetID="com.ibm.XMLEditor">
             <menu
                id="XYZ2"
                label="&amp;XYZ2 Menu"
                path="edit/additions">
                <separator name="group1"/>
             </menu>
             <action
                  id="com.xyz.runXYZ2"
                  label="&amp;Run XYZ2 Tool"
                  menubarPath="edit/XYZ2/group1"
                  state="true"
                  icon="icons/runXYZ2.gif"
                  tooltip="XYZ2 µµ±¸ ½ÇÇà"
                  helpContextId="com.xyz.run_action_context2"
                  class="com.xyz.actions.RunXYZ2">
             </action>
          </editorContribution>
       </extension>

    À§ÀÇ ¿¹Á¦¿¡¼­ ÁöÁ¤ÇÑ Á¶Ä¡´Â ÃÖ»óÀ§ ·¹º§ÀÇ "ÆíÁý" ¸Þ´º¿¡ ÀÖ´Â "XYZ2 ¸Þ´º"¶ó´Â À̸§ÀÇ ¼­ºê¸Þ´º¿¡¼­ ¼±ÅöõÀÇ Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù.

    API Á¤º¸: class ¼Ó¼º °ªÀº org.eclipse.ui.IEditorActionDelegate¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À̾î¾ß ÇÕ´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â ²À ÇÊ¿äÇÒ ¶§±îÁö Àüü ÀÎÅÍÆäÀ̽º°¡ ·ÎµåµÇÁö ¾Êµµ·Ï °¡´ÉÇÑ ÇÑ ´Ê°Ô ·ÎµåµË´Ï´Ù. ÁöÁ¤ÇÑ À¯ÇüÀÇ ÆíÁý±â¸¦ Ȱ¼ºÈ­ÇÒ ¶§¸¶´Ù setActiveEditor ¸Þ¼Òµå°¡ È£ÃâµË´Ï´Ù. ÇöÀç Workbench¿¡ ¿­·Á ÀÖ´Â ÆíÁý±â ÀνºÅϽº ¼ö¿¡ »ó°ü¾øÀÌ ÁöÁ¤ÇÑ ÆíÁý±â À¯ÇüÀÇ ¸ðµç ÀνºÅϽº¿¡ ÇÑ ¼¼Æ®ÀÇ Á¶Ä¡¿Í ¸Þ´º¸¸ ¸¸µé¾îÁý´Ï´Ù.

    ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© ´ë»ó ÆíÁý±â¿¡¼­ ÀÌÀü¿¡ ¸¸µç ¸Þ´º·Î Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¸Þ´º¿Í Á¶Ä¡¸¦ Workbench â¿¡ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. Workbench â ³»ÀÇ Á¶Ä¡¿Í ÁÖ ±×·ì¿¡ ´ëÇÑ ID´Â org.eclipse.ui.IWorkbenchActionConstants¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. À̸¦ »õ Á¶Ä¡ÀÇ Ãß°¡¸¦ À§ÇÑ ÂüÁ¶Á¡À¸·Î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. path ¼Ó¼º¿¡ ´ëÇÑ ´ÙÀ½ °ªÀ» »ç¿ëÇÏ¿© »óÀ§ ·¹º§ ¸Þ´º°¡ ¸¸µé¾îÁý´Ï´Ù.

    ÀÌ °æ·Î¿¡ Ãß°¡µÈ Á¶Ä¡¿Í ¸Þ´º´Â °ü·ÃµÈ ÆíÁý±â°¡ Ȱ¼ºÈ­µÈ °æ¿ì¿¡¸¸ Ç¥½ÃµË´Ï´Ù. ÆíÁý±â°¡ ´ÝÈ÷¸é ¸Þ´º¿Í Á¶Ä¡°¡ Á¦°ÅµË´Ï´Ù.

    ±âº» Á¦°ø ±¸Çö: Workbench¿¡¼­´Â ³»Àå "±âº» ¹®¼­ ÆíÁý±â"¸¦ Á¦°øÇÕ´Ï´Ù. ±âŸ Ç÷¯±×Àο¡¼­ Á¦°øÇÑ ±âº» ÆíÁý±â ¶Ç´Â ÆíÁý±â¿¡ Ç÷¯±×ÀÎ ±â´ÉÀÌ Á¦°øµÉ ¼ö ÀÖ½À´Ï´Ù.

    Copyright IBM Corporation and others 2000, 2002.