»ç¿ëÀÚ Á¤ÀÇ Workbench ÀÛµ¿À» Á¦°øÇÏ´Â "½ÃÀÛÁ¡"Àº Workbench¸¦ ±¸¼ºÇϱâ À§ÇÑ
WorkbenchAdvisorÀÇ
ÁöÁ¤ÀÔ´Ï´Ù. ¸®Ä¡ Ŭ¶óÀÌ¾ðÆ® Ç÷¯±×ÀÎÀº ÀÌ Ãß»ó Ŭ·¡½º¸¦ È®ÀåÇÏ¿©
Workbench¿¡ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ ±¸¼ºÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ºê¶ó¿ìÀú ¿¹Á¦¿¡¼´Â BrowserAdvisor Ŭ·¡½º¸¦
»ç¿ëÇÏ¿© À̸¦ ¼öÇàÇÕ´Ï´Ù.
...
int code = PlatformUI.createAndRunWorkbench(display,
new BrowserAdvisor());
...
Workbench ¾îµå¹ÙÀÌÀú´Â Á¶Ä¡ ¸·´ë Ç׸ñ ¶Ç´Â ¼Ò°³ ÆäÀÌÁö¿Í °°Àº ¿øÇÏ´Â ·¹À̾ƿô ¹× ±â´ÉÀ¸·Î Workbench¸¦ ±¸¼ºÇÏ´Â
¸Þ¼Òµå¸¦ ´ëüÇÕ´Ï´Ù.
Workbench ¾îµå¹ÙÀÌÀú¿¡¼ Á¦°øÇÏ´Â ¶óÀÌÇÁ »çÀÌŬ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¾ðÁ¦µçÁö Workbench¸¦ ÀÛ¼ºÇϰí ÀÛµ¿¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. ´ëüÇÒ ¼ö ÀÖ´Â ´ÙÀ½ ¾îµå¹ÙÀÌÀú ¶óÀÌÇÁ »çÀÌŬ ¸ñ·ÏÀº WorkbenchAdvisorÀÇ javadoc¿¡¼ Á¦°øµË´Ï´Ù.
initialize
- ù ¹øÂ°·Î È£ÃâµÊ. ¸ðµç â ¾Õ¿¡¼ Ç׸ñÀ»
µî·ÏÇÏ´Â µ¥ »ç¿ëÇÔ preStartup
- µÎ ¹øÂ°·Î È£ÃâµÊ. ÃʱâÈ ÈÄÀÌÁö¸¸ ù ¹øÂ° âÀÌ
¿¸®±â Àü¿¡ ½ÃÀÛ ¶Ç´Â º¹¿ø Áß ³»¿ëÀ» ÀϽÃÀûÀ¸·Î »ç¿ë ºÒ°¡´ÉÇÏ°Ô ÇÏ´Â µ¥
»ç¿ëÇÔpostStartup
- ¼¼ ¹øÂ°·Î È£ÃâµÊ. ù ¹øÂ° âÀÌ ¿¸° ÈÄ
ÀÌÀü ´Ü°è¿¡¼ ÀϽÃÀûÀ¸·Î »ç¿ë ºÒ°¡´É »óÅÂÀÎ ³»¿ëÀ» ´Ù½Ã »ç¿ë °¡´ÉÇÏ°Ô ÇÏ´Â µ¥ »ç¿ëÇÔpostRestore
- Workbench ¹× âÀÌ ÀÌÀü¿¡ ÀúÀåµÈ »óÅ¿¡¼
ÀçÀÛ¼ºµÈ ÈÄ È£ÃâµÊ. º¹¿øµÈ Workbench¸¦ Á¶Á¤ÇÏ´Â µ¥ »ç¿ëÇÔpreWindowOpen
- °¢ âÀÌ ¿¸± ¶§ È£ÃâµÊ.
Á¶Ä¡ ¸·´ë°¡ ¾Æ´Ñ ´Ù¸¥ âÀÇ ¸ð¾çÀ» ±¸¼ºÇÏ´Â µ¥ »ç¿ëÇÔfillActionBars
- âÀÇ Á¶Ä¡ ¸·´ë¸¦ ±¸¼ºÇϱâ À§ÇØ
preWindowOpen
ÀÌÈÄ¿¡ È£ÃâµÊpostWindowRestore
- âÀÌ ÀÌÀü¿¡ ÀúÀåµÈ »óÅ¿¡¼
ÀçÀÛ¼ºµÈ ÈÄ È£ÃâµÊ. º¹¿øµÈ âÀ» Á¶Á¤ÇÏ´Â µ¥ »ç¿ëÇÔpostWindowCreate
- âÀÌ Ãʱ⠻óÅ ¶Ç´Â ÀúÀåµÈ »óÅ¿¡¼
ÀÛ¼ºµÈ ÈÄ È£ÃâµÊ. âÀ» Á¶Á¤ÇÏ´Â µ¥ »ç¿ëÇÔopenIntro
- ¼Ò°³ ±¸¼º¿ä¼Ò(ÀÖÀ» °æ¿ì)¸¦ ÀÛ¼ºÇϱâ À§ÇØ
âÀÌ ¿¸®±â Àü¿¡ Áï½Ã È£ÃâµÊ
postWindowOpen
- âÀÌ ¿¸° ÈÄ È£ÃâµÊ.
â ¸®½º³Ê µîÀ» ¿¬°áÇÏ´Â µ¥ »ç¿ëÇÔpreWindowShellClose
- »ç¿ëÀÚ°¡ âÀÇ ½©À» ´ÝÀ» ¶§ È£ÃâµÊ.
⠴ݱ⸦ »çÀü °Ë»çÇÏ´Â µ¥ »ç¿ëÇÔeventLoopException
- À̺¥Æ® ·çÇÁ°¡ ¼Õ»óµÈ ¹®Á¦¸¦ ó¸®Çϵµ·Ï
È£ÃâµÊ. ³»¿ëÀÌ ÁÁÀº »óŰ¡ ¾Æ´ÔÀ» »ç¿ëÀÚ¿¡°Ô ¾Ë¸®´Â µ¥ »ç¿ëÇÔeventLoopIdle
- ÇöÀç ó¸®µÉ À̺¥Æ®°¡ ´õ ÀÌ»ó ¾øÀ» ¶§
È£ÃâµÊ. ±âŸ ÀÛ¾÷À» ¼öÇàÇϰųª »õ À̺¥Æ®°¡ ´ë±â¿¿¡ ÁøÀÔÇÒ ¶§±îÁö
ÁøÇàÇÏ´Â µ¥ »ç¿ëÇÔpreShutdown
- À̺¥Æ® ·çÇÁ°¡ Á¾·áµÈ ÈÄÀÌÁö¸¸ ¾î´À âµµ
´ÝÈ÷±â Àü¿¡¸¸ È£ÃâµÊ. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ½Ã½ºÅÛ Á¾·á¸¦ °ÅºÎÇÒ ¼ö ÀÖµµ·Ï ÇÔpostShutdown
- À̺¥Æ® ·çÇÁ°¡ Á¾·áµÇ¾î ¸ðµç âÀÌ ´ÝÈù ÈÄ
¸¶Áö¸·À¸·Î È£ÃâµÊ. ÃʱâÈ Áß µî·ÏµÈ ³»¿ëÀ» ´Ù½Ã µî·ÏÇÏ´Â µ¥ »ç¿ëÇÔ
º¸´Â ¹Ù¿Í °°ÀÌ ¸®Ä¡ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡´Â Workbench°¡ ±¸¼ºµÇ°í ±¸ÇöµÇ´Â ¹æ¹ý¿¡ ´ëÇÑ ´Ù¼öÀÇ
Á¦¾î ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ºê¶ó¿ìÀú ¿¹Á¦¿¡¼ BrowserAdvisorÀÇ 1Â÷ ±â´ÉÀº ºê¶ó¿ìÀú¿¡ ´ëÇØ ÀûÀýÇÑ ¸Þ´º Ç׸ñÀÌ ÀÖ´Â
Á¶Ä¡ ¸·´ë¸¦ ±¸¼ºÇÏ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº ´ÙÀ½°ú °°ÀÌ fillActionBars ¸Þ¼Òµå·Î ¼öÇàµË´Ï´Ù.
public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
...
BrowserActionBuilder builder = new BrowserActionBuilder(window);
getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder);
builder.fillActionBars(configurer, flags);
}
ÀÌ ¸Þ¼Òµå¿¡¼ Workbench´Â Ư¼öÈµÈ Á¶Ä¡ ºô´õ¸¦ »ç¿ëÇÏ¿© ±¸¼ºµË´Ï´Ù. ÀÌ Á¶Ä¡ ºô´õ´Â WorkbenchÀÇ
Á¶Ä¡ ¸·´ë¸¦ ä¿ì´Â µ¥ »ç¿ëµË´Ï´Ù. Á¶Ä¡ Á¤ÀÇ¿¡¼ Á¶Ä¡°¡ ÁöÁ¤µÇ´Â ¹æ¹ýÀ»
ÀÚ¼¼È÷ ¾Ë¾Æ º¸±â·Î ÇÕ´Ï´Ù. Áö±ÝÀº Workbench¸¦ ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ÁßÁ¡ÀûÀ¸·Î ¼³¸íÇÕ´Ï´Ù.
À§ÀÇ getWorkbenchConfigurer() ¸Þ¼Òµå »ç¿ëÀ» Âü°íÇϽʽÿÀ. IWorkbenchConfigurer ¹× IWorkbenchWindowConfigurer´Â WorkbenchAdvisor¿Í ÇÔ²² âÀ» »ç¿ëÀÚ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ¸é ´Ù¸¥ ·¹º§¿¡ ÀÖ´Â Workbench ÀÛ¼ºÀÇ ¿©·¯ Ãø¸éÀ» ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î IWorkbenchWindowConfigurer´Â Á¶Ä¡ ¸·´ë, »óÅ ǥ½ÃÁÙ, Perspective ¸·´ë, Äð ¸·´ë µî°ú °°ÀÌ Workbench âÀÇ Á¦¾î¿¡ ´ëÇÑ Æ¯Á¤ ±¸¼ºÀ» °¡Á¤ÇÏ´Â ÇÁ·ÎÅäÄÝÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ ÇÁ·ÎÅäÄÝ·Î ÀÌ·¯ÇÑ Ç׸ñÀ» »ç¿ëÀÚ Á¤ÀÇÇϰí ä¿ï ¼ö ÀÖ½À´Ï´Ù. IWorkbenchConfigurer´Â ³ôÀº ·¹º§¿¡¼ ÀÛµ¿Çϱ⠶§¹®¿¡ Workbench¿¡ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. WorkbenchAdvisor´Â À§¿¡¼ Âü°íÇÑ ¶óÀÌÇÁ »çÀÌŬ ¸Þ¼Òµå·Î ÀÌ ±¸¼ºÀÚ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. WorkbenchAdvisorÀÇ ³·Àº ·¹º§ ¸Þ¼Òµå´Â ±âº» ÀÛµ¿À» ¿ÏÀüÈ÷ ¹Ù²Ùµµ·Ï ´ëüµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î Workbench ¾îµå¹ÙÀÌÀú´Â ±âº» â¿¡ ¿ÏÀüÈ÷ ´Ù¸¥ ±¸ÇöÀ» Á¦°øÇϱâ À§ÇØ Ã¢¿¡ SWT Á¦¾î¸¦ ÀÛ¼ºÇÏ´Â ¸Þ¼Òµå¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áï, ÀÌ ±â¼úÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î °¡Áö ´Ù¸¥ ·¹º§ ¹× Workbench¸¦ »ç¿ëÀÚ Á¤ÀÇÇÏ´Â ¹æ¹ýÀÌ ´Ù¾çÇÏ°Ô ÀÖ½À´Ï´Ù. WorkbenchAdvisor, IWorkbenchConfigurer ¹× IWorkbenchWindowConfigurerÀÇ javadoc¿¡´Â »ç¿ë °¡´ÉÇÑ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ Àüü ¼³¸íÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´ëü ±¸Çö¿¡ ´ëÇÑ ÁÖ¼®Àº BrowserAdvisorÀÇ Àüü ±¸ÇöÀ» ÂüÁ¶ÇϽʽÿÀ.