Разработка плагина Eclipse: Как сообщить, что контент изменился? - PullRequest
3 голосов
/ 15 декабря 2011

Я разрабатываю свой первый плагин Eclipse. Для этого я использовал пример, который имеет простое представление. Я добавил IStructuredContentProvider, чтобы обеспечить представление содержимым. Первый раз, когда он загружается, он работает, но когда я изменил содержимое, представление не обновляется. Что мне делать?

Это мой IStructuredContentProvider:

public class ViewContentProvider implements IStructuredContentProvider {

    private List<Project> projects = new ArrayList<Project>();

    private void addProject(Project project) {
        if (!projects.contains(project)) {
            projects.add(project);
        }
    }

    public void addProjects(List<Project> projects) {
        for (Project project : projects) {
            addProject(project);
        }
    }

    @Override
    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

    }

    @Override
    public void dispose() {

    }

    @Override
    public Object[] getElements(Object parent) {
        return projects.toArray();
    }
}

1 Ответ

4 голосов
/ 15 декабря 2011

Это из описания inputChanged() метода:

Типичное использование этого метода - регистрация поставщика контента в качестве прослушивателя изменений на новом входе (с использованием средств, специфичных для модели).и отмены регистрации зрителя из старого ввода.В ответ на эти уведомления об изменениях поставщик контента должен обновить средство просмотра ( см. Методы добавления, удаления, обновления и обновления для средств просмотра ).

...