Domanda

Sto scrivendo una procedura guidata per un'applicazione Eclipse RCP.Dopo aver eseguito alcune elaborazioni su un file e aver ricevuto alcuni input dall'utente, non voglio che l'utente torni indietro per apportare modifiche.A questo punto devono accettare o rifiutare i cambiamenti che stanno per apportare al sistema.

Ciò che non riesco a trovare è una chiamata al metodo che mi consenta di sovrascrivere i pulsanti visualizzati o la capacità dell'utente di premere il pulsante Indietro.Preferirei che non ci fosse o almeno fosse disabilitato.

Qualcuno ha trovato un modo per farlo usando il file Procedura guidata JFace E WizardPage?

Dal punto di vista dell'usabilità, sto infrangendo le convenzioni dei maghi?Dovrei considerare un approccio diverso al problema?

È stato utile?

Soluzione

È possibile restituire null dal metodo getPreviousPage() nell'implementazione della pagina della procedura guidata.

Altri suggerimenti

Espandendo la risposta di Jodonell:

Disabilitare il pulsante Indietro è più difficile di quanto dovrebbe essere, a causa del comportamento non intuitivo nell'implementazione predefinita di WizardPage.getPreviousPage().Puoi chiamare setPreviousPage( null ) e getPreviousPage() restituisce comunque la pagina precedente.È necessario sovrascrivere l'implementazione di getPreviousPage() per disabilitare il pulsante Indietro:

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();
    }
}

Vedi il mio post sul blog per alcuni altri suggerimenti e trucchi della procedura guidata JFace:

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

Dal punto di vista dell'interfaccia utente questo sembra piuttosto negativo.I tuoi utenti si sentiranno frustrati se commettono un errore e vorranno tornare indietro e correggerlo e tu non glielo permetti.Penso che sarebbe molto meglio modificare l'applicazione per consentire il ritorno piuttosto che cercare modi per impedirlo.

Non è possibile eseguire questa operazione utilizzando le API della procedura guidata JFace standard.Il mio team ha ottenuto questo risultato scrivendo una finestra di dialogo guidata personalizzata.Lo abbiamo fatto su un'applicazione Eclipse RCP e non su un plugin Eclipse.Disabilitare il pulsante Indietro infrange le convenzioni, ma i nostri analisti aziendali desideravano davvero quella funzionalità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top