package com.vaadin.tests.components.window; import com.vaadin.server.ThemeResource; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.ui.window.WindowRole; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.CheckBox; import com.vaadin.ui.CssLayout; import com.vaadin.ui.FormLayout; import com.vaadin.ui.Label; import com.vaadin.ui.TextField; import com.vaadin.ui.Window; public class ExtraWindowShownWaiAria extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { final CheckBox modal = new CheckBox("Modal dialog"); modal.setTabIndex(7); final CheckBox additionalDescription = new CheckBox( "Additional Description"); final CheckBox tabStop = new CheckBox( "Prevent leaving window with Tab key"); final CheckBox tabOrder = new CheckBox("Change Taborder"); final TextField prefix = new TextField("Prefix: "); final TextField postfix = new TextField("Postfix: "); final TextField topTabStopMessage = new TextField( "Top Tab Stop Message"); final TextField bottomTabStopMessage = new TextField( "Bottom Tab Stop Message"); Button simple = new Button("Open Alert Dialog", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { CssLayout layout = new CssLayout(); final Window w = new Window("Sub window", layout); w.center(); w.setModal(modal.getValue()); w.setAssistiveRole(WindowRole.ALERTDIALOG); w.setAssistivePrefix(prefix.getValue()); w.setAssistivePostfix(postfix.getValue()); Label description1 = new Label("Simple alert dialog."); layout.addComponent(description1); if (!additionalDescription.getValue()) { w.setAssistiveDescription(description1); } else { Label description2 = new Label( "Please select what to do!"); layout.addComponent(description2); w.setAssistiveDescription(description1, description2); } w.setTabStopEnabled(tabStop.getValue()); w.setTabStopTopAssistiveText( topTabStopMessage.getValue()); w.setTabStopBottomAssistiveText( bottomTabStopMessage.getValue()); Button close = new Button("Close", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { w.close(); } }); layout.addComponent(close); Button iconButton = new Button("A button with icon"); iconButton.setIcon( new ThemeResource("../runo/icons/16/ok.png")); layout.addComponent(iconButton); event.getButton().getUI().addWindow(w); iconButton.focus(); if (tabOrder.getValue()) { close.setTabIndex(5); } } }); getLayout().addComponent(simple); Button complex = new Button("Open Entry Dialog", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { FormLayout form = new FormLayout(); final Window w = new Window("Form Window", form); w.center(); w.setModal(modal.getValue()); w.setAssistivePrefix(prefix.getValue()); w.setAssistivePostfix(postfix.getValue()); Label description1 = new Label( "Please fill in your data"); form.addComponent(description1); if (!additionalDescription.getValue()) { w.setAssistiveDescription(description1); } else { Label description2 = new Label( "and press the button save."); form.addComponent(description2); w.setAssistiveDescription(description1, description2); } w.setTabStopEnabled(tabStop.getValue()); w.setTabStopTopAssistiveText( topTabStopMessage.getValue()); w.setTabStopBottomAssistiveText( bottomTabStopMessage.getValue()); TextField name = new TextField("Name:"); form.addComponent(name); form.addComponent(new TextField("Address")); Button saveButton = new Button("Save", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { w.close(); } }); form.addComponent(saveButton); event.getButton().getUI().addWindow(w); name.focus(); if (tabOrder.getValue()) { name.setTabIndex(5); } } }); getLayout().addComponent(complex); getLayout().addComponent(modal); getLayout().addComponent(additionalDescription); getLayout().addComponent(tabStop); getLayout().addComponent(tabOrder); getLayout().addComponent(prefix); getLayout().addComponent(postfix); getLayout().addComponent(topTabStopMessage); getLayout().addComponent(bottomTabStopMessage); } @Override protected String getTestDescription() { return "Test for WAI-ARIA implementation"; } @Override protected Integer getTicketNumber() { return 11821; } }