org.eclipse.ui.elementFactories

¿ä¼Ò ÆÑÅ丮¸¦ »ç¿ëÇÏ¿© Workbench ½Ã½ºÅÛ Á¾·á Áß¿¡ ÀúÀåÇÑ µ¥ÀÌÅÍ¿¡¼­ Workbench ¸ðµ¨ ¿ÀºêÁ§Æ®¸¦ ´Ù½Ã ÀÛ¼ºÇÕ´Ï´Ù.

¿ä¼Ò ÆÑÅ丮 È®ÀåÀ» ÀÚ¼¼È÷ »ìÆì º¸±â Àü¿¡ Ç÷¯±×Àκ° ÀÛµ¿À» °øÅë Ç÷§Æû ¸ðµ¨ ¿ÀºêÁ§Æ®¿¡ Ãß°¡ÇÏ·Á¸é Ç÷§Æû¿¡¼­ »ç¿ëµÇ´Â ÀÏ¹Ý ±â¼úÀ» °ËÅäÇØ¾ß ÇÕ´Ï´Ù.

IAdaptables ¹× Workbench ¾î´ðÅÍ

´Ù¾çÇÑ Workbench Ŭ·¡½º¸¦ ã¾Æº¸¸é ¿©·¯ Workbench ÀÎÅÍÆäÀ̽º¿¡¼­ IAdaptable ÀÎÅÍÆäÀ̽º¸¦ È®ÀåÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

Ç÷¯±×Àο¡¼­´Â ¾î´ðÅ͸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÀÛµ¿À» ½Ã½ºÅÛÀÇ ±âÁ¸ À¯Çü¿¡ Ãß°¡ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Workbench´Â Ç¥½ÃÇÒ ·¹ÀÌºí ¹× À̹ÌÁö¿¡ ´ëÇØ ÀÚ¿øÀÌ ÀÀ´äÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. UIº° ÀÛµ¿À» ³·Àº ·¹º§ÀÇ ¿ÀºêÁ§Æ®¿¡ Ãß°¡ÇÏ´Â °ÍÀº ÁÁÀº ¼³°è°¡ ¾Æ´Õ´Ï´Ù. ±×·¸´Ù¸é ¾î¶² ¹æ¹ýÀ¸·Î ÀÌ ÀÛµ¿À» ÀÚ¿ø À¯Çü¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï±î?

Ç÷¯±×ÀÎÀº ±âÁ¸ À¯Çü¿¡ ÀÛµ¿À» Ãß°¡ÇÏ´Â ¾î´ðÅ͸¦ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¸é ÀÀ¿ëÇÁ·Î±×·¥ ÄÚµå´Â ƯÁ¤ ¾î´ðÅÍ¿¡ ´ëÇØ ¿ÀºêÁ§Æ®¸¦ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ÀºêÁ§Æ®¿¡ ´ëÇØ µî·ÏµÈ ¾î´ðÅͰ¡ ÀÖÀ¸¸é ÀÀ¿ëÇÁ·Î±×·¥Àº ÀÌ ¾î´ðÅ͸¦ °¡Á®¿Í¼­ ¾î´ðÅÍ¿¡ Á¤ÀÇµÈ »õ ÀÛµ¿À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿ÀºêÁ§Æ®¿¡ ´ëÇØ ¾î´ðÅ͸¦ µ¿ÀûÀ¸·Î Á¶È¸ÇÏ´Â ±â´ÉÀ» Á¦°øÇÏ¿© ½Ã½ºÅÛ Çâ»ó¿¡ µû¶ó ½Ã½ºÅÛÀÇ À¶Å뼺À» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù. ¿ø·¡ À¯ÇüÀÇ Á¤ÀǸ¦ º¯°æÇÏÁö ¾Ê°íµµ »õ Ç÷¯±×ÀÎÀ¸·Î Ç÷§Æû À¯Çü¿¡ »õ ¾î´ðÅ͸¦ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ÀºêÁ§Æ®¿¡ ƯÁ¤ ¾î´ðÅ͸¦ ¿ä±¸ÇÏ´Â ÆÐÅÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.

   //given an object o, we want to do "workbench" things with it.
   if (!(o instanceof IAdaptable)) {
      return null;
   }
IWorkbenchAdapter adapter = (IWorkbenchAdapter)o.getAdapter(IWorkbenchAdapter.class);
   if (adapter == null)
      return null;
// now I can treat o as an IWorkbenchAdapter
   ...

ÇØ´ç ¿ÀºêÁ§Æ®¿¡ µî·ÏµÈ ¾î´ðÅͰ¡ ¾øÀ¸¸é ¾î´ðÅÍ·Î ³ÎÀÌ ¸®Åϵ˴ϴÙ. ÀÌ·± °æ¿ì¸¦ ó¸®ÇÒ ¼ö ÀÖ°Ô Å¬¶óÀÌ¾ðÆ®¸¦ ÁغñÇØ¾ß ÇÕ´Ï´Ù. ¿¹»óµÇ´Â ¾î´ðÅͰ¡ µî·ÏµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ìµµ ÀÖ½À´Ï´Ù.

Workbench¿¡¼­´Â ¾î´ðÅ͸¦ »ç¿ëÇÏ¿© IResource¿Í °°Àº ±âº» Ç÷§Æû À¯Çü¿¡¼­ UI Á¤º¸¸¦ °¡Á®¿É´Ï´Ù. ¾î´ðÅÍ´Â UIº° Áö½Ä¿¡¼­ ±âº» À¯ÇüÀ» ¼û±â¹Ç·Î Workbench´Â ±âº» Á¤ÀǸ¦ º¯°æÇÏÁö ¾Ê°í ÀÎÅÍÆäÀ̽º¸¦ Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

¾î´ðÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì Workbench API¿¡¼­ Àü´ÞµÇ´Â Ŭ·¡½º´Â UI ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇϹǷΠŬ·¡½º Á¤ÀÇÀÇ ¼ö°¡ Áõ°¡ÇÏ°í ±ä¹ÐÇÑ °áÇÕÀÌ ÀÌ·ç¾îÁö°í ÄÚ¾î ¹× UI Ŭ·¡½º °£¿¡ ¼øÈ¯ Á¾¼Ó¼ºÀÌ »ý±é´Ï´Ù. ¾î´ðÅ͸¦ »ç¿ëÇÏ¿© ¸ðµç Ŭ·¡½º´Â IAdaptableÀ» ±¸ÇöÇϰí Ç÷¯±×ÀÎÀÌ ±âº» À¯ÇüÀÇ ÀÛµ¿À» È®ÀåÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ¾î´ðÅÍ ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÕ´Ï´Ù.

Workbench Äڵ忡¼­ ¾î´ðÅÍ¿¡ ´ëÇØ Ç÷§Æû ÄÚ¾î À¯ÇüÀ» Á¶È¸ÇÒ ¼ö ÀÖ´Â °æ¿ì°¡ Ç¥½ÃµË´Ï´Ù. Á¶È¸´Â À¯Çü¿¡ ´ëÇÑ UI ÁöÇâ Á¤º¸¿¡ ÀÀ´äÇÏ´Â ¹æ¹ýÀ» ¾Æ´Â ¿ÀºêÁ§Æ®¸¦ ¾ò´Â µ¥ »ç¿ëµË´Ï´Ù.

¿ä¼Ò ÆÑÅ丮

»ç¿ëÀÚ°¡ Workbench¸¦ ½Ã½ºÅÛ Á¾·áÇÒ °æ¿ì Workbench¿¡ Ç¥½ÃµÈ IAdaptable ¿ÀºêÁ§Æ®ÀÇ ÇöÀç »óŸ¦ ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. IMemento¶ó´Â Ư¼öÇÑ Çü½ÄÀ¸·Î ¿ÀºêÁ§Æ®ÀÇ ±âº» µ¥ÀÌÅÍ ¸Å°³º¯¼ö¸¦ ÀúÀåÇÏ¿© ¿ÀºêÁ§Æ®ÀÇ »óŸ¦ ÀúÀåÇÕ´Ï´Ù. IMemento¿¡¼­ ¿ÀºêÁ§Æ®¸¦ ´Ù½Ã ¸¸µé ¼ö ÀÖ´Â ÆÑÅ丮ÀÇ IDµµ ÀúÀåµÇ¸ç µ¥ÀÌÅÍ´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµË´Ï´Ù.

Ç÷§ÆûÀ» ´Ù½Ã ½ÃÀÛÇϸé Workbench´Â IMementoÀÇ ÆÑÅ丮 ID¿Í ¿¬°üµÈ ¿ä¼Ò ÆÑÅ丮¸¦ ã½À´Ï´Ù. org.eclipse.ui.elementFactories È®Àå¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®¸¦ È®ÀÎÇÏ¿© ÆÑÅ丮¸¦ ã½À´Ï´Ù.

¸¶Å©¾÷Àº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. ÆÑÅ丮ÀÇ id¿Í ÆÑÅ丮¸¦ ±¸ÇöÇÏ´Â ÇØ´ç Ŭ·¡½º¸¦ ÁöÁ¤Çϱ⸸ ÇÏ¸é µË´Ï´Ù.

´ÙÀ½ ÄÚµå ½º´ÏÆêÀº Workbench plugin.xml¿¡¼­ °¡Á®¿Â °ÍÀÔ´Ï´Ù.

   <extension
         point="org.eclipse.ui.elementFactories">
      <factory
            class="org.eclipse.ui.internal.model.ResourceFactory"
            id="org.eclipse.ui.internal.model.ResourceFactory">
      </factory>
      <factory
            class="org.eclipse.ui.internal.model.WorkspaceFactory"
            id="org.eclipse.ui.internal.model.WorkspaceFactory">
      </factory>
      <factory
            class="org.eclipse.ui.part.FileEditorInputFactory"
            id="org.eclipse.ui.part.FileEditorInputFactory">
      </factory>
      <factory
            class="org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory"
            id="org.eclipse.ui.internal.dialogs.WelcomeEditorInputFactory">
      </factory>
      <factory
            class="org.eclipse.ui.internal.WorkingSetFactory"
            id="org.eclipse.ui.internal.WorkingSetFactory">
      </factory>
   </extension>

Copyright IBM Corporation and others 2000, 2003.