2016-12-13 2 views
0

私は、 "Restore Defaults"と "Apply"ボタンを自動的に作成するカスタムPreferencePageを作っていますが、 "OK"と "Cancel"ボタンのすぐ下の右下隅にドッキングされたままではありませんEclipse IDEプリファレンスで彼らは私が作成する最後のウィジェットの直後にドッキングします。 This is where the buttons appear for meEclipse RCP PreferencePageの "defaults"と "apply"ボタンを最下部に残しておくにはどうすればいいですか?

これらのボタンを右下にドッキングさせておくにはどうしたらいいですか?ここで

私が持っているコードです:MVPrefPageはPreferencePageがIWorkbenchPreferencePageあなたは、このようなFieldEditorPreferencePageためのこの外のようなBooleanFieldEditorとしてフィールドエディタクラスを使用することはできません{

List<FieldEditor> editors = new ArrayList<>(); 

public MVPrefPage() { 
} 

public MVPrefPage(String title) { 
    super(title); 
} 

public MVPrefPage(String title, ImageDescriptor image) { 
    super(title, image); 
} 

@Override 
public void init(IWorkbench workbench) { 
    setPreferenceStore(MatrixVisualizationActivator.getDefault().getPreferenceStore()); 
} 

@Override 
protected Control createContents(Composite parent) { 

    editors.add(new BooleanFieldEditor(MatrixSettings.TITLE_ON_PROPERTY, "Show title", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.SHOW_ROW_HEADERS_PROPERTY, "Show row headers", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.SHOW_COLUMN_HEADERS_PROPERTY, "Show column headers", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.SHOW_HIDDEN_VALUES_PROPERTY, "Show hidden values", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.SHOW_MATRIX_ELEMENT_DISPLAY_NAMES_PROPERTY, 
      "Show matrix element display names", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.CHART_SYNC_HIGHLIGHTER_PROPERTY, 
      "Highlight view with chart sync", parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.CHART_SYNC_SCROLL_PROPERTY, "Scroll view with chart sync", 
      parent)); 
    editors.add(new BooleanFieldEditor(MatrixSettings.VIEW_SCROLLBAR_SYNC_PROPERTY, "Add scrollbar to synchronizer", 
      parent)); 

    String[][] entryNamesAndValues = { { "Left", "LEFT" }, { "Right", "RIGHT" }, { "Center", "CENTER" } }; 
    editors.add(new ComboFieldEditor(MatrixSettings.VIEW_SNAP_PROPERTY, "Grid snap setting", entryNamesAndValues, 
      parent)); 

    editors.stream().forEach(fe -> { 
     fe.setPreferenceStore(getPreferenceStore()); 
     fe.fillIntoGrid(parent, 2); 
     fe.load(); 
    }); 

    return parent; 
} 

/* 
* (non-Javadoc) 
* 
* @see org.eclipse.jface.preference.PreferencePage#performDefaults() 
*/ 
@Override 
protected void performDefaults() { 
    editors.stream().forEach(fe -> fe.loadDefault()); 
    super.performDefaults(); 
} 

/* 
* (non-Javadoc) 
* 
* @see org.eclipse.jface.preference.PreferencePage#performOk() 
*/ 
@Override 
public boolean performOk() { 
    editors.stream().forEach(fe -> fe.store()); 
    return super.performOk(); 
} 

/* 
* (non-Javadoc) 
* 
* @see org.eclipse.jface.preference.PreferencePage#performApply() 
*/ 
@Override 
protected void performApply() { 
    super.performApply(); 
} 

/* 
* (non-Javadoc) 
* 
* @see org.eclipse.jface.dialogs.DialogPage#dispose() 
*/ 
@Override 
public void dispose() { 
    editors.stream().forEach(fe -> fe.dispose()); 
    super.dispose(); 
} 
+0

これはうまくいくはずです。おそらくあなたの好みのページで何か間違っている。問題を示す[mcve]を私たちに教えてください。特に、 'createContents'メソッドでやること。 –

+0

私は使用しているコードを含むように投稿を編集しました。 – Owen

+0

'FieldEditorPreferencePage'の外でフィールドエディタクラスを使用することはできません。フィールドエディタはページレイアウトを調整できると期待し、' FieldEditorPreferencePage'にないときには正しく動作しないためです。 –

答えて

0

を実装して拡張し

パブリッククラスフィールドエディタはページレイアウトを調整できると期待しており、FieldEditorPreferencePageにないと正しく動作しません。

関連する問題