org.eclipse.ui.newWizards È®ÀåÁ¡À» »ç¿ëÇÏ¿© WorkbenchÀÇ ÆÄÀÏ->½Å±Ô > ¸Þ´º ¿É¼Ç¿¡ ¸¶¹ý»ç¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. Readme µµ±¸ ¿¹´Â ÀÌ È®ÀåÁ¡ Á¤ÀǸ¦ »ç¿ëÇÏ¿© Readme ÆÄÀÏ ¸¶¹ý»ç¸¦ Ãß°¡ÇÕ´Ï´Ù.
<extension point = "org.eclipse.ui.newWizards"> <category id = "org.eclipse.ui.examples.readmetool.new" parentCategory="org.eclipse.ui.Examples" name="%NewWizard.category"> </category> <wizard id = "org.eclipse.ui.examples.readmetool.wizards.new.file" name = "%NewWizard.name" class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard" category="org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new" icon="icons/obj16/newreadme_wiz.gif"> <description>%NewWizard.desc</description> <selection class="org.eclipse.core.resources.IResource"/> </wizard> </extension>
Ä«Å×°í¸®¿¡¼´Â ¸¶¹ý»ç ±×·ìȸ¦ ¼³¸íÇÕ´Ï´Ù. ¼±ÅÃÀû parentCategory´Â ±âÁ¸ Ä«Å×°í¸®ÀÇ ÇÏÀ§·Î »õ Ä«Å×°í¸®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¸Ç À§ ·¹º§ Ä«Å×°í¸®´Â ÆÄÀÏ> »õ·Î ÀÛ¼º ¸Þ´º¿¡¼ ³ªÅ¸³³´Ï´Ù.
ÀÌ ¿¹Á¦¿¡¼ parentCategory´Â "¿¹Á¦" Ä«Å×°í¸®·Î ¼³Á¤µË´Ï´Ù.
»óÀ§ Ä«Å×°í¸®¸¦ °¡Á®¿À´Â Àå¼Ò´Â ¾îµðÀԴϱî? org.eclipse.ui
Ç÷¯±×ÀÎÀº ÇØ´ç ¸¶Å©¾÷¿¡ Ç¥ÁØ ¿¹Á¦ Ä«Å×°í¸®¸¦ Á¤ÀÇÇÕ´Ï´Ù. <extension
point="org.eclipse.ui.newWizards">
<category
name="%NewWizards.Category.Examples"
id="org.eclipse.ui.Examples">
</category>
...
ÀÌ Ä«Å×°í¸®´Â ÆÄÀÏ> »õ·Î ÀÛ¼º ¸Þ´º¿¡¼ ³ªÅ¸³³´Ï´Ù.
readme µµ±¸ÀÇ Ä«Å×°í¸® À̸§Àº »óÀ§ Ä«Å×°í¸® ¾Æ·¡¿¡ ÀÖ´Â ´ÙÀ½ ·¹À̾ ±×·ìÈÇÏ´Â µ¥ »ç¿ëµÇ´Â ·¹À̺íÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ä«Å×°í¸®´Â »õ ¿¹Á¦ ¸¶¹ý»çÀÇ ¿ÞÂÊ¿¡ ³ªÅ¸³³´Ï´Ù. ¸¶¹ý»çÀÇ À̸§ ¹× ¾ÆÀÌÄÜÀº Ä«Å×°í¸®¸¦ ´©¸£¸é ¸¶¹ý»çÀÇ ¿À¸¥ÂÊ¿¡ ³ªÅ¸³³´Ï´Ù. ¸¶¹ý»ç¿¡ ´ëÇÑ ¼³¸íÀº ¾Æ·¡ Ç¥½ÃµÈ ´ë·Î ¿À¸¥ÂÊ ¸ñ·Ï¿¡ ÀÖ´Â ¼³¸íÀ» ¼±ÅÃÇÏ¸é ¸¶¹ý»çÀÇ ¸Ç À§¿¡ ³ªÅ¸³³´Ï´Ù.
ÀÌ ¸¶¹ý»ç¿¡ ´ëÇÑ Á¤º¸´Â plugin.xml ÆÄÀÏÀÇ ¸¶Å©¾÷À¸·Î ÀÎÇØ ´Üµ¶À¸·Î Ç¥½ÃµË´Ï´Ù. »ç¿ëÀÚ°¡ ´ÙÀ½ ´ÜÃ߸¦ ¼±ÅÃÇÒ ¶§±îÁö ¾î¶² Ç÷¯±×ÀÎ Äڵ嵵 ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. ÀÌ·± »óȲÀÌ ¹ß»ýÇϸé Workbench°¡ ¸¶Å©¾÷¿¡ ÁöÁ¤µÈ ¸¶¹ý»ç Ŭ·¡½º¸¦ ÀνºÅϽºÈÇÏ¿© ¿¹»óµÈ ¼±ÅûçÇ× Å¬·¡½º·Î Àü´ÞÇÕ´Ï´Ù.
ÀÌ È®ÀåÀ¸·Î ½Äº°µÈ Ŭ·¡½º(ReadmeCreationWizard)´Â INewWizard ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ¸¶¹ý»ç´Â Ç÷§Æû Wizard Ŭ·¡½º¸¦ È®ÀåÇÏ¿© À̸¦ ±¸ÇöÇÏÁö¸¸, À̰ÍÀº ±¸Çö ¸ÞÄ¿´ÏÁòÀ̸ç È®ÀåÁ¡¿¡ ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù.
¸¶¹ý»ç ÀÚü´Â ´ëü·Î ¸¶¹ý»ç ³»¿¡ ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ´Â ÀÛ¾÷¸¸À» ¼öÇàÇÕ´Ï´Ù. ¸ÕÀú ÆäÀÌÁö ±¸ÇöÀ» »ìÆìº» ´ÙÀ½ ´Ù½Ã ¸¶¹ý»ç¸¦ »ìÆì º¸°Ú½À´Ï´Ù.
Workbench´Â °¢ ¸¶¹ý»ç È®ÀåÁ¡¿¡ ¼öÇàµÇ´Â ó¸® À¯ÇüÀ» Áö¿øÇÏ´Â ±âº» ¸¶¹ý»ç ÆäÀÌÁö Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ ÆäÀÌÁö¸¦ »ç¿ëÇϰųª È®ÀåÇÏ¿© 󸮸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ReadmeCreationWizardÀÇ ¸ñÀûÀº »õ ÆÄÀÏÀ» ÀÛ¼ºÇϰí Çʼö ÄÁÅÙÃ÷¸¦ ÆÄÀÏ¿¡ Ãß°¡ÇÏ´Â °ÍÀ̸ç, ¼±ÅÃÀûÀ¸·Î ÆÄÀÏ¿¡¼ ÆíÁý±â¸¦ ¿ ¼öµµ ÀÖ½À´Ï´Ù. ÆäÀÌÁö¿¡´Â »ç¿ëÀÚ°¡ ÆÄÀÏ¿¡ Æ÷Ç﵃ ÄÁÅÙÃ÷¸¦ ÁöÁ¤ÇÏ°í ÆíÁý±â ½ÇÇà ¿©ºÎ¸¦ ÁöÁ¤Çϵµ·Ï Á¦¾î°¡ Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù.
WizardNewFileCreationPage¸¦ È®ÀåÇÏ¿© ReadmeCreationPage ¸¶¹ý»ç ÆäÀÌÁö¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¸¶¹ý»ç ÆäÀÌÁö¿¡ ´ëÇÑ Á¦¾î´Â º¸±â ¶Ç´Â ÆíÁý±â¿¡ ´ëÇÑ Á¦¾î Á¤ÀÇ¿Í À¯»çÇÑ ¹æ½ÄÀ¸·Î Á¤Àǵ˴ϴÙ. ÆäÀÌÁö´Â Çʼö SWT À§ÁöÆ®(widget)¸¦ Á¦°øµÈ º¹ÇÕÀÇ ÇÏÀ§·Î ÀÛ¼ºÇÏ¿© createControl ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù. ¼öÆÛŬ·¡½º°¡ »õ ÆÄÀÏ Ã³¸®¸¦ Áö¿øÇÏ´Â À§ÁöÆ®(widget)¸¦ ¹Ì¸® Ãß°¡ÇϹǷΠ¸¶¹ý»ç ÆäÀÌÁö¿¡¼ createControl ¸Þ¼Òµå¸¦ È®ÀåÇÏ¿© ¼½¼Ç »ý¼º ¹× ÆíÁý±â ¿±â¸¦ Á¦¾îÇÏ´Â Ãß°¡ ¼±Åöõ¸¸ Ãß°¡ÇÏ¸é µË´Ï´Ù.
public void createControl(Composite parent) { // inherit default container and name specification widgets super.createControl(parent); Composite composite = (Composite)getControl(); ... // sample section generation group Group group = new Group(composite,SWT.NONE); group.setLayout(new GridLayout()); group.setText(MessageUtil.getString("Automatic_sample_section_generation")); group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); ... // sample section generation checkboxes sectionCheckbox = new Button(group,SWT.CHECK); sectionCheckbox.setText(MessageUtil.getString("Generate_sample_section_titles")); sectionCheckbox.setSelection(true); sectionCheckbox.addListener(SWT.Selection,this); subsectionCheckbox = new Button(group,SWT.CHECK); subsectionCheckbox.setText(MessageUtil.getString("Generate_sample_subsection_titles")); subsectionCheckbox.setSelection(true); subsectionCheckbox.addListener(SWT.Selection,this); ... // open file for editing checkbox openFileCheckbox = new Button(composite,SWT.CHECK); openFileCheckbox.setText(MessageUtil.getString("Open_file_for_editing_when_done")); openFileCheckbox.setSelection(true); ... }
SWT(Standard Widget Toolkit)ÀÇ °³³äÀ» ÀÌÇØÇϰí ÀÖ´Ù¸é ÀÌ Äڵ带 ÁؼöÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
ÆäÀÌÁö¸¦ ±¸ÇöÇÏ´Â ±âº» ÆÐÅÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.
ReadmeCreationPage Ŭ·¡½º´Â WizardNewFileCreationPage¿¡¼ ÀÌ ÀÛµ¿ÀÇ »ó´ç ºÎºÐÀ» »ó¼ÓÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ÀÌ Å¬·¡½º¿¡ ´ëÇÑ ±¸ÇöÀ» ã¾Æº¸½Ê½Ã¿À.
ÀÌÁ¦ ÆäÀÌÁö°¡ ÇÏ´Â ¿ªÇÒÀ» ÀÌÇØÇßÀ¸¹Ç·Î ´Ù½Ã ¸¶¹ý»ç¸¦ »ìÆì º¸°Ú½À´Ï´Ù.
¸¶¹ý»ç´Â ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ¿© "¿Ï·á" ³í¸®¸¦ Á¦°øÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.
¸¶¹ý»ç¸¦ ±¸ÇöÇÏ´Â ±âº» ÆÐÅÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.
public void init(IWorkbench workbench,IStructuredSelection selection) { this.workbench = workbench; this.selection = selection; setWindowTitle(MessageUtil.getString("New_Readme_File")); setDefaultPageImageDescriptor(ReadmeImages.README_WIZARD_BANNER); }
public void addPages() { mainPage = new ReadmeCreationPage(workbench, selection); addPage(mainPage); }
public boolean performFinish() { return mainPage.finish(); }
¿Ï·áµÈ ¸¶¹ý»ç´Â ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.