3
私は最初のEclipseプラグインを開発しています。そのために私は単純な見方をした例を使用しました。 IStructuredContentProviderを追加して、コンテンツにビューを提供しました。初めて読み込まれたときに動作しますが、コンテンツを変更したときにはビューは更新されません。私は何をすべきか?Eclipseプラグインの開発:コンテンツが変更されたことをビューに通知する方法
これは私の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();
}
}
はい私もそれを発見しましたが、このメソッドではsysoutを実行するときに、コンテンツプロバイダに新しい項目を追加するときに呼び出されません。 – RoflcoptrException
@Roflcoptr viewer.setInput()を呼び出すと、inputChanged()が呼び出されます。これは視聴者への参照を得るチャンスです。コンテンツに後で変更を加えると、たとえば、 viewer.refresh()をプロバイダから取得します。 –
ああ、私は参照してください。ありがとう。 – RoflcoptrException