Como Criar uma Página Personalizada do Assistente para 'Novo Elemento Java'

O pacote org.eclipse.jdt.ui.wizards fornece páginas de assistentes para a criação de elementos Java. Além de utilizar as páginas pré-fabricadas, os clientes possuem a capacidade de dividir as páginas de assistentes em subclasses para incluir seus próprios campos de entrada ou para influenciar na geração de código. A seguir, o exemplo de uma nova página de assistente de tipo personalizada para criar classes de instrução de teste JUnit. A página inicializa o campo de superclasse com "junit.framework.TestCase" e inclui uma caixa de opção que controla se os stubs dos métodos setUp() e tearDown() devem ser criados.

public class TestCaseWizardPage extends NewTypeWizardPage {

private Button fCreateStubs; public TestCaseWizardPage() { super(true, "TestCaseWizardPage"); } /** * O assistente que está gerenciando esta página de assistente deve chamar este método * durante a inicialização com uma seleção correspondente. */ public void init(IStructuredSelection selection) { IJavaElement jelem= getInitialJavaElement(selection); initContainerPage(jelem); initTypePage(jelem); // definir os componentes para os quais se deseja um status 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); // Criar os campos de entrada padrão createContainerControls(composite, nColumns); createPackageControls(composite, nColumns); createSeparator(composite, nColumns); createTypeNameControls(composite, nColumns); createSuperClassControls(composite, nColumns); // Criar a caixa de opção que controla se os stubs são desejados fCreateStubs= new Button(composite, SWT.CHECK); fCreateStubs.setText("Incluir 'setUp()' e 'tearDown()' na nova classe"); GridData gd= new GridData(); gd.horizontalSpan= nColumns; fCreateStubs.setLayoutData(gd); setControl(composite); // Inicializar o campo de supertipo e marcá-lo como somente leitura 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 e outros 2000, 2002. Todos os Direitos Reservados.