/*
* Copyright 2000-2016 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.tests.components.window;
import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
public class BackspaceKeyWithModalOpened extends AbstractReindeerTestUI {
private static final String DEFAULT_VIEW_ID = "";
private static final String SECOND_VIEW_ID = "second";
public static final String BTN_NEXT_ID = "btn_next";
public static final String BTN_OPEN_MODAL_ID = "btn_open_modal";
public static final String TEXT_FIELD_IN_MODAL = "txt_in_modal";
public static final String MODAL_ID = "modal_window";
private Navigator navigator;
class DefaultView extends Label implements View {
@Override
public void enter(ViewChangeEvent event) {
Button btnNext = new Button("Next", new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
navigator.navigateTo(SECOND_VIEW_ID);
}
});
btnNext.setId(BTN_NEXT_ID);
addComponent(btnNext);
}
}
class SecondView extends Label implements View {
@Override
public void enter(ViewChangeEvent event) {
Button btnOpenModal = new Button("Open modal",
new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
Window window = new Window("Caption");
window.setId(MODAL_ID);
VerticalLayout layout = new VerticalLayout();
layout.setWidth("300px");
layout.setHeight("300px");
TextField textField = new TextField();
textField.setId(TEXT_FIELD_IN_MODAL);
layout.addComponent(textField);
window.setContent(layout);
addWindow(window);
window.setModal(true);
setFocusedComponent(window);
}
});
btnOpenModal.setId(BTN_OPEN_MODAL_ID);
addComponent(btnOpenModal);
}
}
@Override
protected void setup(VaadinRequest request) {
Layout navigatorLayout = new VerticalLayout();
navigator = new Navigator(this, navigatorLayout);
addComponent(navigatorLayout);
navigator.addView(DEFAULT_VIEW_ID, new DefaultView());
navigator.addView(SECOND_VIEW_ID, new SecondView());
}
@Override
protected String getTestDescription() {
return "Navigator should not go back with modal opened.";
}
@Override
protected Integer getTicketNumber() {
return 13180;
}
}