package org.vaadin.mideaas.app; import org.vaadin.mideaas.frontend.Icons; import org.vaadin.mideaas.model.LobbyBroadcaster; import org.vaadin.mideaas.model.SharedProject; import org.vaadin.mideaas.model.User; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.Notification; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; @SuppressWarnings("serial") public class RemoveProjectWindow extends Window { public RemoveProjectWindow(final User user, final String projectName) { super("Remove "+projectName+"?"); setWidth("300px"); setHeight("300px"); center(); //layout for label and field and horisontal layout VerticalLayout ve = new VerticalLayout(); //layout for confirmation buttons HorizontalLayout ho = new HorizontalLayout(); ve.addComponent(new Label("Are you sure you want to permanently remove the project?")); final TextField tf = new TextField("Type the project name for confirmation:"); ve.addComponent(tf); Button removeButton = new Button("Remove"); removeButton.setIcon(Icons.CROSS_SCRIPT); removeButton.addClickListener(new ClickListener() { public void buttonClick(ClickEvent event) { close(); if (projectName.equals(tf.getValue())) { boolean removed = SharedProject.removeProject(projectName); if (removed) { SharedProject.removeProject(projectName); LobbyView.getLobbyChat().addLine(user.getName() + " removed project " + projectName); LobbyBroadcaster.broadcastProjectsChanged(); } else { Notification.show("Failed to remove "+projectName+"!"); } } else { Notification.show("Incorrect confirmation"); } } }); ho.addComponent(removeButton); Button cancelButton = new Button("Cancel"); cancelButton.addClickListener(new ClickListener() { public void buttonClick(ClickEvent event) { close(); } }); ho.addComponent(cancelButton); ve.addComponent(ho); this.setContent(ve); } }