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>
Ä«Å×°í¸®´Â ¸¶¹ý»ç ¼±ÅûçÇ× ´ëÈ »óÀÚ¸¦ »ç¿ëÇÏ¿© ¸¶¹ý»ç¸¦ ã¾Æ ½ÇÇàÇÒ ¶§ ¸¶¹ý»ç°¡ ±×·ì鵃 À§Ä¡¸¦ ¼³¸íÇÕ´Ï´Ù. À̸§ Ä«Å×°í¸®´Â ¸¶¹ý»ç¿¡¼ »ç¿ëÇÏ´Â ·¹À̺íÀ» Á¤ÀÇÇÕ´Ï´Ù. ¸¶¹ý»ç ÀÚü°¡ Ä«Å×°í¸®¿¡ ÁöÁ¤µË´Ï´Ù. ¸¶¹ý»çÀÇ À̸§, ¾ÆÀÌÄÜ ¹× ¼³¸íÀÌ ¸ðµÎ ¾Æ·¡ Ç¥½ÃµÈ »õ ¸¶¹ý»ç ¼±ÅûçÇ× ´ëÈ »óÀÚ¿¡ Ç¥½ÃµË´Ï´Ù.
¸ðµÎ ¸¶Å©¾÷À» ±â¹ÝÀ¸·Î 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(); }
¿Ï·áµÈ ¸¶¹ý»ç´Â ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.