/* * Copyright 2012 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.drools.workbench.screens.guided.dtable.client.widget; import com.google.gwt.cell.client.TextCell; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Widget; import org.drools.workbench.models.guided.dtable.shared.conversion.ConversionMessage; import org.drools.workbench.screens.guided.dtable.client.resources.GuidedDecisionTableResources; import org.gwtbootstrap3.client.ui.Label; import org.kie.workbench.common.widgets.client.widget.WidthCalculator; /** * A widget to display a single conversion result message */ public class ConversionMessageWidget extends Composite { private static WidthCalculator<String> widthCalculator = new WidthCalculator<String>( new TextCell() ); @UiField protected Image image; @UiField protected Label label; interface ConversionMessageWidgetBinder extends UiBinder<Widget, ConversionMessageWidget> { } private static ConversionMessageWidgetBinder uiBinder = GWT.create( ConversionMessageWidgetBinder.class ); public ConversionMessageWidget( ConversionMessage message ) { initWidget( uiBinder.createAndBindUi( this ) ); switch ( message.getMessageType() ) { case ERROR: this.image.setResource( GuidedDecisionTableResources.INSTANCE.images().error() ); break; case INFO: this.image.setResource( GuidedDecisionTableResources.INSTANCE.images().information() ); break; case WARNING: this.image.setResource( GuidedDecisionTableResources.INSTANCE.images().warning() ); break; } this.label.setText( message.getMessage() ); //Make containing Panel the width of the content to ensure scrollbars operate correctly int width = widthCalculator.getElementWidth( message.getMessage() ) + 32; setWidth( width + "px" ); } }