¼³¸í: ÀÌ È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×Àο¡¼ µî·ÏÇÑ º¸±âÀÇ Ç®´Ù¿î ¸Þ´º ¹× µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ Ãß°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. °¢ º¸±â¿¡´Â ´ë°³ ¸Ç À§ ¿À¸¥ÂÊ »ï°¢Çü ´ÜÃ߸¦ Ŭ¸¯Çϸé Ȱ¼ºÈµÇ´Â ·ÎÄà Ǯ´Ù¿î ¸Þ´º°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡¼ ÀÌ ¸Þ´º¿¡ ¼ºê¸Þ´º ¹× Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷¯±×Àο¡¼´Â º¸±â µµ±¸ ¸ðÀ½¿¡µµ Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿µ¿ªÀº º¸±â ¼ÒÀ¯ÀÚ°¡ ¸ÕÀú ä¿ï ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ´Ù¸¥ Ç÷¯±×Àο¡ ÀÇÇØ ¼±ÅÃÀûÀ¸·Î Ãß°¡ÇÏ´Â Ç׸ñÀÌ Ãß°¡µË´Ï´Ù.
enablement ¹× visibility ¿ä¼Ò¸¦ °¢°¢ »ç¿ëÇÏ¿© Á¶Ä¡ÀÇ È°¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â Ȱ¼º ¹×/¶Ç´Â Ç¥½Ã ¿©ºÎ¸¦ ÆÇº°ÇÏ´Â µ¥ Æò°¡µÇ´Â ºÎ¿ï Ç¥Çö½ÄÀ» Æ÷ÇÔÇÕ´Ï´Ù.
±¸¹®Àº enablement ¹× visibility ¿ä¼Ò¿¡ ´ëÇØ µ¿ÀÏÇÕ´Ï´Ù. ÀÌµé µÎ ¿ä¼Ò´Â ÇϳªÀÇ ºÎ¿ï Ç¥Çö½Ä ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù. °¡Àå °£´ÜÇÑ °æ¿ì¿¡ À̰ÍÀº objectClass, objectState, pluginState ¶Ç´Â systemProperty ¿ä¼Ò°¡ µË´Ï´Ù. º¹ÀâÇÑ °æ¿ì¿¡´Â and, or ¹× not ¿ä¼Ò°¡ Á¶ÇÕµÇ¾î ºÎ¿ï Ç¥Çö½ÄÀ» Çü¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. and ¿ä¼Ò¿Í or ¿ä¼Ò´Â ¸ðµÎ 2°³ÀÇ ºÎ¼Ó¿ä¼Ò¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. not ¿ä¼Ò´Â 1°³ÀÇ ºÎ¼Ó¿ä¼Ò¸¸ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.
±¸¼º ¸¶Å©¾÷:
<!ELEMENT extension (viewContribution+)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA
#IMPLIED
name CDATA
#IMPLIED
>
<!ELEMENT viewContribution (menu* , action*)>
ÀÌ ¿ä¼Ò´Â Á¶Ä¡ ¹×/¶Ç´Â ¸Þ´ºÀÇ ±×·ìÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ATTLIST viewContribution<!ELEMENT action (selection* | enablement?)>
ÀÌ ¿ä¼Ò´Â UI¿¡¼ »ç¿ëÀÚ°¡ È£ÃâÇÒ ¼ö ÀÖ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù.
<!ATTLIST actionpush | - ÀÏ¹Ý ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. | |
radio | - ¶óµð¿À ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â µµ±¸ Ç׸ñ. °°Àº ¸Þ´º³ª µµ±¸ ¸ðÀ½ ±×·ì¿¡ ÀÖ´Â ¶óµð¿À ½ºÅ¸ÀÏÀÇ Á¶Ä¡´Â ¶óµð¿À ¼¼Æ®·Î µ¿ÀÛÇÕ´Ï´Ù. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. | |
toggle | - ¼±ÅÃµÈ ½ºÅ¸ÀÏ ¸Þ´º Ç׸ñ ¶Ç´Â Åä±Û µµ±¸ Ç׸ñ. ÃʱⰪÀº state ¼Ó¼º¿¡¼ ÁöÁ¤µË´Ï´Ù. |
! | - 0°³ Ç׸ñ ¼±Åà | |
? | - 0°³ ¶Ç´Â 1°³ Ç׸ñ ¼±Åà | |
+ | - 1°³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
multiple, 2+ | - 2°³ ÀÌ»óÀÇ Ç׸ñ ¼±Åà | |
n | - ¼±ÅÃÇÑ Ç׸ñÀÇ Á¤È®ÇÑ °³¼ö. ¿¹¸¦ µé¾î, enablesFor=" 4"À̸é Ç׸ñ ³× °³°¡ ¼±ÅÃµÈ °æ¿ì¿¡¸¸ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. | |
* | - ¼±ÅÃÇÑ Ç׸ñ °³¼ö |
<!ELEMENT menu (separator+ , groupMarker*)>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ATTLIST menu<!ELEMENT separator EMPTY>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ ¸Þ´º ºÐ¸®ÀÚ¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
<!ATTLIST separator<!ELEMENT groupMarker EMPTY>
ÀÌ ¿ä¼Ò´Â »õ ¸Þ´º¿¡ À̸§ ÁöÁ¤µÈ ±×·ìÀ» ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. separator ¿ä¼Ò¿Í´Â ´Þ¸® »õ ¸Þ´º¿¡ ½Ã°¢ÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
<!ATTLIST groupMarker<!ELEMENT selection EMPTY>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ×À» ±âÁØÀ¸·Î Á¶Ä¡ Ȱ¼º ÆÇº°À» µ½´Â µ¥ »ç¿ëµË´Ï´Ù. enablement ¿ä¼Ò°¡ ÁöÁ¤µÇ´Â °æ¿ì ¹«½ÃµË´Ï´Ù.
<!ATTLIST selection<!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>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡¼ ÁöÁ¤µÈ Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸé Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù.
<!ATTLIST objectClass<!ELEMENT objectState EMPTY>
ÀÌ ¿ä¼Ò´Â ÇöÀç ¼±ÅûçÇ׿¡ ÀÖ´Â °¢ ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¿¡ ÁöÁ¤µÈ ¼Ó¼º »óŰ¡ ÀÖÀ¸¸é Ç¥Çö½ÄÀº true·Î Æò°¡µË´Ï´Ù. Ç¥Çö½ÄÀÇ ÀÌ À¯ÇüÀ» Æò°¡ÇÏ·Á¸é ¼±ÅûçÇ×ÀÇ °¢ ¿ÀºêÁ§Æ®¸¦ ±¸ÇöÇϰųª org.eclipse.ui.IActionFilter ÀÎÅÍÆäÀ̽º¿¡ Àû¿ë½ÃÄÑ¾ß ÇÕ´Ï´Ù.
<!ATTLIST objectState<!ELEMENT pluginState EMPTY>
ÀÌ ¿ä¼Ò´Â Ç÷¯±×ÀÎÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ç÷¯±×ÀÎÀÇ »óÅ´ installed ¶Ç´Â activated Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù.
<!ATTLIST pluginState<!ELEMENT systemProperty EMPTY>
ÀÌ ¿ä¼Ò´Â ÀϺΠ½Ã½ºÅÛ Æ¯¼ºÀÇ »óŸ¦ Æò°¡ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ư¼º °ªÀº java.lang.System¿¡¼ °Ë»öµË´Ï´Ù.
<!ATTLIST systemProperty
<extension point="org.eclipse.ui.viewActions"> <viewContribution id="com.xyz.xyzViewC1" targetID="org.eclipse.ui.views.navigator.ResourceNavigator"> <menu id="com.xyz.xyzMenu" label="XYZ Menu" path="additions"> <separator name="group1"/> </menu> <action id="com.xyz.runXYZ" label="&Run XYZ Tool" menubarPath="com.xyz.xyzMenu/group1" toolbarPath="Normal/additions" style="toggle" state="true" icon="icons/runXYZ.gif" tooltip="Run XYZ Tool" helpContextId="com.xyz.run_action_context" class="com.xyz.actions.RunXYZ"> <selection class="org.eclipse.core.resources.IFile" name="*.java"/> </action> </viewContribution> </extension>
À§ÀÇ ¿¹¿¡¼ ÁöÁ¤µÈ Á¶Ä¡´Â ´ÜÀÏ ¼±ÅûçÇ×(enablesFor ¼Ó¼º)¿¡ ´ëÇØ¼¸¸ Ȱ¼ºÈµË´Ï´Ù. ¶ÇÇÑ ¼±ÅûçÇ×ÀÇ ¿ÀºêÁ§Æ®´Â Java ÆÄÀÏ ÀÚ¿øÀ̾î¾ß ÇÕ´Ï´Ù.
´ÙÀ½Àº º¸±â Á¶Ä¡ È®ÀåÀÇ ±âŸ ¿¹Á¦ÀÔ´Ï´Ù.
<extension point="org.eclipse.ui.viewActions"> <viewContribution id="com.xyz.xyzViewC1" targetID="org.eclipse.ui.views.navigator.ResourceNavigator"> <menu id="com.xyz.xyzMenu" label="XYZ Menu" path="additions"> <separator name="group1"/> </menu> <action id="com.xyz.runXYZ2" label="&Run XYZ2 Tool" menubarPath="com.xyz.xyzMenu/group1" style="push" icon="icons/runXYZ2.gif" tooltip="Run XYZ2 Tool" helpContextId="com.xyz.run_action_context2" class="com.xyz.actions.RunXYZ2"> <enablement> <and> <objectClass name="org.eclipse.core.resources.IFile"/> <not> <objectState name="extension" value="java"/> </not> </and> </enablement> </action> </editorContribution> </extension>
À§ÀÇ ¿¹Á¦¿¡¼ ÁöÁ¤µÈ Á¶Ä¡´Â ¸Þ´º Ç׸ñÀ¸·Î ³ªÅ¸³³´Ï´Ù. ¼±ÅûçÇ׿¡ Java ÆÄÀÏ ÀÚ¿øÀÌ ¾ø´Â °æ¿ì¿¡ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
API Á¤º¸: class ¼Ó¼ºÀÇ °ªÀº org.eclipse.ui.IViewActionDelegate¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À̾î¾ß ÇÕ´Ï´Ù. ½ÇÁúÀûÀ¸·Î ÇÊ¿äÇϱâ Àü¿¡ Àüü Ç÷¯±×ÀÎÀÌ ·ÎµåµÇ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ °¡´ÉÇÑ ´Ê°Ô ÀÌ Å¬·¡½º¸¦ ·ÎµåÇÕ´Ï´Ù.
org.eclipse.ui.IViewActionDelegate ÀÎÅÍÆäÀ̽º´Â org.eclipse.ui.IActionDelegate¸¦ È®ÀåÇϸç, ´ëÇ¥ÀÚ°¡ Áö½ÃÇϰí ÀÖ´Â º¸±â ÀνºÅϽº·Î ÃʱâÈÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â Ãß°¡ ¸Þ¼Òµå¸¦ Ãß°¡ÇÕ´Ï´Ù.
ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© ´ë»ó º¸±â¿¡¼ ÀÌÀü¿¡ ¸¸µç ¸Þ´º·Î Á¶Ä¡¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. menu path ¼Ó¼ºÀ» »ý·«Çϸé Ç®´Ù¿î ¸Þ´ºÀÇ ³¡¿¡ »õ ¸Þ´º ¶Ç´Â Á¶Ä¡°¡ Ãß°¡µË´Ï´Ù.
Á¶Ä¡ È®Àå¿¡ ´ëÇÑ È°¼º ±âÁØÀº Ãʱ⿡ enablesFor¿Í selection ¶Ç´Â enablement·Î Á¤ÀÇÇÕ´Ï´Ù. ±×·¯³ª Á¶Ä¡ ´ëÇ¥ÀÚ°¡ ÀνºÅϽºÈµÇ¸é Á¶Ä¡ Ȱ¼º »óŸ¦ selectionChanged ¸Þ¼Òµå ³»¿¡¼ Á÷Á¢ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á¶Ä¡ ¹× ¸Þ´º ·¹ÀÌºí¿¡´Â ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÏ¿© ´Ï¸ð´ÐÀ» ÀÎÄÚµåÇϴ Ư¼ö ¹®ÀÚ°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.
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, 2003 IBM Corporation and others.
All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ¸ç
http://www.eclipse.org/legal/cpl-v10.html¿¡¼ º¼ ¼ö ÀÖ´Â ÀÏ¹Ý °ø¿ë ¶óÀ̼¾½º v1.0ÀÇ Á¶Ç׿¡ ÀǰÅÇÏ¿© »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.