package com.turbomanage.gwt.client.ui.widget; import com.example.listmaker.common.client.ui.web.AppStyles; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.google.web.bindery.event.shared.EventBus; import com.turbomanage.gwt.client.event.ShowMessageEvent; import com.turbomanage.gwt.client.handler.ShowMessageHandler; public class MessageWidget { private final EventBus eventBus; public static enum MessageType { INFO(AppStyles.MESSAGE_INFO), WARN(AppStyles.MESSAGE_WARN); private String styleName; MessageType(String styleName) { this.styleName = styleName; } public String getStyleName() { return styleName; } }; private FlowPanel messageDiv = new FlowPanel(); private Label messageText = new Label(); public MessageWidget(EventBus bus) { this.eventBus = bus; messageText.addStyleName(AppStyles.MESSAGE_INFO); messageDiv.add(messageText); messageDiv.getElement().setId(AppStyles.MESSAGE_PANEL_ID); eventBus.addHandler(ShowMessageEvent.TYPE, new ShowMessageHandler() { public void showMessage(String msg, MessageType type) { flashMessage(msg, type); } }); } public void flashMessage(String msg, MessageType type) { messageText.setStyleName(type.getStyleName()); messageText.setText(msg); // final Fade fade = new Fade(messageText.getElement()); // fade.reset(); // fade.addEffectCompletedHandler(new EffectCompletedHandler() // { // @Override // public void onEffectCompleted(EffectCompletedEvent event) // { // messageText.setText(null); // fade.remove(); // } // }); // fade.play(3000); } public Widget asWidget() { return messageDiv; } }