org.absmodels.abs.plugin.debug.views.variablesview.VariableView.java Source code

Java tutorial

Introduction

Here is the source code for org.absmodels.abs.plugin.debug.views.variablesview.VariableView.java

Source

/** 
 * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. 
 * This file is licensed under the terms of the Modified BSD License.
 */
package org.absmodels.abs.plugin.debug.views.variablesview;

import org.eclipse.debug.ui.AbstractDebugView;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TreeColumn;

/**
 * This is the ABS variable view intended to be used in the ABS debug perspective. It contains
 * a TreeViewer representing the contents of a abs.backend.java.observing.TaskStackFrameView
 * or an abs.backend.java.observing.ObjectView.
 * @author tfischer
 */
public class VariableView extends AbstractDebugView {

    @Override
    protected Viewer createViewer(final Composite parent) {
        final TreeViewer viewer = new TreeViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION);
        viewer.setContentProvider(new VariableContentProvider());
        viewer.setLabelProvider(new VariableLabelProvider());

        final TreeColumn column1 = new TreeColumn(viewer.getTree(), SWT.LEFT);
        column1.setText("Name");
        final TreeColumn column2 = new TreeColumn(viewer.getTree(), SWT.LEFT);
        column2.setText("Value");

        viewer.getTree().setHeaderVisible(true);
        viewer.getTree().setLinesVisible(true);

        viewer.addDoubleClickListener(new IDoubleClickListener() {
            @Override
            public void doubleClick(DoubleClickEvent event) {
                Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
                if (selection != null) {
                    viewer.setExpandedState(selection, !viewer.getExpandedState(selection));
                }
            }
        });

        parent.addControlListener(new ControlAdapter() {
            @Override
            public void controlResized(ControlEvent e) {
                Rectangle area = parent.getClientArea();
                int width = area.width;

                column1.setWidth(width / 3);
                column2.setWidth(2 * width / 3);
            }
        });
        return viewer;
    }

    @Override
    protected void createActions() {
    }

    @Override
    protected String getHelpContextId() {
        return null;
    }

    @Override
    protected void fillContextMenu(IMenuManager menu) {
    }

    @Override
    protected void configureToolBar(IToolBarManager tbm) {
    }

}