El paquete org.eclipse.jdt.ui.wizards proporciona páginas de asistente para crear elementos Java. Además de utilizar las páginas prefabricadas, los clientes tienen la posibilidad de crear subclases de las páginas del asistente para añadir campos de entrada propios o para influir sobre la generación de código. A continuación figura un ejemplo de una página de asistente de tipo nuevo personalizada para crear clases de prueba JUnit. La página inicializa el campo de superclase con "junit.framework.TestCase" y añade un recuadro de selección que controla si deben crearse apéndices de método para los métodos setUp() y tearDown().
public class TestCaseWizardPage extends NewTypeWizardPage {
private Button fCreateStubs; public TestCaseWizardPage() { super(true, "TestCaseWizardPage"); } /** * El asistente que gestiona esta página de asistente debe llamar a este método * durante la inicialización con una selección correspondiente. */ public void init(IStructuredSelection selection) { IJavaElement jelem= getInitialJavaElement(selection); initContainerPage(jelem); initTypePage(jelem); // definir los componentes para los que se desea un estado IStatus[] status= new IStatus[] { fContainerStatus, isEnclosingTypeSelected() ? fEnclosingTypeStatus : fPackageStatus, fTypeNameStatus, }; updateStatus(status); } 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); // Crear los campos de entrada estándar createContainerControls(composite, nColumns); createPackageControls(composite, nColumns); createSeparator(composite, nColumns); createTypeNameControls(composite, nColumns); createSuperClassControls(composite, nColumns); // Crear el recuadro de selección que controla si se desean apéndices fCreateStubs= new Button(composite, SWT.CHECK); fCreateStubs.setText("Añadir 'setUp()' y 'tearDown()' a clase nueva"); GridData gd= new GridData(); gd.horizontalSpan= nColumns; fCreateStubs.setLayoutData(gd); setControl(composite); // Inicializar el campo de tipo super y marcarlo como de sólo lectura 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); } } }