Á¶Ä¡ Á¤ÀÇ´Â 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¿¡ ´ëÇØ Á¤ÀÇµÈ Å° ¹ÙÀεùÀÌ ÀûÀýÇÑ ¶§¿¡ Á¶Ä¡¸¦ È£ÃâÇÕ´Ï´Ù.
ÀÌÁ¦ ÀÌ·¯ÇÑ Å° ¹ÙÀεùÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» »ìÆìº¾´Ï´Ù.