如何更改ComboFieldEditor的内容? [英] How do I change content of ComboFieldEditor?
本文介绍了如何更改ComboFieldEditor的内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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扩展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并执行OK方法:
public void propertyChange(PropertyChangeEvent event){
super.propertyChange(event);
if(event.getSource()== combo1)
{
if(combo1.getSelectedValue()。equals(Some Value))
{
combo2 .setSelectedValue(Some Other Value);
}
}
}
I want to change the values on one ComboFieldEditor
depending on another ComboFieldEditor
in an eclipse plugin. E.g. if the user changes the package
, different classes need to be populated in the second ComboFieldEditor
. The ComboFieldEditor
class does not seem to to have a way to change the items on the fly.
解决方案
I created a SmartComboFieldEditor class to allow me to elegantly get and set the value of a ComboFieldEditor using the backing data store behind the scenes.
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();
}
}
Then you can override the propertyChange and performOK methods like so:
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
if (event.getSource() == combo1)
{
if (combo1.getSelectedValue().equals("Some Value"))
{
combo2.setSelectedValue("Some Other Value");
}
}
}
这篇关于如何更改ComboFieldEditor的内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文