2008-09-05 6 views
6

Eclipse RCP 응용 프로그램 용 마법사를 작성하고 있습니다. 파일을 처리하고 일부 사용자 입력을 한 후에 사용자가 다시 변경하도록 허용하지 않습니다. 이 시점에서 그들은 시스템에 대해 변경하려는 내용을 수락하거나 거절해야합니다.JFace 마법사에서 뒤로 버튼을 비활성화 할 수 있습니까?

내가 찾지 못하는 것 중 하나는 표시되는 단추 또는 뒤로 단추를 누르는 사용자의 기능을 재정의 할 수있는 메서드 호출입니다. 나는 거기에 있지 않거나 적어도 무능하게하는 것을 선호 할 것이다.

누구나 JFace WizardWizardPage을 사용하여이 작업을 수행 할 수있는 방법을 찾았습니까?

사용 편리 성, 나는 마법사 협약을 위반하고 있습니까? 문제에 대한 다른 접근법을 고려해야합니까?

답변

11

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

3

UI 관점에서 보면 다소 나빠질 것 같습니다. 사용자가 실수를 저질렀다가 다시 돌아가서 수정하려고하면 좌절감을 느낄 수 있습니다. 나는 그것을 막을 수있는 방법을 찾기보다는 돌아가는 것을 허용하도록 응용 프로그램을 변경하는 것이 훨씬 더 좋을 것이라고 생각합니다.

0

표준 JFace 마법사 API를 사용하여이를 수행 할 방법이 없습니다. 우리 팀은 사용자 지정 WizardDialog을 작성하여이 작업을 수행했습니다. 우리는 이클립스 RCP 애플리케이션에서 였고 이클립스 플러그인에서는하지 않았다. 뒤로 버튼을 사용하지 않도록 설정하는 것은 관행을 위반하는 것이지만 비즈니스 분석가는 실제로이 기능을 원했습니다. jodonell의 대답에 확장

6

: 그것이 있어야보다

뒤로 버튼을 비활성화로 인해 WizardPage.getPreviousPage의 기본 구현에서 비 직관적 인 동작으로 어렵습니다(). setPreviousPage (null)를 호출 할 수 있습니다. getPreviousPage()는 여전히 이전 페이지를 반환합니다.

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

:

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는 마법사 팁과 트릭 내 블로그 게시물을 참조하십시오 : 당신은 뒤로 버튼을 비활성화하기 위해 getPreviousPage()의 구현을 재정의해야