Обновление Treeviewer не работает - PullRequest
0 голосов
/ 26 апреля 2018

Обновление TreeViewer не работает после добавления элемента в TreeViewer, но обновление TreeViewer работает после удаления элемента в TreeViewer. мое действие удаления / удаления, подобное этому like EntityElement - базовый тип узла дерева:

public void run() {
                // TODO Auto-generated method stub
                IStructuredSelection selection = (IStructuredSelection) viewSite.getSelectionProvider().getSelection();
                Object firstElement = selection.getFirstElement();  
                if (firstElement instanceof EntityElement) {
                    EntityElement entityElement  = (EntityElement)firstElement;
                    entityElement.getParent().removeChildren(entityElement);
                    tv.refresh(entityElement.getParent(), false);
                }
            }

Мое действие добавления, подобное этому, is объект - это выбранный узел дерева. Объект:

public void run() {
    // TODO Auto-generated method stub
    if (object instanceof EntityElement) {
            EntityElement demoElement = ((EntityElement) object).getChildren().get(0);
            ((EntityElement) object).getChildren().add(demoElement); //Add its first child by default
            Variable.treeViewer.refresh((EntityElement) object);
        }
    }
}

Я хочу спросить, почему удаление действия работает, но добавление действия не работает?

1 Ответ

0 голосов
/ 27 апреля 2018

ОК. Эта проблема была решена. Когда я добавляю новый EntityElement и добавляю его, вызываю refresh () TreeViewer, чтобы обновить и показать новый узел, мне любопытно, почему

EntityElement demoElement = ((EntityElement) object).getChildren().get(0);
             ((EntityElement) object).getChildren().add(demoElement);

не работает ???

...