Urgent Help Regarding Criteria

HI My Application consists of 2 Screens. the selection feature is a multiselect calender grid

So everytime i change criteria ( calender ) … the screen is repainted.

I was Able to Link the 2 screens well and even created a global HashMap which stores the calender values but the problem I am facing is that… when i switch between the tabs using a TABCHANGELISTENER

The screen is always repainted… i want “the criteria should be checked so that if calender selection remains same” … the old screen is shown and no screen repainting is done…

code for homescreen which links the analyser and Dashboard (2 screens)

Attaching code

package com.canon.bi.ui.screens;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.canon.bi.entity.csso.CSSOUserBean;
import com.canon.bi.entity.graphcomp.GraphComponentType;
import com.canon.bi.entity.user.UsersGraphComp;
import com.canon.bi.entitycontroller.GraphComponentJpaController;
import com.canon.bi.ui.UIManager;
import com.canon.bi.ui.screens.components.Header;
import com.canon.bi.ui.screens.components.TBIAnalyzer;
import com.canon.bi.ui.screens.components.TBIMyDashBoard;
import com.canon.bi.ui.screens.components.TBIMyDashBoard.CalenderMenuValueChangeListner;
import com.canon.bi.ui.window.HelpWindow;
import com.canon.bi.ui.window.LogoutWindow;
import com.canon.util.UIProp;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.TabSheet.SelectedTabChangeEvent;
import com.vaadin.ui.Window;

@SuppressWarnings(“serial”)
public class HomeScreen extends AbstractScreen{

private Window helpWindow,logoutWindow;
private final TabSheet tabSheet;
private TBIAnalyzer tbiAnalyzer=new TBIAnalyzer();
private TBIMyDashBoard tbiMyDashBoard=new TBIMyDashBoard();
@SuppressWarnings("unused")
private Map<String,String> idsSelected=new HashMap<String,String>();

public HomeScreen(){
	 tabSheet = new TabSheet();
     tabSheet.setSizeFull();
     tabSheet.setStyleName("BI-tabsheet");
	setSizeFull();
	helpWindow=new HelpWindow(1);
	logoutWindow=new LogoutWindow();
	buildView();
            
}

    public void buildView(){
    	setHeader(new Header(this,helpWindow,logoutWindow,1));
            setMargin(false, true, true, false);
	CssLayout margin = new CssLayout();
            margin.setMargin(false, true, false, true);
            margin.setSizeFull();
           /* tabSheet = new TabSheet();
            tabSheet.setSizeFull();
            tabSheet.setStyleName("BI-tabsheet");*/
            margin.addComponent(tabSheet);
            setBody(margin);
            setFooter(prepareFooter());
            componentDefaultAlgnment();
            TabChangeListener changeListener=new TabChangeListener();
	
          tbiMyDashBoard.init(tabSheet,changeListener,null);
            tabSheet.addTab(tbiMyDashBoard);
            final CSSOUserBean userBean=(CSSOUserBean)UIManager.getApplication().getHttpSession().getAttribute("user");
            if(userBean.getApplications()!=null && userBean.getApplications().size()>0){
                tabSheet.addComponent(tbiAnalyzer);
                tabSheet.addListener(changeListener);
             }
}
    public class TabChangeListener implements TabSheet.SelectedTabChangeListener{
        boolean flag=false;
        public void selectedTabChange(SelectedTabChangeEvent event) {
            Component tab=(Component)tabSheet.getSelectedTab();
            String caption=tab.getCaption();
                if(caption!=null && caption.trim().equals(UIProp.get("analyzer")))
                	{
                    CSSOUserBean userBean=(CSSOUserBean)UIManager.getApplication().getHttpSession().getAttribute("user");
                    flag=true;
                    GraphComponentType componentType=(new GraphComponentJpaController(userBean.getApplications().get(0))).getDefaultComponentType(userBean.getUserName());
                    if(componentType==null)
                        componentType=(new GraphComponentJpaController(userBean.getApplications().get(0))).getDefaultComponentType();
                     List<UsersGraphComp> graphsList=UIManager.getUserGraphComponents(userBean.getApplications().get(0),
                     componentType.getDescription());
                     if(graphsList!=null && graphsList.size()>0)
                         tbiAnalyzer.init(userBean.getApplications().get(0),componentType,
                        graphsList.get(0).getCompConfig().getComponent().getId(),tbiMyDashBoard.getIdsSelected());
                     }
                
                else if(caption!=null && caption.trim().equals(UIProp.get("dashboard")))
                {
                	{
                		tbiMyDashBoard.init(tabSheet,this,tbiAnalyzer.getIdsSelected()); 
                	}
                	                	
                }
           }

        public boolean isFlag() {
            return flag;
        }

        public void setFlag(boolean flag) {
            this.flag = flag;
        }
                    
    }

}