readme µµ±¸ Á¶Ä¡ ¼¼Æ®¿¡¼´Â »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡µµ Á¤ÀÇÇÕ´Ï´Ù. readme Á¶Ä¡ ¼¼Æ®°¡ ³ªÅ¸³ª¸é Á¶Ä¡µµ ³ªÅ¸³ªÁö¸¸ Á¶Ä¡¸¦ ±¸ÇöÇÏ´Â º¸±â³ª ÆíÁý±â°¡ Ȱ¼ºÈµÈ °æ¿ì¿¡¸¸ Á¶Ä¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶Ä¡ ¼¼Æ®¸¦ »ç¿ëÇÏ¿© »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡¸¦ Á¤ÀÇÇÒ ¶§ Á¶Ä¡´Â Äڵ尡 ¾Æ´Ï¶ó Á¶Ä¡ ¼¼Æ® ¸¶Å©¾÷¿¡¼ ÀÛ¼ºµË´Ï´Ù. ´ÙÀ½Àº readme µµ±¸ Á¶Ä¡ ¼¼Æ® Á¤ÀÇÀÇ ÀϺÎÀÔ´Ï´Ù.
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="org_eclipse_ui_examples_readmetool_actionSet" label="%ActionSet.name" visible="true"> ... <action id="org_eclipse_ui_examples_readmetool_readmeRetargetAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="readme" label="%ReadmeRetargetAction.label" tooltip="%ReadmeRetargetAction.tooltip" helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context" icon="icons/ctool16/openbrwsr.gif" retarget="true"> </action> <action id="org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="readme" label="%ReadmeRelabelRetargetAction.label" tooltip="%ReadmeRelabelRetargetAction.tooltip" helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context" icon="icons/ctool16/openbrwsr.gif" retarget="true" allowLabelUpdate="true"> </action> ...
»õ·Î ´ë»ó ÁöÁ¤µÈ Á¶Ä¡´Â retarget="true" ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÁöÁ¤µË´Ï´Ù. ÀÌ ¼Ó¼ºÀ» ÁöÁ¤Çϸé Á¶Ä¡ ¼¼Æ®¿¡¼ RetargetActionÀÌ ÀÛ¼ºµË´Ï´Ù. °¢ Á¶Ä¡¸¦ ±¸ÇöÇÏ´Â Çڵ鷯¸¦ ¼³Á¤ÇÏ´Â °ÍÀº Ç÷¯±×ÀÎÀÇ °¢ º¸±â ¶Ç´Â ÆíÁý±âÀ̱⠶§¹®¿¡ »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡´Â ±¸ÇöÇϴ Ŭ·¡½º¸¦ ÁöÁ¤ÇÏÁö ¾Ê½À´Ï´Ù. allowLabelUpdate°¡ trueÀ̸é LabelRetargetActionÀÌ ´ë½Å ÀÛ¼ºµË´Ï´Ù.
readme Á¶Ä¡ ¼³Á¤ÀÌ ³ªÅ¸³¯ ¶§ »õ·Î ´ë»ó ÁöÁ¤µÈ Á¶Ä¡°¡ â ¸Þ´º¿¡ ³ªÅ¸³³´Ï´Ù. ±×·¯³ª readme µµ±¸ÀÇ ÆíÁý±â³ª ¾Æ¿ô¶óÀÎ º¸±â°¡ Ȱ¼ºÈµÇÁö ¾ÊÀº °æ¿ì ÀÌ Á¶Ä¡´Â »ç¿ë °¡´ÉÇÏÁö ¾Ê½À´Ï´Ù.
ÆíÁý±â¿Í º¸±âÀÇ ±â´ÉÀº ¹«¾ùÀԴϱî? Ŭ¶óÀ̾ðÆ®ÃøÀÇ ±â´ÉÀº Workbench³ª ÆíÁý±âÀÇ »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡¿¡ ´ëÇÑ Çڵ鷯¸¦ µî·ÏÇÏ´Â °Í°ú ºñ½ÁÇÕ´Ï´Ù. ±Û·Î¹ú Á¶Ä¡ Çڵ鷯¸¦ µî·ÏÇÒ ¶§ ¸¶Å©¾÷¿¡ ÁöÁ¤µÈ Á¶Ä¡ ID¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
ReadmeEditorActionBarContributor¿¡¼´Â ÆíÁý±â¿¡ ´ëÇØ ÀÌ ±â´ÉÀ» ó¸®ÇÕ´Ï´Ù. ¸ÕÀú Á¶Ä¡¿¡ ´ëÇÑ Çڵ鷯¸¦ Á¤ÀÇÇÕ´Ï´Ù.
public ReadmeEditorActionBarContributor() { ... handler4 = new EditorAction(MessageUtil.getString("Editor_Action4")); handler5 = new EditorAction(MessageUtil.getString("Editor_Action5")); handler5.setToolTipText(MessageUtil.getString("Readme_Editor_Action5")); ... }
ÆíÁý±âÀÇ »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡¿¡ ´ëÇÑ Çڵ鷯°¡ µî·ÏµÊ°ú µ¿½Ã¿¡ Çڵ鷯µµ µî·ÏµË´Ï´Ù.
public void init(IActionBars bars, IWorkbenchPage page) { ... bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_RETARGET4, handler4); bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_LABELRETARGET5, handler5); ... }
ÇÑ ÆíÁý±âÀÇ ´Ù¸¥ ÀνºÅϽº¿¡¼ Á¶Ä¡ ¸·´ë Áö½ÃÀÚ¸¦ °øÀ¯ÇØ¾ß ÇÕ´Ï´Ù. µû¶ó¼ ReadmeEditorActionBarContributor¿¡ ´ëÇÑ È°¼º ÆíÁý±â°¡ º¯°æµÇ¸é Çڵ鷯¿¡°Ô ¾Ë·Á¾ß ÇÕ´Ï´Ù.
public void setActiveEditor(IEditorPart editor) { ... handler4.setActiveEditor(editor); handler5.setActiveEditor(editor); ... }
ÆíÁý±â¿¡ ´ëÇØ¼´Â ÀÌ Á¶Ä¡°¡ ÀüºÎÀÔ´Ï´Ù. ÆíÁý±â°¡ Ȱ¼ºÈµÉ ¶§ ÀÌ Á¶Ä¡°¡ »ç¿ë °¡´ÉÇÑÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.
Á¶Ä¡ ¼¼Æ® XML ¸¶Å©¾÷ÀÌ allowLabelUpdate¸¦ ¼³Á¤ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ù ¹øÂ° »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡ÀÇ ·¹À̺í("Editor Action 4")ÀÌ »ç¿ëµÇÁö ¾Ê½À´Ï´Ù.
ReadmeContentOutlinePage¿¡¼´Â ÆíÁý±âÀÇ »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡¿¡ ´ëÇÑ Çڵ鷯¸¦ Á¤ÀÇÇÑ À§Ä¡¿¡¼ Çڵ鷯¸¦ Á¤ÀÇÇÕ´Ï´Ù.
public void createControl(Composite parent) { ... action = new OutlineAction(MessageUtil.getString("Outline_Action4")); getSite().getActionBars().setGlobalActionHandler( IReadmeConstants.ACTION_SET_RETARGET4, action); action = new OutlineAction(MessageUtil.getString("Outline_Action5")); action.setToolTipText(MessageUtil.getString("Readme_Outline_Action5")); getSite().getActionBars().setGlobalActionHandler( IReadmeConstants.ACTION_SET_LABELRETARGET5, action); }
ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀ̳ʰ¡ Ȱ¼ºÈµÉ ¶§ ´Ù½Ã ·¹À̺íÀÌ ÁöÁ¤µÈ Á¶Ä¡¸¦ º¼ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.