Çڵ鷯 È®ÀåÁ¡Àº Eclipse 3.0¿¡¼ Á¤ÀǵǴ ½ÇÇèÀû handlerSubmission
¿ä¼ÒÀÇ »ó¼úÀÔ´Ï´Ù. Çڵ鷯´Â ƯÁ¤ ½ÃÁ¡¿¡¼ ¸í·ÉÀÇ
ÀÛµ¿ÀÔ´Ï´Ù. ¸í·ÉÀº 0°³ ÀÌ»óÀÇ Çڵ鷯¿Í ¿¬°üµÉ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÓÀÇÀÇ ½ÃÁ¡¿¡¼ ¸í·ÉÀº Ȱ¼º Çڵ鷯¸¦ °®Áö ¾Ê°Å³ª ÇϳªÀÇ È°¼º Çڵ鷯¸¦
°®½À´Ï´Ù. Ȱ¼º Çڵ鷯´Â ÇöÀç ¸í·ÉÀÇ µ¿ÀÛ ¼öÇàÀ» Ã¥ÀÓÁö°í ÀÖ´Â Çڵ鷯ÀÔ´Ï´Ù. À̰ÍÀº Á¶Ä¡ Çڵ鷯 ¹× ´ë»ó ÀçÁöÁ¤ °¡´É Á¶Ä¡ÀÇ °³³ä°ú ¸Å¿ì À¯»çÇÕ´Ï´Ù.
Çڵ鷯 È®ÀåÀÚ¸¦ »ç¿ëÇϸé Ç÷¯±×ÀÎ °³¹ßÀÚ°¡ ƯÁ¤ Á¶°Ç¿¡¼ Ȱ¼ºÀÌ µÇ°í/µÇ°Å³ª »ç¿ëµÇ¾î¾ß ÇÏ´Â Çڵ鷯¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Çڵ鷯°¡ ºñȰ¼ºÀÎ °æ¿ì ¸í·ÉÀÌ ±×ÀÇ ÀÛµ¿À» Çڵ鷯¿¡ À§ÀÓÇÏÁö ¾Ê½À´Ï´Ù. Çڵ鷯¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì, Çڵ鷯´Â ½ÇÇàÇϵµ·Ï ¿äûµÇÁö ¾Ê½À´Ï´Ù. Áï Çڵ鷯ÀÇ ½ÇÇàÀÌ Â÷´ÜµË´Ï´Ù.
Á¶°ÇÀº 3.0 Áß¿¡ Ãß°¡µÇ´Â Ç¥Çö½Ä ¾ð¾î ±â´ÉÀ» »ç¿ëÇÏ¿© Á¤Àǵ˴ϴÙ. Á¶°ÇÀº activeWhen
¹× enabledWhen
ÀýÀ»
»ç¿ëÇÏ¿© Ç¥ÇöµË´Ï´Ù.
Workbench´Â À̵é Ç¥Çö½ÄÀÌ ÀÇÁ¸ÇÒ ¼ö ÀÖ´Â ¸î °¡Áö º¯¼ö¸¦ Á¦°øÇÕ´Ï´Ù. Áö¿øµÇ´Â º¯¼ö´Â Ȱ¼º ÄÁÅØ½ºÆ®, Ȱ¼º ÆíÁý±â, Ȱ¼º ºÎºÐ ¹× ÇöÀç ¼±ÅûçÇ×ÀÔ´Ï´Ù. ÀÌ Ãʱ⠵ðÀÚÀο¡¼´Â Áö¿øµÇÁö ¾ÊÁö¸¸ ´Ù¸¥ º¯¼ö¸¦ Ãß°¡Çϰųª Ç÷¯±×ÀÎ °³¹ßÀÚ°¡ ´Ù¸¥ º¯¼ö¸¦ Á¦°øÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ´Â ¹æ¹ý±îÁö ¿ëÀÌÇÏ°Ô ¾Ë ¼ö ÀÖ½À´Ï´Ù.
Á¶°ÇÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â Çڵ鷯°¡ ±âº» Çڵ鷯ÀÔ´Ï´Ù. ±âº» Çڵ鷯´Â ´Ù¸¥ Çڵ鷯°¡ ±×ÀÇ ¸ðµç Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¾Ê´Â °æ¿ì¿¡¸¸ Ȱ¼ºÀÔ´Ï´Ù. µÎ Çڵ鷯°¡ ¿©ÀüÈ÷ ¸¸Á·µÇ´Â Á¶°ÇÀ» °®´Â °æ¿ì Á¶°ÇÀÌ ºñ±³µË´Ï´Ù. ¾ÆÀ̵ð¾î´Â ±×ÀÇ Á¶°ÇÀÌ ´õ ƯÁ¤Çϰųª ´õ ·ÎÄÃÀÎ Çڵ鷯¸¦ ¼±ÅÃÇÏ´Â
°ÍÀÔ´Ï´Ù. À̸¦ ¼öÇàÇϱâ À§ÇØ Á¶°ÇÀÌ ÂüÁ¶ÇÏ´Â º¯¼ö¸¦ ã½À´Ï´Ù. Á¶°ÇÀº º¯¼ö "wins"¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ¸¸Á·µµÀÇ ¼ø¼(ÃÖ¼Ò Æ¯Á¤ºÎÅÍ ÃÖ´ë Æ¯Á¤±îÁö)´Â org.eclipse.ui.ISources
¿¡ Á¤Àǵ˴ϴÙ.
¿©ÀüÈ÷ Ãæµ¹À» ÇØ°áÇÏÁö ¸øÇÏ´Â °æ¿ì ¾î¶² Çڵ鷯µµ Ȱ¼ºÀÌ ¾Æ´Õ´Ï´Ù. ƯÁ¤ ÃßÀû ¿É¼ÇÀÌ ÄÑÁø °æ¿ì ¸Þ½ÃÁö°¡ ·Î±×¿¡ ±â·ÏµË´Ï´Ù. Ãæµ¹Àº µÎ °³ÀÇ ±âº» Çڵ鷯°¡ ÀÖ´Â °æ¿ì¿¡µµ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì°¡ ¹ß»ýÇÏÁö ¾Ê°Ô ÇÏ´Â °ÍÀº Ç÷¯±×ÀÎ °³¹ßÀÚ¿Í ÅëÇÕ Å×½ºÆ®ÀÇ Ã¥ÀÓÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Á¶°ÇÀº ºÒÇÊ¿äÇÑ Ç÷¯±×ÀÎ ·Îµå¸¦ ¸·´Â µ¥ »ç¿ëµË´Ï´Ù. À̵é Çڵ鷯 Á¤ÀÇ´Â ÇÁ·Ï½Ã¿¡¼ ·¦µË´Ï´Ù. ÇÁ·Ï½Ã°¡ ±âº» Çڵ鷯¸¦ ·ÎµåÇϱâ À§Çؼ´Â µÎ °¡Áö°¡ ¹ß»ýÇØ¾ß ÇÕ´Ï´Ù. ÇÁ·Ï½Ã¿¡ ´ëÇÑ Á¶°ÇÀÌ ¸¸Á·µÇ¾î Ȱ¼ºÀÌ µÇ°í, ¸í·ÉÀÌ À§ÀÓÇØ¾ß ÇÏ´Â ¾î¶² ÀÛ¾÷(¿¹: execute())À» ¼öÇàÇϵµ·Ï ¸í·É¿¡ ¿äÃ»ÇØ¾ß ÇÕ´Ï´Ù.
<@!ELEMENT extension (handler*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT handler (activeWhen? , class? , enabledWhen?)>
<!ATTLIST handler
commandId CDATA #REQUIRED
class CDATA #IMPLIED
helpContextId CDATA #IMPLIED>
ÀÌ Æ¯Á¤ Çڵ鷯¿Í °ü·ÃµÈ µµ¿ò¸» ÄÁÅØ½ºÆ®ÀÇ ID. ¸í·ÉÀº ¸í·É µ¿ÀÛ¿¡ ´ëÇÑ ÀÏ¹Ý ¼³¸íÀ» Á¦°øÇÏ´Â ÇÑÆí ÇØ´ç ±¸Çö¿¡ ´õ ƯÁ¤ÇÑ µµ¿ò¸»À» Á¦°øÇÏ´Â Çڵ鷯¿¡µµ ÀûÇÕÇÕ´Ï´Ù.
½ÃÀÛ ¹öÀü: 3.2
<!ELEMENT activeWhen (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
<!ELEMENT enabledWhen (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
<!ATTLIST class
class CDATA #IMPLIED>
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
ÀÏ¹Ý ·çÆ® ¿ä¼Ò. ÀÌ ¿ä¼Ò´Â È®ÀåÁ¡ ³»¿¡¼ Enablement Ç¥Çö½ÄÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. Enablement Ç¥Çö½ÄÀÇ ÇÏÀ§´Â and ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °áÇյ˴ϴÙ.
<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
ÀÌ ¿ä¼Ò´Â ÇØ´ç ÇÏÀ§ ¿ä¼Ò Ç¥Çö½Ä Æò°¡ °á°ú¿¡¼ NOT ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
ÀÌ ¿ä¼Ò´Â ¸ðµç ÇØ´ç ÇÏÀ§ ¿ä¼Ò Ç¥Çö½Ä Æò°¡ °á°ú¿¡¼ AND ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
ÀÌ ¿ä¼Ò´Â ¸ðµç ÇØ´ç ÇÏÀ§ ¿ä¼Ò Ç¥Çö½Ä Æò°¡ °á°ú¿¡¼ OR ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT instanceof EMPTY>
<!ATTLIST instanceof
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡ÀÌ µÈ ¿ÀºêÁ§Æ®ÀÇ instanceof °Ë»ç¸¦ ¼öÇàÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¿ÀºêÁ§Æ® À¯ÇüÀÌ ¼Ó¼º °ªÀ¸·Î ÁöÁ¤µÈ À¯ÇüÀÇ ÇÏÀ§ À¯ÇüÀÎ °æ¿ì Ç¥Çö½ÄÀº EvaluationResult.TRUE¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é EvaluationResult.FALSE¸¦ ¸®ÅÏÇÕ´Ï´Ù.
<!ELEMENT test EMPTY>
<!ATTLIST test
property CDATA #REQUIRED
args CDATA #IMPLIED
value CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡ÀÌ µÈ ¿ÀºêÁ§Æ®ÀÇ Æ¯¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ư¼º Å×½ºÅÍ È®ÀåÁ¡À» »ç¿ëÇÏ¿© Å×½ºÆ® °¡´ÉÇÑ Æ¯¼º ¼¼Æ®¸¦ È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦ Å×½ºÆ®¸¦ ¼öÇàÇϴ Ư¼º Å×½ºÅͰ¡ ¾ÆÁ÷ ·ÎµåµÇÁö ¾ÊÀº °æ¿ì Å×½ºÆ® Ç¥Çö½ÄÀº EvaluationResult.NOT_LOADED¸¦ ¸®ÅÏÇÕ´Ï´Ù.
<!ELEMENT systemTest EMPTY>
<!ATTLIST systemTest
property CDATA #REQUIRED
value CDATA #REQUIRED>
System.getProperty ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ½Ã½ºÅÛ Æ¯¼ºÀ» Å×½ºÆ®ÇÑ ´ÙÀ½ ±× °á°ú¸¦ °ª ¼Ó¼ºÀ» ÅëÇØ ÁöÁ¤µÈ °ª°ú ºñ±³ÇÕ´Ï´Ù.
<!ELEMENT equals EMPTY>
<!ATTLIST equals
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡ÀÌ µÈ ¿ÀºêÁ§Æ®ÀÇ equals °Ë»ç¸¦ ¼öÇàÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¿ÀºêÁ§Æ®°¡ ¼Ó¼º °ªÀ¸·Î Á¦°øµÈ °ª°ú µ¿ÀÏÇÑ °æ¿ì Ç¥Çö½ÄÀº EvaluationResult.TRUE¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é EvaluationResult.FALSE¸¦ ¸®ÅÏÇÕ´Ï´Ù.
<!ELEMENT count EMPTY>
<!ATTLIST count
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÄÝ·º¼Ç¿¡ ÀÖ´Â ¿ä¼ÒÀÇ ¼ö¸¦ Å×½ºÆ®ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST with
variable CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ¸ðµç ÇÏÀ§ ¿ä¼Ò¸¦ °Ë»çÇØ¾ß ÇÏ´Â ¿ÀºêÁ§Æ®¸¦ Á¦°øµÈ º¯¼ö¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ¿ÀºêÁ§Æ®·Î º¯°æÇÕ´Ï´Ù. º¯¼ö¸¦ ºÐ¼®ÇÒ ¼ö ¾ø´Â °æ¿ì Ç¥Çö½ÄÀº Æò°¡ Áß¿¡ ExpressionExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. with Ç¥Çö½ÄÀÇ ÇÏÀ§´Â and ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °áÇյ˴ϴÙ.
<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST resolve
variable CDATA #REQUIRED
args CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â ¸ðµç ÇÏÀ§ ¿ä¼Ò¸¦ °Ë»çÇØ¾ß ÇÏ´Â ¿ÀºêÁ§Æ®¸¦ Á¦°øµÈ º¯¼ö¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ¿ÀºêÁ§Æ®·Î º¯°æÇÕ´Ï´Ù. º¯¼ö¸¦ ºÐ¼®ÇÒ ¼ö ¾ø´Â °æ¿ì Ç¥Çö½ÄÀº Æò°¡ Áß¿¡ ExpressionExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. with Ç¥Çö½ÄÀÇ ÇÏÀ§´Â and ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °áÇյ˴ϴÙ.
<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST adapt
type CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡ÀÌ µÈ ¿ÀºêÁ§Æ®¸¦ ¼Ó¼º À¯Çü¿¡ ÀÇÇØ ÁöÁ¤µÈ À¯ÇüÀ¸·Î ÀûÀÀ½ÃŰ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. ÂüÁ¶µÈ À¯Çü ¶Ç´Â ¾î´ðÅͰ¡ ¾ÆÁ÷ ·ÎµåµÇÁö ¾ÊÀº °æ¿ì Ç¥Çö½ÄÀº ·ÎµåµÇÁö ¾ÊÀº »óŸ¦ ¸®ÅÏÇÕ´Ï´Ù. À¯Çü À̸§ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì Æò°¡ Áß¿¡ ExpressionExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. Adapt Ç¥Çö½ÄÀÇ ÇÏÀ§´Â and ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °áÇյ˴ϴÙ.
<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST iterate
operator (or|and) >
ÀÌ ¿ä¼Ò´Â Java.util.Collection À¯ÇüÀÇ º¯¼ö¸¦ ¹Ýº¹ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÃÊÁ¡ÀÌ µÈ ¿ÀºêÁ§Æ®°¡ java.util.Collection À¯ÇüÀÌ ¾Æ´Ñ °æ¿ì Ç¥Çö½ÄÀº Æò°¡ Áß¿¡ ExpressionExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.
<extension point=
"org.eclipse.ui.handlers"
>
<handler commandId=
"commandId"
class=
"org.eclipse.compare.Command"
>
<activeWhen>
<with variable=
"selection"
>
<count value=
"1"
/>
<iterate operator=
"and"
>
<adapt type=
"IResource"
/>
</iterate>
</with>
</activeWhen>
</handler>
</extension>
Ç÷¯±×ÀÎ ·Îµå¸¦ ´õ¿í ÇÇÇϱâ À§ÇØ Çڵ鷯°¡ »ç¿ëµÇ´Â ½Ã±â¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·Ï½Ã°¡ ¾ÆÁ÷ Çڵ鷯¸¦ ·ÎµåÇÏÁö ¾ÊÀº °æ¿ì Ç¥Çö½Ä ±¸¹®¸¸ÀÌ Çڵ鷯°¡ »ç¿ëµÇ´ÂÁö ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÇÁ·Ï½Ã°¡ Çڵ鷯¸¦ ·ÎµåÇÑ °æ¿ì ù ¹øÂ°·Î Ç¥Çö½Ä ±¸¹®À» Âü°íÇÕ´Ï´Ù. Ç¥Çö½Ä ±¸¹®ÀÌ true·Î Æò°¡µÇ´Â °æ¿ì Çڵ鷯°¡ »ç¿ë °¡´ÉÇÑÁö ¹¯½À´Ï´Ù. (À̰ÍÀº Ç¥Çö½Ä ±¸¹®°ú Çڵ鷯ÀÇ »ç¿ë »óÅ »çÀÌÀÇ »ý·«µÈ ºÎ¿ï "and" ¿ÀÆÛ·¹À̼ÇÀÔ´Ï´Ù.)
<extension point=
"org.eclipse.ui.handlers"
>
<handler commandId=
"commandId"
class=
"org.eclipse.Handler"
>
<enabledWhen>
<with variable=
"context"
>
<property id=
"id"
value=
"debugging"
/>
</with>
</enabledWhen>
</handler>
</extension>
¸ðµç Çڵ鷯´Â org.eclipse.core.commands.IHandler
¸¦ ±¸ÇöÇÕ´Ï´Ù. Workbench ¾È¿¡¼ org.eclipse.ui.handlers.IHandlerService
ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© Çڵ鷯¸¦ Ȱ¼ºÈ ¹× ºñȰ¼ºÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â IWorkbench
ÀÚü °°ÀÌ Áö¿ø Workbench ¿ÀºêÁ§Æ®·ÎºÎÅÍ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼ºñ½º¸¦ °Ë»öÇÏ·Á¸é
IWorkbench.getAdapter(IHandlerService.class)
°°Àº È£ÃâÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ Workbench¿¡¼ ·¹°Å½Ã Äڵ带 »ç¿ëÇÏ¿© Çڵ鷯¸¦ Ȱ¼ºÈ ¹× ºñȰ¼ºÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ¾Æ·¡¿¡ Ç¥½ÃµÈ ·¹°Å½Ã ¸ÞÄ¿´ÏÁòÀ» ÅëÇØ ¿Ï·áÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸ÞÄ¿´ÏÁòÀº Á¶Ä¡¸¦ »ç¿ëÇÏ¿© ¸Þ´º ¶Ç´Â µµ±¸ ¸ðÀ½À» Á¦°øÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡ À¯¿ëÇÕ´Ï´Ù.
IWorkbenchPartSite mySite; IAction myAction; myAction.setActionDefinitionId(commandId); IKeyBindingService service = mySite.getKeyBindingService(); service.registerAction(myAction);
Copyright (c) 2005 IBM Corporation and others.
All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ´Â Eclipse Public License v1.0ÀÇ Á¶Ç׿¡ µû¶ó »ç¿ëÇØ¾ß Çϸç
À¥ »çÀÌÆ®(http://www.eclipse.org/legal/epl-v10.html)¿¡¼µµ °ü·Ã »çÇ×À» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.