¸í·É

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

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

¸í·É Á¤ÀÇ

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

   <extension
         point="org.eclipse.ui.commands">
      ...
      <command
	    category="org.eclipse.ui.category.file"
            name="%command.close.name"
            description="%command.close.description"
            id="org.eclipse.ui.file.close">
      </command>
      <command
	    category="org.eclipse.ui.category.file"
            name="%command.closeAll.name"
            description="%command.closeAll.description"
            id="org.eclipse.ui.file.closeAll">
      </command>
      <command
	    category="org.eclipse.ui.category.file"
            name="%command.save.name"
            icon="icons/full/ctool16/save_edit.gif"
            description="%command.save.description"
            id="org.eclipse.ui.file.save">
      </command>
      ...     

¸í·É Á¤ÀÇ´Â Á¶Ä¡ÀÇ À̸§, ¼³¸í ¹× 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 ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© Á¶Ä¡ Á¤ÀÇ¿¡ ¿¬°üµÉ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ÀÛ¾÷Àº Á¶Ä¡°¡ ÀÛ¼ºµÉ ¶§ ¼öÇàµË´Ï´Ù. WorkbenchActionBuilder¿¡¼­´Â ÀÌ ±â¹ýÀ» »ç¿ëÇÏ¿© Á¶Ä¡¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.  

private void makeActions() {
	...
	saveAction = new SaveAction(window);
	saveAction.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT));
	saveAction.setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_HOVER));
	saveAction.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_CTOOL_SAVE_EDIT_DISABLED));
	partService.addPartListener(saveAction);
	saveAction.setActionDefinitionId(saveActionDefId);
	...

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

setActionDefinitionID¸¦ È£ÃâÇÏ¿© ±¸Çö Á¶Ä¡(SaveAction)°¡ ¸í·É ID saveActionDefId¿Í ¿¬°üµË´Ï´Ù.   saveActionDefIdÀ̶õ ¹«¾ùÀԴϱî?  WorkbenchActionBuilderÀÇ Á¤Àû Çʵå Á¤ÀǸ¦ º¸·Á¸é, ´ÙÀ½À» »ìÆìº¸¸é µË´Ï´Ù.

private static final String saveActionDefId = "org.eclipse.ui.file.save";

ÀÌ »ó¼ö´Â ¸í·É Á¤ÀÇ ¸¶Å©¾÷¿¡¼­ »ç¿ëµÈ ¹®ÀÚ¿­ 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 ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¶Ä¡¿¡ ´ëÇÑ ¸í·ÉÀ» ¼±¾ðÇÕ´Ï´Ù.

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

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

 

Copyright IBM Corporation and others 2000, 2003.