/* * Copyright (C) 2013 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.jboss.errai.demo.busstress.client.local; import org.jboss.errai.bus.client.ErraiBus; import org.jboss.errai.bus.client.api.BusLifecycleEvent; import org.jboss.errai.bus.client.api.BusLifecycleListener; import org.jboss.errai.bus.client.api.ClientMessageBus; import org.jboss.errai.bus.client.framework.ClientMessageBusImpl; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; public class BusStatusWidget extends Composite implements BusLifecycleListener { interface Resources extends ClientBundle { @Source("white.png") ImageResource white(); @Source("red.png") ImageResource red(); @Source("yellow.png") ImageResource yellow(); @Source("green.png") ImageResource green(); } private final HorizontalPanel me = new HorizontalPanel(); private final Resources resources = GWT.create(Resources.class); private final Image statusImage = new Image(resources.white()); private final Label statusLabel = new Label("Unknown"); private final Button stopTrueButton = new Button("bus.stop(true)"); private final Button stopFalseButton = new Button("bus.stop(false)"); private final Button initButton = new Button("bus.init()"); public BusStatusWidget() { initWidget(me); statusLabel.setWordWrap(false); statusLabel.setWidth("6em"); stopTrueButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ((ClientMessageBusImpl) ErraiBus.get()).stop(true); } }); stopFalseButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ((ClientMessageBusImpl) ErraiBus.get()).stop(false); } }); initButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ((ClientMessageBus) ErraiBus.get()).init(); } }); me.add(statusImage); me.add(statusLabel); me.add(stopFalseButton); me.add(stopTrueButton); me.add(initButton); } @Override public void busAssociating(BusLifecycleEvent e) { statusLabel.setText("Connecting"); statusImage.setResource(resources.yellow()); } @Override public void busDisassociating(BusLifecycleEvent e) { statusLabel.setText("Local Only"); statusImage.setResource(resources.red()); } @Override public void busOnline(BusLifecycleEvent e) { statusLabel.setText("Connected"); statusImage.setResource(resources.green()); } @Override public void busOffline(BusLifecycleEvent e) { statusLabel.setText("Connecting"); statusImage.setResource(resources.yellow()); } }