2016-03-28 13 views
4

Eclipse eklentim için tercihler sayfası oluşturmak üzere FieldEditorPreferencePage sınıfını kullanıyorum. Sayfaya ihtiyacım olan tüm denetimleri ekleyebildim, ancak bir paneli kullanarak birlikte gruplamak istediğim birkaç denetim var.Eclipse PDE projesindeki PreferencePage öğesine bir panel kapsayıcı eklenmesi

İşte Eclipse'in belgelerinden bir örnek. Ancak, sayfaya "Açık modu" panelinin nasıl eklendiği ve denetimlerin buna nasıl eklendiği hakkında bilgi yoktur.

Eclipse PreferencePage'a nasıl bir panel eklerim? Bir preferencePage eklemek için

enter image description here

+0

:

uygulama Örneğin, bu grup benim eklenti projede böyle görünüyor here

kullanılabilir sayfa ama etkin/devre dışı bırakılmış onay kutularını yapmak için bir mücadele olacağını düşünüyorum. Gösterdiğiniz özel tercih sayfası sadece 'PreferencePage' öğesini genişletir ve alan editörlerini kullanmak yerine normal SWT kontrolleri oluşturur. –

+1

Windows XP'yi özlüyorum –

cevap

1

Ben tam olarak benim gereksinimlerini karşılamak vermedi buldum iki uygulamaları dayalı kendi GroupFieldEditor sınıf, yazma sona erdi. Bu kontrole FieldEditor s eklenebilir ve grup addField() yöntemini kullanarak FieldEditorPreferencePage nesnesine eklenebilir. Bir alan editör tercihine radyo düğmesi grubu yapabilirsiniz

enter image description here

0

kısa adımlar:

  1. açık plugin.xml ve Extension sekmesine gidin.
  2. Uzatma noktası ekle org.eclipse.ui.preferencePages
  3. Kimlik/ad ve diğer özellikleri belirtin.
  4. Uygulama sınıfı, PreferencePage'dan genişler. Eğer bir panelde grup birkaç kontroller istiyoruz ve FieldEditorPreferencePage kullanmak durumunda

, sen org.eclipse.jface.preference.FieldEditor uzanan yeni bir sınıf oluşturabilir. Örneğin:

public class MyFieldEditor extends FieldEditor { 
    public MyFieldEditor(String name, String labelText, Composite parent) { 
     super(name, labelText, parent); 
    } 

    protected void doFillIntoGrid(Composite parent, int numColumns) { 
     //...add your controls to panel 
     Group grpOpenMode = new Group(parent, SWT.NONE); 
     grpOpenMode.setText("Open mode"); 
     grpOpenMode.setBounds(10, 10, 230, 117); 

     btnDoubleClick = new Button(grpOpenMode, SWT.RADIO); 
     btnDoubleClick.setBounds(10, 21, 90, 16); 
     btnDoubleClick.setText("Double click"); 

     btnSingleClick = new Button(grpOpenMode, SWT.RADIO); 
     btnSingleClick.setBounds(10, 43, 90, 16); 
     btnSingleClick.setText("Single Click"); 

     Button btnSelectOnHover = new Button(grpOpenMode, SWT.CHECK); 
     btnSelectOnHover.setBounds(20, 63, 123, 16); 
     btnSelectOnHover.setText("Select on hover"); 

     Button btnOpenUsingArrowKey = new Button(grpOpenMode, SWT.CHECK); 
     btnOpenUsingArrowKey.setBounds(20, 85, 188, 16); 
     btnOpenUsingArrowKey.setText("Open when using arrow keys"); 
    } 

    protected void doLoad() { 
     // get preference value, and set data to UI, Invoked after doFillIntoGrid(...) 
     String prefix = getPreferenceName(); 
     boolean isDoubleClick = getPreferenceStore().getBoolean(prefix+"_isDoubleClick"); 
     btnDoubleClick.setSelection(isDoubleClick); 
     btnSingleClick.setSelection(!isDoubleClick); 
     btnSelectOnHoverget.setSelection(getPreferenceStore().getBoolean(prefix+"_selectOnHover"); 
    } 

    protected void doLoadDefault() { 
     //Invoked in preferencePages.performDefaults() - user click "Restore Default" button 
    } 

    protected void doStore() { 
     //save data of UI to preference store. Invoked in preferencePages.performOk() - user click "OK"/"Apply" button 
     getPreferenceStore().setValue(getPreferenceName()+"_isDoubleClick",btnDoubleClick.getSelection()); 
    } 
} 
+0

Cevabınız için teşekkürler, ancak bu soruya cevap verecek kadar kapsamlı değil – mittelmania

+0

Cevabı düzenliyorum. Lütfen kontrol edin. Aslında, * Panel * sadece bir kez kullanılırsa. Sınıfı PreferencePage'dan kullanmayı tercih ediyorum. "Açık mod" paneli gibi. Ben ** korumalı void createOpenModeGroup (Kompozit kompozit) ** tarafından oluşturulmuş olduğunu düşünüyorum. Kaynak kodu org.eclipse.ui.ide.source _ ??? şeklindedir. Jar \ org \ eclipse \ ui \ internal \ dialogs \ WorkbenchPreferencePage.java –

0

Bir Grup kumanda ile çevrili radyo düğmeleri bir dizi eklemek için RadioGroupFieldEditor kullanabilirsiniz. gibi

şey:

RadioGroupFieldEditor groupPref = new RadioGroupFieldEditor("preference key", 
     "Group title message", 3, 
     new String[][] { 
     {"radio 1 text", "preference value 1"}, 
     {"radio 2 text", "preference value 2"}, 
     {"radio 3 text", "preference value 3"}}, 
    getFieldEditorParent(), true /* use a group */); 
addField(groupPref); 
+0

Alanlarım radyo düğmeleri değil – mittelmania

İlgili konular