Ç÷¯±×Àο¡¼ 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="&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");
}
ÀÌ Á¶Ä¡´Â °£´ÜÇÏÁö¸¸ ¼±ÅûçÇ×°ú Á» ´õ ±â´ÉÀûÀÎ ´ëÈ »óÀÚ¸¦ »ç¿ëÇÏ¿© Á¶Ä¡¸¦ ´õ ´Ùä·Ó°Ô ¸¸µé ¼ö ÀÖ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.