package org.jchannel.client.ui.view;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import org.jchannel.client.state.ThreadState;
import org.jchannel.server.entity.Thread;
public final class ThreadsPanel extends Composite {
private Panel panel;
public ThreadsPanel() {
panel = new FlowPanel();
panel.setStyleName("threadsPanel");
this.initWidget(panel);
ThreadState.INSTANCE.addPropertyChangeListener("threads", new ThreadsListener());
}
private final class ThreadsListener implements PropertyChangeListener {
@Override
public void propertyChange(final PropertyChangeEvent event) {
panel.clear();
List<Thread> threads = (List<Thread>) event.getNewValue();
if (threads.isEmpty()) {
panel.add(new Label("no threads found"));
} else {
for (final Thread thread : threads) {
panel.add(new ThreadPanel(thread));
}
}
}
}
}
|