Vaadin session time out not redirecting or not working

Hi,
I have used vaadin sessions

String username=VaadinService.getCurrentRequest().getWrappedSession().getAttribute(“username”).toString()

i have set session time out 30 min in wex.xml

when the time out expiries i am getting Nullpointer exception when i am using above code
but i am expecting the application to reload after session expiry
application should reload after session expiry but not happening
please any one can help me…

Hi DilliRao,

your informations are a little bit vague. So at a certain point you call

VaadinService.getCurrentRequest().getWrappedSession() That should never be null (if you use this only in a request!). But if you read the JavaDoc of getWrappedSession()

Gets the session associated with this request, creating a new if there is no session. I assume at this point a new Session was created. So the attribute “username” is not set and your toString() call is creating a NPE.
So your piece of code is at a position the session’s attribute may not be set. You have to check your setup.

Thanks you Wolfgang Wachsmuth

your correct .
actually my requirement is when ever session expiries i want to redirect it to login page again, but that is not happening.
whene ever “username” attribute is not present in Vaadinsession i want my application to redirect to login page
how can i achieve this please help me…

Hi DilliRao,

that actually is the default behavior of vaadin. If the heartbeat fails 3 times you get this big red error message and the page does reload. Could you provide more informations of your setup? Like do you use a UI factory, when do you try to get a session information but the session is destroyed and so on.

You also could try to add a DestroyListener to your session described here https://vaadin.com/book/vaadin7/-/page/application.lifecycle.html

Hi

When i am accessing the application url from different machines my application not working properly and new session is not creating per user,so that session conflicts are happening. iam using Vaadinsessions
VaadinService.getCurrentRequest().getWrappedSession()
please help me…
my UI class code is:

package com.hitachi.ui;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;

import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;

import service.PasswordRecoveryEmail;

import com.hitachi.enum_status.CryptoUtil;
import com.hitachi.enum_status.Validation;
import com.vaadin.annotations.PreserveOnRefresh;
import com.vaadin.annotations.Push;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Widgetset;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.event.ShortcutAction.KeyCode;
import com.vaadin.event.ShortcutListener;
import com.vaadin.event.Transferable;
import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.server.Page;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinSession;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.AbstractSelect.AcceptItem;
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.ComboBox;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.DragAndDropWrapper;
import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Image;
import com.vaadin.ui.Label;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.MenuBar.Command;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.NativeButton;
import com.vaadin.ui.Notification;
import com.vaadin.ui.PasswordField;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
import com.vaadin.ui.themes.Runo;

import controller.MainController;
import controller.SuperVisorController;
import controller.UserCreationController;
import controller.WTDEngineerController;
import controller.WTDManagerController;
import de.steinwedel.messagebox.ButtonId;
import de.steinwedel.messagebox.Icon;
import de.steinwedel.messagebox.MessageBox;
import domain.Shift;
import domain.Shop;

@SuppressWarnings(“serial”)
@Theme(“dashboard”)

@PreserveOnRefresh
@Widgetset(“com.hitachi.ui.widgetset.WcisWidgetset”)
public class MyprojectweldingUI extends UI {
public static String shopnumber=null;
public static String shopnumberForShopStore=null;
public static String shiftValue=null;
public TextField custom_jobnumber=null;
TextField emailaddress=null;

  CssLayout root = new CssLayout();
     TextField oldpassword=null;
     TextField Newpassword=null;
     PasswordField newconfirmpasswrd=null;
    VerticalLayout loginLayout;
    private Navigator nav;
    CssLayout menu = new CssLayout();
    CssLayout content = new CssLayout();
    HorizontalLayout fields = null;
    HashMap<String, Class<? extends View>> adminroutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
        put("/dashboard", DashboardView.class);
        put("/MasterCreation",(Class<? extends View>) AdminTabs.class);
         put("/ImportContacts", (Class<? extends View>) ImportContacts.class);
        put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
        put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
        
        }
        };

    HashMap<String, Class<? extends View>> routes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            put("/Customer", CustomerCreation.class);
               put("/JobManager", JobManagement.class);
            put("/SeamManager", (Class<? extends View>) SeamManagement.class);
            put("/PRManager", (Class<? extends View>) PRManagement.class);
            put("/WPS", (Class<? extends View>) WpsView.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
           // put("/ReportsGraphs", (Class<? extends View>) ReportsPanel.class);
           
        }
    };
    HashMap<String, Class<? extends View>> engineerroutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            
            put("/SeamManager", (Class<? extends View>) EngineerSeamManagement.class);
            put("/PRManager", (Class<? extends View>) EngineerPRManagement.class);
            put("/WPS", (Class<? extends View>) WpsView.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
        }
    };
    
    HashMap<String, Class<? extends View>> supervisorroutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            put("/AssignSeams",(Class<? extends View>) SupervisorTabsheet.class);
            put("/WPS", (Class<? extends View>) WpsView.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
           
        }
    };
    
    HashMap<String, Class<? extends View>> mainshoproutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            put("/AssignedJobs",(Class<? extends View>) MainstoreJob.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
            
           
          
           
        }
    };
    
    HashMap<String, Class<? extends View>> shopstoreroutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            put("/MaterialManager",(Class<? extends View>) ShopStoreTabsheet.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
           
          
           
        }
    };
    
    HashMap<String, Class<? extends View>> wqtroutes = new HashMap<String, Class<? extends View>>() {
        {
            setImmediate(true);
            put("/dashboard", DashboardView.class);
            put("/EmployeeManager", EmployeeManager.class);
            put("/WelderMasterList",(Class<? extends View>) Weldermaster.class);
            put("/TimelineActivity",(Class<? extends View>) TimelineActivity.class);
            put("/Reports", (Class<? extends View>) Reports_Tabsheet.class);
           
          
           
        }
    };
    HashMap<String, Button> viewNameToMenuButton = new HashMap<String, Button>();
    @Override
    protected void init(VaadinRequest request) {
        
        setImmediate(true);
           setLocale(Locale.US);

            setContent(root);
            root.addStyleName("root");
            root.setSizeFull();

            
            Label bg = new Label();
            bg.setSizeUndefined();
            bg.addStyleName("login-bg");
            root.addComponent(bg);

            buildLoginView(false);

        }

        private void buildLoginView(boolean exit) {
            if (exit) {
                root.removeAllComponents();
            }
                   addStyleName("login");

            loginLayout = new VerticalLayout();
       
            loginLayout.setSizeFull();
           
            loginLayout.addStyleName("login-layout");
            root.addComponent(loginLayout);

            final CssLayout loginPanel = new CssLayout();
            loginPanel.addStyleName("login-panel");

            HorizontalLayout labels = new HorizontalLayout();
            labels.setWidth("100%");
            labels.setMargin(true);
            labels.addStyleName("labels");
            loginPanel.addComponent(labels);

            Label welcome = new Label("Welding Process Automation System");
            welcome.setSizeUndefined();
            welcome.addStyleName("h4");
            labels.addComponent(welcome);
            labels.setComponentAlignment(welcome, Alignment.MIDDLE_LEFT);

            Label title = new Label("");
            title.setSizeUndefined();
            title.addStyleName("h2");
            title.addStyleName("light");
            labels.addComponent(title);
            labels.setComponentAlignment(title, Alignment.MIDDLE_RIGHT);

            final HorizontalLayout fields = new HorizontalLayout();
            fields.setSpacing(true);
            fields.setMargin(true);
            fields.addStyleName("fields");

            final TextField username = new TextField("Username");
            username.focus();
            fields.addComponent(username);

            final PasswordField password = new PasswordField("Password");
            fields.addComponent(password);

            final Button signin = new Button("Sign In");
            signin.addStyleName("default");
            fields.addComponent(signin);
            fields.setComponentAlignment(signin, Alignment.BOTTOM_LEFT);

            final ShortcutListener enter = new ShortcutListener("Sign In",
                    KeyCode.ENTER, null) {
                @Override
                public void handleAction(Object sender, Object target) {
                    signin.click();
                }
            };
            final Label error = new Label(
                    "username or password are incorrect",
                    ContentMode.HTML);
            final Label shopstore_warning = new Label(
                    "Please select the shop number",
                    ContentMode.HTML);
            final Label supervisor_warning = new Label(
                    "Please select the inputs",
                    ContentMode.HTML);
           final Label warning = new Label(
                    "Please enter username and password",
                    ContentMode.HTML);
            signin.addClickListener(new ClickListener() {
                @Override
                public void buttonClick(ClickEvent event) {
                    setImmediate(true);
                    loginPanel.removeComponent(error);
                    loginPanel.removeComponent(shopstore_warning);
                    loginPanel.removeComponent(supervisor_warning);
                    loginPanel.removeComponent(warning);
                     if (!username.getValue().equals("")&& !password.getValue().equals("")){
                         String result=new MainController().getLogin(username.getValue(),password.getValue());
                            if(result.equals("Wtd_Engineer")){
                                wtdEngineerViewView();
                                
                                
                            }else if(result.equals("Wtd_Manager")){
                                   buildMainView();
                            }else if(result.equals("Supervisor")){
                                fields.removeComponent(username);
                                fields.removeComponent(password);
                                fields.removeComponent(signin);
                                 final ComboBox shop = new ComboBox("ShopNo");
                            
                                List<Shop> shops= new WTDManagerController().getShopnumbers();
                                try {
                                     for(Shop shopnum:shops){
                                         shop.addItem(shopnum.getShopnumber());
                                     }
                                } catch (Exception e) {
                                    // TODO: handle exception
                                    e.printStackTrace();
                                    
                                }
                                
                                
                                shop.focus();
                                fields.addComponent(shop);

                                final ComboBox shift = new ComboBox("Shift");
                                shift.setWidth("200px");
                                shift.setInputPrompt("Select the Shift");
                                List<Shift> shifts= new WTDManagerController().getShifts();
                                 for(Shift shft:shifts){
                                     shift.addItem(shft.getShiftnumber());
                                 }

                                
                                fields.addComponent(shift);

                                fields.addComponent(signin);
                                signin.setImmediate(true);
                                fields.setComponentAlignment(signin, Alignment.BOTTOM_LEFT);
                                
                                signin.addClickListener(new ClickListener() {
                                    
                                    @Override
                                    public void buttonClick(ClickEvent event) {
                                        
                                        if(shop.getValue()==null || shift.getValue()==null){
                                            fields.removeComponent(shop);
                                            fields.removeComponent(shift);
                                            //MessageBox.showPlain(Icon.WARN, "Supervisor Login", "Please select Inputs", ButtonId.OK);
                                             supervisor_warning.addStyleName("error");
                                             supervisor_warning.setSizeUndefined();
                                             supervisor_warning.addStyleName("light");
                                              
                                             supervisor_warning.addStyleName("v-animate-reveal");
                                               
                                                loginPanel.addComponent(supervisor_warning);
                                        }else {
                                            String result=new SuperVisorController().validateShopNumber(shop.getValue().toString(),shift.getValue().toString());
                                            if(result.equals("failed")){
                                                Notification.show("Invalid shop Number");
                                                MessageBox.showPlain(Icon.ERROR, "Bad Credentials", "Please enter proper credentials", ButtonId.OK);
                                                fields.removeComponent(shop);
                                                fields.removeComponent(shift);
                                                
                                            }else{
                                                supervisorView();
                                                System.out.println("assgn shop number::::::::::"+shop.getValue().toString());
                                                shopnumber=shop.getValue().toString();
                                                shiftValue=shift.getValue().toString();
                                            }
                                        }
                                        
                                        
                                        
                                    }
                                });}
                            else if(result.equals("MainShopStore")){
                                
                                mainShopStoreView();
                            }
                            else if(result.equals("ShopStore")){
                                fields.removeComponent(username);
                                fields.removeComponent(password);
                                fields.removeComponent(signin);
                                  final ComboBox shop = new ComboBox("ShopNo");
                                try {
                                     List<Shop> shops= new WTDManagerController().getShopnumbers();
                                     for(Shop shopnum:shops){
                                         shop.addItem(shopnum.getShopnumber());
                                     }
                                } catch (Exception e) {
                                    // TODO: handle exception
                                    e.printStackTrace();
                                }
                                    shop.setNullSelectionAllowed(false);
                                    shop.setImmediate(true);
                                shop.focus();
                                fields.addComponent(shop);

                                

                                fields.addComponent(signin);
                                fields.setComponentAlignment(signin, Alignment.BOTTOM_LEFT);
                                signin.setImmediate(true);
                                signin.addClickListener(new ClickListener() {
                                    
                                    @Override
                                    public void buttonClick(ClickEvent event) {
                                        if(shop.getValue()!=null){
                                        
                                        String result=new SuperVisorController().shopstoreLogincheck(shop.getValue().toString());
                                        if(result.equals("failed")){
                                            //System.out.println("in if");
                                            //Notification.show("Invalid shop Number");
                                            MessageBox.showPlain(Icon.ERROR, "Bad credentials", "Please valid shop number", ButtonId.OK);
                                            fields.removeComponent(shop);
                                            
                                        }else{
                                            shopstoreView();
                                            System.out.println("assgn shop number::::::::::"+shop.getValue().toString());
                                            shopnumberForShopStore=shop.getValue().toString();
                                        }
                                        }else {
                                            System.out.println("in else");
                                            fields.removeComponent(shop);
                                            //MessageBox.showPlain(Icon.WARN, "Shopstore loggin", "Please select a shop", ButtonId.OK);
                                            
                                             shopstore_warning.addStyleName("error");
                                             shopstore_warning.setSizeUndefined();
                                             shopstore_warning.addStyleName("light");
                                              
                                             shopstore_warning.addStyleName("v-animate-reveal");
                                               
                                                loginPanel.addComponent(shopstore_warning);
                                            
                                            
                                        }
                                    }
                                });}
                            else if(result.equals("Wqt")){
                                
                                wqtView();
                            }else if(result.equalsIgnoreCase("admin")){
                                AdminView();
                            }
                            
                            else {
                            
                                
                                
                                
                                    error.addStyleName("error");
                                    error.setSizeUndefined();
                                    error.addStyleName("light");
                                  
                                    error.addStyleName("v-animate-reveal");
                                   
                                    loginPanel.addComponent(error);
                                    username.focus();
                            }
                     }else{
                        
                          
                          warning.addStyleName("error");
                          warning.setSizeUndefined();
                          warning.addStyleName("light");
                           
                          warning.addStyleName("v-animate-reveal");
                          
                            loginPanel.addComponent(warning);
                            username.focus();
                     }
                    
                    
                
                    }
                });
            signin.addShortcutListener(enter);

            loginPanel.addComponent(fields);
            Button forgetpassword=new Button("Forgot Password??",new ClickListener() {

                @Override
                public void buttonClick(ClickEvent event) {
                // TODO Auto-generated method stub
                final Window passwordwin=new Window("Password Verification");
                passwordwin.setHeight("200px");
                passwordwin.setWidth("350px");
                VerticalLayout emaillayout=new VerticalLayout();
                emaillayout.setSpacing(true);
                emaillayout.setMargin(true);
                FormLayout passwordform=new FormLayout();
                  emailaddress=new TextField("Enter EmailAddress");
                passwordform.addComponent(emailaddress);
                emailaddress.addValueChangeListener(new ValueChangeListener() {

                    @SuppressWarnings("static-access")
                    @Override
                    public void valueChange(ValueChangeEvent event) {
                    setImmediate(true);

                    Boolean result=new Validation().validateemail(emailaddress.getValue());
                    if(result==false){
                    MessageBox.showPlain(Icon.ERROR, "Email Validation", "Invalid Email Address", ButtonId.OK);
                    emailaddress.setValue("");
                    }
                    }
                    });

                emaillayout.addComponent(passwordform);
                Button okmailbtn=new Button("ok",new ClickListener() {

                @Override
                public void buttonClick(ClickEvent event) {
                   
                   if(emailaddress.getValue()!=""){
                       String emailid=emailaddress.getValue().toString();
                       
                       
                       WTDEngineerController _wtdengineer=new WTDEngineerController();
                       List<String> password=_wtdengineer.getPassword(emailid);
                      if(password.size()==0){
                          MessageBox.showPlain(Icon.INFO, "Paasword Verification", " Please enter Correct Emailid ", ButtonId.OK);
                          emailaddress.setValue("");
                      }else{
                          String result=password.get(0);
                          String plainAfter=null;
                          try {
                             plainAfter=new CryptoUtil().decrypt(CryptoUtil.key, result);
                        } catch (InvalidKeyException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (NoSuchAlgorithmException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (InvalidKeySpecException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (NoSuchPaddingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (InvalidAlgorithmParameterException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (UnsupportedEncodingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IllegalBlockSizeException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (BadPaddingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                          
                          passwordwin.close();
                         
                          new PasswordRecoveryEmail().Mail(emailid, plainAfter);
                          MessageBox.showPlain(Icon.INFO, "Paasword Verification", " Your  Password is  sent to Your mail.Please check it", ButtonId.OK);
                      }
                       
                      
                   // TODO Auto-generated method stub
                   /*if(!(emailaddress==null)){
                   MessageBox.showPlain(Icon.WARN, "Paasword Verification", "The Email address u entered is invalid", ButtonId.OK);
                   }
                   else{
                   MessageBox.showPlain(Icon.INFO, "Paasword Verificationr", " The Password is", ButtonId.OK);
                   }*/
                   }else{
                       MessageBox.showPlain(Icon.WARN, "Forgot password", "Please fill Emailid", ButtonId.OK);
                   }
                   
                }
                });
                emaillayout.addComponent(okmailbtn);
                okmailbtn.setStyleName(Runo.BUTTON_SMALL);

                passwordwin.setContent(emaillayout);
                passwordwin.center();
                UI.getCurrent().addWindow(passwordwin);
                }
                });
                loginPanel.addComponent(forgetpassword);
                forgetpassword.setStyleName(Runo.BUTTON_LINK);

            loginLayout.addComponent(loginPanel);
            loginLayout.setComponentAlignment(loginPanel, Alignment.MIDDLE_CENTER);
        }
            private void buildMainView() {
                setImmediate(true);
                try
                {
                
                nav = new Navigator(this, content);

                for (String route : routes.keySet()) {
                    nav.addView(route, routes.get(route));
                }

             
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                           
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>WTD Manager </span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                       
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                            e.printStackTrace();
                                        }
                                        
                                        
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    String username=null;
                                                                    try {
                                                                         username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    Boolean result=new WTDManagerController().checkPassowrd(username, oldpassword.getValue());
                                                                    System.out.println("Is entered password is correct??"+result);
                                                                    if(result==false){
                                                                        MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                        oldpassword.setValue("");
                                                                    }
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             try {
                 if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                     Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(), VaadinSession.getCurrent().getSession().getAttribute("username").toString());
                        if(result==true){
                            MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                             subaccntwin.close();
                        }else{
                            MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                        }
                 }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

                 }
                
             //subaccntwin.close();
            
            
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            
            
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                            
                                                System.out.println("manager Logged out");
                                                //getUI().getSession().close();
                                                VaadinSession.getCurrent().getSession().invalidate();
                                                //VaadinSession.getCurrent().getSession().c;
                                                getCurrent().getPage().setLocation("/WCIS");
                                                buildLoginView(true);
                                                
                                                System.out.println("Logged out");
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard","Customer","JobManager", "SeamManager",
                        "PRManager","WPS","Reports","TimelineActivity"}) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                                {    
                                nav.navigateTo("/" + view);
                                
                                
                                }
                            catch (Exception e) {
                                //getUI().getSession().close();
                                VaadinSession.getCurrent().getSession().invalidate();
                                getUI().getPage().setLocation("/WCIS");

                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("SeamManager")) {
                       
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/SeamManager").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/SeamManager");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
               

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
              
                } else {
                    nav.navigateTo(f);
                
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                   
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                    
                    }
                });
                }
                catch(Exception e)
                {
                    UI.getCurrent().setComponentError(null);
                    e.printStackTrace();
                }
            }
            private void wtdEngineerViewView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : engineerroutes.keySet()) {
                    nav.addView(route, engineerroutes.get(route));
                }

             
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>WTD Engineer</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                       
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                            e.printStackTrace();
                                        }
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             String username=null;
             try {
                 username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(), username);
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                           
                                                try {
                                                    System.out.println("Engineer Logged out");
                                                    //UI.getCurrent().getSession().close();
                                                    //getUI().getSession().close();
                                                    //VaadinSession.getCurrent().getSession().invalidate();
                                                    VaadinSession.getCurrent().getSession().invalidate();
                                                    getUI().getPage().setLocation("/WCIS");
                                                     buildLoginView(true);
                                                    System.out.println("Logged out");
                                                } catch (Exception e) {
                                                    // TODO: handle exception
                                                    e.printStackTrace();
                                                }
                                                
                                                
                                                
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard", "SeamManager",
                        "PRManager","WPS","TimelineActivity","Reports" }) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                                {
                                nav.navigateTo("/" + view);
                                }
                            catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("SeamManager")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/SeamManager").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/SeamManager");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
              

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
               
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                   
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                    
                    }
                });

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private void supervisorView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : supervisorroutes.keySet()) {
                    nav.addView(route, supervisorroutes.get(route));
                }

             
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>Supervisor</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                       
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                        }
                                                
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
            
             String username=null;
             try {
                username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(), username);
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                               
                                                
                                                
                                                try {
                                                    System.out.println("supervisor Logged out");
                                                    //UI.getCurrent().getSession().close();
                                                    //getUI().getSession().close();
                                                    VaadinSession.getCurrent().getSession().invalidate();
                                                    getUI().getPage().setLocation("/WCIS");
                                                     buildLoginView(true);
                                                    System.out.println("Logged out");
                                                } catch (Exception e) {
                                                    // TODO: handle exception
                                                    e.printStackTrace();
                                                }
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard", "AssignSeams","WPS","TimelineActivity","Reports"
                        }) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                            {
                                nav.navigateTo("/" + view);
                            
                        }
                        catch (Exception e) {
                            // TODO: handle exception
                            e.printStackTrace();
                            UI.getCurrent().setComponentError(null);
                        }
                        }
                    });

                    if (view.equals("AssignSeams")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/AssignSeams").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/AssignSeams");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
               

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
                 
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                   
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                     
                    }
                });
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private void shopstoreView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : shopstoreroutes.keySet()) {
                    nav.addView(route, shopstoreroutes.get(route));
                }

              //  helpManager.closeAll();
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>ShopStore</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                        
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                        }
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             String username=null;
             try {
                username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(),username );
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                            
                                                System.out.println("Logged out");
                                                //getUI().getSession().close();
                                                VaadinSession.getCurrent().getSession().invalidate();
                                                getUI().getPage().setLocation("/WCIS");
                                                 buildLoginView(true);
                                                System.out.println("Logged out");
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard", "MaterialManager","TimelineActivity","Reports" }) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                            {
                                nav.navigateTo("/" + view);
                            }
                            catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("MaterialManager")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/MaterialManager").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/MaterialManager");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
              

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
                
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                   
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                     
                    }
                });
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private void wqtView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : wqtroutes.keySet()) {
                    nav.addView(route, wqtroutes.get(route));
                }

             
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>WQT</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                        
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                            e.printStackTrace();
                                        }
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             String username=null;
             try {
                username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(),username );
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                               // buildLoginView(true);
                                                System.out.println("Logged out");
                                                //getUI().getSession().close();
                                                VaadinSession.getCurrent().getSession().invalidate();
                                                getUI().getPage().setLocation("/WCIS");
                                                 buildLoginView(true);
                                                System.out.println("Logged out");
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard","EmployeeManager", "WelderMasterList","TimelineActivity","Reports" }) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                            {
                                nav.navigateTo("/" + view);
                            }
                            catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("WelderMasterList")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/WelderMasterList").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/WelderMasterList");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
              
                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
                
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                 
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                     
                    }
                });
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private void mainShopStoreView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : mainshoproutes.keySet()) {
                    nav.addView(route, mainshoproutes.get(route));
                }

        
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>MainShopStore</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                        
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                            e.printStackTrace();
                                        }
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                        settingsMenu.setStyleName("icon-cog");
                                        settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Preferences", cmd);
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             String username=null;
             try {
                username= VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(),username);
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);
                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                                //buildLoginView(true);
                                                System.out.println("Logged out");
                                                //getUI().getSession().close();
                                                VaadinSession.getCurrent().getSession().invalidate();
                                                getUI().getPage().setLocation("/WCIS");
                                                 buildLoginView(true);
                                                System.out.println("Logged out");
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard", "AssignedJobs","TimelineActivity","Reports"}) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                            {
                                nav.navigateTo("/" + view);
                            }
                            catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("AssignedJobs")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/AssignedJobs").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/AssignedJobs");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
              

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                  
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                     
                    }
                });
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private void AdminView() {
                setImmediate(true);
                try
                {
                nav = new Navigator(this, content);

                for (String route : adminroutes.keySet()) {
                    nav.addView(route, adminroutes.get(route));
                }

           
                removeStyleName("login");
                root.removeComponent(loginLayout);

                root.addComponent(new HorizontalLayout() {
                    {
                        setSizeFull();
                        addStyleName("main-view");
                        addComponent(new VerticalLayout() {
                            // Sidebar
                            {
                                addStyleName("sidebar");
                                setWidth(null);
                                setHeight("100%");

                                // Branding element
                                addComponent(new CssLayout() {
                                    {
                                        addStyleName("branding");
                                        Label logo = new Label(
                                                "<span>Admin</span> Dashboard",
                                                ContentMode.HTML);
                                        logo.setSizeUndefined();
                                        addComponent(logo);
                                        
                                    }
                                });

                                // Main menu
                                addComponent(menu);
                                setExpandRatio(menu, 1);

                                // User menu
                                addComponent(new VerticalLayout() {
                                    {
                                        setSizeUndefined();
                                        addStyleName("user");
                                        Image profilePic = new Image(
                                                null,
                                                new ThemeResource("img/profile-pic.png"));
                                        profilePic.setWidth("34px");
                                        addComponent(profilePic);
                                        Label userName=null;
                                        try {
                                             userName = new Label(VaadinSession.getCurrent().getSession().getAttribute("username").toString());

                                        } catch (Exception e) {
                                            // TODO: handle exception
                                            e.printStackTrace();
                                        }
                                        userName.setSizeUndefined();
                                        addComponent(userName);

                                        Command cmd = new Command() {
                                            @Override
                                            public void menuSelected(
                                                    MenuItem selectedItem) {
                                                Notification
                                                        .show("Not implemented in this demo");
                                            }
                                        };
                                        MenuBar settings = new MenuBar();
                                        MenuItem settingsMenu = settings.addItem("",
                                                null);
                                                settingsMenu.setStyleName("icon-cog");
                                                settingsMenu.addItem("Settings", new Command() {
                                                public void menuSelected(MenuItem selectedItem) {

                                                final Window subwinsettings=new Window("Notification days");
                                                subwinsettings.setHeight("200px");
                                                subwinsettings.setWidth("280px");
                                                VerticalLayout versetings=new VerticalLayout();
                                                versetings.setSpacing(true);
                                                versetings.setMargin(true);
                                                HorizontalLayout horizseting=new HorizontalLayout();
                                                horizseting.setSpacing(true);
                                                horizseting.setMargin(true);
                                                Label setinglabel=new Label("No of days ");
                                                horizseting.addComponent(setinglabel);
                                                final ComboBox comboseting=new ComboBox();
                                           
                                                comboseting.addItem("1");
                                                comboseting.addItem("2");
                                                comboseting.addItem("3");
                                                comboseting.addItem("4");
                                                comboseting.addItem("5");
                                                comboseting.addItem("6");
                                                comboseting.addItem("7");
                                                comboseting.addItem("8");
                                                comboseting.addItem("9");
                                                comboseting.addItem("10");
                                               
                                               
                                                horizseting.addComponent(comboseting);
                                                versetings.addComponent(horizseting);

                                                Button oksetting=new Button("OK",new ClickListener() {

                                                @Override
                                                public void buttonClick(ClickEvent event) {
                                                   
                                                      UserCreationController _usercreation=new UserCreationController();
                                                       domain.Notification     notif=new domain.Notification();
                                               
                                                       notif.setNumberofdays(Integer.parseInt(comboseting.getValue().toString()));
                                                      String days=comboseting.getValue().toString();
                                                           _usercreation.edit_Notification(notif,days);
                                                                                                           // TODO Auto-generated method stub
                                                subwinsettings.close();
                                                }
                                                });
                                                versetings.addComponent(oksetting);
                                                oksetting.addStyleName(Runo.BUTTON_SMALL);

                                                subwinsettings.setContent(versetings);

                                                subwinsettings.center();
                                                UI.getCurrent().addWindow(subwinsettings);
                                                // MessageBox.showPlain(Icon.WARN, "Report", "Please slect Inputs", ButtonId.OK);
                                                }
                                                });
                                        settingsMenu.setStyleName("icon-cog");
                                       // settingsMenu.addItem("Settings", cmd);
                                        settingsMenu.addItem("Custom Jobnumber", new Command() {
                                            
                                            @Override
                                            public void menuSelected(MenuItem selectedItem) {
                                                // TODO Auto-generated method stub


                                                final Window subwinsettings=new Window("Custom Jobnumber");
                                                subwinsettings.setHeight("300px");
                                                subwinsettings.setWidth("380px");
                                                VerticalLayout versetings=new VerticalLayout();
                                                versetings.setSpacing(true);
                                                versetings.setMargin(true);
                                                VerticalLayout horizseting=new VerticalLayout();
                                                horizseting.setSpacing(true);
                                                horizseting.setMargin(true);
                                                Label currentJobnumber=null;
                                                try {
                                                    List<String> result=new UserCreationController().getLatestCustomJobnumber();
                                                    
                                                     currentJobnumber=new Label();
                                                    currentJobnumber.setCaption("Current Custom Jobnumber: "+result.get(0).toString());
                                                } catch (Exception e) {
                                                    // TODO: handle exception
                                                    e.printStackTrace();
                                                }
                                                
                                                Label setinglabel=new Label("Enter Custom Jobnumber(EX:DV-100)");
                                                horizseting.addComponent(currentJobnumber);
                                                horizseting.addComponent(setinglabel);
                                                  custom_jobnumber=new TextField();
                                           
                                                horizseting.addComponent(custom_jobnumber);
                                                custom_jobnumber.setImmediate(true);
                                                custom_jobnumber.addValueChangeListener(new ValueChangeListener() {
                                                    
                                                    @Override
                                                    public void valueChange(ValueChangeEvent event) {
                                                        // TODO Auto-generated method stub
                                                    
                                                    
                                                        
                                                        
                                                    }
                                                });
                                                versetings.addComponent(horizseting);

                                                Button oksetting=new Button("OK",new ClickListener() {

                                                @Override
                                                public void buttonClick(ClickEvent event) {
                                                    
                                                     if(custom_jobnumber.getValue()!=""){
                                                            Boolean result1=new UserCreationController().validateCustomJobnumber(custom_jobnumber.getValue().toString());
                                                            if(result1==false){
                                                                
                                                                
                                                                
                                                            }else{
                                                                MessageBox.showPlain(Icon.WARN, "Custom Jobnumber", "Entered Jobnumber is already used or Invalid", ButtonId.OK);
                                                                custom_jobnumber.setValue("");
                                                            }
                                                            try {
                                                            
                                                                System.out.println(":::::::::::::::::::::::::::::::::::::::::::::"+custom_jobnumber.getValue().toString());
                                                                String[] num=custom_jobnumber.getValue().toString().split("-");
                                                                
                                                                //Character.isDigit(num[1]

);

                                                                for(int k=0;k<num.length;k++){
                                                                    System.out.println("tokensss**"+num[k]

);
}
System.out
.println(“&&&&&&&&&&&&&&&”+num[1]
);
Boolean res=false;

                                                                 try {
                                                                        Integer.parseInt(num[1]

);
} catch(NumberFormatException e) {
res=true;
}
System.out
.println(“validation response is::::::::”+res);
if(res==true){
MessageBox.showPlain(Icon.WARN, “Custom Jobnumber”, " Invalid Jobnumber Please enter correct format", ButtonId.OK);
custom_jobnumber.setValue(“”);
}else{
Notification.show(“okkkkkkk”);
if(custom_jobnumber.getValue()!=“”){
UserCreationController _usercreation=new UserCreationController();
//domain.CustomJobnumber notif=new domain.CustomJobnumber();

                                                                  String days=custom_jobnumber.getValue().toString();
                                                                 String result=      _usercreation.setCustomJobnumber(days);
                                                                 if(result.equals("success")){
                                                                     MessageBox.showPlain(Icon.INFO, "Custom Jobnumber", "Successfully submited", ButtonId.OK);
        
                                                                 }else{
                                                                     MessageBox.showPlain(Icon.ERROR, "Custom Jobnumber", "Failed to Update custom jobnumber", ButtonId.OK);

                                                                 }
                                                                                                                       // TODO Auto-generated method stub
                                                            subwinsettings.close();
                                                               }else{
                                                                   MessageBox.showPlain(Icon.WARN, "Custom Jobnumber", "Please enter jobnumber", ButtonId.OK);
                                                               }
                                                        }
                                                            } catch (Exception e) {
                                                                // TODO: handle exception
                                                                custom_jobnumber.setValue("");
                                                                e.printStackTrace();
                                                            }
                                                     }else{
                                                           MessageBox.showPlain(Icon.WARN, "Custom Jobnumber", "Please enter jobnumber", ButtonId.OK);

                                                     }
                                                
                                                  
                                                     
                                                }
                                                });
                                                versetings.addComponent(oksetting);
                                                oksetting.addStyleName(Runo.BUTTON_SMALL);

                                                subwinsettings.setContent(versetings);

                                                subwinsettings.center();
                                                UI.getCurrent().addWindow(subwinsettings);
                                                // MessageBox.showPlain(Icon.WARN, "Report", "Please slect Inputs", ButtonId.OK);
                                                
                                            }
                                        });
                                        settingsMenu.addSeparator();
                                        settingsMenu.addItem("Change Password", new Command() {
                                            public void menuSelected(MenuItem selectedItem) {
                                                
                                                
                                                final Window subaccntwin=new Window("Change Account Settings");
                                                subaccntwin.setHeight("330px");
                                                subaccntwin.setWidth("400px");
                                                VerticalLayout myacclayout=new VerticalLayout();
                                                myacclayout.setSpacing(true);
                                                myacclayout.setMargin(true);
                                            
                                                Label Changepassword=new Label("<h4><b>Change Password</b></h4>",Label.CONTENT_XHTML);
                                                 myacclayout.addComponent(Changepassword);
                                                FormLayout myaccform=new FormLayout();
                                                myaccform.setSpacing(true);
                                                myaccform.setMargin(true);
                                                oldpassword  =new TextField("OldPassword");
                                                oldpassword.setImmediate(true);
                                                             oldpassword.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                    //Notification.show("text entered");
                                                                    try {
                                                                        Boolean result=new WTDManagerController().checkPassowrd(VaadinSession.getCurrent().getSession().getAttribute("username").toString(), oldpassword.getValue());
                                                                        System.out.println("Is entered password is correct??"+result);
                                                                        if(result==false){
                                                                            MessageBox.showPlain(Icon.ERROR, "Password", "Please Enter Correct Password", ButtonId.OK);
                                                                            oldpassword.setValue("");
                                                                        }
                                                                    } catch (Exception e) {
                                                                        // TODO: handle exception
                                                                        e.printStackTrace();
                                                                    }
                                                                    
                                                                }
                                                            });
                                                             
                                                             Newpassword =new TextField("New Password");
                                                             Newpassword.setImmediate(true);
                                                              newconfirmpasswrd=new PasswordField("Confirm NewPassword");
                                                              newconfirmpasswrd.setImmediate(true);
                                                              myaccform.addComponent(oldpassword);
                                                             myaccform.addComponent(Newpassword);
                                                             myaccform.addComponent(newconfirmpasswrd);
                                                             newconfirmpasswrd.addValueChangeListener(new ValueChangeListener() {
                                                                
                                                                @Override
                                                                public void valueChange(ValueChangeEvent event) {
                                                                    // TODO Auto-generated method stub
                                                                     if(!(Newpassword.getValue().toString().equals(newconfirmpasswrd.getValue().toString()))){
                                                                         MessageBox.showPlain(Icon.ERROR, "Password", "New password and Confirm password must be same", ButtonId.OK);
                                                                         Newpassword.setValue("");
                                                                         newconfirmpasswrd.setValue("");
                                                                     }
                                                                }
                                                            });
                                                             myacclayout.addComponent(myaccform);
                                                             HorizontalLayout btnaccounts=new HorizontalLayout();
                                                             btnaccounts.setSpacing(true);
                                                             btnaccounts.setMargin(true);
                                                             Button okaccbtn=new Button("Save",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
             String username=null;
             try {
                username=VaadinSession.getCurrent().getSession().getAttribute("username").toString();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
             if(oldpassword.getValue()!="" || Newpassword.getValue()!="" || newconfirmpasswrd.getValue()!=""){
                 Boolean result=new WTDManagerController().updatePassword(oldpassword.getValue(), Newpassword.getValue(),username );
                    if(result==true){
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Password Changed Successfully", ButtonId.OK);
                         subaccntwin.close();
                    }else{
                        MessageBox.showPlain(Icon.INFO, "Change Password", "Failed to change password", ButtonId.OK);
                    }
             }else{
                    MessageBox.showPlain(Icon.INFO, "Change Password", "Please Fill all the fields", ButtonId.OK);

             }
            
         //subaccntwin.close();
        
        
         }
         });
                                                             btnaccounts.addComponent(okaccbtn);
                                                             okaccbtn.setStyleName(Runo.BUTTON_SMALL);
          Button closeaccbtn=new Button("Close",new ClickListener() {
         @Override
         public void buttonClick(ClickEvent event) {
         // TODO Auto-generated method stub
         subaccntwin.close();
         }
         });
                                                               
                                                             btnaccounts.addComponent(closeaccbtn);
                                                             closeaccbtn.setStyleName(Runo.BUTTON_SMALL);
                                                             myacclayout.addComponent(btnaccounts);
                                                             subaccntwin.setContent(myacclayout);
                                                
                                                             subaccntwin.center();
                                                 UI.getCurrent().addWindow(subaccntwin);
                                        }
                                        });
                                     
                                        addComponent(settings);

                                        Button exit = new NativeButton("Exit");
                                        exit.addStyleName("icon-cancel");
                                        exit.setDescription("Sign Out");
                                        addComponent(exit);
                                        exit.addClickListener(new ClickListener() {
                                            @Override
                                            public void buttonClick(ClickEvent event) {
                                              
                                                System.out.println("Logged out");
                                                //getUI().getSession().close();
                                                VaadinSession.getCurrent().getSession().invalidate();
                                                getUI().getPage().setLocation("/WCIS");
                                                 buildLoginView(true);
                                                System.out.println("Logged out");
                                            }
                                        });
                                    }
                                });
                            }
                        });
                        // Content
                        addComponent(content);
                        content.setSizeFull();
                        content.addStyleName("view-content");
                        setExpandRatio(content, 1);
                    }

                });

                menu.removeAllComponents();
                nav.navigateTo("/dashboard");
                for (final String view : new String[] { "dashboard", "MasterCreation","TimelineActivity","Reports","ImportContacts"}) {
                    Button b = new NativeButton(view.substring(0, 1).toUpperCase()
                            + view.substring(1).replace('-', ' '));
                    b.addStyleName("icon-" + view);
                    b.addClickListener(new ClickListener() {
                        @Override
                        public void buttonClick(ClickEvent event) {
                            clearMenuSelection();
                            event.getButton().addStyleName("selected");
                            if (!nav.getState().equals("/" + view))
                                try
                            {
                                     nav.navigateTo("/" + view);
                            }
                            catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                                UI.getCurrent().setComponentError(null);
                            }
                        }
                    });

                    if (view.equals("UserCreation")) {
                        // Add drop target to reports button
                        DragAndDropWrapper reports = new DragAndDropWrapper(b);
                        reports.setDragStartMode(DragStartMode.NONE);
                        reports.setDropHandler(new DropHandler() {

                            @Override
                            public void drop(DragAndDropEvent event) {
                                clearMenuSelection();
                                viewNameToMenuButton.get("/UserCreation").addStyleName(
                                        "selected");
                                autoCreateReport = true;
                                items = event.getTransferable();
                                nav.navigateTo("/UserCreation");
                            }

                            @Override
                            public AcceptCriterion getAcceptCriterion() {
                                return AcceptItem.ALL;
                            }

                        });
                        menu.addComponent(reports);
                        menu.addStyleName("no-vertical-drag-hints");
                        menu.addStyleName("no-horizontal-drag-hints");
                    } else {
                        menu.addComponent(b);
                    }

                    viewNameToMenuButton.put("/" + view, b);
                }
                menu.addStyleName("menu");
                menu.setHeight("100%");

                viewNameToMenuButton.get("/dashboard").setHtmlContentAllowed(true);
              

                String f = Page.getCurrent().getUriFragment();
                if (f != null && f.startsWith("!")) {
                    f = f.substring(1);
                }
                if (f == null || f.equals("") || f.equals("/")) {
                    nav.navigateTo("/dashboard");
                    menu.getComponent(0).addStyleName("selected");
                
                } else {
                    nav.navigateTo(f);
                 
                    viewNameToMenuButton.get(f).addStyleName("selected");
                }

                nav.addViewChangeListener(new ViewChangeListener() {

                    @Override
                    public boolean beforeViewChange(ViewChangeEvent event) {
                    //    helpManager.closeAll();
                        return true;
                    }

                    @Override
                    public void afterViewChange(ViewChangeEvent event) {
                        View newView = event.getNewView();
                     
                    }
                });
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    UI.getCurrent().setComponentError(null);
                }
            }
            private Transferable items;

            private void clearMenuSelection() {
                for (Iterator<Component> it = menu.getComponentIterator(); it.hasNext();) {
                    Component next = it.next();
                    if (next instanceof NativeButton) {
                        next.removeStyleName("selected");
                    } else if (next instanceof DragAndDropWrapper) {
                      
                        ((DragAndDropWrapper) next).iterator().next()
                                .removeStyleName("selected");
                    }
                }
            }

            void updateReportsButtonBadge(String badgeCount) {
                viewNameToMenuButton.get("/reports").setHtmlContentAllowed(true);
                viewNameToMenuButton.get("/reports").setCaption(
                        "Reports<span class=\"badge\">" + badgeCount + "</span>");
            }

            void clearDashboardButtonBadge() {
                viewNameToMenuButton.get("/dashboard").setCaption("Dashboard");
            }

            boolean autoCreateReport = false;
            Table transactions;

            public void openReports(Table t) {
                transactions = t;
                autoCreateReport = true;
                nav.navigateTo("/reports");
                clearMenuSelection();
                viewNameToMenuButton.get("/reports").addStyleName("selected");
            }

           

        }

14161.xml (2.1 KB)