µ¥ÄÚ·¹ÀÌÅÍ

Ç÷¯±×ÀÎÀº µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÏ¿© Workbench º¸±â¿¡ ³ªÅ¸³ª´Â ÀÚ¿ø ¹× ±âŸ ¿ÀºêÁ§Æ®ÀÇ À̹ÌÁö¿¡ ÁÖ¼®À» ´Þ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹ÀÌÅÍ´Â Ç÷¯±×ÀÎÀÌ ±âÁ¸ ÀÚ¿ø À¯Çü¿¡ ±â´ÉÀ» Ãß°¡ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù. ´ëºÎºÐÀÇ Ç¥ÁØ Workbench º¸±â´Â µ¥ÄÚ·¹À̼ÇÀÇ Ç¥½Ã¿¡ Âü¿©ÇÕ´Ï´Ù.  

¿¹¸¦ µé¾î PDE´Â 2Áø ÇÁ·ÎÁ§Æ®¿Í ¼Ò½º ÇÁ·ÎÁ§Æ®¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Â µ¥ÄÚ·¹ÀÌÅ͸¦ Á¦°øÇÕ´Ï´Ù.

PDE µ¥ÄÚ·¹ÀÌÅͰ¡ ÀÖ´Â ÆÐŰÁö Ž»ö±â º¸±â

com.example.helloworld  ÇÁ·ÎÁ§Æ®´Â ³×ºñ°ÔÀÌÅÍ¿¡ Ç¥½ÃµÈ À¯ÀÏÇÑ ¼Ò½º ÇÁ·ÎÁ§Æ®ÀÔ´Ï´Ù. ´Ù¸¥ ¸ðµç 2Áø ÇÁ·ÎÁ§Æ®¿¡¼­ Java ÇÁ·ÎÁ§Æ® ¾ÆÀÌÄÜÀÇ ¿ÞÂÊ À§¿¡ 2Áø µ¥ÄÚ·¹ÀÌÅͰ¡ Ç¥½ÃµÇ´Â ¹æ¹ýÀ» Âü°íÇϽʽÿÀ. ÀÌ µ¥ÄÚ·¹ÀÌÅÍ´Â org.eclipse.ui.decorators È®ÀåÁ¡À» »ç¿ëÇÏ¿© PDE¿¡¼­ Á¦°øµË´Ï´Ù.

<extension
   point="org.eclipse.ui.decorators">
      <decorator
            lightweight="true"
            quadrant="TOP_LEFT"
            adaptable="true"
            label="%decorator.label"
            icon="icons/full/ovr16/binary_co.png"
            state="false"
            id="org.eclipse.pde.ui.binaryProjectDecorator">
         <description>
            %decorator.desc
         </description>
       <enablement>
            ...
       </enablement>
      </decorator>
   </extension>

µ¥ÄÚ·¹ÀÌÅÍ ±¸ÇöÀ» Á¦°øÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¸¶Å©¾÷¿¡¼­´Â ¼±¾ðÀûÀÌ°í °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅÍ·Î ¾Ë·ÁÁø °¡Àå ´Ü¼øÇÑ ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ¼±¾ðÀûÀÌ°í °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅͰ¡ Á¤ÀǵǴ °æ¿ì ¸¶Å©¾÷¿¡´Â µ¥ÄÚ·¹ÀÌÅÍÀÇ ¾ÆÀÌÄÜ, ¹èÄ¡ ¹× »ç¿ë Á¶°ÇÀÇ Àüü ¼³¸íÀÌ Æ÷ÇԵ˴ϴÙ. ¼±¾ðÀû µ¥ÄÚ·¹ÀÌÅÍ´Â ¾ÆÀÌÄÜÀÌ ·¹À̺íÀ» µ¥ÄÚ·¹ÀÌÆ®ÇÏ´Â µ¥ »ç¿ëµÉ ¶§¸¸ À¯¿ëÇÕ´Ï´Ù. Ç÷¯±×ÀÎÀº µ¥ÄÚ·¹ÀÌÅͰ¡ ÀÏ¹Ý ¾ÆÀÌÄÜ ¹× ¿À¹ö·¹ÀÌ¿ë ¾ÆÀÌÄÜ¿¡ ¿À¹ö·¹À̵Ǿî¾ß ÇÒ 4ºÐ¸é¸¸ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ±×¸²Ã³·³, PDE 2Áø ¾ÆÀÌÄÜÀº ÆÐŰÁö ¾ÆÀÌÄÜÀÇ ¿ÞÂÊ ¸Ç À§ 4ºÐ¸é¿¡¼­ ¿À¹ö·¹À̵˴ϴÙ.

Ç÷¯±×ÀÎÀÌ ¾ÆÀÌÄܻӸ¸ ¾Æ´Ï¶ó ·¹À̺í ÅØ½ºÆ®¸¦ Á¶ÀÛÇØ¾ß ÇÏ´Â °æ¿ì ¶Ç´Â ¾ÆÀÌÄÜÀÇ À¯ÇüÀÌ µ¿ÀûÀ¸·Î °áÁ¤µÇ´Â °æ¿ì, ºñ¼±¾ðÀûÀÎ °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ILightweightLabelDecorator¸¦ ±¸ÇöÇÏ´Â ±¸Çö Ŭ·¡½º¸¦ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ÁöÁ¤µÈ Ŭ·¡½º´Â ·¹ÀÌºí¿¡ Àû¿ëµÇ´Â ·±Å¸ÀÓ¿¡ Á¢µÎºÎ, Á¢¹ÌºÎ ¹× ¿À¹ö·¹ÀÌ À̹ÌÁö¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ·¹À̺í ÅØ½ºÆ®¿¡¼­ Á¢µÎºÎ ¹× Á¢¹ÌºÎ¸¦ ¿¬°áÇÏ°í ¿À¹ö·¹À̸¦ ¼öÇàÇÏ´Â ¸ÞÄ¿´ÏÁòÀº ¹é±×¶ó¿îµå ½º·¹µåÀÇ Workbench ÄÚµå·Î 󸮵˴ϴÙ. µû¶ó¼­ ILightweightLabelDecorator ±¸ÇöÀÇ Ç÷¯±×ÀÎÀ» ÅëÇØ ¼öÇàµÈ ÀÛ¾÷Àº UI ½º·¹µå¿¡ ¾ÈÀüÇØ¾ß ÇÕ´Ï´Ù.  (ÀÚ¼¼ÇÑ ³»¿ëÀº ºñUI ½º·¹µå¿¡¼­ ÄÚµå ½ÇÇà ÂüÁ¶.)

 ´ÙÀ½ ¸¶Å©¾÷¿¡¼­´Â ÀÌ ±â¼úÀ» »ç¿ëÇÏ¿© CVS Ŭ¶óÀÌ¾ðÆ®°¡ ÇØ´ç µ¥ÄÚ·¹ÀÌÅ͸¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.

<extension
   point="org.eclipse.ui.decorators">
      <decorator
            objectClass="org.eclipse.core.resources.IResource"
            adaptable="true"
        label="%DecoratorStandard.name"
            state="false"
            lightweight= "true"
            quadrant = "BOTTOM_RIGHT"
            class="org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator"
        id="org.eclipse.team.cvs.ui.decorator">
         <description>
            %DecoratorStandard.desc
         </description>
      </decorator>
   </extension>

µ¥ÄÚ·¹ÀÌÅÍ´Â ÃÖÁ¾ÀûÀ¸·Î Workbench ·¹ÀÌºí µ¥ÄÚ·¹ÀÌ¼Ç È¯°æ ¼³Á¤ ÆäÀÌÁö¸¦ ÅëÇØ »ç¿ëÀÚ¿¡ ÀÇÇØ Á¦¾îµË´Ï´Ù. °³º° µ¥ÄÚ·¹ÀÌÅ͸¦ ÄÑ°í ²ø ¼ö ÀÖ½À´Ï´Ù. ±×·¯ÇÑ °æ¿ì¿¡µµ ±âÁ¸ Ç÷§Æû SDK µ¥ÄÚ·¹ÀÌÅÍ¿Í ¿À¹ö·¦µÇ°Å³ª Ãæµ¹ÇÏÁö ¾Êµµ·Ï »ç¿ëÀÚ µ¥ÄÚ·¹ÀÌÅ͸¦ µðÀÚÀÎÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. º¹¼ö Ç÷¯±×ÀÎÀÌ µ¿ÀÏÇÑ 4ºÐ¸é¿¡ °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅ͸¦ Á¦°øÇÏ´Â °æ¿ì Ãæµ¹Àº ºñ°áÁ¤ÀûÀ¸·Î ÇØ°áµË´Ï´Ù.  

Ç÷¯±×ÀÎÀÌ ¸ðµç À̹ÌÁö ¹× ÀÚü ·¹ÀÌºí °ü¸®¸¦ ¼öÇàÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì lightweight ¼Ó¼ºÀº false·Î ¼³Á¤µÇ¾î¾ß Çϰí class ¼Ó¼ºÀº ILabelDecoratorÀ» ±¸ÇöÇϴ Ŭ·¡½º¸¦ À̸§ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ¿© ¿ø·¡ ·¹À̺íÀÇ À̹ÌÁö¿Í ÅØ½ºÆ®¸¦ »ç¿ëÀÚ °íÀ¯ÀÇ ¾î³ëÅ×À̼ÇÀ¸·Î µ¥ÄÚ·¹ÀÌÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù.  »ç¿ëÀÚ°¡ Á¢µÎºÎ, Á¢¹ÌºÎ ¹× ´Ü¼ø 4ºÐ¸é ¿À¹ö·¹ÀÌ¿¡ Á¦ÇѵÇÁö ¾ÊÀ¸¹Ç·Î, À¶Å뼺ÀÌ Áõ°¡ÇÕ´Ï´Ù.

µ¥ÄÚ·¹ÀÌÅÍÀÇ ±âŸ ¼Ó¼ºÀº ƯÁ¤ ±¸Çö ½ºÅ¸ÀÏ¿¡ µ¶¸³ÀûÀÔ´Ï´Ù. label ¹× description ¼Ó¼ºÀº ȯ°æ ¼³Á¤ ´ëÈ­ »óÀÚÀÇ µ¥ÄÚ·¹ÀÌÅÍ À̸§À» ÁöÁ¤ÇÏ°í ¼³¸íÇÏ´Â µ¥ »ç¿ëµÇ´Â ÅØ½ºÆ®¸¦ ÁöÁ¤ÇÕ´Ï´Ù. objectClass´Â µ¥ÄÚ·¹ÀÌÅͰ¡ Àû¿ëµÇ¾î¾ß ÇÒ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º¿¡ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. enablement ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ¿ÀºêÁ§Æ®°¡ µ¥ÄÚ·¹ÀÌÆ®µÇ¾î¾ß ÇÒ Á¶°ÇÀ» ¼³¸íÇÒ ¼ö ÀÖ½À´Ï´Ù.  adaptable Ç÷¡±×´Â IResource¿¡ ÀûÀÀµÇ´Â ¿ÀºêÁ§Æ®µµ µ¥ÄÚ·¹ÀÌÆ® ¿©ºÎ¸¦ ³ªÅ¸³À´Ï´Ù. state Ç÷¡±×´Â µ¥ÄÚ·¹ÀÌÅͰ¡ ±âº»ÀûÀ¸·Î Ç¥½Ã ¿©ºÎ¸¦ Á¦¾îÇÕ´Ï´Ù.

µ¥ÄÚ·¹ÀÌÅͰ¡ ¿¬»êÇÏ´Â µ¥ ½Ã°£ÀÌ ¸¹ÀÌ °É¸®°Å³ª È¥¶õ½º·± Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â °æ¿ì »ç¿ëÀÚ´Â ¼³Á¤µÇ¾î ÀÖ´Â µ¥ÄÚ·¹ÀÌÅ͸¦ ¼¼¹ÐÇÏ°Ô Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï ÀÚü ȯ°æ ¼³Á¤À» Á¦°øÇÏ·Á ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±â¹ýÀº CVS Ŭ¶óÀÌ¾ðÆ®¿¡¼­ »ç¿ëµË´Ï´Ù.

CVS µ¥ÄÚ·¹ÀÌÅÍ È¯°æ ¼³Á¤ ÆäÀÌÁö

 

µ¥ÄÚ·¹ÀÌÅÍ °»½Å ÁÖ±â

µ¥ÄÚ·¹À̼ÇÀº DecoratorManager¸¦ »ç¿ëÇÏ¿© µ¥ÄÚ·¹À̼ÇÀ» Á¦°øÇÏ´Â ·¹À̺í Á¦°øÀÚ¸¦ »õ·Î °íÃļ­ ½ÃÀ۵˴ϴÙ. µ¥ÄÚ·¹ÀÌ¼Ç Ã³¸®°¡ ¹è°æ¿¡¼­ ¼öÇàµÇ´Â µ¿¾È ·¹À̺íÀÌ ¿äûµÇ´Â ½Ã°£°ú µ¥ÄÚ·¹ÀÌ¼Ç °è»ê¿¡ ÀÇÇØ ¼Ò¿äµÉ labelProviderChanged À̺¥Æ®°¡ ¸¸±âµÇ´Â ½Ã°£ »çÀÌ¿¡ ±â°£ÀÌ ÀÖ½À´Ï´Ù. ÀÌ ½Ã°£ µ¿¾È ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ µ¥ÄÚ·¹À̼ÇÀº È¿À²¼º ÀÌÀ¯ ¶§¹®¿¡ ÇÑ ¹ø¸¸ °è»êµË´Ï´Ù. µ¥ÄÚ·¹ÀÌÅͰ¡ ÀÌ ½Ã°£ µ¿¾È º¯°æµÇ´Â °æ¿ì, ¿ä¼Ò¸¦ µ¥ÄÚ·¹ÀÌÆ®Çϱâ À§ÇÑ µÎ ¹øÂ° ¹× ÈÄ¼Ó È£ÃâÀÌ ¹«½ÃµÇ¹Ç·Î ÀÌÀü °á°ú°¡ ºê·Îµåij½ºÆ®µÉ ¼ö ÀÖ½À´Ï´Ù.

µ¥ÄÚ·¹ÀÌÅÍ Á¦°øÀÚ´Â µ¥ÄÚ·¹À̼ÇÀÌ ¹ß»ýÇÏ´Â Áß¿¡´Â µ¥ÄÚ·¹ÀÌÅÍ º¯°æÀ» ÇÇÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀÌ ºÒ°¡´ÉÇÑ °æ¿ì labelProviderChanged°¡ ó¸®µÈ ÈÄ ¿ä¼Ò¸¦ µ¥ÄÚ·¹ÀÌÆ®ÇÏ´Â µÎ ¹øÂ° È£ÃâÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù.