Cómo actualizar el complemento de la vista de Eclipse

Creé una vista simple basada en el tutorial de eclipse plugin view. Agregué una funcionalidad que le permite a mi complemento escuchar los cambios en el depurador. Mi problema es que cada vez que ocurre algo en el depurador, deseo que mi vista se actualice y se actualice con nueva información. Esto es lo que tengo / lo que estoy tratando:

    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());

....

}

Básicamente, tengo toda esta lógica de escucha de depuración en la parte superior, lo que sucede dentro de esa sentencia if. Sé a ciencia cierta que mi programa entra allí. Cada vez que algo cambia quiero actualizar mi vista, y he intentado hacer viewer.refresh, que no funciona. La información que muestra mi vista se basa en el objeto dataCollection, de modo que la línea con dataCollection.add ... simplemente me agrega datos manualmente como si el depurador hiciera algo. Si pongo esa línea fuera de la declaración if, entonces mi vista funciona (supongo que esta es solo la construcción original de la vista cuando inicio el complemento), pero cuando la coloco dentro de la declaración if no funciona , lo que significa que mi vista nunca se actualiza.

Gracias por cualquier ayuda.