2016-07-19 21 views
0

Ich habe einen Zweifel verwandten Einsatz FieldEditors in Plugin-Entwicklung. Ich habe eine Vorliebe Seite, die im Grunde einig StringFieldEditors besteht, booleanFieldEditors, RadioGroupFieldEditors usw.Aktivieren und Deaktivieren von FieldEditors

Das Problem, das ich mit Blick auf bin ist wie folgt:

Ich habe einen booleanFiledEditor namens „Full Details“. Der Code hierfür ist wie folgt:

BooleanFieldEditor fullDetails = new BooleanFieldEditor("fullDetails", "Full Details", org.eclipse.swt.SWT.NONE, getFieldEditorParent()); 
addField(fullDetails); 

Sobald der Benutzer prüft dieses Boolesche Feld, der StringFieldEditors, die diesem booleanFieldEditor folgen sollte aktiviert bekommen. Andernfalls sollten sie deaktiviert bleiben. Der Code für andere StringFieldEditors sind wie folgt:

StringFieldEditor machineName = new StringFieldEditor("machineName", "Host name", getFieldEditorParent()); 
addField(machineName); 

StringFieldEditor ipaddress = new StringFieldEditor("ipaddress", "IP Address", getFieldEditorParent()); 
addField(ipaddress); 

StringFieldEditor cpuinfo = new StringFieldEditor("cpuinfo", "CPU Info", getFieldEditorParent()); 
addField(cpuinfo); 

Es wäre sehr hilfreich, wenn jemand einige Hinweise geben, wie dies geschehen kann.

+0

was ist mit 'StringFieldEditor.setEnabled()'? – kaetzacoatl

Antwort

0

Sie können die setPropertyChangeListener Methode des booleschen Feldeditors verwenden, um eine Aktion auszuführen, wenn sich das Feld ändert. Etwas wie:

fullDetails.setPropertyChangeListener(new IPropertyChangeListener() { 
    @Override 
    public void propertyChange(PropertyChangeEvent event) { 
     boolean newValue = ((Boolean) event.getNewValue()).booleanValue(); 

     // Enable/disable other fields 

     machineName.setEnabled(newValue, getFieldEditorParent()); 
     .... other fields .... 
    });