ÀÌ È®ÀåÁ¡Àº ¸Þ´º, ¸Þ´º Ç׸ñ ¹× µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ Workbench âÀÇ °øÅë ¿µ¿ª¿¡ Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ÄÁÆ®¸®ºä¼ÇÀ» Á¶Ä¡ ¼¼Æ®¶ó°í Çϰí Perspective¸¦ »ç¿ëÀÚ Á¤ÀÇÇÏ´Â »ç¿ëÀÚ¿¡ µû¶ó Workbench â¿¡ ³ªÅ¸³³´Ï´Ù.
ÇöÀç Á¶Ä¡ ¼¼Æ®¿¡ ¿µÇâÀ» ÁÖ´Â ±¸Çö Á¦ÇÑ»çÇ×ÀÌ ÀÖ½À´Ï´Ù. Á¶Ä¡ ¼¼Æ® ³»¿¡¼ ÂüÁ¶µÇ´Â Àüü ¸Þ´º ±¸Á¶¸¦ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ±×·¯¹Ç·Î ¿¹¸¦ µé¾î, ´Ù¸¥ Á¶Ä¡ ¼¼Æ®¿¡¼ "example"À̶ó´Â ¸Þ´º¸¦ Á¤ÀÇÇÏ´Â °æ¿ì ±âÁ¸ "example"À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. "example" ¸Þ´º¸¦ »ç¿ëÇÏ·Á´Â ¸ðµç Á¶Ä¡ ¼¼Æ®¿¡¼ ÀÌ ¸Þ´º¸¦ ÀçÁ¤ÀÇÇØ¾ß ÇÕ´Ï´Ù.
enablement ¹× visibility ¿ä¼Ò¸¦ °¢°¢ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â Ȱ¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ ÆÇº°ÇÏ´Â µ¥ Æò°¡µÇ´Â ºÎ¿ï Ç¥Çö½ÄÀ» Æ÷ÇÔÇÕ´Ï´Ù.
±¸¹®Àº enablement ¹× visibility ¿ä¼Ò¿¡ ´ëÇØ µ¿ÀÏÇÕ´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â ÇϳªÀÇ ºÎ¿ï Ç¥Çö½Ä ÇÏÀ§ ¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù. °¡Àå °£´ÜÇÑ °æ¿ì¿¡ À̰ÍÀº objectClass, objectState, pluginState ¶Ç´Â systemProperty ¿ä¼Ò°¡ µË´Ï´Ù. º¹ÀâÇÑ °æ¿ì¿¡´Â and, or ¹× not ¿ä¼Ò°¡ Á¶ÇÕµÇ¾î ºÎ¿ï Ç¥Çö½ÄÀ» Çü¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. and ¿ä¼Ò¿Í or ¿ä¼Ò´Â ¸ðµÎ µÎ °³ÀÇ ÇÏÀ§ ¿ä¼Ò¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. not ¿ä¼Ò´Â 1°³ÀÇ ÇÏÀ§ ¿ä¼Ò¸¸ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.
<!ELEMENT extension (actionSet+)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT actionSet (menu* , action*)>
<!ATTLIST actionSet
id CDATA #REQUIRED
label CDATA #REQUIRED
visible (true | false)
description CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â Á¶Ä¡ ¶Ç´Â ¸Þ´ºÀÇ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ELEMENT action (selection* | enablement?)>
<!ATTLIST action
id CDATA #REQUIRED
label CDATA #REQUIRED
accelerator CDATA #IMPLIED
definitionId CDATA #IMPLIED
menubarPath CDATA #IMPLIED
toolbarPath CDATA #IMPLIED
icon CDATA #IMPLIED
disabledIcon CDATA #IMPLIED
hoverIcon CDATA #IMPLIED
tooltip CDATA #IMPLIED
helpContextId CDATA #IMPLIED
style (push|radio|toggle|pulldown) "push"
state (true | false)
pulldown (true | false)
class CDATA #IMPLIED
retarget (true | false)
allowLabelUpdate (true | false)
enablesFor CDATA #IMPLIED>
ÀÌ ¿ä¼Ò´Â UI¿¡¼ »ç¿ëÀÚ°¡ È£ÃâÇÒ ¼ö ÀÖ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù.
push | - ÀÏ¹Ý ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. | |
radio | - ¶óµð¿À ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. °°Àº ¸Þ´º³ª µµ±¸ ¸ðÀ½ ±×·ì¿¡ ÀÖ´Â ¶óµð¿À ½ºÅ¸ÀÏÀÇ Á¶Ä¡´Â ¶óµð¿À ¼¼Æ®·Î µ¿ÀÛÇÕ´Ï´Ù. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. | |
toggle | - ¼±ÅÃµÈ ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â Åä±Û µµ±¸ Ç׸ñ. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. | |
pulldown | - °è´Ü½Ä ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ ¿·ÀÇ µå·Ó ´Ù¿î ¸Þ´º. |
! | - 0°³ Ç׸ñ ¼±Åà | |
? | - 0°³ ¶Ç´Â 1°³ Ç׸ñ ¼±Åà | |
+ | - 1°³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
multiple, 2+ | - µÎ °³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
n | - ¼±ÅÃÇÑ Ç׸ñÀÇ Á¤È®ÇÑ °³¼ö. ¿¹¸¦ µé¾î, enablesFor=" 4"À̸é Ç׸ñ ³× °³°¡ ¼±ÅÃµÈ °æ¿ì¿¡¸¸ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. | |
* | - ¼±ÅÃÇÑ Ç׸ñ °³¼ö |
<!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(OSGiÀÇ "resolved" °³³ä¿¡ ÇØ´ç) ¶Ç´Â activated(OSGiÀÇ "active" °³³ä¿¡ ÇØ´ç) Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.
<!ELEMENT systemProperty EMPTY>
<!ATTLIST systemProperty
name CDATA #REQUIRED
value CDATA #REQUIRED>
ÀÌ ¿ä¼Ò´Â ÀϺΠ½Ã½ºÅÛ Æ¯¼ºÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ư¼º °ªÀº java.lang.System¿¡¼ °Ë»öµË´Ï´Ù.
<extension point =
"org.eclipse.ui.actionSets"
>
<actionSet id=
"com.xyz.actionSet"
label=
"My Actions"
>
<menu id=
"com.xyz.xyzMenu"
label=
"XYZ Menu"
path=
"additions"
>
<separator name=
"group1"
/>
<separator name=
"option1"
/>
</menu>
<action id=
"com.xyz.runXYZ"
label=
"&Run XYZ Tool"
style=
"toggle"
state=
"false"
menubarPath=
"com.xyz.xyzMenu/group1"
icon=
"icons/runXYZ.gif"
tooltip=
"Run XYZ Tool"
helpContextId=
"com.xyz.run_action_context"
class=
"com.xyz.actions.RunXYZ"
enablesFor=
"1"
>
<selection class=
"org.eclipse.core.resources.IFile"
name=
"*.java"
/>
</action>
<action id=
"com.xyz.runABC"
label=
"&Run ABC Tool"
style=
"push"
menubarPath=
"com.xyz.xyzMenu/group1"
toolbarPath=
"Normal/XYZ"
icon=
"icons/runABC.gif"
tooltip=
"Run ABC Tool"
helpContextId=
"com.xyz.run_abc_action_context"
retarget=
"true"
allowLabelUpdate=
"true"
>
<enablement>
<and>
<objectClass name=
"org.eclipse.core.resources.IFile"
/>
<not>
<objectState name=
"extension"
value=
"java"
/>
</not>
</and>
</enablement>
</action>
<action id=
"com.xyz.runDEF"
label=
"&Run DEF Tool"
style=
"radio"
state=
"true"
menubarPath=
"com.xyz.xyzMenu/option1"
icon=
"icons/runDEF.gif"
tooltip=
"Run DEF Tool"
class=
"com.xyz.actions.RunDEF"
helpContextId=
"com.xyz.run_def_action_context"
>
</action>
<action id=
"com.xyz.runGHI"
label=
"&Run GHI Tool"
style=
"radio"
state=
"false"
menubarPath=
"com.xyz.xyzMenu/option1"
icon=
"icons/runGHI.gif"
tooltip=
"Run GHI Tool"
class=
"com.xyz.actions.RunGHI"
helpContextId=
"com.xyz.run_ghi_action_context"
>
</action>
<action id=
"com.xyz.runJKL"
label=
"&Run JKL Tool"
style=
"radio"
state=
"false"
menubarPath=
"com.xyz.xyzMenu/option1"
icon=
"icons/runJKL.gif"
tooltip=
"Run JKL Tool"
class=
"com.xyz.actions.RunJKL"
helpContextId=
"com.xyz.run_jkl_action_context"
>
</action>
</actionSet>
</extension>
À§ÀÇ ¿¹¿¡¼ "My Actions"¶ó´Â ÁöÁ¤µÈ Á¶Ä¡ ¼¼Æ®´Â visible ¼Ó¼ºÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î óÀ½¿¡ °¢ Perspective¿¡ Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
XYZ Á¶Ä¡´Â óÀ½¿¡´Â ¾Æ¹« °Íµµ ¼±ÅõǾî ÀÖÁö ¾ÊÀº ¼±Åöõ »óÀÚ ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù. ¼±ÅÃÇ׸ñ °è¼ö°¡ 1ÀÌ°í ¼±ÅûçÇ׿¡ Java ÆÄÀÏ ÀÚ¿øÀÌ µé¾î ÀÖ´Â °æ¿ì¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
ABC Á¶Ä¡´Â ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ ³ªÅ¸³³´Ï´Ù. ¼±ÅûçÇ׿¡ Java ÆÄÀÏ ÀÚ¿øÀÌ µé¾î ÀÖÁö ¾ÊÀº °æ¿ì¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù. À̰ÍÀº ·¹ÀÌºí ´ë»ó ÀçÁöÁ¤ Á¶Ä¡À̹ǷΠclass ¼Ó¼ºÀ» Á¦°øÇÏÁö ¾Ê½À´Ï´Ù.
DEF, GHI ¹× JKL Á¶Ä¡´Â ´ÜÀÏ ¼±Åà ´ÜÃß ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù. ÇöÀç ¼±ÅûçÇ× »óÅÂ¿Í °ü°è¾øÀÌ Ç×»ó »ç¿ë °¡´ÉÇÕ´Ï´Ù.
Á¶Ä¡ È®Àå¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor¿Í selection ¶Ç´Â enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ À§ÀÓÀÌ ÀνºÅϽºÈµÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå¿¡¼ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
Workbench°¡ Ç÷¯±×ÀÎÀ» À§Çؼ ¸Þ´º¸¦ »ý¼ºÇÏÁö´Â ¾Ê´Â´Ù´Â Á¡¿¡ À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù. ¸Þ´º °æ·Î´Â ÀÌ¹Ì Á¸ÀçÇÏ´Â ¸Þ´º¸¦ ÂüÁ¶ÇØ¾ß ÇÕ´Ï´Ù.
Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÏ¿© ´Ï¸ð´ÐÀ» ÀÎÄÚµùÇϴ Ư¼ö ¹®ÀÚ°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.
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>
path ¼Ó¼º¿¡ ´ëÇÑ ´ÙÀ½ °ªÀ» »ç¿ëÇÏ¿© »óÀ§ ·¹º§ ¸Þ´º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
Workbench âÀÇ ±âº» ±×·ìÀº IWorkbenchActionConstants ÀÎÅÍÆäÀ̽º¿¡ Á¤Àǵ˴ϴÙ. µ¿ÀûÀÎ ÄÁÆ®¸®ºä¼ÇÀÇ Äڵ忡 ÀÌ »ó¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âÁ¸ Workbench ¸Þ´º ¹× µµ±¸ ¸ðÀ½°ú ¿Ïº®ÇÏ°Ô ÅëÇÕÇϱâ À§ÇØ °ªÀ» XML ÆÄÀÏ¿¡ º¹»çÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Workbench âÀÇ ´Ù¾çÇÑ ¸Þ´º ¹× µµ±¸ ¸ðÀ½ Ç׸ñÀÌ ¾Ë°í¸®ÁòÀûÀ¸·Î Á¤Àǵ˴ϴÙ. ÀÌ °æ¿ì º°µµÀÇ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© âÀ» È®ÀåÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î »õ Workbench º¸±â¸¦ Ãß°¡ÇÏ¸é »õ ¸Þ´º Ç׸ñÀÌ Perspective ¸Þ´º¿¡ ³ªÅ¸³³´Ï´Ù. °¡Á®¿À±â, ³»º¸³»±â ¹× »õ·Î ÀÛ¼º ¸¶¹ý»ç È®Àåµµ ÀÚµ¿À¸·Î â¿¡ Ãß°¡µË´Ï´Ù.
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ´Â Eclipse Public License v1.0ÀÇ Á¶Ç׿¡ µû¶ó »ç¿ëÇØ¾ß Çϸç
À¥ »çÀÌÆ®(http://www.eclipse.org/legal/epl-v10.html)¿¡¼µµ °ü·Ã »çÇ×À» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.