Á¶Ä¡ Ŭ·¡½º¸¦ »ç¿ëÇϸé UIÀÇ ¸í·É ÇÁ¸®Á¨Å×À̼ǰú °ü°è ¾øÀÌ »ç¿ëÀÚ ¸í·ÉÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ÀÏ´Ü ¼±ÅÃÇÏ¸é ½ÇÁ¦·Î ¸í·ÉÀ» ¼öÇàÇÏ´Â Äڵ带 º¯°æÇÏÁö ¾Ê°íµµ Ç÷¯±×ÀÎÀÇ Á¶Ä¡¿¡ ´ëÇÑ ÇÁ¸®Á¨Å×À̼ÇÀ» º¯°æÇÏ´Â À¯¿¬¼ºÀ» Á¦°øÇÕ´Ï´Ù. Áö½Ã¹® Ŭ·¡½º´Â ¸í·ÉÀ» Ç¥½ÃÇÏ´Â ½ÇÁ¦ UI Ç׸ñÀ» °ü¸®ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Áö½Ã¹® Ŭ·¡½º¿¡ ´ëÇØ ÇÁ·Î±×·¥ÇÏÁö´Â ¾ÊÁö¸¸ ÀϺΠWorkbench¿Í JFace API¿¡¼ ÀÌ Å¬·¡½º¸¦ º¸°Ô µË´Ï´Ù.
Á¶Ä¡(IAction)´Â ÀÏ¹Ý »ç¿ëÀÚ¿¡ ÀÇÇØ Æ®¸®°ÅµÉ ¼ö ÀÖ´Â ¸í·ÉÀ» Ç¥½ÃÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î Á¶Ä¡´Â ´ÜÃß, ¸Þ´º Ç׸ñ, µµ±¸ ¸ðÀ½ÀÇ Ç׸ñ°ú ¿¬°üµË´Ï´Ù.
Á¶Ä¡ ÀÚü°¡ UI·Î ¹èÄ¡µÇÁö´Â ¾ÊÁö¸¸, Á¶Ä¡¿¡´Â UI ÁöÇâ Æ¯¼º(¿¹: µµ±¸ ÆÁ ÅØ½ºÆ®, ·¹À̺í ÅØ½ºÆ®, À̹ÌÁö)ÀÌ ÀÖ½À´Ï´Ù. ÀÌ·Î ÀÎÇØ ´Ù¸¥ Ŭ·¡½º°¡ Á¶Ä¡ ÇÁ¸®Á¨Å×À̼ǿ¡ ´ëÇØ À§ÁöÆ®(widget)¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ°¡ UIÀÇ Á¶Ä¡¸¦ Æ®¸®°ÅÇϸé, ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ Á¶Ä¡ÀÇ run ¸Þ¼Òµå°¡ È£ÃâµË´Ï´Ù. run ¸Þ¼ÒµåÀÇ °øÅë ÆÐÅÏÀº Workbench ¼±ÅûçÇ×À» Á¶È¸ÇÏ°í ¼±ÅÃÇÑ ¿ÀºêÁ§Æ®¸¦ Á¶ÀÛÇÏ´Â °ÍÀÔ´Ï´Ù. ¶Ç´Ù¸¥ °øÅë ÆÐÅÏÀº Á¶Ä¡¸¦ ¼±ÅÃÇÏ¸é ¸¶¹ý»ç³ª ´ëÈ »óÀÚ¸¦ ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù.
IAction ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ ±¸ÇöÇØ¼´Â ¾ÈµË´Ï´Ù. ´ë½Å, Action Ŭ·¡½º¸¦ ¼ºêŬ·¡½º·Î ºÐ·ùÇØ¾ß ÇÕ´Ï´Ù. Á¶Ä¡¿¡ ´ëÇÑ ¿©·¯ °øÅë ÆÐÅÏÀ» º¸·Á¸é ÀÌ Å¬·¡½ºÀÇ ¼ºêŬ·¡½º¸¦ ã¾Æº¸½Ê½Ã¿À. ¾Æ·¡ÀÇ ÄÚµå´Â "Á¤º¸" Á¶Ä¡¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ Á¶Ä¡´Â WorkbenchÀÇ ÀÏ¹Ý Á¶Ä¡ Áß ÇϳªÀÔ´Ï´Ù.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
¾Õ¼ Workbench ÀÎÅÍÆäÀ̽º IViewActionDelegate ¹× IEditorActionDelegate¸¦ »ìÆì º¸¾Ò½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽ºµéÀº Workbench¿¡ º¸±â Á¶Ä¡ ¶Ç´Â ÆíÁý±â Á¶Ä¡¸¦ Á¦°øÇÒ ¶§ »ç¿ëµË´Ï´Ù. Workbench Á¶Ä¡ ´ëÇ¥ÀÚ´Â ¿¬°üµÈ º¸±â ¶Ç´Â ÆíÁý±â¿¡ ´ëÇØ Ãʱâȵ˴ϴÙ. À̸¦ ¾Ë°í ÀÖÀ¸¸é ÀÌ ´ëÇ¥ÀÚ°¡ Workbench ÆäÀÌÁö³ª âÀ» Ž»öÇÏ°í ¼±ÅûçÇ× ¶Ç´Â Á¶Ä¡ ¼öÇà¿¡ ÇÊ¿äÇÑ ±âŸ Á¤º¸¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ´Â Ç÷¯±×ÀÎÀÇ ¸í·ÉÀ» Á¤ÀÇÇÏ·Á°í ÇÒ ¶§¸¶´Ù °íÀ¯ÀÇ Á¶Ä¡ Ŭ·¡½º¸¦ ±¸ÇöÇÏ°Ô µË´Ï´Ù. ±âŸ º¸±â ¹× ÆíÁý±â¿¡ Á¶Ä¡¸¦ Á¦°øÇÏ´Â °æ¿ì¿¡´Â Á¶Ä¡ ´ëÇ¥ÀÚ¸¦ ±¸ÇöÇÏ°Ô µË´Ï´Ù.
Áö½Ã¹® Ç׸ñ(IContributionItem)Àº Á¶Ä¡ÀÇ UI ºÎºÐÀ» Ç¥½ÃÇÕ´Ï´Ù. º¸´Ù ÀÚ¼¼ÇÏ°Ô ¸»Çϸé, °øÀ¯ ÀÚ¿ø(¿¹: ¸Þ´º ¶Ç´Â µµ±¸ ¸ðÀ½)¿¡ Á¦°øµÈ Ç׸ñÀ» Ç¥½ÃÇÕ´Ï´Ù.
Áö½Ã¹® Ç׸ñÀº Áö½Ã¹®À» Ç¥½ÃÇÏ´Â °ü·Ã SWT Ç׸ñÀ¸·Î ƯÁ¤ SWT À§ÁöÆ®(widget)¸¦ ä¿ì´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
Workbench UI¿¡ Á¶Ä¡¸¦ Á¦°øÇÏ´Â °æ¿ì Áö½Ã¹® Ç׸ñÀÇ ÀÛ¼ºÀ» °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ÀÛ¾÷Àº »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Á¶Ä¡¿¡ ´ëÇÑ UI Ç׸ñÀ» Workbench°¡ ÀÛ¼ºÇÒ ¶§ »ç¿ëÀÚ¸¦ ´ë½ÅÇÏ¿© ¼öÇàµË´Ï´Ù.
Áö½Ã¹® °ü¸®ÀÚ(IContributionManager)´Â UI¿¡ Á¦°øµÉ Áö½Ã¹® Ç׸ñÀÇ ÄÝ·º¼ÇÀ» Ç¥½ÃÇÕ´Ï´Ù. À̸§ ÁöÁ¤µÈ Áö½Ã¹® ID·Î Áö½Ã¹® Ç׸ñÀ» Ãß°¡ ¹× »ðÀÔÇÏ¿© Ç׸ñÀ» ÀûÀýÇÑ ¼ø¼·Î ¹èÄ¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ID·Î Ç׸ñÀ» ã¾Æ °³º° Ç׸ñÀ» Á¦°ÅÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
°¢ IContributionManager ±¸ÇöÀº ƯÁ¤ SWT À§ÁöÆ®(widget)¸¦ ÇØ´ç Ç׸ñÀ¸·Î ä¿ì´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. JFace´Â ¸Þ´º(IMenuManager), µµ±¸ ¸ðÀ½(IToolBarManager), »óÅ ǥ½ÃÁÙ(IStatusLineManager)¿¡ ´ëÇÑ Áö½Ã¹® °ü¸®ÀÚ¸¦ Á¦°øÇÕ´Ï´Ù.
Ç÷¯±×ÀÎ °³¹ßÀÚ´Â ÀÌ ÀÎÅÍÆäÀ̽ºµéÀ» ±¸ÇöÇÏÁö ¾Ê¾Æµµ µÇÁö¸¸, ÀÌ °ü¸®ÀÚ Áß ÀϺο¡ ´ëÇÑ ÂüÁ¶¸¦ API ¸Þ¼Òµå¿¡¼ º¸°Ô µË´Ï´Ù.