7 Stimmen

Kann man den Zurück-Button in einem JFace-Assistenten deaktivieren?

Ich schreibe gerade einen Assistenten für eine Eclipse RCP-Anwendung. Nachdem ich eine Datei bearbeitet und Benutzereingaben entgegengenommen habe, möchte ich nicht, dass der Benutzer zurückgeht, um Änderungen vorzunehmen. An diesem Punkt muss er die Änderungen, die er am System vornehmen will, entweder akzeptieren oder ablehnen.

Was ich nicht finden kann, ist ein Methodenaufruf, mit dem ich die angezeigten Schaltflächen oder die Möglichkeit des Benutzers, auf die Schaltfläche "Zurück" zu klicken, außer Kraft setzen kann. Ich würde es vorziehen, dass es nicht da sein oder zumindest deaktiviert werden.

Hat jemand eine Möglichkeit gefunden, dies mit Hilfe des JFace-Assistent y WizardPage ?

Verstoße ich aus Sicht der Benutzerfreundlichkeit gegen die Konventionen der Assistenten? Sollte ich einen anderen Ansatz für das Problem in Betracht ziehen?

12voto

jodonnell Punkte 48623

Sie können null von der getPreviousPage()-Methode in Ihrer Assistentenseiten-Implementierung zurückgeben.

7voto

Nick Sawadsky Punkte 143

Erweiterung der Antwort von jodonell:

Das Deaktivieren der Schaltfläche "Zurück" ist schwieriger als es sein sollte, da die Standardimplementierung von WizardPage.getPreviousPage() nicht intuitiv ist. Sie können setPreviousPage( null) aufrufen, und getPreviousPage() gibt immer noch die vorherige Seite zurück. Sie müssen die Implementierung von getPreviousPage() überschreiben, um den Zurück-Button zu deaktivieren:

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

In meinem Blogbeitrag finden Sie weitere Tipps und Tricks zum JFace-Assistenten:

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

3voto

Chris Upchurch Punkte 14893

Aus Sicht der Benutzeroberfläche ist das eher schlecht. Ihre Benutzer werden frustriert sein, wenn sie einen Fehler machen und zurückgehen wollen, um ihn zu korrigieren, und Sie lassen sie nicht. Ich denke, es wäre viel besser, die Anwendung so zu ändern, dass ein Zurückgehen möglich ist, als nach Möglichkeiten zu suchen, dies zu verhindern.

0voto

Heath Borders Punkte 29263

Es gibt keine Möglichkeit, dies mit den Standard-APIs des JFace-Assistenten zu tun. Mein Team hat dies durch das Schreiben eines eigenen WizardDialogs erreicht. Wir haben dies mit einer Eclipse RCP-Anwendung und nicht mit einem Eclipse-Plugin gemacht. Die Deaktivierung der Zurück-Schaltfläche verstößt gegen die Konvention, aber unsere Business-Analysten wollten diese Funktionalität unbedingt haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X