Hola a todos
Estoy tratando de hacer una conexión funcional , tengo tres puntos de vista , uno se login y 2 ventanas pero con un menú superior, para navegar con Navigator , a mí entender mejor dejar mi código de abajo , si yo no me estoy inscrito debería siempre enviar la vista de inicio de sesión , si he conectado incorrectamente mí para enviar a la ventana de inicio de sesión, y si he entrado con éxito menuOne debo enviar mi ventana principal. El problema es que yo entro correctamente la sesión y se envía a la ventana principal, pero no muestra el menú … así que le agradecemos su ayuda para resolver este problema, que es el mismo al cerrar la sesión o si … Podían explicar qué otra manera puedo solucionar …
Mis códigos:
[code]
package com.vaadin.ricardo.proyecto.logintest;
import javax.servlet.annotation.WebServlet;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.annotations.Widgetset;
import com.vaadin.navigator.Navigator;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.Panel;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
@Theme(“mytheme”)
@Widgetset(“com.vaadin.ricardo.proyecto.logintest.MyAppWidgetset”)
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
VerticalLayout layout = new VerticalLayout();
MenuBar menu = new MenuBar();
menu.setSizeFull();
MenuItem mnuArchivo = menu.addItem("File", null);
MenuItem mnuSalir = mnuArchivo.addItem("Close Sesion", null);
MenuItem mnuModule = menu.addItem("Modules", null);
MenuItem mnuWindowsOne = mnuModule.addItem("Windows One", null);
MenuItem mnuWindowsTwo = mnuModule.addItem("Windows Two", null);
layout.addComponent(menu);
Panel p = new Panel("Modules");
layout.addComponent(p);
setContent(layout);
Navigator nav = null;
if (getSession().getAttribute("access")!=null && getSession().getAttribute("access")!="false") {
System.out.println("VER1:"+getSession().getAttribute("access"));
nav = new Navigator(this, p);
nav.addView("", WindowsOne.class);
nav.addView(LoginView.NAME, LoginView.class);
nav.addView(WindowsOne.NAME, WindowsOne.class);
nav.addView(WindowsTwo.NAME, WindowsTwo.class);
MyUI.getCurrent().getNavigator().navigateTo("menuOne");
} else {
System.out.println("VER:"+getSession().getAttribute("access"));
nav = new Navigator(this, this);
nav.addView("", LoginView.class);
nav.addView(LoginView.NAME, LoginView.class);
nav.addView(WindowsOne.NAME, WindowsOne.class);
nav.addView(WindowsTwo.NAME, WindowsTwo.class);
MyUI.getCurrent().getNavigator().navigateTo("login");
}
mnuSalir.setCommand(new MenuBar.Command() {
@Override
public void menuSelected(MenuBar.MenuItem selectedItem) {
getSession().close();
MyUI.getCurrent().getNavigator().navigateTo("login");
}
});
mnuWindowsOne.setCommand(new MenuBar.Command() {
@Override
public void menuSelected(MenuItem selectedItem) {
MyUI.getCurrent().getNavigator().navigateTo("menuOne");
}
});
mnuWindowsTwo.setCommand(new MenuBar.Command() {
@Override
public void menuSelected(MenuItem selectedItem) {
MyUI.getCurrent().getNavigator().navigateTo("menuTwo");
}
});
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}
[/code]Login:
[code]
package com.vaadin.ricardo.proyecto.logintest;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.PasswordField;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
public class LoginView extends VerticalLayout implements View{
public static final String NAME=“login”;
FormLayout form=new FormLayout();
public LoginView(){
final TextField txtUsername=new TextField(“UserName”);
final PasswordField txtPassword=new PasswordField(“Password”);
form.addComponent(txtUsername);
form.addComponent(txtPassword);
Button btn=new Button(“Log In”);
this.addComponent(form);
this.addComponent(btn);
btn.addClickListener(new ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
if(txtUsername.getValue().equals(“admin”) || txtPassword.getValue().equals(“admin”)){
getSession().setAttribute(“access”, “true”);
MyUI.getCurrent().getNavigator().navigateTo(“menuOne”);
}else{
getSession().setAttribute(“access”, “false”);
}
}
});
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
}
}
[/code]Ventana 1:
package com.vaadin.ricardo.proyecto.logintest;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
public class WindowsOne extends VerticalLayout implements View{
public static final String NAME="menuOne";
public WindowsOne(){
this.addComponent(new Label("THIS IS MY WINDOWS ONE"));
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
}
}
Ventana 2:
package com.vaadin.ricardo.proyecto.logintest;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
public class WindowsTwo extends VerticalLayout implements View{
public static final String NAME="menuTwo";
public WindowsTwo(){
this.addComponents(new Label("This is my windows two"));
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
}
}