Как я могу изменить содержимое ComboFieldEditor? - PullRequest
2 голосов
/ 19 апреля 2010

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

1 Ответ

3 голосов
/ 02 июля 2010

Я создал класс 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 и executeOK следующим образом:

public void propertyChange(PropertyChangeEvent event) {
  super.propertyChange(event);
  if (event.getSource() == combo1)
  {
    if (combo1.getSelectedValue().equals("Some Value"))
    {
      combo2.setSelectedValue("Some Other Value");
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...