¼±ÅûçÇ×ÀÌ À̱âÁ¾À̸é Áö½Ã¹®Àº ¼±ÅûçÇ×ÀÇ °øÅë À¯Çü¿¡ ´ëÇØ µî·ÏµÈ °æ¿ì¿¡ Àû¿ëµË´Ï´Ù. Á÷Á¢ ÀÏÄ¡°¡ °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¼öÆÛŬ·¡½º ¹× ¼öÆÛÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ ÀÏÄ¡ÇÏ´Â Ç׸ñÀ» ã½À´Ï´Ù.
À̸§ ÇÊÅ͸¦ »ç¿ëÇÏ¿© ¼±ÅûçÇ×À» ´õ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§ ÇÊÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì ¼±ÅûçÇ×ÀÇ ¸ðµç ¿ÀºêÁ§Æ®°¡ ÇØ´ç ÇÊÅÍ¿Í ÀÏÄ¡ÇØ¾ß¸¸ Áö½Ã¹®À» Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ÀºêÁ§Æ® Áö½Ã¹®ÀÇ °³º° Á¶Ä¡´Â enablesFor ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÇØ´ç Á¶Ä¡°¡ ´ÜÀÏ, ´ÙÁß ¶Ç´Â ±âŸ ¼±ÅûçÇ× À¯Çü Áß ¾î´À À¯Çü¿¡ ´ëÇØ¼¸¸ Àû¿ëµÇ¾î¾ß ÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ÇÊÅ͸µ ¸ÞÄ¿´ÏÁòÀÌ Àû´çÇÏÁö ¾ÊÀ¸¸é, Á¶Ä¡ Áö½Ã¹®Àº filter ¸ÞÄ¿´ÏÁòÀ¸·Î »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì ´ë»ó ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼ºÀº ÀÏ·ÃÀÇ À̸§ °ª ½Ö¿¡ ¼³¸íµË´Ï´Ù. ¼±ÅûçÇ׿¡ Àû¿ëµÇ´Â ¼Ó¼ºÀº ƯÁ¤ À¯Çü°ú °ü·ÃµÇ¸ç Workbench ÀÚüÀÇ µµ¸ÞÀÎ ¹üÀ§¸¦ ³Ñ¾î¼¹Ç·Î ÀÌ ·¹º§ÀÇ ÇÊÅ͸µ¿¡¼´Â ½ÇÁ¦ ¼±ÅûçÇ×ÀÌ Workbench¸¦ ´ëÇ¥ÇÕ´Ï´Ù.
enablement ¹× visibility ¿ä¼Ò¸¦ °¢°¢ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â Ȱ¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ ÆÇº°ÇÏ´Â µ¥ Æò°¡µÇ´Â ºÎ¿ï Ç¥Çö½ÄÀ» Æ÷ÇÔÇÕ´Ï´Ù.
±¸¹®Àº enablement ¹× visibility ¿ä¼Ò¿¡ ´ëÇØ µ¿ÀÏÇÕ´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â ÇϳªÀÇ ºÎ¿ï Ç¥Çö½Ä ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù. °¡Àå °£´ÜÇÑ °æ¿ì¿¡ À̰ÍÀº objectClass, objectState, pluginState ¶Ç´Â systemProperty ¿ä¼Ò°¡ µË´Ï´Ù. º¹ÀâÇÑ °æ¿ì¿¡´Â and, or ¹× not ¿ä¼Ò°¡ Á¶ÇÕµÇ¾î ºÎ¿ï Ç¥Çö½ÄÀ» Çü¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. and ¿ä¼Ò¿Í or ¿ä¼Ò´Â ¸ðµÎ 2°³ÀÇ ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. not ¿ä¼Ò´Â 1°³ÀÇ ºÎ¼Ó¿ä¼Ò¸¸ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.
<!ELEMENT extension (objectContribution , viewerContribution)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT objectContribution (filter* , visibility? , enablement? , menu* , action*)>
<!ATTLIST objectContribution
id CDATA #REQUIRED
objectClass CDATA #REQUIRED
nameFilter CDATA #IMPLIED
adaptable (true | false) "false">
ÀÌ ¿ä¼Ò´Â ÁöÁ¤µÈ À¯ÇüÀÇ ¿ÀºêÁ§Æ®¸¦ ¼±ÅÃÇÏ´Â ¸ðµç Ç¥½Ã±â ÄÁÅØ½ºÆ® ¸Þ´º¿¡ ´ëÇØ ¸Þ´º ¶Ç´Â Á¶Ä¡ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT viewerContribution (visibility? , menu* , action*)>
<!ATTLIST viewerContribution
id CDATA #REQUIRED
targetID CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ƯÁ¤ º¸±â ¶Ç´Â ÆíÁý±â ÆÄÆ® ÄÁÅØ½ºÆ® ¸Þ´º¿¡ ´ëÇØ ¸Þ´º ¶Ç´Â Á¶Ä¡ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT action (selection* , enablement?)>
<!ATTLIST action
id CDATA #REQUIRED
label CDATA #REQUIRED
definitionId CDATA #IMPLIED
menubarPath CDATA #IMPLIED
icon CDATA #IMPLIED
helpContextId CDATA #IMPLIED
style (push|radio|toggle|pulldown)
state (true | false)
class CDATA #REQUIRED
enablesFor CDATA #IMPLIED
overrideActionId CDATA #IMPLIED
tooltip CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â UI¿¡¼ »ç¿ëÀÚ°¡ È£ÃâÇÒ ¼ö ÀÖ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù.
push | - ÀÏ¹Ý ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. | |
radio | - ¶óµð¿À ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. °°Àº ¸Þ´º³ª µµ±¸ ¸ðÀ½ ±×·ì¿¡ ÀÖ´Â ¶óµð¿À ½ºÅ¸ÀÏÀÇ Á¶Ä¡´Â ¶óµð¿À ¼¼Æ®·Î µ¿ÀÛÇÕ´Ï´Ù. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. | |
toggle | - ¼±ÅÃµÈ ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â Åä±Û µµ±¸ Ç׸ñ. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. | |
pulldown | - °è´Ü½Ä ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ |
! | - 0°³ Ç׸ñ ¼±Åà | |
? | - 0°³ ¶Ç´Â 1°³ Ç׸ñ ¼±Åà | |
+ | - 1°³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
multiple, 2+ | - 2°³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
n | - ¼±ÅÃÇÑ Ç׸ñÀÇ Á¤È®ÇÑ °³¼ö. ¿¹¸¦ µé¾î, enablesFor=" 4"À̸é Ç׸ñ ³× °³°¡ ¼±ÅÃµÈ °æ¿ì¿¡¸¸ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. | |
* | - ¼±ÅÃÇÑ Ç׸ñ °³¼ö |
Á¶Ä¡ È®Àå¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor, selection ¹× enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ ´ëÇ¥ÀÚ°¡ ÀνºÅϽºÈµÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå ³»¿¡¼ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
<!ELEMENT filter EMPTY>
<!ATTLIST filter
name CDATA #REQUIRED
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡ ÁöÁ¤µÈ ¼Ó¼º »óÅÂÀÇ °æ¿ì ÀÏÄ¡ÇÕ´Ï´Ù. ¼±ÅûçÇ׿¡¼ °¢ ¿ÀºêÁ§Æ®´Â ±¸ÇöÇϰųª org.eclipse.ui.IActionFilter¿¡ Àû¿ë½ÃÄÑ¾ß ÇÕ´Ï´Ù.
<!ELEMENT menu (separator+ , groupMarker*)>
<!ATTLIST menu
id CDATA #REQUIRED
label CDATA #REQUIRED
path CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT separator EMPTY>
<!ATTLIST separator
name CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ ¸Þ´º ºÐ¸®ÀÚ¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT groupMarker EMPTY>
<!ATTLIST groupMarker
name CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ À̸§ ÁöÁ¤µÈ ±×·ìÀ» ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ ¿ä¼Ò´Â separator ¿ä¼Ò¿Í´Â ´Þ¸® »õ ¸Þ´º¿¡ ½Ã°¢ÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
<!ELEMENT selection EMPTY>
<!ATTLIST selection
class CDATA #REQUIRED
name CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ±âÃÊÇÑ Á¶Ä¡ Ȱ¼º ÆÇº°À» µ½´Â µ¥ »ç¿ëµË´Ï´Ù. enablement ¿ä¼Ò°¡ ÁöÁ¤µÇ´Â °æ¿ì ¹«½ÃµË´Ï´Ù.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
ÀÌ ¿ä¼Ò´Â È®ÀåÀÇ È°¼ºÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
ÀÌ ¿ä¼Ò´Â È®ÀåÀÇ °¡½Ã¼ºÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
ÀÌ ¿ä¼Ò´Â µÎ °³ÀÇ ºÎ¼Ó¿ä¼Ò Æò°¡ °á°ú¿¡¼ ºÎ¿ï AND ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
ÀÌ ¿ä¼Ò´Â µÎ °³ÀÇ ºÎ¼Ó¿ä¼Ò Æò°¡ °á°ú¿¡¼ ºÎ¿ï OR ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
ÀÌ ¿ä¼Ò´Â ºÎ¼Ó¿ä¼Ò Ç¥Çö½Ä Æò°¡ °á°ú¿¡¼ ºÎ¿ï NOT ¿¬»êÀ» ³ªÅ¸³À´Ï´Ù.
<!ELEMENT objectClass EMPTY>
<!ATTLIST objectClass
name CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡¼ ÁöÁ¤µÈ Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸé Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù.
<!ELEMENT objectState EMPTY>
<!ATTLIST objectState
name CDATA #REQUIRED
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡ ÁöÁ¤µÈ ¼Ó¼º »óŰ¡ ÀÖÀ¸¸é Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù. Ç¥Çö½ÄÀÇ ÀÌ À¯ÇüÀ» Æò°¡ÇÏ·Á¸é ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¸¦ ±¸ÇöÇϰųª org.eclipse.ui.IActionFilter ÀÎÅÍÆäÀ̽º¿¡ Àû¿ë½ÃÄÑ¾ß ÇÕ´Ï´Ù.
<!ELEMENT pluginState EMPTY>
<!ATTLIST pluginState
id CDATA #REQUIRED
value (installed|activated) "installed">
ÀÌ ¿ä¼Ò´Â Ç÷¯±×ÀÎÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ç÷¯±×ÀÎÀÇ »óÅ´ installed ¶Ç´Â activated Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.
<!ELEMENT systemProperty EMPTY>
<!ATTLIST systemProperty
name CDATA #REQUIRED
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÀϺΠ½Ã½ºÅÛ Æ¯¼ºÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ư¼º °ªÀº java.lang.System¿¡¼ °Ë»öµË´Ï´Ù.
<!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>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡À» ¸ÂÃá ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº °Ë»ç¸¦ ¼öÇàÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ À¯ÇüÀÌ ¼Ó¼º °ªÀ¸·Î ÁöÁ¤µÈ À¯ÇüÀÇ ÇÏÀ§ À¯ÇüÀÎ °æ¿ì Ç¥Çö½ÄÀº 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>
ÀÌ ¿ä¼Ò´Â ÃÊÁ¡À» ¸ÂÃá ¿ÀºêÁ§Æ®ÀÇ µ¿ÀÏ °Ë»ç¸¦ ¼öÇàÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¿ÀºêÁ§Æ®°¡ ¼Ó¼º °ª¿¡¼ Á¦°øÇÑ °ª°ú µ¿ÀÏÇÑ °æ¿ì Ç¥Çö½ÄÀº 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ÀÌ Ã³¸®µË´Ï´Ù.
À§ÀÇ ¿¹¿¡¼ ÁöÁ¤µÈ ¿ÀºêÁ§Æ® Áö½Ã¹® Á¶Ä¡´Â ´ÜÀÏ ¼±ÅûçÇ×(enablesFor ¼Ó¼º)¿¡ ´ëÇØ¼¸¸ Ȱ¼ºÈµË´Ï´Ù. ¶ÇÇÑ ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®´Â ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º(IFile)¸¦ ±¸ÇöÇØ¾ß Çϸç Java ÆÄÀÏÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌ Á¶Ä¡´Â ÀÌÀü¿¡ ÀÛ¼ºµÈ ¼ºê¸Þ´º¿¡ Ãß°¡µË´Ï´Ù. ÀÌ Áö½Ã¹®Àº Çʼö ¼±ÅûçÇ×ÀÌ ÀÖ´Â ¸ðµç º¸±â¿¡ Àû¿ëµË´Ï´Ù.<extension point=
"org.eclipse.ui.popupMenus"
>
<objectContribution id=
"com.xyz.C1"
objectClass=
"org.eclipse.core.resources.IFile"
nameFilter=
"*.java"
>
<menu id=
"com.xyz.xyzMenu"
path=
"additions"
label=
"&XYZ Java Tools"
>
<separator name=
"group1"
/>
</menu>
<action id=
"com.xyz.runXYZ"
label=
"&Run XYZ Tool"
style=
"push"
menubarPath=
"com.xyz.xyzMenu/group1"
icon=
"icons/runXYZ.gif"
helpContextId=
"com.xyz.run_action_context"
class=
"com.xyz.actions.XYZToolActionDelegate"
enablesFor=
"1"
>
</action>
</objectContribution>
<viewerContribution id=
"com.xyz.C2"
targetID=
"org.eclipse.ui.views.TaskList"
>
<action id=
"com.xyz.showXYZ"
label=
"&Show XYZ"
style=
"toggle"
state=
"true"
menubarPath=
"additions"
icon=
"icons/showXYZ.gif"
helpContextId=
"com.xyz.show_action_context"
class=
"com.xyz.actions.XYZShowActionDelegate"
>
</action>
</viewerContribution>
</extension>
¹Ý¸é, À§ÀÇ Ç¥½Ã±â Áö½Ã¹®Àº Ÿ½ºÅ© º¸±â ÄÁÅØ½ºÆ® ¸Þ´º¿¡¼¸¸ ³ªÅ¸³ª¸ç º¸±âÀÇ ¼±ÅûçÇ׿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.
´ÙÀ½Àº ÇÊÅÍ ¸ÞÄ¿´ÏÁòÀÇ ¿¹ÀÔ´Ï´Ù. ÀÌ °æ¿ì Á¶Ä¡´Â ¿ì¼±¼øÀ§°¡ ³ô°í ¿Ï·áµÈ IMarkers¿¡ ´ëÇØ¼¸¸ ³ªÅ¸³³´Ï´Ù.
´ÙÀ½Àº Ç¥½Ã ¿©ºÎ ¿ä¼Ò »ç¿ëÀÇ ±âŸ ¿¹Á¦ÀÔ´Ï´Ù.<extension point=
"org.eclipse.ui.popupMenus"
>
<objectContribution id=
"com.xyz.C3"
objectClass=
"org.eclipse.core.resources.IMarker"
>
<filter name=
"done"
value=
"true"
/>
<filter name=
"priority"
value=
"2"
/>
<action id=
"com.xyz.runXYZ"
label=
"High Priority Completed Action Tool"
icon=
"icons/runXYZ.gif"
class=
"com.xyz.actions.MarkerActionDelegate"
>
</action>
</objectContribution>
</extension>
<extension point=
"org.eclipse.ui.popupMenus"
>
<viewerContribution id=
"com.xyz.C4"
targetID=
"org.eclipse.ui.views.TaskList"
>
<visibility>
<and>
<pluginState id=
"com.xyz"
value=
"activated"
/>
<systemProperty name=
"ADVANCED_MODE"
value=
"true"
/>
</and>
</visibility>
<action id=
"com.xyz.showXYZ"
label=
"&Show XYZ"
style=
"push"
menubarPath=
"additions"
icon=
"icons/showXYZ.gif"
helpContextId=
"com.xyz.show_action_context"
class=
"com.xyz.actions.XYZShowActionDelegate"
>
</action>
</viewerContribution>
</extension>
À§ÀÇ ¿¹Á¦¿¡¼ ÁöÁ¤ÇÑ Á¶Ä¡´Â "com.xyz" Ç÷¯±×ÀÎÀÌ È°¼ºÈµÇ°í ÁöÁ¤ÇÑ ½Ã½ºÅÛ Æ¯¼ºÀÌ true·Î ¼³Á¤µÈ °æ¿ì¿¡¸¸ Ÿ½ºÅ© º¸±â ÅØ½ºÆ® ¸Þ´º¿¡ ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù.
Âü°í: ÀÌÀü ¹öÀü°úÀÇ È£È¯¼ºÀ» À§ÇØ org.eclipse.ui.IActionDelegate°¡ ¿ÀºêÁ§Æ® Áö½Ã¹®¿¡ ´ëÇØ ±¸ÇöµÉ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÆ® ³»ÀÇ ÄÁÅØ½ºÆ® ¸Þ´º È®ÀåÀº ´ë»ó ÆÄÆ®°¡ È®Àå¿¡ ÇØ´çÇÏ´Â ¸Þ´º¸¦ °ø°³ÇÒ ¶§¸¸ °¡´ÉÇÕ´Ï´Ù. ÀÌ È®ÀåÀº Á¦Ç°ÀÇ È®À强À» Çâ»ó½ÃŰ¹Ç·Î ±ÇÀåµË´Ï´Ù. À̸¦ ¼ºÃëÇÏ·Á¸é °¢ ÆÄÆ®´Â IWorkbenchPartSite.registerContextMenu¸¦ È£ÃâÇÏ¿© Á¤ÀǵǴ ÄÁÅØ½ºÆ® ¸Þ´º¸¦ °ø°³ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷ÀÌ ¿Ï·áµÇ¸é Workbench´Â ±âÁ¸ÀÇ Á¶Ä¡ È®ÀåÀ» ÀÚµ¿À¸·Î »ðÀÔÇÕ´Ï´Ù.
¸Þ´º ID´Â µî·ÏµÈ °¢ ¸Þ´º¿¡ ´ëÇØ Á¦°øµÇ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ÆÄÆ® »çÀÌÀÇ Àϰü¼ºÀ» À§ÇØ ¸ðµç ÆÄÆ® ±¸ÇöÀÚ°¡ ´ÙÀ½ °èȹÀ» äÅÃÇØ¾ß ÇÕ´Ï´Ù.
¶ÇÇÑ Workbench¿¡ µî·ÏµÈ ¸ðµç ÄÁÅÙ½ºÆ® ¸Þ´º¿¡´Â ID IWorkbenchActionConstants.MB_ADDITIONS¸¦ °®´Â Ç¥ÁØ »ðÀÔÁ¡ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±âŸ Ç÷¯±×ÀÎÀº ÀÌ °ªÀ» »ðÀÔÀ» À§ÇÑ ÂüÁ¶Á¡À¸·Î »ç¿ëÇÕ´Ï´Ù. »ðÀÔÁ¡Àº ÀûÀýÇÑ »ðÀÔ À§Ä¡¿¡¼ ¸Þ´º¿¡ GroupMarker¸¦ Ãß°¡ÇÏ¿© Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ® ¸Þ´ºÀÇ ¼±ÅûçÇ×ÀÎ WorkbenchÀÇ ¿ÀºêÁ§Æ®´Â org.eclipse.ui.IActionFilter¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ÇÊÅ͸µ ƯÁ¤ À¯ÇüÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ÇÊÅ͸µ °èȹÀÔ´Ï´Ù. Workbench´Â IActionFilter¸¦ ±¸ÇöÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ Å×½ºÆ®ÇÏ¿© ¼±ÅûçÇ׿¡ ´ëÇÑ ÇÊÅ͸¦ °Ë»öÇÕ´Ï´Ù. ½ÇÆÐÇÏ´Â °æ¿ì Workbench´Â IAdaptable ¸ÞÄ¿´ÏÁòÀ» ÅëÇØ ÇÊÅ͸¦ ¿ä±¸ÇÕ´Ï´Ù.
Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´Ï¸ð´ÐÀ» ÀÎÄÚµåÇϴ Ư¼ö ¹®ÀÚ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. º¯È¯µÇ´Â ÅØ½ºÆ®¿¡¼ ¼±ÅÃÇÑ ¹®ÀÚ ¾Õ¿¡ ¾ÚÆÛ»÷µå('&') ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ÀÌ Æ¯¼ö ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. XML ¹®ÀÚ¿¿¡´Â ¾ÚÆÛ»÷µå¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î & ¹®ÀÚ ¿£Æ¼Æ¼¸¦ »ç¿ëÇϽʽÿÀ.
µÑ ÀÌ»óÀÇ Á¶Ä¡°¡ ÇϳªÀÇ ´ÜÀÏ È®Àå¿¡ ÀÇÇØ ¸Þ´º¿¡ Á¦°øµÈ °æ¿ì Á¶Ä¡´Â plugin.xml ÆÄÀÏ¿¡ ³ª¿µÇ´Â ¼ø¼¿Í ¹Ý´ë·Î ³ªÅ¸³³´Ï´Ù. À̰ÍÀº È®½ÇÇÏ°Ô Á÷°üÀûÀÌÁö ¾Ê½À´Ï´Ù. ±×·¯³ª À̰ÍÀ» Eclipse Ç÷§Æû API°¡ È®Á¤µÈ ÈÄ ¹ß°ßÇß½À´Ï´Ù. ÀÌ ÀÛµ¿À» Áö±Ý º¯°æÇÏ¸é ±âÁ¸ ÀÛµ¿¿¡ ÀÇÁ¸ÇÏ´Â ¸ðµç Ç÷¯±×ÀÎÀÌ Áߴܵ˴ϴÙ.
selection ¹× enablement ¿ä¼Ò´Â ¼·Î °°ÀÌ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. enablement ¿ä¼Ò´Â objectClass ¹× objectState ÇÏÀ§ ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© selection ¿ä¼Ò¸¦ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°½À´Ï´Ù.
´ÙÀ½À» »ç¿ëÇÏ¿© Ç¥ÇöµÉ ¼ö ÀÖ½À´Ï´Ù.<selection class=
"org.eclipse.core.resources.IFile"
name=
"*.java"
>
</selection>
<enablement>
<and>
<objectClass name=
"org.eclipse.core.resources.IFile"
/>
<objectState name=
"extension"
value=
"java"
/>
</and>
</enablement>
Copyright (c) 2000, 2004 IBM Corporation and others.
All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â
º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ´Â ÀÏ¹Ý °ø¿ë ¶óÀ̼¾½º v1.0ÀÇ Á¶Ç׿¡ µû¶ó
http://www.eclipse.org/legal/cpl-v10.html¿¡¼
»ç¿ë °¡´ÉÇÕ´Ï´Ù.