Quitar el asistente JFace de la página dinámica

Estoy agregando nuevas páginas dinámicas durante la ejecución del asistente JFace, anulando el getNext Método

public IWizardPage getNextPage()
{
    for (int i=0; i<10; i++)
    {   
        MyPage dynamic = new MyPage("dynamic"+i)
        wizard.addPage(dynamic);
    }
    return dynamic0;
}   

¿Existe una opción para eliminar todas las páginas dinámicas la próxima vez que pase el flujo? getNextPage() método.

preguntado el 31 de julio de 12 a las 11:07

es solo un ejemplo de que quiero devolver la primera página que creo:

Siempre debe publicar código, eso compilaría. Tal vez publique un SSCCE (www.sscce.org) -

Los programas Wizard tiene un campo pages que contiene todos los IWIzardPages. Si implementas tu propia Wizard podrías crear un método clear() que elimina y desecha todos los IWizardPages en el pages lista. -

1 Respuestas

Normalmente, las páginas se crean por adelantado para permitir que el asistente calcule su tamaño máximo. Agregar páginas "sobre la marcha" puede crear problemas en esta área.

Habiendo dicho esto, no hay forma de llegar al campo "páginas" que contiene las páginas para eliminar una página de esta lista.

Una alternativa es "marcar" la página como inactiva y omitirla durante el cálculo de getNextPage().

Algo como (esto es getNextPage de IWizard):

public IWizardPage getNextPage(IWizardPage pPage)
{
    MyPage myPage = (MyPage) super.getNextPage(pPage);
    while(myPage != null && myPage.isInactive())
      {   
        myPage = (MyPage) super.getNextPage(myPage);
    }
    return myPage;
}  

Respondido el 26 de enero de 15 a las 12:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.