Ç÷¯±×ÀÎÀº µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÏ¿© Workbench º¸±â¿¡ ³ªÅ¸³ª´Â ÀÚ¿ø ¹× ±âŸ ¿ÀºêÁ§Æ®ÀÇ À̹ÌÁö¿¡ ÁÖ¼®À» ´Þ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹ÀÌÅÍ´Â Ç÷¯±×ÀÎÀÌ ±âÁ¸ ÀÚ¿ø À¯Çü¿¡ ±â´ÉÀ» Ãß°¡ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù. ´ëºÎºÐÀÇ Ç¥ÁØ Workbench º¸±â´Â µ¥ÄÚ·¹À̼ÇÀÇ Ç¥½Ã¿¡ Âü¿©ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î PDE´Â 2Áø ÇÁ·ÎÁ§Æ®¿Í ¼Ò½º ÇÁ·ÎÁ§Æ®¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Â µ¥ÄÚ·¹ÀÌÅ͸¦ Á¦°øÇÕ´Ï´Ù.
com.example.sourceProject ÇÁ·ÎÁ§Æ®´Â ³×ºñ°ÔÀÌÅÍ¿¡ Ç¥½ÃµÈ À¯ÀÏÇÑ ¼Ò½º ÇÁ·ÎÁ§Æ®ÀÔ´Ï´Ù. ´Ù¸¥ ¸ðµç 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.gif" 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 Ŭ¶óÀÌ¾ðÆ®¿¡¼ »ç¿ëµË´Ï´Ù.