Package org.drools.workbench.screens.testscenario.client.reporting

Source Code of org.drools.workbench.screens.testscenario.client.reporting.TestRunnerReportingViewImpl$Binder

package org.drools.workbench.screens.testscenario.client.reporting;

import javax.inject.Inject;

import com.google.gwt.cell.client.ClickableTextCell;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RequiresResize;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import org.drools.workbench.screens.testscenario.client.resources.i18n.TestScenarioConstants;
import org.drools.workbench.screens.testscenario.client.service.TestRuntimeReportingService;
import org.drools.workbench.screens.testscenario.model.Failure;
import org.kie.workbench.common.widgets.client.resources.CommonImages;

public class TestRunnerReportingViewImpl
        extends Composite
        implements TestRunnerReportingView,
        RequiresResize {

    interface Template extends SafeHtmlTemplates {
        @Template("<span style='color:{0}'>{1}</span>")
        SafeHtml title(String color, String text);
    }

    static final Template SUCCESS_TEMPLATE = GWT.create(Template.class);

    private static Binder uiBinder = GWT.create(Binder.class);
    private Presenter presenter;

    interface Binder extends UiBinder<Widget, TestRunnerReportingViewImpl> {

    }

    @UiField(provided = true)
    DataGrid<Failure> dataGrid;

    @UiField
    VerticalPanel panel;

    @UiField
    HTML successPanel;

    @UiField
    Label explanationLabel;


    @Inject
    public TestRunnerReportingViewImpl() {
        dataGrid = new DataGrid<Failure>();
        dataGrid.setWidth("100%");

        dataGrid.setAutoHeaderRefreshDisabled(true);

        dataGrid.setEmptyTableWidget(new Label("---"));

        setUpColumns();

        initWidget(uiBinder.createAndBindUi(this));
    }

    @Override
    public void onResize() {
        dataGrid.setPixelSize((int) (getParent().getOffsetWidth() * 0.60),
                getParent().getOffsetHeight());
        dataGrid.onResize();
    }

    private void setUpColumns() {
        addSuccessColumn();
        addTextColumn();
    }

    private void addSuccessColumn() {
        Column<Failure, ImageResource> column = new Column<Failure, ImageResource>(new ImageResourceCell()) {
            @Override
            public ImageResource getValue(Failure failure) {
                presenter.onAddingFailure(failure);
                return CommonImages.INSTANCE.error();
            }
        };
        dataGrid.addColumn(column);
        dataGrid.setColumnWidth(column, 10, Style.Unit.PCT);
    }

    private void addTextColumn() {
        Column<Failure, String> column = new Column<Failure, String>(new ClickableTextCell()) {
            @Override
            public String getValue(Failure failure) {
                return failure.getDisplayName();
            }
        };

        column.setFieldUpdater(new FieldUpdater<Failure, String>() {
            @Override
            public void update(int index, Failure failure, String value) {
                presenter.onMessageSelected(failure);
            }
        });
        dataGrid.addColumn(column, TestScenarioConstants.INSTANCE.Text());
        dataGrid.setColumnWidth(column, 60, Style.Unit.PCT);
    }

    @Override
    public void setPresenter(Presenter presenter) {
        this.presenter = presenter;
    }

    @Override
    public void bindDataGridToService(TestRuntimeReportingService testRuntimeReportingService) {
        testRuntimeReportingService.addDataDisplay(dataGrid);
    }

    @Override
    public void showSuccess() {
        successPanel.setHTML(SUCCESS_TEMPLATE.title("green", TestScenarioConstants.INSTANCE.Success()));
    }

    @Override
    public void showFailure() {
        successPanel.setHTML(SUCCESS_TEMPLATE.title("red", TestScenarioConstants.INSTANCE.ThereWereTestFailures()));
    }

    @Override
    public void setExplanation(String explanation) {
        explanationLabel.setText(explanation);
    }
}
TOP

Related Classes of org.drools.workbench.screens.testscenario.client.reporting.TestRunnerReportingViewImpl$Binder

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.