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