Como atualizar o plug-in do Eclipse View

Eu criei uma visão simples baseada no tutorial de visualização de plug-in do eclipse. Eu adicionei funcionalidade que permite que meu plugin escute as alterações no depurador. Meu problema é que toda vez que algo no depurador acontece, quero que minha visualização seja atualizada e atualizada com novas informações. Aqui está o que eu tenho / o que estou tentando:

    public void createPartControl(Composite parent) {

        listener = new DebugContextListener(this);
        DebugUITools.getDebugContextManager().addDebugContextListener(listener);

        // Check if there is an already started debug context
        IAdaptable dc = DebugUITools.getDebugContext();
        if (dc != null) {
                dataCollection.add(new ProxyScope("hi")); // manually injecting data 
                Object o = dc.getAdapter(IStackFrame.class);
                if (o instanceof IStackFrame)
                        setStackFrame((IStackFrame) o);

                viewer.refresh(); // this doesn't work
        }       


        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

        // Set column lines visible, and create two columns
        Tree tree = viewer.getTree();
        tree.setHeaderVisible(true);
        tree.setLinesVisible(true);

        TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);
        column1.setText("Name");
        column1.setWidth(400);
        TreeColumn column2 = new TreeColumn(tree, SWT.LEFT);
        column2.setText("Value");
        column2.setWidth(200);

        drillDownAdapter = new DrillDownAdapter(viewer);
        viewer.setContentProvider(new VariableViewContentProvider());
        viewer.setLabelProvider(new VariableViewLabelProvider());
        viewer.setSorter(new ViewerSorter());
        viewer.setInput(getViewSite());

....

}

Então, basicamente, eu tenho toda essa lógica de escuta de depuração no topo, o que acontece dentro dessa instrução if. Eu sei de fato que meu programa entra lá. Everytime somethign changes Eu quero atualizar minha visão, e eu tentei fazer viewer.refresh, que não funciona. As informações exibidas pela minha exibição são baseadas no objeto dataCollection, de modo que a linha com o dataCollection.add ... é apenas eu adicionando dados manualmente, como se o depurador fizesse alguma coisa. Se eu colocar essa linha fora da instrução if, então minha view funciona (eu acho que esta é apenas a construção original da view quando eu inicio o plugin pela primeira vez), mas quando eu a coloco dentro da declaração if ela não funciona , o que significa que minha visão nunca é atualizada.

Obrigado por qualquer ajuda.

questionAnswers(3)

yourAnswerToTheQuestion