package org.aperteworkflow.editor.processeditor.tab.message; import com.vaadin.ui.*; public class ConfirmWindow extends Window implements Button.ClickListener { private Label messageLabel; private Button cancelButton; private Button confirmButton; public ConfirmWindow() { initComponent(); initLayout(); } @Override public void buttonClick(Button.ClickEvent event) { close(); } private void initLayout() { setModal(true); // use custom GridLayout to position elements GridLayout layout = new GridLayout(2, 2); layout.addComponent(messageLabel, 0, 0, 1, 0); layout.addComponent(cancelButton, 0, 1); layout.addComponent(confirmButton, 1, 1); layout.setComponentAlignment(cancelButton, Alignment.MIDDLE_CENTER); layout.setComponentAlignment(confirmButton, Alignment.MIDDLE_CENTER); layout.setSpacing(true); layout.setMargin(true); layout.setSpacing(true); // make the window adjust to the content size layout.setSizeUndefined(); setContent(layout); } private void initComponent() { confirmButton = new Button("confirm.window.confirm"); confirmButton.addListener(this); cancelButton = new Button("confirm.window.cancel"); cancelButton.addListener(this); messageLabel = new Label("confirm.window.message.default"); messageLabel.setContentMode(Label.CONTENT_XHTML); } public void addConfirmListener(Button.ClickListener listener) { confirmButton.addListener(listener); } public void addCancelListener(Button.ClickListener listener) { cancelButton.addListener(listener); } public void setConfirmCaption(String caption) { confirmButton.setCaption(caption); } public void setCancelCaption(String caption) { cancelButton.setCaption(caption); } public void setMessageValue(String value) { messageLabel.setValue(value); } }