Problem with creating Window

I got a problem with change Main Window in my application.
I want to by pressing button show/order/search change main window in my application. I managed to change it after log in / log out, but right now i don’t know what put into listener.
I know line: setMainWindow / removeWindow but it didn’t work while I where trying.
Here are my codes:
Main APP

package com.example.Main;

import com.example.GUI.LoginWindow;
import com.example.GUI.OrderGUI;
import com.example.GUI.SearchGUI;
import com.example.GUI.ShowGUI;

import com.example.GUI.TimelineWindow;
import com.vaadin.Application.UserChangeListener;
import com.vaadin.Application;
import com.vaadin.ui.*;

public class Main extends Application implements UserChangeListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Window loginWindow;
	private Window timelineWindow;
	private Window orderGUI;
	private Window showGUI;
	private Window searchGUI;

	public void init() {
		loginWindow = new LoginWindow();
		timelineWindow = new TimelineWindow();
		orderGUI = new OrderGUI();
		showGUI = new ShowGUI();
		searchGUI = new SearchGUI();
		setMainWindow(loginWindow);
		addListener(this);
		addListener((UserChangeListener) timelineWindow);
//		addListener((UserChangeListener) showGUI);
//		addListener((UserChangeListener) orderGUI);
//		addListener((UserChangeListener) searchGUI);
		setTheme("zamowtest1theme");
	}
	public void applicationUserChanged(UserChangeEvent event) {
		if (event.getNewUser() == null) {
			setMainWindow(loginWindow);
			removeWindow(timelineWindow);
			loginWindow.showNotification("Wylogowany");
			} else if (event.getNewUser() != null) {
		setMainWindow(timelineWindow);
		removeWindow(loginWindow);
		timelineWindow.showNotification("Rozpoznany ! :D");
		}
		
}
}
 

Login:


package com.example.GUI;


import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.PasswordField;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Window;
public class LoginWindow extends Window {
	/**
	 * 
	 */
	private static final long serialVersionUID = -5754380487286999619L;
	private TextField loginField;
	private PasswordField passwordField;
	private Button submitButton;
	public LoginWindow() {
	loginField = new TextField("Login", "TwójLogin");
	passwordField = new PasswordField("Password");
	submitButton = new Button("Submit");
	submitButton.addListener(ClickEvent.class, this, "authenticate");
	setCaption("Logowanie");
	FormLayout formLayout = new FormLayout();
	formLayout.setMargin(true);
	formLayout.addComponent(loginField);
	formLayout.addComponent(passwordField);
	formLayout.addComponent(submitButton);
	addComponent(formLayout);
	}
	public void authenticate(ClickEvent event) {
		String login = (String) loginField.getValue();
		if ("lisu".equals(login)) {
		getApplication().setUser(login);
		} else {
		showNotification("Brak autoryzacji!");
		}
	}
}

Main Window mode:


package com.example.GUI;



import com.vaadin.Application.UserChangeEvent;
import com.vaadin.Application.UserChangeListener;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;

import com.vaadin.ui.Window;
public class TimelineWindow extends Window implements UserChangeListener{
	
/**
	 * 
	 */
	private static final long serialVersionUID = -6259298308902327621L;
	private Label label_2;
	private Button button_2;
	private Button button_3;
	private Button button_4;
	private Button button_5;
	
	
public TimelineWindow() {
	AbsoluteLayout mainLayout = new AbsoluteLayout();
	mainLayout.setStyleName("background");
	mainLayout.setImmediate(false);
	mainLayout.setWidth("500px");
	mainLayout.setHeight("400px");
	mainLayout.setMargin(false);
	
	// top-level component properties
	setWidth("500px");
	setHeight("400px");
	
	GridLayout gridLayout_2 = new GridLayout();
	gridLayout_2.setImmediate(false);
	gridLayout_2.setWidth("100.0%");
	gridLayout_2.setHeight("100.0%");
	gridLayout_2.setMargin(false);
	gridLayout_2.setColumns(2);
	gridLayout_2.setRows(2);
	
	mainLayout.addComponent(gridLayout_2,
			"top:0.0px;left:0.0px;");
	
	// label_1
	Label label_1 = new Label();
	label_1.setStyleName("main_label");
	label_1.setImmediate(false);
	label_1.setWidth("-1px");
	label_1.setHeight("-1px");
	label_1.setValue("Wybierz funkcję, która Cię interesuję");
	gridLayout_2.addComponent(label_1, 0, 0);
	gridLayout_2.setComponentAlignment(label_1, new Alignment(48));
	
	
	
	
	
	HorizontalLayout horizontalLayout_2 = new HorizontalLayout();
	horizontalLayout_2.setImmediate(false);
	horizontalLayout_2.setWidth("-1px");
	horizontalLayout_2.setHeight("-1px");
	horizontalLayout_2.setMargin(false);
	gridLayout_2.addComponent(horizontalLayout_2, 1, 0);
	
	label_2 = new Label();
	label_2.setStyleName("status label");
	label_2.setImmediate(false);
	label_2.setWidth("-1px");
	label_2.setHeight("-1px");
	horizontalLayout_2.addComponent(label_2);
	
	// button_5
		button_5 = new Button();
		button_5.setStyleName("button");
		button_5.setCaption("Wyloguj");
		button_5.setImmediate(false);
		button_5.setWidth("-1px");
		button_5.setHeight("-1px");
		horizontalLayout_2.addComponent(button_5);
	
	HorizontalLayout horizontalLayout_1 = new HorizontalLayout();
	horizontalLayout_1.setImmediate(false);
	horizontalLayout_1.setWidth("-1px");
	horizontalLayout_1.setHeight("-1px");
	horizontalLayout_1.setMargin(false);
	gridLayout_2.addComponent(horizontalLayout_1, 0, 1);
	gridLayout_2.setComponentAlignment(horizontalLayout_1, new Alignment(9));
	
	// button_2
	button_2 = new Button();
	button_2.setStyleName("button");
	button_2.setCaption("Search for book");
	button_2.setImmediate(false);
	button_2.setWidth("-1px");
	button_2.setHeight("-1px");
	horizontalLayout_1.addComponent(button_2);
	
	// button_3
	button_3 = new Button();
	button_3.setStyleName("button");
	button_3.setCaption("Order book");
	button_3.setImmediate(false);
	button_3.setWidth("-1px");
	button_3.setHeight("-1px");
	horizontalLayout_1.addComponent(button_3);
	
	// button_4
	button_4 = new Button();
	button_4.setStyleName("button");
	button_4.setCaption("Show ordered book");
	button_4.setImmediate(false);
	button_4.setWidth("-1px");
	button_4.setHeight("-1px");
	horizontalLayout_1.addComponent(button_4);
	
	
	setContent(mainLayout);
	button_2.addListener(ClickEvent.class, this, "search");
	button_3.addListener(ClickEvent.class, this, "order");
	button_4.addListener(ClickEvent.class, this, "show");
	button_5.addListener(ClickEvent.class, this, "logout");
}


public void logout() {
getApplication().setUser(null);
}
public void search(){
	
	
//	SearchGUI searchGUI = new SearchGUI();
}
public void order(){
//	OrderGUI orderGUI = new OrderGUI();
}
public void show(){
//	ShowGUI showGUI = new ShowGUI();


	
}
public void applicationUserChanged(UserChangeEvent event) {
	// TODO Auto-generated method stub
	label_2.setValue(event.getNewUser());
}
}

One of other Window mode:


package com.example.GUI;

import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.Button;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Table;
import com.vaadin.ui.Window;

public class ShowGUI extends Window {
	private AbsoluteLayout mainLayout;
	
	private HorizontalLayout horizontalLayout_2;
	
	private Button button_2;
	
	private Table table_1;
	
	public ShowGUI(){
	mainLayout = new AbsoluteLayout();
	mainLayout.setImmediate(false);
	mainLayout.setWidth("500px");
	mainLayout.setHeight("400px");
	mainLayout.setMargin(false);
	
	// top-level component properties
	setWidth("500px");
	setHeight("400px");
	
	// horizontalLayout_2
	horizontalLayout_2 = new HorizontalLayout();
	horizontalLayout_2.setImmediate(false);
	horizontalLayout_2.setWidth("-1px");
	horizontalLayout_2.setHeight("-1px");
	horizontalLayout_2.setMargin(false);
	
	// table_1
	table_1 = new Table();
	table_1.setImmediate(false);
	table_1.setWidth("-1px");
	table_1.setHeight("-1px");
	horizontalLayout_2.addComponent(table_1);
	
	// button_2
	button_2 = new Button();
	button_2.setCaption("Pokaż książki");
	button_2.setImmediate(false);
	button_2.setWidth("-1px");
	button_2.setHeight("-1px");
	horizontalLayout_2.addComponent(button_2);
	mainLayout.addComponent(horizontalLayout_2, "top:0.0px;left:0.0px;");
	setContent(mainLayout);
	}
}

I was trying to put in the listener:
getApplication().setMainWindow(showGUI);
But this didn’t give any results.
I hope you can help me :wink:

setMainWindow does not change existing UIs, only what window is served to the next browser accessing the application. To change the UI for an existing application, you need to use getMainWindow.setContent(newContent) instead, where newContent is any Layout.