我正在开发我的第一个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();
}
}
答案 0 :(得分:4)
这来自inputChanged()
方法的描述:
此方法的典型用途是将内容提供程序注册为新输入更改的侦听器(使用特定于模型的方法),并从旧输入中取消注册查看器。为响应这些更改通知,内容提供商应更新查看器(查看查看器上的添加,删除,更新和刷新方法)。