package org.vaadin.chatbox.demo; import org.vaadin.chatbox.SharedChat; import org.vaadin.chatbox.ChatBox; import org.vaadin.chatbox.client.ChatLine; import org.vaadin.chatbox.client.ChatUser; import com.vaadin.annotations.PreserveOnRefresh; import com.vaadin.annotations.Push; import com.vaadin.annotations.Title; import com.vaadin.server.VaadinRequest; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.Alignment; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.TextField; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Button.ClickEvent; @Title("ChatBox Add-on Demo") @SuppressWarnings("serial") @Push @PreserveOnRefresh public class DemoUI extends UI { // A static instance so that everybody gets the same instance of SharedChat. private static SharedChat chat = new SharedChat(); static { chat.addLine("Welcome to chat!"); chat.addLine("This ChatBox addon is available at http://vaadin.com/addon/chatbox"); chat.addListener(new SentNotifier(chat, 60*1000)); } @Override protected void init(VaadinRequest request) { final ChatBox chatbox = new ChatBox(chat); chatbox.setShowSendButton(false); chatbox.setSizeFull(); final VerticalLayout layout = new VerticalLayout(); HorizontalLayout hola = new HorizontalLayout(); final TextField tf = new TextField("Nick:"); Button b = new Button("Join chat"); b.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { ChatUser user = ChatUser.newUser(tf.getValue()); chatbox.setUser(user); chat.addLine(new ChatLine(user.getName()+" joined.")); chatbox.focusToInputField(); } }); hola.addComponent(tf); hola.addComponent(b); hola.setComponentAlignment(b, Alignment.BOTTOM_LEFT); hola.setMargin(true); layout.addComponent(hola); layout.setSizeFull(); layout.addComponent(chatbox); layout.setExpandRatio(chatbox, 1); layout.setMargin(true); setContent(layout); } }