Как я могу изменить содержимое ComboFieldEditor?

2

Я хочу изменить значения на один ComboFieldEditor в зависимости от другого ComboFieldEditor в плагине eclipse. Например. если пользователь меняет значение package, во втором ComboFieldEditor необходимо заполнить разные классы. Класс ComboFieldEditor, похоже, не имеет возможности изменять элементы на лету.

Теги:
eclipse-plugin

1 ответ

3
Лучший ответ

Я создал класс 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");
    }
  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню