2009-07-09 5 views
4

どのようにして特定のページで開くための設定ダイアログを作成しますか? これを行うと、prefが開きます。初期設定では最初のページのダイアログ:Eclipse RCP:特定のページでOpenPreferencesActionを操作する方法は?

OpenPreferencesAction action = new OpenPreferencesAction(); 
action.run(); 

設定ツリーから他のページを表示するにはどうすればいいですか?

答えて

9

OpenPreferencesActionを拡張して独自のアクションを作成し、open()メソッドをオーバーライドして、開くページのIDを渡す必要があります。あなたはOpenPreferencesActionを見れば、あなたはrunメソッドは、このようなものですわかります

public void run() { 
    if (workbenchWindow == null) { 
     // action has been dispose 
     return; 
    } 
    PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(null, null, null, null); 
    dialog.open(); 
} 

2番目と3番目のパラメータは、表示するページのIDとフィルタリング基準を決定します。

+0

パーフェクト!ありがとう:) – Dima

+0

あなたは歓迎です –

0

オープンプリファレンスページEclipse RCPのダイアログ(クリックメニューボタン)。

import org.eclipse.core.commands.AbstractHandler; 
import org.eclipse.core.commands.ExecutionEvent; 
import org.eclipse.core.commands.ExecutionException; 
import org.eclipse.jface.preference.PreferenceDialog; 
import org.eclipse.ui.PlatformUI; 
import org.eclipse.ui.dialogs.PreferencesUtil; 
import com_demo.PreferencePage.PreferencePage_Dialog; 

public class Preferences_Dialog_cmd extends AbstractHandler { 

    @Override 
    public Object execute(ExecutionEvent event) throws ExecutionException { 

     PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),PreferencePage_Dialog.ID , null, null); 
     if (pref != null) 
       pref.open(); 
     return null; 
    } 
} 

public class PreferencePage_Dialog extends FieldEditorPreferencePage implements IWorkbenchPreferencePage 
{ 
    public static final String ID="custom_bill.PreferencePage_Dialog"; 
    @Override 
    protected void createFieldEditors() { 
     //.......... 
    } 

    @Override 
    public void init(IWorkbench workbench) { 
     setPreferenceStore(Activator.getDefault().getPreferenceStore()); 
    } 
} 
関連する問題