2015-10-14 33 views
0

我已經實現了兩個自定義IWorkbenchPreferencePage,它們按預期工作。基本上,Page1根據Page2中的選擇顯示不同的信息。問題是我必須關閉(顯式保存)首選項對話框才能看到Page1反映在Page1中的更改​​。Eclipse RCP:在IWorkbenchPreferencePage左側時收到通知

一旦IWorkbenchPreferencePage離開,現在我想知道是否有某種機制可以讓我做某些事情(在我的案例中保存打開首選項頁面上的信息)。

回答

1

您可以覆蓋在選擇不同頁面時調用的okToLeave方法。

的這PreferencePage默認實現:

@Override 
public boolean okToLeave() { 
    return isValid(); 
} 

您還可以使用

public void setVisible(boolean visible) 

方法,該方法被調用時頁面可見,當它被隱藏(請務必在覆寫中致電super.setVisible)。

+0

謝謝geg,效果很好!我只是好奇,你知道爲什麼init(IWorkbench workbench)和createFieldEditors()方法僅在首次打開PreferencePage時被調用?我正在尋找一種方法,當我第一次打開頁面時,每次都會被調用。 – Markus

+1

頁面只創建一次。之後,'setVisible'方法用於顯示或隱藏頁面控件。補充說,答案。 –