Frage

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

Was ich scheinbar nicht finden kann, ist ein Methodenaufruf, mit dem ich die angezeigten Schaltflächen oder die Möglichkeit des Benutzers, die Zurück-Schaltfläche zu drücken, überschreiben kann.Ich würde es vorziehen, wenn es nicht vorhanden wäre oder zumindest deaktiviert wäre.

Hat jemand eine Möglichkeit gefunden, dies mit dem zu tun? JFace-Assistent Und WizardPage?

Verletze ich im Hinblick auf die Benutzerfreundlichkeit die Konventionen von Assistenten?Sollte ich eine andere Herangehensweise an das Problem in Betracht ziehen?

War es hilfreich?

Lösung

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

Andere Tipps

Erweiterung von Jodonells Antwort:

Das Deaktivieren der Zurück-Schaltfläche ist aufgrund des nicht intuitiven Verhaltens in der Standardimplementierung von WizardPage.getPreviousPage() schwieriger als es sein sollte.Sie können setPreviousPage( null ) aufrufen und getPreviousPage() gibt weiterhin die vorherige Seite zurück.Sie müssen die Implementierung von getPreviousPage() überschreiben, um die Zurück-Schaltfläche 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();
    }
}

Weitere Tipps und Tricks zum JFace-Assistenten finden Sie in meinem Blogbeitrag:

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

Aus Sicht der Benutzeroberfläche scheint dies eher schlecht zu sein.Ihre Benutzer werden frustriert sein, wenn sie einen Fehler machen und ihn noch einmal korrigieren möchten, Sie es aber nicht zulassen.Ich denke, es wäre viel besser, die Anwendung zu ändern, um ein Zurückgehen zu ermöglichen, als nach Möglichkeiten zu suchen, dies zu verhindern.

Dies ist mit den Standard-APIs des JFace-Assistenten nicht möglich.Mein Team hat dies erreicht, indem es einen benutzerdefinierten WizardDialog geschrieben hat.Wir haben dies mit einer Eclipse RCP-Anwendung und nicht mit einem Eclipse-Plugin gemacht.Das Deaktivieren der Zurück-Schaltfläche verstößt gegen die Konvention, aber unsere Geschäftsanalysten wollten die Funktionalität unbedingt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top