2017-05-11 11 views
0

Eclipse 환경 설정 페이지의 적용 및 확인 버튼이 작동해야하는 표준 및 권장 방법은 무엇입니까?Eclipse PreferencePage에서 적용 및 확인 버튼

적용 또는 확인 버튼을 클릭하면 performOK() 메서드가 호출 된 것을 확인하고 발견했습니다. 그것은 내가 계산을하거나 performOK()에서 시작하는 스레드를 말하게하고 사용자가 처음 적용을 클릭 한 다음 ok 버튼을 두 번 실행하면 사용자가 적용을 클릭하고 취소하면 변경 사항이 적용됩니다.

사용자가 적용을 클릭 한 다음 확인을 클릭하면 코드를 두 번 실행하지 않을 수 있습니까?

@Override 
protected void performApply() { 
    this.performOk(); 
} 

@Override 
public boolean performOk() { 
    PreferencesUtil.savePreferences(); 
    return super.performOk(); 
} 

감사

답변

0

그것은 그 적용을 기억하는 당신에게 달려은 performApply을 무시하고 플래그를 설정하여 실행하고있다. 그런 다음 performOk에서 플래그를 테스트하고 똑같은 작업을 건너 뛸 수 있습니다.

적용을 누른 후 사용자가 무언가를 변경하면 플래그를 지우십시오.

은 그래서 같은 : saveDone = false을 설정

private boolean saveDone = false; 


public boolean performOk() { 

    if (!saveDone) { 
    saveDone = true; 

    store.setValue(Constants.ENABLE_DEFAULT_COLOR, this.defaultColoringCheckBox.getSelection()); 
    PreferencesUtil.addToPreferenceStore(viewer.getTable()); 
    PreferencesUtil.savePreferences(); 
    } 

    return super.performOk(); 
} 

아무 페이지에서 변경되는 경우.

+0

performApply 또는 performOK에서 구현을 작성해야합니까? – wearybands

+0

performApply는 정상적으로 performOk를 호출합니다. –

+0

이 질문에 – wearybands

0

사용자가 별도의 방법으로 변경 사항을 적용하려는 동안 실행될 기능을 추출하는 것이 합리적이라고 생각합니다. 이 메소드는 apply AND ok에서 호출됩니다. "performApply"에서 "performOK"를 호출하지 않습니다. performOk에서 환경 설정 대화 상자의 추가 닫기가 super 메소드에 의해 수행됩니다.