5

RCPアプリケーションがあり、RCPをアプリケーションとして実行するときに、設定ページでいくつかの値をデフォルトとして設定する必要があります。Fast Viewバーと一部のメニューを特定のパースペクティブから非表示にする必要があるため、設定ページからこれらの設定を設定する必要があります。

私のアプリケーションはまだ製品ではないため、plugin_customization.iniファイルを使用して変更することはできません。

設定ページまたはその他の方法でプログラムでデフォルト値を変更する方法を教えてもらえますか?

4

2 に答える 2

11

プリファレンスページとそのページのイニシャライザクラスの拡張ポイントを定義します。

設定ページの実装例は次のようになります。

public class MyPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
    public static final String PREF_USE_METRIC_UNITS = "PREF_USE_METRIC_UNITS";
    public static final String PREF_AUTO_UPDATE = "PREF_AUTO_UPDATE";
    public static final String PREF_USER_FILES_DIR = "PREF_USER_FILES_DIR";
    public static final String PREF_FAVORITE_ANIMAL = "PREF_FAVORITE_ANIMAL";

    public MyPreferencePage() {
        super(GRID);
    }

    public void createFieldEditors() {
        Composite parent = getFieldEditorParent();
        addField(new BooleanFieldEditor(PREF_USE_METRIC_UNITS, "Use &metric units", parent));
        addField(new BooleanFieldEditor(PREF_AUTO_UPDATE, "&Auto update", parent));

        addField(new DirectoryFieldEditor(PREF_USER_FILES_DIR, "User files &path:", parent));

        addField(new StringFieldEditor(PREF_FAVORITE_ANIMAL, "Favorite &animal:", parent));
    }

    public void init(IWorkbench workbench) {
        setPreferenceStore(Plugin.getPlugin().getPreferenceStore());
    }
}

次に、AbstractPreferenceInitializerクラスで実際のデフォルト値を設定します。

public class MyPreferenceInitializer extends AbstractPreferenceInitializer {
    @Override
    public void initializeDefaultPreferences() {
        IPreferenceStore store = Plugin.getPlugin().getPreferenceStore();

        store.setDefault(MyPreferencePage.PREF_USE_METRIC_UNITS, true);
        store.setDefault(MyPreferencePage.PREF_AUTO_UPDATE, false);

        String userHome = System.getProperty("user.home");
        String defaultPath = userHome + "\\Local Settings\\Temp\\";
        store.setDefault(MyPreferencePage.PREF_USER_FILES_DIR, defaultPath);

        store.setDefault(MyPreferencePage.PREF_FAVORITE_ANIMAL, "platypus");
    }
}
于 2012-08-01T15:05:41.613 に答える
7

延長ポイントを使用できますorg.eclipse.core.runtime.preferences

 <extension
         point="org.eclipse.core.runtime.preferences">
         <scope name="SamplePreferencePage" class="com.example.SamlePreferencePage"/>
      <initializer
            class="com.example.PreferenceInitializer">
      </initializer>
  </extension>
于 2012-08-01T12:42:00.097 に答える