org.eclipse.ui.viewActions

Ç÷¯±×Àο¡¼­ Workbench¿¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â º¸±â¿¡ ÀÛµ¿À» Á¦°øÇÏ´Â °ÍÀ» ÈçÈ÷ º¼ ¼ö ÀÖ½À´Ï´Ù.org.eclipse.ui.viewActions È®ÀåÁ¡À» ÅëÇØ ÀÌ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. ÀÌ È®ÀåÁ¡À» »ç¿ëÇϸé Ç÷¯±×Àο¡¼­ ¸Þ´º Ç׸ñ, ¼­ºê¸Þ´º ¹× µµ±¸ ¸ðÀ½ Ç׸ñÀ» ±âÁ¸ º¸±âÀÇ ·ÎÄà Ǯ´Ù¿î ¸Þ´º¿Í ·ÎÄà µµ±¸ ¸ðÀ½¿¡ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.

³×ºñ°ÔÀÌÅÍ º¸±âÀÇ ·ÎÄà µµ±¸ ¸ðÀ½¿¡ ÀÖ´Â Ç׸ñÀÌ readme ÆÄÀÏÀ» ¼±ÅÃÇÒ ¶§¸¶´Ù Ȱ¼ºÈ­µË´Ï´Ù. ÀÌ Ç׸ñÀº º¸±âÀÇ ·ÎÄà Ǯ´Ù¿î ¸Þ´º¿¡µµ ³ªÅ¸³³´Ï´Ù. readme µµ±¸ Ç÷¯±×Àο¡¼­ viewActions È®ÀåÀ» »ç¿ëÇÏ¿© ÀÌ Á¶Ä¡¸¦ Á¦°øÇϱ⠶§¹®¿¡ ³ªÅ¸³³´Ï´Ù.

°ü·ÃµÇ´Â plugin.xml Áö½Ã¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.

<extension
    point = "org.eclipse.ui.viewActions">
        <viewContribution 
            id="org.eclipse.ui.examples.readmetool.vc1" 
            targetID="org.eclipse.ui.views.ResourceNavigator">
                <action id="org.eclipse.ui.examples.readmetool.va1"
                    label="&amp;Readme View Extension"
                    menubarPath="additions"
                    toolbarPath="additions" 
                    icon="icons/basic/obj16/editor.gif" 
                    tooltip="Run Readme View Extension" 
                    helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
                    class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.readme"/>
                </action>
        </viewContribution>
</extension>

°íÀ¯ÇÑ id¸¦ °¡Áø º¸±â Áö½Ã¹®À» ÁöÁ¤ÇÕ´Ï´Ù. Á¶Ä¡¸¦ Ãß°¡ÇÏ·Á´Â º¸±â¸¦ targetID¿¡ ÁöÁ¤ÇÕ´Ï´Ù. ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ º¸±âÀÇ ¸Þ´º¿¡ ´ëÇÑ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. »õ Á¶Ä¡¿¡ ´ëÇÑ ¸Þ´º Ç¥½ÃÁÙ°ú µµ±¸ ¸ðÀ½ À§Ä¡¿Í ÇÔ²² ·¹À̺íÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¸Þ´º¿Í µµ±¸ ¸ðÀ½ À§Ä¡¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ¸Þ´º ¹× µµ±¸ ¸ðÀ½ °æ·Î¸¦ ÂüÁ¶ÇϽʽÿÀ.

Á¶Ä¡°¡ Ȱ¼ºÈ­µÇ´Â Á¶°Çµµ ÁöÁ¤ÇÕ´Ï´Ù. ÆÄÀÏ È®ÀåÀÚ¿¡ ".readme" À̸§À» °®°í ÀÖ´Â IFile Çü½ÄÀÇ ÇÑ °¡Áö ¼±ÅûçÇ×ÀÌ ÀÖÀ» °æ¿ì ÀÌ Á¶Ä¡´Â Ȱ¼ºÈ­µË´Ï´Ù. ±×¸®°í ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ ÁÖº¯À» Ŭ¸¯ÇÒ °æ¿ì¿¡µµ ¸¶Âù°¡Áö·Î Ȱ¼ºÈ­µË´Ï´Ù.  

ÇØ´çÇÏ´Â ¸Þ´º¿Í µµ±¸ ¸ðÀ½À» »ý¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ °ÍÀº plugin.xmlÀÇ ³»¿ë»ÓÀÔ´Ï´Ù. ¸Þ´º³ª µµ±¸ ¸ðÀ½¿¡¼­ Á¶Ä¡¸¦ ½ÇÁ¦·Î ¼±ÅÃÇÒ ¶§±îÁö Ç÷¯±×ÀÎ ÄÚµå´Â ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. plugin.xml¿¡ ÁöÁ¤µÈ ±¸Çö Ŭ·¡½º¿¡¼­ IViewActionDelegate ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ ¿¹¿¡¼­ readme Ç÷¯±×ÀÎÀº Á¶Ä¡¸¦ ±¸ÇöÇϱâ À§ÇÑ ViewActionDelegate¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ Å¬·¡½º¸¦ ãÀº °æ¿ì ¿©±â¿¡´Â ¼±ÅûçÇ× º¯°æÀ» ó¸®Çϰí Á¶Ä¡¸¦ È£ÃâÇϸç, ÀÛ¼ºÇÑ º¸±â¸¦ ±â¾ïÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå°¡ Æ÷ÇԵǾî ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

Á¶Ä¡¿¡¼­´Â ´Ü¼øÈ÷ º¸±â Á¶Ä¡°¡ ½ÇÇàµÇ¾úÀ½À» ¾Ë·ÁÁÖ´Â ´ëÈ­ »óÀÚ¸¦ ½ÇÇàÇÕ´Ï´Ù.

public void run(org.eclipse.jface.action.IAction action) {
    MessageDialog.openInformation(view.getSite().getShell(),
        "Readme Editor", 
        "View Action executed");
}

ÀÌ Á¶Ä¡´Â °£´ÜÇÏÁö¸¸ ¼±ÅûçÇ×°ú Á» ´õ ±â´ÉÀûÀÎ ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÏ¿© Á¶Ä¡¸¦ ´õ ´Ùä·Ó°Ô ¸¸µé ¼ö ÀÖ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.