Á¶Ä¡ Á¤ÀÇ

Á¶Ä¡ Á¤ÀÇ´Â ID¿¡ µû¸¥ Á¶Ä¡ ¼±¾ðÀÔ´Ï´Ù. Á¶Ä¡ Á¤ÀÇ´Â Á¶Ä¡ ¼¼Æ® ¹× ÆíÁý±â¿¡ Á¤ÀÇµÈ Á¶Ä¡°¡ ÀÚ½ÅÀ» ƯÁ¤ ÀÇ¹Ì Á¶Ä¡ Á¤ÀÇ¿¡ ¿¬°üµÉ ¼ö ÀÖµµ·Ï ÀÇ¹Ì Á¶Ä¡¸¦ ¼±¾ðÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Á¶Ä¡ Á¤ÀǸ¦ Á¶Ä¡ ±¸Çö¿¡¼­ ºÐ¸®ÇÏ¸é º¹¼ö Ç÷¯±×ÀÎÀº °°Àº ÀÇ¹Ì Á¶Ä¡¸¦ ±¸ÇöÇÏ´Â Á¶Ä¡¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶Ä¡ Á¤ÀÇ´Â ´ÜÃàŰ Á¶ÇÕ°ú ¿¬°üµË´Ï´Ù.

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

Á¶Ä¡ Á¤ÀÇÀÇ Á¤ÀÇ

Á¶Ä¡ Á¤ÀÇ´Â org.eclipse.ui.actionDefinitions È®ÀåÁ¡À» »ç¿ëÇÏ¿© Á¤Àǵ˴ϴÙ. ´ÙÀ½Àº Workbench ¸¶Å©¾÷ÀÇ ÀϺÎÀÔ´Ï´Ù.

<extension
         point="org.eclipse.ui.actionDefinitions">
      <actionDefinition
            id="org.eclipse.ui.file.close">
      </actionDefinition>
      <actionDefinition
            id="org.eclipse.ui.file.closeAll">
      </actionDefinition>
      <actionDefinition
            id="org.eclipse.ui.file.save">
      </actionDefinition>
      ...

Á¤ÀÇ ÀÚü´Â °£´ÜÇÕ´Ï´Ù. ´ÜÁö ÀÇ¹Ì Á¶Ä¡ÀÇ 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);
	...

ÀÌ·± ¹æ¹ýÀ¸·Î ±¸Çö Á¶Ä¡(SaveAction)¸¦ Á¶Ä¡ Á¤ÀÇ saveActionDefId¿¡ ¿¬°ü½Ãŵ´Ï´Ù. saveActionDefIdÀÇ Á¤ÀǸ¦ º¸·Á¸é ¾Æ·¡ ³ªÅ¸³­ WorkbenchActionBuilderÀÇ Á¤Àû Çʵå Á¤ÀǸ¦ »ìÆìº¸¸é µË´Ï´Ù.

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

Äڵ忡¼­ Á¶Ä¡ Á¤ÀǸ¦ ½±°Ô ÂüÁ¶ÇÏ·Á¸é Á¶Ä¡ Á¤ÀÇ¿¡ ´ëÇØ »ó¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. 

Á¶Ä¡ ¼¼Æ®¿¡ Á¶Ä¡¸¦ Á¤ÀÇÇÑ °æ¿ì ÀϹÝÀûÀ¸·Î Á¶Ä¡¸¦ ÀνºÅϽºÈ­ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. »ç¿ëÀÚ°¡ ¸Þ´º³ª Űº¸µå¿¡¼­ Á¶Ä¡¸¦ È£ÃâÇÒ ¶§ Workbench´Â ÀÚµ¿À¸·Î ÀνºÅϽºÈ­ÇÕ´Ï´Ù. ÀÌ °æ¿ì XML ¸¶Å©¾÷ÀÇ Á¶Ä¡ Á¤ÀÇ¿¡ Á¶Ä¡¸¦ ¿¬°ü½Ãų ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº Á¶Ä¡ ¼¼Æ®¿¡ ´ëÇÑ °¡»ó ¸¶Å©¾÷À» Ç¥½ÃÇÕ´Ï´Ù.

<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¸¦ ¼±¾ðÇÕ´Ï´Ù.

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

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

 

Copyright IBM Corp. and others 2000,2002.