org.eclipse.jdt.ui.wizards ÆÐŰÁö´Â Java ¿ä¼Ò¸¦ ÀÛ¼º ¹× ±¸¼ºÇϱâ À§ÇÑ ¸¶¹ý»ç ÆäÀÌÁö¸¦ Á¦°øÇÕ´Ï´Ù. »ç¿ëÀÚ¿¡°Ô »çÀü¿¡ ÀÛ¼ºµÈ ¸î °³ÀÇ ÆäÀÌÁö°¡ Á¦°øµË´Ï´Ù.
JavaCapabilityConfigurationPage´Â ¼Ò½º Æú´õ ¼³Á¤, ÂüÁ¶µÈ ÇÁ·ÎÁ§Æ®, ÂüÁ¶µÇ°í ³»º¸³»Áø ¶óÀ̺귯¸®ÀÇ ÆíÁý°ú °°Àº Java ºôµå ¼³Á¤À» Áö¿øÇÕ´Ï´Ù.
Java ¼Ó¼º ¹× ±âŸ Java ÇÁ·ÎÁ§Æ® ¼º´ÉÀ» »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â Áß¿¡µµ Ç÷¯±×Àο¡ ¸Â°Ô ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ¸¶¹ý»ç¸¦ Á¦°øÇØ¾ß ÇÒ °æ¿ì NewJavaProjectWizardPage¸¦ ¼ºêŬ·¡½º·Î ºÐ·ùÇÏ´Â ´ë½Å ÀÌ ÆäÀÌÁö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
¸¶¹ý»ç °èÃþ ±¸Á¶ ÆäÀÌÁö´Â »õ 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);
}
}
}