package org.erlide.test_support.ui.suites; import java.util.List; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.part.ViewPart; import org.erlide.ui.util.DisplayUtils; import com.google.common.collect.Lists; public class RegressionResultsView extends ViewPart { public static final String VIEW_ID = "org.erlide.test_support.views.regressionresults"; private Composite control; private TableViewer tableViewer; private Label label; private final List<String> data; public RegressionResultsView() { data = Lists.newArrayList(); } @Override public void createPartControl(final Composite parent) { control = new Composite(parent, SWT.NONE); control.setLayout(new GridLayout(1, false)); label = new Label(control, SWT.NONE); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); label.setText(""); tableViewer = new TableViewer(control, SWT.H_SCROLL | SWT.V_SCROLL); final Table list = tableViewer.getTable(); list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); tableViewer.setLabelProvider(new RegressionResultsLabelProvider()); tableViewer.setContentProvider(new RegressionResultsContentProvider()); tableViewer.setInput(data); initToolbar(); } private void initToolbar() { // final IActionBars actionBars = getViewSite().getActionBars(); // final IMenuManager dropDownMenu = actionBars.getMenuManager(); // final IToolBarManager toolBar = actionBars.getToolBarManager(); // final Action action = new ClearTestResultsAction(tableViewer, // events); // dropDownMenu.add(action); // toolBar.add(action); } @Override public void setFocus() { tableViewer.getTable().setFocus(); } public void clear() { } public void setMessage(final String string) { label.setText(string); label.update(); } public void addLine(final String line) { DisplayUtils.asyncExec(new Runnable() { @Override public void run() { data.add("" + data.size() + ": " + line); tableViewer.refresh(); tableViewer.reveal(data.get(data.size() - 1)); // tableViewer.refresh(); control.update(); } }); } }