Package org.erlide.cover.ui.views

Source Code of org.erlide.cover.ui.views.EUnitView

package org.erlide.cover.ui.views;

import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.ViewPart;
import org.erlide.cover.core.CoverBackend;
import org.erlide.cover.core.IEUnitObserver;
import org.erlide.cover.ui.views.helpers.TestViewContentProvider;
import org.erlide.cover.ui.views.helpers.TestViewLabelProvider;
import org.erlide.cover.views.model.TestTreeModel;
import org.erlide.ui.util.DisplayUtils;

/**
* Simple view to show EUnit test results
*
* @author Aleksandra Lipiec
*
*/
public class EUnitView extends ViewPart implements IEUnitObserver {

    /**
     * The ID of the view as specified by the extension.
     */
    public static final String ID = "org.erlide.eunit.ui.EUnitView";

    private TreeViewer viewer;
    private Label resultsLabel;
    private final CoverBackend backend;

    public EUnitView() {
        backend = CoverBackend.getInstance();
        backend.addEUnitListener(this);
    }

    @Override
    public void createPartControl(final Composite parent) {
        // layout
        final GridLayout containerLayout = new GridLayout(1, false);
        containerLayout.marginWidth = 0;
        containerLayout.marginHeight = 0;
        containerLayout.verticalSpacing = 3;
        parent.setLayout(containerLayout);

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

        viewer.setContentProvider(new TestViewContentProvider(getViewSite()));
        viewer.setLabelProvider(new TestViewLabelProvider());
        viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        viewer.getTree().setLinesVisible(true);

        viewer.setInput(TestTreeModel.getInstance());

        resultsLabel = new Label(parent, SWT.SINGLE);
        resultsLabel.setText("Passed: 0    Failed: 0   Skipped: 0   Canceled: 0");
        final FontData font = new FontData();
        font.setStyle(SWT.BOLD);
        resultsLabel.setFont(new Font(Display.getCurrent(), font));

    }

    @Override
    public void setFocus() {
        viewer.getControl().setFocus();
    }

    @Override
    public void treeChanged() {
        DisplayUtils.asyncExec(new Runnable() {
            @Override
            public void run() {
                viewer.refresh();
            }
        });
    }

    @Override
    public void labelChanged() {
        Display.getDefault().asyncExec(new Runnable() {
            @Override
            public void run() {
                final TestTreeModel model = TestTreeModel.getInstance();
                resultsLabel.setText(String.format(
                        "Passed: %d    Failed: %d   Skipped: %d   Canceled: %d",
                        model.getPass(), model.getFail(), model.getSkip(),
                        model.getCancel()));
            }
        });
    }

}
TOP

Related Classes of org.erlide.cover.ui.views.EUnitView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.