Á¶Ä¡ÀÇ À§Ä¡ °æ·Î¸¦ ÁöÁ¤ÇÏ´Â ¿©·¯ Á¶Ä¡ Á¦°øÀ» »ìÆì º¸¾Ò½À´Ï´Ù. ÀÌ °æ·ÎÀÇ Àǹ̸¦ ÀÚ¼¼È÷ ¾Ë¾Æº¸±â À§ÇØ Workbench µµ¿ò¸» ¸Þ´º¸¦ È®ÀÎÇÏ¿© °æ·Î¸¦ »ìÆì º¸°Ú½À´Ï´Ù.
À̸§ ÁöÁ¤µÈ ±×·ìÀ» »ç¿ëÇÏ¿© »õ ¸Þ´º, ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ ¸ðÀ½ Ç׸ñÀ» »ðÀÔÇÒ À§Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù. À̸§ ÁöÁ¤µÈ ±×·ìÀº ¸Þ´º³ª µµ±¸ ¸ðÀ½ÀÇ Æ¯Á¤ ÁöÁ¡¿¡¼ ¸Þ´º¿Í µµ±¸ ¸ðÀ½ Á¦°øÀ» »ðÀÔÇÒ ¼ö ÀÖ´Â ½½·ÔÀ̳ª À§Ä¡ Ç¥½Ã±â·Î °£ÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù.
Workbench¿¡¼´Â IWorkbenchActionConstants Ŭ·¡½º¿¡ ¸ðµç ±×·ì ½½·Ô À̸§À» Á¤ÀÇÇÕ´Ï´Ù. Workbench ¸Þ´ºÀÇ °æ¿ì Ç÷¯±×Àο¡¼ »õ Á¶Ä¡¸¦ »ðÀÔÇÒ °ÍÀ¸·Î ¿¹»óµÇ´Â À§Ä¡ÀÇ ¸Þ´º¿¡ À̸§ ÁöÁ¤µÈ ±×·ìÀÌ ¹èÄ¡µË´Ï´Ù.
´ÙÀ½ µµ¿ò¸» ¸Þ´º ¼³¸íÀº IWorkbenchActionConstants Ŭ·¡½º Á¤ÀÇ¿¡¼ °¡Á®¿Â °ÍÀÔ´Ï´Ù.
Ç¥ÁØ µµ¿ò¸» ¸Þ´º Á¶Ä¡ ½ÃÀÛ ±×·ì - HELP_START - "start" Á¾·á ±×·ì - HELP_END - "end" Á¶Ä¡ Á¤º¸ - ABOUT - "About"
Ç¥ÁØ Workbench µµ¿ò¸» ¸Þ´º´Â À̸§ ÁöÁ¤µÈ ±×·ì "start", À̸§ ÁöÁ¤µÈ ±×·ì "end", "About" Á¶Ä¡ÀÇ ¼ø¼·Î ±¸¼ºµË´Ï´Ù. µÎ ±×·ìÀ» Á¤ÀÇÇϸé Ç÷¯±×ÀÎÀÌ µµ¿ò¸» ¸Þ´º¿¡ À§Ä¡ÇÑ Á¦°øµÈ Ç׸ñÀÇ À§Ä¡¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ´º¸¦ Á¤ÀÇÇÏ¸é ¿øÇÏ´Â ¼ö¸¸Å ½½·ÔÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ½½·ÔÀ» Ãß°¡ÇÏ¸é ´Ù¸¥ Ç÷¯±×ÀÎÀÌ ±âÁ¸ Á¦°ø¿¡ µû¶ó¼ ÇØ´ç Á¦°øÀÌ ³ªÅ¸³ª´Â À§Ä¡¿¡ ´ëÇØ ´õ ¸¹ÀÌ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÑ °¡Áö ´õ! µµ¿ò¸» ¸Þ´º¿¡ ´Ù¸¥ ¸Þ´º Ç׸ñµµ ÀÖ½À´Ï´Ù. Ç÷¯±×Àο¡¼ ÀÌ ¸Þ´º Ç׸ñÀ» Ãß°¡ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, µµ¿ò¸» Ç÷¯±×ÀÎÀº "µµ¿ò¸» ¸ñÂ÷" ¸Þ´º°¡ Æ÷ÇÔµÈ Á¶Ä¡ ¼¼Æ®¸¦ Workbench¿¡ Ãß°¡ÇÕ´Ï´Ù. ´ÙÀ½Àº org.eclipse.help.ui Ç÷¯±×ÀÎÀÇ plugin.xml¿¡¼ °¡Á®¿Â ¸¶Å©¾÷ÀÔ´Ï´Ù.
<extension point="org.eclipse.ui.actionSets"> <actionSet id="org.eclipse.help.internal.ui.HelpActionSet" label="%help" visible="true"> <action id="org.eclipse.help.internal.ui.HelpAction" menubarPath="help/helpEnd" label="%helpcontents" class="org.eclipse.help.ui.internal.HelpContentsAction" icon="icons/view.gif" helpContextId="org.eclipse.help.ui.helpContentsMenu" tooltip="%openhelpcontents"/> ...
»õ µµ¿ò¸» Á¶Ä¡´Â helpEnd ±×·ì ¾È¿¡ ÀÖ´Â µµ¿ò¸» ¸Þ´º¿¡ ¹èÄ¡µË´Ï´Ù. ´Ù¸¥ Ç÷¯±×ÀÎÀÌ µµ¿ò¸» ¸Þ´º¿¡ Á¦°øµÇÁö ¾ÊÀº °æ¿ì À̰ÍÀº "µµ¿ò¸» ¸ñÂ÷" ¸Þ´º Ç׸ñÀÌ "Á¤º¸" Ç׸ñ À§¿¡ ÀÖ´Â ¸Þ´º¿¡ ù ¹øÂ° Ç׸ñÀ¸·Î ³ªÅ¸³¯ °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ´Ù¸¥ Ç÷¯±×ÀÎÀÌ "µµ¿ò¸» ¸ñÂ÷" Ç׸ñ À§¿¡ Ç×»ó ³ªÅ¸³ª´Â Ç׸ñÀ» Á¦°øÇÏ·Á´Â °æ¿ì °æ·Î¿¡ helpStart ±×·ìÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
µµ±¸ ¸ðÀ½ °æ·Îµµ À¯»çÇÏ°Ô ÀÛµ¿ÇÕ´Ï´Ù. °æ·Î¸¦ ÁöÁ¤ÇÒ ¶§¸¶´Ù µµ±¸ ¸ðÀ½ÀÇ ±×·ì À̸§À¸·Î ³¡³ª¾ß ÇÕ´Ï´Ù.
¿ÏÀüÇÑ ¸Þ´º³ª µµ±¸ ¸ðÀ½ÀÇ °æ·Î´Â "¸Þ´º À̸§/±×·ì À̸§" ÀÔ´Ï´Ù. WorkbenchÀÇ ¸Þ´º À̸§Àº IWorkbenchActionConstants¿¡¼ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ¿© µµ¿ò¸» Á¶Ä¡ÀÇ ¿ÏÀüÇÑ °æ·Î À̸§ÀÌ "help/helpEndÀÓÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù."
ÀϺΠ¸Þ´º¿¡´Â ÁßøµÈ ¼ºê¸Þ´º°¡ ÀÖ½À´Ï´Ù. ¼ºê¸Þ´º¿¡¼´Â ´õ ±ä °æ·Î°¡ ÀÛµ¿ÇÕ´Ï´Ù. µµ¿ò¸» ¸Þ´º¿¡¼ "submenuStart"¶ó´Â À̸§ ÁöÁ¤µÈ ±×·ìÀ» »ç¿ëÇÏ¿© "submenu"¶ó´Â ¼ºê¸Þ´º¸¦ Á¤ÀÇÇÑ °æ¿ì »õ ¼ºê¸Þ´ºÀÇ Á¶Ä¡¿¡ ´ëÇÑ ¿ÏÀüÇÑ ¸Þ´º °æ·Î´Â "help/submenu/submenuStart"°¡ µË´Ï´Ù.
À§ÀÇ ¿¹Á¦´Â UI¿¡ ³ªÅ¸³ª´Â ¹®ÀÚ¿À» ±¸Ã¼ÈÇÏ´Â ¹æ½ÄÀ» º¸¿©ÁÝ´Ï´Ù. ±¸Ã¼ÈµÈ ¹®ÀÚ¿Àº Ç÷¯±×ÀÎÀÇ UI¸¦ ´Ù¸¥ ¾ð¾î·Î °£´ÜÈ÷ º¯È¯ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¹®ÀÚ¿À» Ű(¿¹: %help, %helpcontents)·Î ¹Ù²Ù°í ´ÙÀ½°ú °°Àº ¾ç½ÄÀÇ plugin.properties ÆÄÀÏ¿¡ Ç׸ñÀ» ÀÛ¼ºÇÏ¿© plugin.xml ÆÄÀÏÀÇ ¹®ÀÚ¿À» ±¸Ã¼ÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
help = "Help" helpContents = "Help Contents"
plugin.properties ÆÄÀÏÀ» ´Ù¸¥ ¾ð¾î·Î º¯È¯ÇÒ ¼ö ÀÖÀ¸¸ç plugin.xmlÀº ¼öÁ¤ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.
Áö±Ý±îÁö ¿©·¯ ¿¹¸¦ ÅëÇØ »ùÇà Ç÷¯±×Àο¡¼ Á¦°øÇÑ Á¶Ä¡¸¦ ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ ÀÖ´Â ±âÁ¸ÀÇ À̸§ ÁöÁ¤µÈ ±×·ì¿¡ Ãß°¡Çß½À´Ï´Ù.
actionSets, viewActions, editorActions ¹× popupMenus È®ÀåÁ¡À» »ç¿ëÇϸé Áö½Ã¹® ³»¿¡ »õ ¸Þ´º¿Í ±×·ìÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº »õ ¼ºê¸Þ´º³ª »õ Ç®´Ù¿î ¸Þ´º¸¦ Á¤ÀÇÇϰí Á¶Ä¡¸¦ ÀÌ »õ ¸Þ´º¿¡ Á¦°øÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ÀÌ °æ¿ì »õ Á¶Ä¡ÀÇ °æ·Î¿¡´Â »õ·Î Á¤ÀÇÇÑ ¸Þ´º À̸§ÀÌ Æ÷ÇԵ˴ϴÙ.
Readme µµ±¸¿¡¼ ÇØ´ç Á¶Ä¡ ¼¼Æ®¿¡ ´ëÇØ »õ ¸Þ´º¸¦ Á¤ÀÇÇÒ ¶§ ÀÌ ¹æ¹ýÀ» º¸¾Ò½À´Ï´Ù. ¸Þ´º °æ·Î¸¦ ÀÚ¼¼È÷ »ìÆì º¸¾ÒÀ¸¹Ç·Î ¸¶Å©¾÷À» ÇÑ ¹ø ´õ È®ÀÎÇØ º¾´Ï´Ù.
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="org_eclipse_ui_examples_readmetool_actionSet" label="%ActionSet.name" visible="true"> <menu id="org_eclipse_ui_examples_readmetool" label="%ActionSet.menu" path="window/additions"> <separator name="slot1"/> <separator name="slot2"/> <separator name="slot3"/> </menu> <action id="org_eclipse_ui_examples_readmetool_readmeAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="readme" label="%ReadmeAction.label" tooltip="%ReadmeAction.tooltip" helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context" icon="icons/ctool16/openbrwsr.gif" class="org.eclipse.ui.examples.readmetool.WindowActionDelegate" enablesFor="1"> <selection class="org.eclipse.core.resources.IFile" name="*.readme"> </selection> </action> ...
"org_eclipse_ui_examples_readmetool"À̶ó´Â »õ ¸Þ´º¸¦ Ãß°¡Çß½À´Ï´Ù. ÀÌ ¸Þ´ºÀÇ ·¹À̺íÀº Ư¼º ÆÄÀÏÀÇ "%ActionSet.name" Ű¿¡¼ Á¤Àǵ˴ϴÙ. ÀÌ ¸Þ´º¿¡¼ "slot1," "slot2" ¹× "slot3"À¸·Î À̸§ ÁöÁ¤µÈ ¼¼ ±×·ìÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ »õ ¸Þ´º¸¦ "window/additions °æ·Î¿¡ Ãß°¡ÇÕ´Ï´Ù."
IWorkbenchActionConstants·Î ´Ù½Ã µ¹¾Æ°¡¸é javadoc¿¡¼ â ¸Þ´º¿¡ ´ëÇÑ ÀÌ Á¤ÀǸ¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
* <h3>Standard Window menu actions</h3> * <ul> * <li>Extra Window-like action group (<code>WINDOW_EXT</code>)</li>
Ŭ·¡½º Á¤ÀǸ¦ ÀÚ¼¼È÷ º¸¸é ´ÙÀ½°ú °°ÀÌ °ü·ÃµÈ Á¤ÀǸ¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
public static final String MENU_PREFIX = ""; ... public static final String M_WINDOW = MENU_PREFIX+"window"; ... public static final String MB_ADDITIONS = "additions"; // Group. ... public static final String WINDOW_EXT = MB_ADDITIONS; // Group.
ÀÌ Á¤º¸¿¡¼ Workbench "window" ¸Þ´º¿¡ Ãß°¡ÇÒ Ç׸ñÀÇ °æ·Î¸¦ ÆÄ¾ÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ´º ÀÚü´Â "window"¶ó°í ÇÏ°í ¿©±â¼ "additions"¶ó´Â ½½·ÔÀ» Çϳª Á¤ÀÇÇÕ´Ï´Ù. "window/additions" °æ·Î¸¦ »ç¿ëÇÏ¿© »õ ¸Þ´º¸¦ Ãß°¡ÇÕ´Ï´Ù.
Á¶Ä¡ ¼¼Æ® ¼±¾ð¿¡¼ "window/org_eclipse_ui_examples_readmetool/slot1" °æ·Î¸¦ »ç¿ëÇÏ¿© »õ·Î Á¤ÀÇµÈ ¸Þ´º¿¡ Á¶Ä¡¸¦ Ãß°¡ÇÕ´Ï´Ù.
´Ù¸¥ Ç÷¯±×ÀÎÀÇ °æ¿ì¿¡´Â Ç÷¯±×ÀÎ ¸Þ´º¸¦ Ãß°¡Çϱâ À§ÇØ ÀÌ¿Í µ¿ÀÏÇÑ °æ·Î³ª ´Ù¸¥ ½½·Ô Áß Çϳª¸¦ »ç¿ëÇÏ¿© ÇöÀç ¸Þ´º¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î plugin.xml¿¡¼ °æ·Î À̸§À» ÃßÃâÇÏ¿© ´Ù¸¥ Ç÷¯±×ÀÎÀÇ ¸Þ´º³ª µµ±¸ ¸ðÀ½¿¡ Á¦°øÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀº ¾Æ´Õ´Ï´Ù. ÀÌÈÄ ¹öÀüÀÇ Ç÷¯±×Àο¡¼´Â °æ·Î À̸§À» º¯°æÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ´º, µµ±¸ ¸ðÀ½ ±×·ì ¹× ½½·ÔÀ» ÁöÁ¤ÇÏ´Â IWorkbenchActionConstants¿Í °°Àº °ø¿ë ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.