org.eclipse.ui.newWizards

org.eclipse.ui.newWizards È®ÀåÁ¡À» »ç¿ëÇÏ¿© WorkbenchÀÇ ÆÄÀÏ->½Å±Ô ¸Þ´º ¿É¼Ç¿¡ ¸¶¹ý»ç¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. Readme µµ±¸ ¿¹´Â ÀÌ È®ÀåÁ¡ Á¤ÀǸ¦ »ç¿ëÇÏ¿© Readme ÆÄÀÏ ¸¶¹ý»ç¸¦ Ãß°¡ÇÕ´Ï´Ù.

<extension
    point = "org.eclipse.ui.newWizards">
    <category
        id = "org.eclipse.ui.examples.readmetool.new"
        name="Example Creation Wizards">
    </category>
    <wizard
        id = "org.eclipse.ui.examples.readmetool.wizards.new.file"
        name = "Readme File"
        class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard"
        category="org.eclipse.ui.examples.readmetool.new"
        icon="icons/basic/obj16/newreadme_wiz.gif">
        <description>An example of a wizard that creates sample Readme file
        </description>
        <selection class="org.eclipse.core.resources.IResource"/>
    </wizard>
</extension>

Ä«Å×°í¸®´Â ¸¶¹ý»ç ¼±ÅûçÇ× ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÏ¿© ¸¶¹ý»ç¸¦ ã¾Æ ½ÇÇàÇÒ ¶§ ¸¶¹ý»ç°¡ ±×·ìÈ­µÉ À§Ä¡¸¦ ¼³¸íÇÕ´Ï´Ù. Ä«Å×°í¸® À̸§("¸¶¹ý»ç ÀÛ¼º ¿¹")Àº ¸¶¹ý»ç¿¡¼­ »ç¿ëµÇ´Â ·¹À̺íÀ» Á¤ÀÇÇÕ´Ï´Ù.  ¸¶¹ý»ç ÀÚü´Â Ä«Å×°í¸®¿¡ ÁöÁ¤µË´Ï´Ù.   À̸§, ¾ÆÀÌÄÜ, ¼³¸íÀº ¾Æ·¡ Ç¥½ÃµÈ »õ ¸¶¹ý»ç ¼±ÅûçÇ× ´ëÈ­ »óÀÚ¿¡ ¸ðµÎ Ç¥½ÃµË´Ï´Ù.

¸ðµÎ ¸¶Å©¾÷À» ±â¹ÝÀ¸·Î plugin.xml ÆÄÀÏ¿¡ Ç¥½ÃµË´Ï´Ù.  »ç¿ëÀÚ°¡ ´ÙÀ½ ´ÜÃ߸¦ ¼±ÅÃÇÒ ¶§±îÁö ¾î¶² Ç÷¯±×ÀÎ Äڵ嵵 ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù.  ÀÌ·± »óȲÀÌ ¹ß»ýÇϸé Workbench°¡ ¸¶Å©¾÷¿¡ ÁöÁ¤µÈ ¸¶¹ý»ç Ŭ·¡½º¸¦ ÀνºÅϽºÈ­ÇÏ¿© ¿¹»óµÈ ¼±ÅûçÇ× Å¬·¡½º·Î Àü´ÞÇÕ´Ï´Ù.

ÀÌ È®ÀåÀ¸·Î ½Äº°µÈ Ŭ·¡½º(ReadmeCreationWizard)´Â INewWizard ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.  ´ëºÎºÐÀÇ ¸¶¹ý»ç´Â Ç÷§Æû Wizard Ŭ·¡½º¸¦ È®ÀåÇÏ¿© À̸¦ ±¸ÇöÇÏÁö¸¸, À̰ÍÀº ±¸Çö ¸ÞÄ¿´ÏÁòÀ̸ç È®ÀåÁ¡¿¡ ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù.

¸¶¹ý»ç ÀÚü´Â ´ëü·Î ¸¶¹ý»ç ³»¿¡ ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ´Â ÀÛ¾÷¸¸À» ¼öÇàÇÕ´Ï´Ù. ¸ÕÀú ÆäÀÌÁö ±¸ÇöÀ» »ìÆìº» ´ÙÀ½ ´Ù½Ã ¸¶¹ý»ç¸¦ »ìÆì º¸°Ú½À´Ï´Ù.

ÆäÀÌÁö

Workbench´Â °¢ ¸¶¹ý»ç È®ÀåÁ¡¿¡ ¼öÇàµÇ´Â ó¸® À¯ÇüÀ» Áö¿øÇÏ´Â ±âº» ¸¶¹ý»ç ÆäÀÌÁö Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ ÆäÀÌÁö¸¦ »ç¿ëÇϰųª È®ÀåÇÏ¿© 󸮸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ReadmeCreationWizardÀÇ ¸ñÀûÀº »õ ÆÄÀÏÀ» ÀÛ¼ºÇϰí Çʼö ÄÁÅÙÃ÷¸¦ ÆÄÀÏ¿¡ Ãß°¡ÇÏ´Â °ÍÀ̸ç, ¼±ÅÃÀûÀ¸·Î ÆÄÀÏ¿¡¼­ ÆíÁý±â¸¦ ¿­ ¼öµµ ÀÖ½À´Ï´Ù. ÆäÀÌÁö¿¡´Â »ç¿ëÀÚ°¡ ÆÄÀÏ¿¡ Æ÷Ç﵃ ÄÁÅÙÃ÷¸¦ ÁöÁ¤ÇÏ°í ÆíÁý±â ½ÇÇà ¿©ºÎ¸¦ ÁöÁ¤Çϵµ·Ï Á¦¾î°¡ Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù.

WizardNewFileCreationPage¸¦ È®ÀåÇÏ¿© CreateReadmePage1 ¸¶¹ý»ç ÆäÀÌÁö¸¦ ÀÛ¼ºÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ¸¶¹ý»ç ÆäÀÌÁö¿¡ ´ëÇÑ Á¦¾î´Â º¸±â ¶Ç´Â ÆíÁý±â¿¡ ´ëÇÑ Á¦¾î Á¤ÀÇ¿Í À¯»çÇÑ ¹æ½ÄÀ¸·Î Á¤Àǵ˴ϴÙ. ÆäÀÌÁö´Â Çʼö 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("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("Generate sample section titles");
    sectionCheckbox.setSelection(true);
    sectionCheckbox.addListener(SWT.Selection,this);

    subsectionCheckbox = new Button(group,SWT.CHECK);
    subsectionCheckbox.setText("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("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("New Readme File");
    setDefaultPageImageDescriptor(ReadmeImages.README_WIZARD_BANNER);
}

public void addPages() {
    mainPage = new ReadmeCreationPage(workbench, selection);
    addPage(mainPage);
}

public boolean performFinish() {
    return mainPage.finish();
}

¿Ï·áµÈ ¸¶¹ý»ç´Â ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.