Java ¸¶¹ý»ç ÆäÀÌÁö

org.eclipse.jdt.ui.wizards ÆÐŰÁö´Â Java ¿ä¼Ò¸¦ ÀÛ¼º ¹× ±¸¼ºÇϱâ À§ÇÑ ¸¶¹ý»ç ÆäÀÌÁö¸¦ Á¦°øÇÕ´Ï´Ù.  »ç¿ëÀÚ¿¡°Ô »çÀü¿¡ ÀÛ¼ºµÈ ¸î °³ÀÇ ÆäÀÌÁö°¡ Á¦°øµË´Ï´Ù.

Java ºôµå ¼³Á¤ ±¸¼º

JavaCapabilityConfigurationPage´Â ¼Ò½º Æú´õ ¼³Á¤, ÂüÁ¶µÈ ÇÁ·ÎÁ§Æ®, ÂüÁ¶µÇ°í ³»º¸³»Áø ¶óÀ̺귯¸®ÀÇ ÆíÁý°ú °°Àº Java ºôµå ¼³Á¤À» Áö¿øÇÕ´Ï´Ù.  

Java ¼Ó¼º ¹× ±âŸ Java ÇÁ·ÎÁ§Æ® ¼º´ÉÀ» »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â Áß¿¡µµ Ç÷¯±×Àο¡ ¸Â°Ô ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ¸¶¹ý»ç¸¦ Á¦°øÇØ¾ß ÇÒ °æ¿ì NewJavaProjectWizardPage¸¦ ¼­ºêŬ·¡½º·Î ºÐ·ùÇÏ´Â ´ë½Å ÀÌ ÆäÀÌÁö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

»õ Java ¿ä¼Ò ÀÛ¼º

¸¶¹ý»ç °èÃþ ±¸Á¶ ÆäÀÌÁö´Â »õ Java ¿ä¼Ò ÀÛ¼ºÀ» Áö¿øÇÕ´Ï´Ù.   

NewElementWizardPage´Â ¸¶¹ý»çÀÇ ±âº» ¿î¿µÀ» Á¤ÀÇÇÏ´Â abstract Ŭ·¡½ºÀÔ´Ï´Ù.  concrete ¸¶¹ý»ç¿¡¼­ Á¦°øµÇ´Â ±â´ÉÀ» »ç¿ëÀÚ Á¤ÀÇÇϵµ·Ï Ãß°¡ abstract Ŭ·¡½º°¡ °èÃþÀ¸·Î Á¦°øµË´Ï´Ù.

concrete ÀÛ¼º ¸¶¹ý»ç´Â Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î ¼­ºêŬ·¡½º·Î ºÐ·ùµÇÁö ¾Ê½À´Ï´Ù.  

Ŭ·¡½º °æ·Î ÄÁÅ×ÀÌ³Ê ¸¶¹ý»ç ÆäÀÌÁö Á¦°ø

ÀÎÅÍÆäÀ̽º IClasspathContainerPage´Â »ç¿ëÀÚ°¡ »õ Ŭ·¡½º °æ·Î ÄÁÅ×ÀÌ³Ê Ç׸ñÀ» Á¤ÀÇÇϰųª ±âÁ¸ Ç׸ñÀ» ÆíÁýÇÒ ¼ö ÀÖ´Â ¸¶¹ý»ç ÆäÀÌÁö¸¦ Á¦°øÇÏ´Â ±¸Á¶¸¦ Á¤ÀÇÇÕ´Ï´Ù.  Ç÷¯±×Àο¡¼­ JDT ÄÚ¾î org.eclipse.jdt.core.classpathContainerInitializer È®ÀåÁ¡À» »ç¿ëÇÏ¿© Ŭ·¡½º °æ·Î ÄÁÅ×À̳ÊÀÇ °íÀ¯ À¯ÇüÀ» Á¤ÀÇÇÑ °æ¿ì, ÀÌ À¯ÇüÀÇ Å¬·¡½º °æ·Î ÄÁÅ×À̳ʸ¦ ÆíÁý ¹× ÀÛ¼ºÇÏ´Â µ¥ ÀûÇÕÇÑ ¸¶¹ý»ç ÆäÀÌÁö¸¦ Á¤ÀÇÇϰíÀÚ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç÷¯±×ÀÎÀÇ ¸¶Å©¾÷Àº È®Àå org.eclipse.jdt.ui.classpathContainerPage¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù.  È®Àå ¸¶Å©¾÷¿¡¼­´Â IClasspathContainerPage¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÇ À̸§À» Á¦°øÇÕ´Ï´Ù.  ¼±Åà ½Ã Ŭ·¡½º °æ·ÎÀÇ ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ ¸¶¹ý»ç ÆäÀÌÁö¿¡¼­ Ãß°¡ Á¤º¸¸¦ Á¦°øÇÏ·Á¸é IClasspathContainerPageExtensionÀ» ±¸ÇöÇÏ¿© ÇöÀç Ŭ·¡½º °æ·Î¿¡¼­ ¼±ÅÃµÈ Ç׸ñ¿¡ µû¶ó »óŸ¦ ÃʱâÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸¶¹ý»ç ÆäÀÌÁö »ç¿ëÀÚ Á¤ÀÇ

¹Ì¸® ÀÛ¼ºµÈ ÆäÀÌÁö¸¦ »ç¿ëÇÏ´Â ¹æ¹ý ¿Ü¿¡µµ ¸¶¹ý»ç ÆäÀÌÁö¸¦ ¼­ºêŬ·¡½º·Î ºÐ·ùÇÏ¿© °íÀ¯ÇÑ ÀÔ·Â Çʵ带 Ãß°¡Çϰųª ÄÚµå »ý¼º¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù.   NewElementWizardPage °èÃþ¿¡¼­ abstract Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© concrete Ŭ·¡½º¸¦ ¼­ºêŬ·¡½º·Î ÁöÁ¤Çϱ⠺¸´Ù´Â ¸¶¹ý»ç¸¦ »ç¿ëÀÚ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù.

´ÙÀ½Àº JUnit Å×½ºÆ® ÄÉÀ̽º Ŭ·¡½º¸¦ ÀÛ¼ºÇϵµ·Ï »ç¿ëÀÚ Á¤ÀÇµÈ »õ·Î¿î À¯ÇüÀÇ ¸¶¹ý»ç ÆäÀÌÁö »ùÇÃÀÔ´Ï´Ù. ÆäÀÌÁö´Â "junit.framework.TestCase"·Î ¼öÆÛŬ·¡½º Çʵ带 ÃʱâÈ­Çϰí setUp() ¹× tearDown() ¸Þ¼Òµå¿¡ ´ëÇÑ ¸Þ¼Òµå ½ºÅÓÀ» ÀÛ¼ºÇÒ ÁöÀÇ ¿©ºÎ¸¦ Á¦¾îÇÏ´Â ¼±ÅöõÀ» Ãß°¡ÇÕ´Ï´Ù.

public class TestCaseWizardPage extends NewTypeWizardPage {
    private Button fCreateStubs;

    public TestCaseWizardPage() {
        super(true, "TestCaseWizardPage");
    }

    /**
     * The wizard managing this wizard page must call this method
     * during initialization with a corresponding selection.
     */   
    public void init(IStructuredSelection selection) {
        IJavaElement jelem= getInitialJavaElement(selection);
        initContainerPage(jelem);
        initTypePage(jelem);
        doStatusUpdate();
    }

    private void doStatusUpdate() {
        // define the components for which a status is desired
        IStatus[] status= new IStatus[] {
            fContainerStatus,
            isEnclosingTypeSelected() ? fEnclosingTypeStatus : fPackageStatus,
            fTypeNameStatus,
        };
        updateStatus(status);
    }


    protected void handleFieldChanged(String fieldName) {
        super.handleFieldChanged(fieldName);

        doStatusUpdate();
    }
	
    public void createControl(Composite parent) {
        initializeDialogUnits(parent);
        Composite composite= new Composite(parent, SWT.NONE);
        int nColumns= 4;
        GridLayout layout= new GridLayout();
        layout.numColumns= nColumns;
        composite.setLayout(layout);

        // Create the standard input fields
        createContainerControls(composite, nColumns);
        createPackageControls(composite, nColumns);
        createSeparator(composite, nColumns);
        createTypeNameControls(composite, nColumns);
        createSuperClassControls(composite, nColumns);

        // Create the checkbox controlling whether we want stubs
        fCreateStubs= new Button(composite, SWT.CHECK);
        fCreateStubs.setText("Add 'setUp()' and 'tearDown()' to new class");
        GridData gd= new GridData();
        gd.horizontalSpan= nColumns;
        fCreateStubs.setLayoutData(gd);

        setControl(composite);

        // Initialize the super type field and mark it as read-only
        setSuperClass("junit.framework.TestCase", false);
    }

    protected void createTypeMembers(IType newType, ImportsManager imports, IProgressMonitor monitor) throws CoreException {
        if (fCreateStubs.getSelection()) {
            String setUpMathod= "public void setUp() {}";
            newType.createMethod(setUpMathod, null, false, null);

            String tearDownMathod= "public void setUp() {}"
            newType.createMethod(tearDownMathod, null, false, null);
        }
   }
}

Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.