Можете ли вы отключить кнопку «Назад» в мастере JFace?

StackOverflow https://stackoverflow.com/questions/45865

Вопрос

Я пишу мастер для приложения Eclipse RCP.После некоторой обработки файла и ввода данных пользователем я не хочу, чтобы пользователь возвращался для внесения изменений.На этом этапе они должны либо принять, либо отклонить изменения, которые они собираются внести в систему.

Чего я не могу найти, так это вызова метода, который позволяет мне переопределить отображаемые кнопки или возможность пользователя нажать кнопку «Назад».Я бы предпочел, чтобы его там не было или хотя бы отключили.

Кто-нибудь нашел способ сделать это с помощью Мастер JFace и Страница мастера?

С точки зрения юзабилити, нарушаю ли я соглашения мастера?Стоит ли мне рассмотреть другой подход к проблеме?

Это было полезно?

Решение

Вы можете вернуть значение null из метода getPreviousPage() в реализации страницы мастера.

Другие советы

Расширение ответа Джодонелла:

Отключить кнопку «Назад» сложнее, чем должно быть, из-за неинтуитивного поведения реализации WizardPage.getPreviousPage() по умолчанию.Вы можете вызвать setPreviousPage( null ), и getPreviousPage() все равно вернет предыдущую страницу.Вам необходимо переопределить реализацию getPreviousPage(), чтобы отключить кнопку «Назад»:

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

См. еще несколько советов и рекомендаций мастера JFace в моем блоге:

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

С точки зрения пользовательского интерфейса это кажется довольно плохим.Ваши пользователи будут разочарованы, если они допустят ошибку и захотят вернуться и исправить ее, а вы им этого не позволите.Я думаю, что было бы гораздо лучше изменить приложение, чтобы разрешить возврат, а не искать способы предотвратить это.

Невозможно сделать это с помощью стандартных API-интерфейсов мастера JFace.Моя команда достигла этого, написав собственный WizardDialog.Мы сделали это в приложении Eclipse RCP, а не в плагине Eclipse.Отключение кнопки «Назад» нарушает общепринятые правила, но нашим бизнес-аналитикам очень нужна была такая функциональность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top