Pregunta

Estoy escribiendo un asistente para una aplicación Eclipse RCP.Después de procesar un archivo y recibir algunas aportaciones del usuario, no quiero permitir que el usuario vuelva a realizar cambios.En este punto deben aceptar o rechazar los cambios que están a punto de realizar en el sistema.

Lo que parece que no puedo encontrar es una llamada a un método que me permita anular los botones que se muestran o la capacidad del usuario para presionar el botón Atrás.Preferiría que no estuviera allí o al menos estuviera desactivado.

¿Alguien ha encontrado una manera de hacer esto usando el Asistente JFace y Página del asistente?

En cuanto a la usabilidad, ¿estoy rompiendo las convenciones de los asistentes?¿Debería considerar un enfoque diferente al problema?

¿Fue útil?

Solución

Puede devolver nulo desde el método getPreviousPage() en la implementación de la página del asistente.

Otros consejos

Ampliando la respuesta de jodonell:

Deshabilitar el botón Atrás es más difícil de lo que debería ser debido al comportamiento no intuitivo en la implementación predeterminada de WizardPage.getPreviousPage().Puede llamar a setPreviousPage( null ) y getPreviousPage() aún devuelve la página anterior.Debes anular la implementación de getPreviousPage() para deshabilitar el botón Atrás:

public abstract class MyWizardPage extends WizardPage {
    private boolean backButtonEnabled = true;

    public void setBackButtonEnabled(boolean enabled) {
        backButtonEnabled = enabled;
        getContainer().updateButtons();
    }

    @Override
    public IWizardPage getPreviousPage() {
        if (!backButtonEnabled) {
            return null;
        }
        return super.getPreviousPage();
    }
}

Consulte la publicación de mi blog para obtener más consejos y trucos del asistente JFace:

http://nsawadsky.blogspot.com/2011/07/jface-wizard-tips-and-tricks.html

Desde la perspectiva de la interfaz de usuario, esto parece bastante malo.Sus usuarios se sentirán frustrados si cometen un error y quieren volver atrás y corregirlo y usted no se lo permite.Creo que sería mucho mejor cambiar la aplicación para permitir volver atrás en lugar de buscar formas de evitarlo.

No hay forma de hacer esto utilizando las API estándar del asistente JFace.Mi equipo logró esto escribiendo un WizardDialog personalizado.Hicimos esto en una aplicación Eclipse RCP y no en un complemento de eclipse.Deshabilitar el botón Atrás rompe las convenciones, pero nuestros analistas de negocios realmente querían esa funcionalidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top