2
我想改變一個ComboFieldEditor
上的值,這取決於eclipse插件中的另一個ComboFieldEditor
。例如。如果用戶更改package
,則需要在第二個ComboFieldEditor
中填充不同的類。這個ComboFieldEditor
類似乎沒有辦法改變飛行中的物品。如何更改ComboFieldEditor的內容?
我想改變一個ComboFieldEditor
上的值,這取決於eclipse插件中的另一個ComboFieldEditor
。例如。如果用戶更改package
,則需要在第二個ComboFieldEditor
中填充不同的類。這個ComboFieldEditor
類似乎沒有辦法改變飛行中的物品。如何更改ComboFieldEditor的內容?
我創建了一個SmartComboFieldEditor類,允許我使用後臺數據存儲在幕後優雅地獲取和設置ComboFieldEditor的值。
package wat.core.plugin;
import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.swt.widgets.Composite;
public class SmartComboFieldEditor extends ComboFieldEditor {
public SmartComboFieldEditor(String name, String labelText, String[][] entryNamesAndValues, Composite parent) {
super(name, labelText, entryNamesAndValues, parent);
}
public String getSelectedValue()
{
doStore();
return getPreferenceStore().getString(getPreferenceName());
}
public void setSelectedValue(String newValue)
{
getPreferenceStore().setValue(getPreferenceName(), newValue);
doLoad();
}
}
然後你就可以覆蓋的propertyChange和performOK方法,像這樣:
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
if (event.getSource() == combo1)
{
if (combo1.getSelectedValue().equals("Some Value"))
{
combo2.setSelectedValue("Some Other Value");
}
}
}