¸í·É

¸í·ÉÀº IDº° »ç¿ëÀÚ Á¶Ä¡ÀÇ ¼±¾ðÀÔ´Ï´Ù. Á¶Ä¡ ¼¼Æ® ¹× ÆíÁý±â¿¡¼­ Á¤ÀÇµÈ Á¶Ä¡ ±¸ÇöÀÌ Æ¯Á¤ ½Ã¸Çƽ ¸í·É°ú ¿¬°üµÉ ¼ö ÀÖµµ·Ï ¸í·ÉÀÌ Àǹ̻óÀÇ Á¶Ä¡¸¦ ¼±¾ðÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Á¶Ä¡ ±¸Çö¿¡¼­ ¸í·ÉÀÇ ºÐ¸®¸¦ »ç¿ëÇÏ¿© º¹¼ö Ç÷¯±×ÀÎÀº µ¿ÀÏÇÑ ½Ã¸Çƽ ¸í·ÉÀ» ±¸ÇöÇÏ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸í·ÉÀº ƯÁ¤ Ű ¹ÙÀεù°ú ¿¬°üµÇ´Â °ÍÀÔ´Ï´Ù.

Workbench´Â plugin.xml ÆÄÀÏ¿¡ ¸¹Àº °øÅë ¸í·ÉÀ» Á¤ÀÇÇϸç ÀûÀýÇÑ °æ¿ì Ç÷¯±×ÀÎÀÌ ÀÚü Á¶Ä¡¸¦ ÀÌ ¸í·É¿¡ ¿¬°ü½Ã۵µ·Ï ±ÇÀåµË´Ï´Ù. ÀÌ·± ¹æ½ÄÀ¸·Î ´Ù¸¥ Ç÷¯±×Àο¡¼­ ±¸ÇöµÈ Àǹ̰¡ ºñ½ÁÇÑ Á¶Ä¡´Â °°Àº Ű ¹ÙÀεùÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸í·É Á¤ÀÇ

¸í·ÉÀº org.eclipse.ui.commands È®ÀåÁ¡À» »ç¿ëÇÏ¿© Á¤ÀÇÇÕ´Ï´Ù. ´ÙÀ½Àº Workbench ¸¶Å©¾÷¿¡¼­ ´Ù·ì´Ï´Ù.

<extension
	point="org.eclipse.ui.commands">
	...
	<command
		name="%command.save.name"
		description="%command.save.description"
		categoryId="org.eclipse.ui.category.file"
		id="org.eclipse.ui.file.save">
	</command>
	...

¸í·É Á¤ÀÇ´Â Á¶Ä¡ÀÇ À̸§, ¼³¸í ¹× ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù.  ¶ÇÇÑ ¸í·É Á¤ÀÇ´Â ¸í·É¿¡ ´ëÇÑ Ä«Å×°í¸®ÀÇ ID¸¦ ÁöÁ¤ÇÏ¿©, ȯ°æ ¼³Á¤ ´ëÈ­ »óÀÚ¿¡¼­ ¸í·ÉÀ» ±×·ìÈ­ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ä«Å×°í¸®µµ org.eclipse.ui.commands È®ÀåÁ¡¿¡¼­ Á¤Àǵ˴ϴÙ.

      ...
         <category
            name="%category.file.name"
            description="%category.file.description"
            id="org.eclipse.ui.category.file">
      </category>
      ...

¸í·É¿¡ ÁöÁ¤µÈ ±¸ÇöÀÌ ¾øÀ½À» ÁÖÀÇÇϽʽÿÀ. ¸í·ÉÀº Ç÷¯±×ÀÎÀÌ ÇØ´ç Á¶Ä¡¿Í ¸í·É ID¸¦ ¿¬°üÇÒ ¶§¸¸ ±¸Ã¼È­µË´Ï´Ù.

Á¶Ä¡¿Í ¸í·ÉÀÇ ¿¬°ü

Á¶Ä¡´Â Á¶Ä¡ ¼¼Æ®ÀÇ plugin.xml ¶Ç´Â Äڵ忡¼­ ¸í·É¿¡ ¿¬°üµÉ ¼ö ÀÖ½À´Ï´Ù. Á¶Ä¡°¡ Á¤ÀÇµÈ À§Ä¡¿¡ µû¶ó ¼±ÅÃÀÌ ´Þ¶óÁý´Ï´Ù.

¶ÇÇÑ Äڵ忡¼­ ÀνºÅϽºÈ­µÈ Á¶Ä¡´Â IAction ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© Á¶Ä¡ Á¤ÀÇ¿¡ ¿¬°üµÉ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ÀÛ¾÷Àº Á¶Ä¡°¡ ÀÛ¼ºµÉ ¶§ ¼öÇàµË´Ï´Ù. SaveAction¿¡¼­´Â ÀÌ ±â¹ýÀ» »ç¿ëÇÏ¿© ÀÚü¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

public SaveAction(IWorkbenchWindow window) {
	...
	setText...
	setToolTipText...
	setImageDescriptor...
	setActionDefinitionId("org.eclipse.ui.file.save"); 
}

Âü°í: ¸Þ¼Òµå À̸§ setActionDefinitionID´Â setCommandID¶ó´Â ´õ¿í ÀûÀýÇÑ À̸§À¸·Î ÁöÁ¤µÉ ¼ö ÀÖ½À´Ï´Ù. ¸Þ¼Òµå À̸§Àº Ű ¹ÙÀεùÀÇ ¿ø·¡ Ű ±¸ÇöÀ» ¹Ý¿µÇϰí ÀÌÀüÀÇ ¿ë¾î¸¦ »ç¿ëÇÕ´Ï´Ù.

setActionDefinitionID¸¦ È£ÃâÇÏ¿© ±¸Çö Á¶Ä¡(SaveAction)°¡ ¸í·É Á¤ÀÇ ¸¶Å©¾÷¿¡¼­ »ç¿ëµÈ ¸í·É ID¿Í ¿¬°üµË´Ï´Ù. Äڵ忡¼­ Á¶Ä¡ Á¤ÀǸ¦ ½±°Ô ÂüÁ¶ÇÏ·Á¸é Á¶Ä¡ Á¤ÀÇ¿¡ ´ëÇØ »ó¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

Á¶Ä¡ ¼¼Æ®¿¡ Á¶Ä¡¸¦ Á¤ÀÇÇÏ´Â °æ¿ì ÀϹÝÀûÀ¸·Î Á¶Ä¡¸¦ Á÷Á¢ ÀνºÅϽºÈ­ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ¸Þ´º ¶Ç´Â Űº¸µå¿¡¼­ Á¶Ä¡¸¦ È£ÃâÇϸé Workbench°¡ ÀÚµ¿À¸·Î ÀνºÅϽºÈ­¸¦ ¼öÇàÇÕ´Ï´Ù. ÀÌ·± °æ¿ì, XML ¸¶Å©¾÷¿¡¼­ Á¶Ä¡¸¦ ¸í·É ID¿Í ¿¬°ü½Ãų ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº Á¶Ä¡ ¼¼Æ®¿¡ ´ëÇÑ À̷лóÀÇ ¸¶Å©¾÷À» º¸¿©ÁÝ´Ï´Ù.

<extension point = "org.eclipse.ui.actionSets">
	   <actionSet id="com.example.actions.actionSet"
		   label="Example Actions"
		   visible="true">
		   <action id="com.example.actions.action1"
			   menubarPath="additions"
			   label="Example Save Action"
			   class="org.example.actions.ExampleActionDelegate"
			   definitionID="org.eclipse.ui.file.save">
		   </action>
		   ...
	   </actionSet>
   </extension>

definitionID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¶Ä¡¿¡ ´ëÇÑ ¸í·É ID¸¦ ¼±¾ðÇÕ´Ï´Ù.

µÎ ¹æ¹ý Áß Çϳª¸¦ »ç¿ëÇÏ¿© Á¶Ä¡¸¦ ¸í·É ID¿¡ ¿¬°áÇϸé org.eclipse.ui.file.save ¸í·É¿¡ ´ëÇØ Á¤ÀÇµÈ Å° ¹ÙÀεùÀÌ ÀûÀýÇÑ ¶§¿¡ Á¶Ä¡¸¦ È£ÃâÇÕ´Ï´Ù. 

ÀÌÁ¦ ÀÌ·¯ÇÑ Å° ¹ÙÀεùÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» »ìÆìº¾´Ï´Ù.