WorkbenchÀÇ ´Ù¾çÇÑ ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¦°øµÇ´Â ¿©·¯ °¡Áö È®ÀåÁ¡À» »ìÆì º¸¾Ò½À´Ï´Ù. »ç¿ëÇÒ Ç׸ñÀº ¾î¶»°Ô ¾Ë ¼ö ÀÖÀ»±î¿ä? ´ÙÀ½ Å×ÀÌºí¿¡¼ ´Ù¾çÇÑ ¸Þ´º Á¦°ø°ú ¿ëµµ¸¦ ¿ä¾àÇÕ´Ï´Ù.
È®ÀåÁ¡ À̸§ |
Á¶Ä¡ À§Ä¡ |
¼¼ºÎ»çÇ× |
---|---|---|
viewActions |
ƯÁ¤ º¸±âÀÇ ·ÎÄà µµ±¸ ¸ðÀ½°ú ·ÎÄà Ǯ´Ù¿î ¸Þ´º¿¡ Á¶Ä¡°¡ ³ªÅ¸³³´Ï´Ù. |
IViewActionDelegate¸¦ ±¸ÇöÇÏ´Â Á¶Ä¡ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. Á¶Ä¡¸¦ Ç¥½ÃÇØ¾ß ÇÒ ´ë»ó º¸±â ID¿Í Á¦°ø ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ·¹À̺í°ú À̹ÌÁö´Â UIÀÇ Á¶Ä¡ ¸ð¾çÀ» ÁöÁ¤ÇÕ´Ï´Ù. °æ·Î´Â º¸±âÀÇ ¸Þ´º¿Í µµ±¸ ¸ðÀ½ Ç׸ñ¿¡ °ü·ÃµÈ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. |
editorActions |
Á¶Ä¡´Â ÆíÁý±â¿Í ¿¬°üµÇ°í Workbench ¸Þ´º ¶Ç´Â µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³³´Ï´Ù. |
IEditorActionDelegate¸¦ ±¸ÇöÇÏ´Â Á¶Ä¡ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. Á¶Ä¡¸¦ Ç¥½ÃÇÏ´Â ´ë»ó ÆíÁý±âÀÇ ID¿Í Á¦°ø ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ·¹À̺í°ú À̹ÌÁö´Â UIÀÇ Á¶Ä¡ ¸ð¾çÀ» ÁöÁ¤ÇÕ´Ï´Ù. º°µµÀÇ ¸Þ´º¿Í µµ±¸ ¸ðÀ½ °æ·Î¿¡¼ Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ ÀÖ´Â Á¦°ø°ú À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. |
popupMenu |
ÆíÁý±â³ª º¸±âÀÇ ÆË¾÷ ¸Þ´º¿¡ Á¶Ä¡°¡ ³ªÅ¸³³´Ï´Ù. ¿ÀºêÁ§Æ® À¯ÇüÀ» Ç¥½ÃÇÏ´Â º¸±â ¹× ÆíÁý±âÀÇ ¸ðµç ÆË¾÷¿¡ ¿ÀºêÁ§Æ® À¯Çü°ú ¿¬°üµÈ Á¶Ä¡°¡ Ç¥½ÃµË´Ï´Ù. ƯÁ¤ ÆË¾÷ ¸Þ´º¿Í ¿¬°üµÈ Á¶Ä¡´Â ÇØ´ç ÆË¾÷ ¸Þ´º¿¡¸¸ ³ªÅ¸³³´Ï´Ù. |
¿ÀºêÁ§Æ® Á¦°ø¿¡¼´Â Á¶Ä¡°¡ ÆË¾÷ ¸Þ´º¿¡ ³ªÅ¸³ª´Â ¿ÀºêÁ§Æ® À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¿ÀºêÁ§Æ®
À¯ÇüÀ» Æ÷ÇÔÇÏ´Â ¸ðµç º¸±â¿Í ÆíÁý±â ÆË¾÷¿¡ Á¶Ä¡°¡ Ç¥½ÃµË´Ï´Ù.
IObjectActionDelegate¸¦ ±¸ÇöÇÏ´Â
Á¶Ä¡ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. |
actionSets |
Workbench ±âº» ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡°¡ ³ªÅ¸³³´Ï´Ù. Á¶Ä¡¸¦ Á¶Ä¡ ¼¼Æ®·Î ±×·ìÈÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ Á¶Ä¡ ¼¼Æ® ¼±Åðú Workbench¿¡ Ç¥½ÃµÈ ÇöÀç Perspective¿¡ µû¶ó Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡ ¼¼Æ®ÀÇ ¸ðµç Á¶Ä¡°¡ Ç¥½ÃµË´Ï´Ù. |
IWorkbenchWindowActionDelegate ¶Ç´Â IWorkbenchWindowPulldownDelegate¸¦ ±¸ÇöÇÏ´Â Á¶Ä¡ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. Á¶Ä¡ ¼¼Æ®ÀÇ À̸§°ú ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÇØ´ç Á¶Ä¡ ¼¼Æ®¿¡ Á¤ÀÇµÈ ¸ðµç Á¶Ä¡¸¦ ³ª¿ÇÕ´Ï´Ù. ¸ðµç Á¶Ä¡ÀÇ °æ¿ì º°µµÀÇ ¸Þ´º¿Í µµ±¸ ¸ðÀ½ °æ·Î¿¡¼ Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ ÀÖ´Â Á¦°ø°ú À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. |
Á¶Ä¡ÀÇ À§Ä¡ °æ·Î¸¦ ÁöÁ¤ÇÏ´Â ¿©·¯ Á¶Ä¡ Á¦°øÀ» »ìÆì º¸¾Ò½À´Ï´Ù. ÀÌ °æ·ÎÀÇ Àǹ̸¦ ÀÚ¼¼È÷ ¾Ë¾Æº¸±â À§ÇØ 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.internal.ui.ShowHelp"/>
</actionSet>
</extension>
»õ µµ¿ò¸» Á¶Ä¡´Â 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="ReadMe Actions"
visible="true">
<menu id="org_eclipse_ui_examples_readmetool"
label="Readme &File Editor"
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="&Open Readme Browser@Ctrl+R"
tooltip="Open
Readme Browser"
helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
icon="icons/basic/ctool16/openbrwsr.gif"
class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
enablesFor="1">
<selection
class="org.eclipse.core.resources.IFile"
name="*.readme">
</selection>
</action>
</actionSet>
</extension>
"org_eclipse_ui_examples_readmetool"À̶õ ¸Þ´º¸¦ »õ·Î Ãß°¡Çß½À´Ï´Ù. ·¹À̺íÀº "Readme &File Editor" ¹®ÀÚ¿ÀÔ´Ï´Ù. ÀÌ ¸Þ´º¿¡¼ "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¿Í °°Àº °ø¿ë ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.