Java 如何更改ComboFieldEditor的内容?
我想根据eclipse插件中的另一个Java 如何更改ComboFieldEditor的内容?,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我想根据eclipse插件中的另一个ComboFieldEditor更改一个ComboFieldEditor上的值。例如,如果用户更改了包,则需要在第二个ComboFieldEditor中填充不同的类。ComboFieldEditor类似乎无法动态更改项目。我创建了一个SmartComboFieldEditor类,允许我在后台使用备份数据存储优雅地获取和设置ComboFieldEditor的值 package wat.core.plugin; import org.eclipse.jface.
ComboFieldEditor
更改一个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和PerformMok方法,如下所示:
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
if (event.getSource() == combo1)
{
if (combo1.getSelectedValue().equals("Some Value"))
{
combo2.setSelectedValue("Some Other Value");
}
}
}