代码之家  ›  专栏  ›  技术社区  ›  fastcodejava

如何更改combofieldeditor的内容?

  •  2
  • fastcodejava  · 技术社区  · 15 年前

    我想更改其中一个的值 ComboFieldEditor 依赖于另一个 组合字段编辑器 在eclipse插件中。例如,如果用户更改 package ,需要在第二个 组合字段编辑器 . 这个 组合字段编辑器 类似乎没有在运行时更改项的方法。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Chris Jaynes    14 年前

    我创建了一个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");
        }
      }
    }