java - 如何更改 ComboFieldEditor 的内容?

标签 java eclipse eclipse-plugin

我想根据 Eclipse 插件中的另一个 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 和 PerformOK 方法,如下所示:

public void propertyChange(PropertyChangeEvent event) {
  super.propertyChange(event);
  if (event.getSource() == combo1)
  {
    if (combo1.getSelectedValue().equals("Some Value"))
    {
      combo2.setSelectedValue("Some Other Value");
    }
  }
}

关于java - 如何更改 ComboFieldEditor 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2665906/

相关文章:

java - 对象数组的插入排序?

java - 获取给定时区的当前时间 : android

linux - 如何从本地计算机 [windows 7] 运行和恢复远程计算机 [linux] 中的 Eclipse

java - ActionBarSherlock 类型 mAdded 无法解析或不是字段 Watson.java

eclipse - 有没有更快的方法可以在Eclipse STS中重复运行test-app?

java - 继承Eclipse插件

java - 如何将泛型参数绑定(bind)到特定的List子类?

java - AdMob 广告未展示

java - 将 UI 事件监听与 Eclipse RCP : how to do it properly? 中的部件分离

eclipse - 如何在 Eclipse 的上下文菜单中禁用运行方式、调试方式选项