문제

Eclipse RCP 애플리케이션용 마법사를 작성 중입니다.파일에 대해 일부 처리를 수행하고 일부 사용자 입력을 받은 후 사용자가 다시 돌아가 변경 작업을 수행하도록 하고 싶지 않습니다.이 시점에서 그들은 시스템에 적용하려는 변경 사항을 수락하거나 거부해야 합니다.

내가 찾을 수 없는 것은 표시되는 버튼이나 사용자가 뒤로 버튼을 누르는 기능을 재정의할 수 있는 메서드 호출입니다.나는 그것이 거기에 없거나 적어도 비활성화되어 있는 것을 선호합니다.

누구든지 다음을 사용하여 이 작업을 수행하는 방법을 찾았습니까? JFace 마법사 그리고 마법사페이지?

유용성 측면에서 마법사 규칙을 위반하고 있습니까?문제에 대해 다른 접근 방식을 고려해야 합니까?

도움이 되었습니까?

해결책

마법사 페이지 구현의 getPreviousPage() 메서드에서 null을 반환할 수 있습니다.

다른 팁

jodonell의 답변을 확장하면 다음과 같습니다.

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

UI 관점에서 보면 이는 다소 나쁜 것 같습니다.사용자가 실수를 해서 다시 돌아가서 수정하려고 하는데 허용되지 않으면 사용자는 좌절감을 느끼게 될 것입니다.방지할 수 있는 방법을 찾는 것보다 돌아가는 것을 허용하도록 애플리케이션을 변경하는 것이 훨씬 낫다고 생각합니다.

표준 JFace 마법사 API를 사용하여 이를 수행할 수 있는 방법은 없습니다.우리 팀은 사용자 정의 WizardDialog를 작성하여 이를 달성했습니다.우리는 Eclipse 플러그인이 아닌 Eclipse RCP 애플리케이션에서 이 작업을 수행했습니다.뒤로 버튼을 비활성화하는 것은 관습을 깨는 것이지만 우리 비즈니스 분석가들은 이 기능을 정말로 원했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top