package adagium.pacs.agent.client;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import adagium.pacs.agent.client.rpc.DataProviderService;
import adagium.pacs.agent.client.rpc.DataProviderServiceAsync;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SourcesTableEvents;
import com.google.gwt.user.client.ui.TableListener;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.TreeListener;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.client.ui.HTMLTable.RowFormatter;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.Node;
import com.gwtext.client.data.NodeTraversalCallback;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.form.DateField;
import com.gwtext.client.widgets.grid.BaseColumnConfig;
import com.gwtext.client.widgets.grid.CheckboxSelectionModel;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.GridPanel;
import com.gwtext.client.widgets.grid.GridView;
import com.gwtext.client.widgets.grid.RowNumberingColumnConfig;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
import com.gwtext.client.widgets.tree.event.TreePanelListener;
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;

/**
* CallCenterStatus
*
* @version 10.0.0
* Date of creation: 22-July-2009
* @author Amit Raj
*/
public class CallCenterStatus extends Panel implements
ClickListener,TableListener,TreeListener{

        private AbsolutePanel AbsolutePanel506320 = null;
        private AbsolutePanel AbsolutePanel188208 = null;
        private Label Label151602 = null;
        private Label Label203850 = null;
        private TextBox TextBox766862 = null;
        private TextBox TextBox549668 = null;
        private AbsolutePanel AbsolutePanel611346 = null;
        private CheckBox CheckBox853434 = null;
        private ScrollPanel ScrollPanel836309 = null;
        private ScrollPanel treePanel = new ScrollPanel();
        private AbsolutePanel AbsolutePanel147833 = null;
        private CheckBox agentLabelCheckBox = null;
        private CheckBox aNameCheckBox = null;
        private Label idLabel = null;
        private ListBox ListBox126840 = null;
        private ListBox ListBox422645 = null;
        private ListBox ListBox376737 = null;
        private AbsolutePanel AbsolutePanel138241 = null;
        private CheckBox CheckBox473558 = null;
        private ScrollPanel ScrollPanel609893 = null;
        private AbsolutePanel AbsolutePanel661922 = null;
        private CheckBox querySourceCheckBox = null;
        private CheckBox CheckBox283341 = null;
        private ListBox ListBox846536 = null;
        private ListBox ListBox828224 = null;
        private AbsolutePanel AbsolutePanel679164 = null;
        private CheckBox CheckBox441060 = null;
        private ListBox ListBox322144 = null;
        private Button showButton = null;
        //private ScrollPanel ScrollPanel257569 = new ScrollPanel();
        private ScrollPanel gridPanel = null;
        private DateField dtFrom = null;
        private DateField dtTo = null;
        private SortableTable sortableTable = null;
        private TreePanel TREEQUERYTYPE = null;
        private TreePanel DEPTTREE = null;
        private String treeFontSize = "-8";
        private ArrayList listLevel = null;
        private HashMap hmAgent = null;
        private ArrayList listSource = null;
        private ArrayList listType = null;
        private String selectedLevel = "";
//      private static ArrayList selectedDepartments = new ArrayList();
//      private static ArrayList selectedQueries = new ArrayList();
        //private CallCenterStatus CCSInstance =null ;
        //private String        selectedDepartment="";
        //private String selectedQuerie="";
        private GridPanel CCSGrid = null;
        private RecordDef recordDef = null;
        private Store store;
        private Object[][] data={{"-","-","-","-","-","-","-","-"}};




        public CallCenterStatus(){
                super();
                //CCSInstance = this;
                initialize();
                layout();
                setProperties();
                createCCSGrid();
       //createCCSGrid(CCSdata);
                //CCSGrid.setAutoScroll(false);
                //ScrollPanel257569.add(CCSGrid);
        }

        /**
         * This is the entry point method.
         */
        public void onModuleLoad() {
                RootPanel.get().add(this);
        }



        /**
        * This method is used to initialize the GUI for the class
        * @return  void It returns void
        * @throws
        */
        protected void initialize(){
                //selectedDepartments.clear();
        //      selectedQueries.clear();
                AbsolutePanel506320 = new AbsolutePanel();
                AbsolutePanel188208 = new AbsolutePanel();
                AbsolutePanel188208.setStyleName("gwt-MainPanel");
                Label151602 = new Label();
                Label203850 = new Label();
                TextBox766862 = new TextBox();
                TextBox549668 = new TextBox();
                AbsolutePanel611346 = new AbsolutePanel();
                AbsolutePanel611346.setStyleName("gwt-MainPanel");
                CheckBox853434 = new CheckBox();
                ScrollPanel836309 = new ScrollPanel();
                AbsolutePanel147833 = new AbsolutePanel();
                AbsolutePanel147833.setStyleName("gwt-MainPanel");
                agentLabelCheckBox = new CheckBox();
                aNameCheckBox = new CheckBox();
                idLabel = new Label();
                ListBox126840 = new ListBox();
                ListBox422645 = new ListBox();
                ListBox376737 = new ListBox();
                AbsolutePanel138241 = new AbsolutePanel();
                AbsolutePanel138241.setStyleName("gwt-MainPanel");
                CheckBox473558 = new CheckBox();
                TREEQUERYTYPE = new TreePanel();
                ScrollPanel609893 = new ScrollPanel();

                AbsolutePanel661922 = new AbsolutePanel();
                AbsolutePanel661922.setStyleName("gwt-MainPanel");
                querySourceCheckBox = new CheckBox();
                CheckBox283341 = new CheckBox();
                ListBox846536 = new ListBox();
                ListBox828224 = new ListBox();
                AbsolutePanel679164 = new AbsolutePanel();
                AbsolutePanel679164.setStyleName("gwt-MainPanel");
                CheckBox441060 = new CheckBox();
                ListBox322144 = new ListBox();
                showButton = new Button();
                //ScrollPanel257569 = new ScrollPanel();
                gridPanel=new ScrollPanel();

                dtFrom = new DateField();
                dtFrom.setFormat("d-M-Y");
                dtTo = new DateField();
                dtTo.setFormat("d-M-Y");


                /*if(!Agent.isDeptTreeLoaded)
                {
                        DataProviderServiceAsync dps1 = 
(DataProviderServiceAsync)
GWT.create(DataProviderService.class);
                        ServiceDefTarget endpoint1 = (ServiceDefTarget) dps1;
                        String moduleRelativeURL1 = GWT.getModuleBaseURL() +
"DataProvider";
                        endpoint1.setServiceEntryPoint(moduleRelativeURL1);
                        AsyncCallback callback1 = new AsyncCallback() {
                                public void onSuccess(Object result) {
                                        if(result==null)
                                                System.out.println("Result 
Null");
                                        else {
                                                
Agent.hmForwardHashMap=(HashMap)result;
                                                createDeptTree((HashMap) 
Agent.hmForwardHashMap.get
("HashMap2"));
                                        }
                                }
                                public void onFailure(Throwable caught) {
                                        Window.alert("Error in loading tree 
112");
                                }
                        };
                        
dps1.doWork2("","","FORWARD_CASE_GET_DEPT_TREE",callback1);
                }
                else{
                        System.out.println("Already loaded");
                        createDeptTree((HashMap) 
Agent.hmForwardHashMap.get("HashMap2"));
                }*/
                if(Complaint.HM_DEPT==null || Complaint.HM_AGNT_LVL==null){
                        //System.out.println("Step 1");
                        System.out.println
("TreeLoadStart-"+Complaint.JAVADTFORMATLONG.format(new Date()));

                        DataProviderServiceAsync dps1 = 
(DataProviderServiceAsync)
GWT.create(DataProviderService.class);
                        ServiceDefTarget endpoint1 = (ServiceDefTarget) dps1;
                        String moduleRelativeURL1 = GWT.getModuleBaseURL() +
"DataProvider";
                        endpoint1.setServiceEntryPoint(moduleRelativeURL1);
                        AsyncCallback callback1 = new AsyncCallback() {
                                public void onSuccess(Object result) {
                                        System.out.println("Result returned");
                                        if(result==null)
                                                System.out.println("Result 
Null");
                                        else {
                                        //      System.out.println("Step 2");
                                                
Complaint.HM_AGNT_LVL=(HashMap)((HashMap)result).get
("HashMap1");
                                                
Complaint.HM_DEPT=(HashMap)((HashMap)result).get("HashMap2");
                                                System.out.println
("TreeLoad_DataReceived-"+Complaint.JAVADTFORMATLONG.format(new Date
()));
                                                
//createDeptTree(Complaint.HM_DEPT);
                                                createDepartmentTree();
                                                //fillAgentLevelAndAgentId();
                                           //QTREEMAP = new HashMap();
                                        }
                                        System.out.println
("TreeLoadEnd-"+Complaint.JAVADTFORMATLONG.format(new Date()));
                                }
                                public void onFailure(Throwable caught) {

                                        
com.google.gwt.user.client.Window.alert("Error in loading tree
1");

                                }
                        };
                        
dps1.doWork2("","","FORWARD_CASE_GET_DEPT_TREE",callback1);

                }else{
                        //System.out.println("Step 6");
                        System.out.println
("TreeLoadStart-2-"+Complaint.JAVADTFORMATLONG.format(new Date()));
                        //createDeptTree(Complaint.HM_DEPT);
                        createDepartmentTree();
                        //fillAgentLevelAndAgentId();
                        System.out.println
("TreeLoadEnd-2-"+Complaint.JAVADTFORMATLONG.format(new Date()));
                }


                try {
                        if(Complaint.HM_QUERY_TREE!=null)
                        {
                                //System.out.println("In query Type tree");
                                TREEQUERYTYPE = new TreePanel();
                                TREEQUERYTYPE.setCollapsible(true);
                                TREEQUERYTYPE.setIconCls("world-icon");
                                TREEQUERYTYPE.setAnimate(true);
                                TREEQUERYTYPE.setEnableDD(true);
                                TREEQUERYTYPE.setContainerScroll(true);
                                TREEQUERYTYPE.setAutoScroll(true);
                                TREEQUERYTYPE.setRootVisible(false);
                                TREEQUERYTYPE.setFrame(true);
                                TREEQUERYTYPE.setDisabled(true);
                                TreeNode root =new TreeNode("Query Type");
                                root.setId("ROOT");
                                TREEQUERYTYPE.setRootNode(root);
                                HashMap tempTreeItem=new HashMap();
                                //Set  entries = 
Complaint.HM_QUERY_TREE.entrySet();

                                Iterator 
it=Complaint.HM_QUERY_TREE.keySet().iterator();
                                while(it.hasNext()){
                                        String key = (String) it.next();
                        //      System.out.println("key are "+ key);

                                        
//System.out.println(((HashMap)Complaint.HM_QUERY_TREE).size());//
done by Amit
                                        HashMap hmTemp = 
(HashMap)Complaint.HM_QUERY_TREE.get(key);//done
by Amit

                        //      System.out.print("Size of temp "+hmTemp.size());
                                String sNode = 
(String)hmTemp.get("QUT_TYPE_ID");
                        //      System.out.println("Node is "+sNode);

                                        String sParent = 
(String)hmTemp.get("QUT_PARENTTYPE_ID");
                        //      System.out.println("Parent is "+sParent);
                                        //hmQTreeMap.put(sNode,hmTemp);
                                        if(sParent==null){
                                                TreeNode treeItem=new 
TreeNode((String)hmTemp.get("QUT_QUT_TYPE")
+"("+sNode+")");
                                                treeItem.setId(sNode);
                                                treeItem.setChecked(false);
                                                root.appendChild(treeItem);
                                                tempTreeItem.put(sNode, 
treeItem);
                                        }else{

                                                TreeNode 
treeParent=(TreeNode)tempTreeItem.get(sParent);
                                                if(treeParent!=null){
                                                TreeNode treeItem=new 
TreeNode((String)hmTemp.get("QUT_QUT_TYPE")
+"("+sNode+")");
                                                treeItem.setId(sNode);
                                                treeItem.setChecked(false);
                                                
treeItem.setText((String)hmTemp.get("QUT_QUT_TYPE")+"("+sNode
+")");
                                                
treeParent.appendChild(treeItem);
                                                tempTreeItem.put(sNode, 
treeItem);
                                                }
                                        }
                                }


                                }
                } catch (Exception e) {

                        e.printStackTrace();
                }


                try {
                        DataProviderServiceAsync dps1 = 
(DataProviderServiceAsync)
GWT.create(DataProviderService.class);
                        ServiceDefTarget endpoint1 = (ServiceDefTarget) dps1;
                        String moduleRelativeURL1 = GWT.getModuleBaseURL() +
"DataProvider";
                        endpoint1.setServiceEntryPoint(moduleRelativeURL1);
                        AsyncCallback callback = new AsyncCallback() {
                                public void onSuccess(Object result) {
                                        if(result==null)
                                                System.out.println("Result 
Null");
                                        else {
                                                HashMap out = (HashMap)result;
                                                listLevel = 
(ArrayList)out.get("LEVEL");
                                                hmAgent = 
(HashMap)out.get("AGENT");
                                                listSource = 
(ArrayList)out.get("SOURCE");
                                                listType = 
(ArrayList)out.get("TYPE");
                                                HashMap hmCases = 
(HashMap)out.get("CASES");
                                                ArrayList listStatus = 
(ArrayList)out.get("STATUS");
                                                for(int 
i=0;i<listStatus.size();i++){
                                                        
ListBox322144.addItem((String)listStatus.get(i));
                                                }

                                                }
                                }
                                public void onFailure(Throwable caught) {
                                        Window.alert("Error while CCS");
                                }
                        };
                        dps1.doWork2("","","CCS", callback);
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }

        /**
        * This method is used to set the layout of the widgets.
        *
        * @return  void It return void
        * @throws
        */

        protected void layout(){



        Date date = new Date();
                long time = date.getTime();
                long backdate = time- Agent.iDATEDIFF*24*60*60*1000 ;
                Date bd = new Date(backdate);
                dtFrom.setValue(bd);
                dtTo.setValue(date);


                add(AbsolutePanel506320);

                AbsolutePanel506320.add(AbsolutePanel188208, 11,15);
                AbsolutePanel506320.add(AbsolutePanel611346, 261,15);
                AbsolutePanel506320.add(AbsolutePanel147833, 524,15);
                AbsolutePanel506320.add(AbsolutePanel138241, 11,163);
                AbsolutePanel506320.add(AbsolutePanel661922, 261,163);
                AbsolutePanel506320.add(AbsolutePanel679164, 524,163);
                //AbsolutePanel506320.add(ScrollPanel257569, 11,324);
                AbsolutePanel506320.add(gridPanel, 11,324);
                gridPanel.setAlwaysShowScrollBars(true);
                gridPanel.setStyleName("gwt-TextBox");
                AbsolutePanel188208.add(Label151602, 9,20);
                AbsolutePanel188208.add(Label203850, 9,80);
                AbsolutePanel188208.add(dtFrom, 95,17);
                AbsolutePanel188208.add(dtTo, 95,77);

                AbsolutePanel611346.add(CheckBox853434, 1,2);
                AbsolutePanel611346.add(ScrollPanel836309, 2,21);
                ScrollPanel836309.setAlwaysShowScrollBars(true);
                ScrollPanel836309.setStyleName("gwt-TextBox");
            AbsolutePanel147833.add(agentLabelCheckBox, 9,8);
                AbsolutePanel147833.add(aNameCheckBox, 10,54);
                AbsolutePanel147833.add(idLabel, 10,98);
                AbsolutePanel147833.add(ListBox126840, 117,9);
                AbsolutePanel147833.add(ListBox422645, 120,54);
                AbsolutePanel147833.add(ListBox376737, 120,96);

                agentLabelCheckBox.setChecked(false);
                agentLabelCheckBox.addClickListener(this);

                ListBox126840.addClickListener(this);
                ListBox422645.addClickListener(this);
                ListBox376737.addClickListener(this);

                ListBox126840.setEnabled(false);


                aNameCheckBox.setChecked(false);
                aNameCheckBox.addClickListener(this);

                ListBox422645.setEnabled(false);


                AbsolutePanel138241.add(CheckBox473558, 0,2);
                AbsolutePanel138241.add(ScrollPanel609893, 2,22);
                ScrollPanel609893.setAlwaysShowScrollBars(true);
                ScrollPanel609893.add(TREEQUERYTYPE);
                ScrollPanel609893.setStyleName("gwt-TextBox");

                AbsolutePanel661922.add(querySourceCheckBox, 11,30);
                AbsolutePanel661922.add(CheckBox283341, 12,95);
                AbsolutePanel661922.add(ListBox846536, 130,29);
                AbsolutePanel661922.add(ListBox828224, 127,94);

                querySourceCheckBox.setChecked(false);
                querySourceCheckBox.addClickListener(this);

                ListBox846536.setEnabled(false);


                CheckBox283341.setChecked(false);
                CheckBox283341.addClickListener(this);
                ListBox828224.setEnabled(false);


                AbsolutePanel679164.add(CheckBox441060, 13,27);
                AbsolutePanel679164.add(ListBox322144, 122,25);
                AbsolutePanel679164.add(showButton, 122,89);

                CheckBox441060.setChecked(false);
                CheckBox441060.addClickListener(this);

                CheckBox473558.addClickListener(this);
                ListBox322144.setEnabled(false);
                CheckBox853434.addClickListener(this);

                //ScrollPanel257569.setAlwaysShowScrollBars(true);



        }

        /**
        * This method is used to set the properties of widgets like height
and width.
        *
        * @return  void It returns void.
        * @throws
        */
        protected void setProperties(){



                AbsolutePanel506320.setHeight("536");
                AbsolutePanel506320.setWidth("790");

                AbsolutePanel188208.setHeight("139");
                AbsolutePanel188208.setWidth("245");

                Label151602.setText("Start Date");
                Label151602.setWidth("67");

                Label203850.setText("End Date");
                Label203850.setWidth("69");

                TextBox766862.setHeight("23");
                TextBox766862.setWidth("108");

                TextBox549668.setHeight("23");
                TextBox549668.setWidth("107");

                AbsolutePanel611346.setHeight("141");
                AbsolutePanel611346.setWidth("258");

                CheckBox853434.setText("Department");
                CheckBox853434.setHeight("20");
                CheckBox853434.setWidth("100");


                ScrollPanel836309.setHeight("115");
                ScrollPanel836309.setWidth("243");

                AbsolutePanel147833.setHeight("140");
                AbsolutePanel147833.setWidth("257");

                agentLabelCheckBox.setText("Agent Level");
                agentLabelCheckBox.setHeight("20");
                agentLabelCheckBox.setWidth("100");

                aNameCheckBox.setText("Agent Name");
                aNameCheckBox.setHeight("20");
                aNameCheckBox.setWidth("100");

                idLabel.setText("    ID");
                idLabel.setWidth("100");

                ListBox126840.setWidth("120");

                ListBox422645.setWidth("120");

                ListBox376737.setWidth("120");

                AbsolutePanel138241.setHeight("155");
                AbsolutePanel138241.setWidth("244");

                CheckBox473558.setText("Query Type");
                CheckBox473558.setHeight("20");
                CheckBox473558.setWidth("100");


                ScrollPanel609893.setHeight("127");
                ScrollPanel609893.setWidth("233");

                AbsolutePanel661922.setHeight("154");
                AbsolutePanel661922.setWidth("257");

                querySourceCheckBox.setText("Query Source");
                querySourceCheckBox.setHeight("20");
                querySourceCheckBox.setWidth("100");

                CheckBox283341.setText("Case Type");
                CheckBox283341.setHeight("20");
                CheckBox283341.setWidth("100");

                ListBox846536.setWidth("120");

                ListBox828224.setWidth("120");

                AbsolutePanel679164.setHeight("151");
                AbsolutePanel679164.setWidth("256");

                CheckBox441060.setText("Case Status");
                CheckBox441060.setHeight("20");
                CheckBox441060.setWidth("100");

                ListBox322144.setWidth("120");

                showButton.setText("Show");
                showButton.setHeight("25");
                showButton.setWidth("120");
                showButton.addClickListener(this);

                //ScrollPanel257569.setHeight("25%");
                //ScrollPanel257569.setWidth("97%");
                gridPanel.setHeight("25%");
                gridPanel.setWidth("97%");
                dtFrom.setWidth(100);
                dtTo.setWidth(100);
                setSize("100%", "100%");
        }

        /**
        * This method is click listener. It is invoked when any of the click
event is fired.
        *
        * @param   Widget The widget for button.
        * @return  void   It returns void.
        * @throws
        */

        public void onClick(Widget sender) {

                String  selectedDepartment = getSelectedDepartments();
                String selectedQuerie = getSelectedQueries();
                ArrayList selectedDepartments=new ArrayList();
                if(!selectedDepartment.isEmpty()){
                String stemp[]=selectedDepartment.split("[-]");
                for(int i=0;i<stemp.length;i++)
                        selectedDepartments.add(stemp[i]);
                }
                if(sender.equals(agentLabelCheckBox)){//Agent Level
                        if(agentLabelCheckBox.isChecked())
                        {
                                ListBox126840.clear();
                                ListBox126840.setEnabled(true);

                                for(int i=0;i<selectedDepartments.size();i++){

                                        
ListBox126840.addItem((String)listLevel.get(i));
                                }
                                selectedLevel = ListBox126840.getItemText
(ListBox126840.getSelectedIndex());
                        }
                        else
                        {
                                ListBox126840.setEnabled(false);
                                ListBox126840.clear();
                        }
                }

                else if(sender.equals(aNameCheckBox))//Agent Name
                {
//                      if(aNameCheckBox.isChecked())
//                      {
//                              ListBox422645.setEnabled(true);
//                              for(int i=0;i<hmAgent.size();i++){
//                                      HashMap temp = (HashMap)hmAgent.get(new 
Integer(i));
//                                      
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
//                                      
ListBox422645.addItem((String)temp.get("AGNT_NAME"));
//                              }
//                      }
//                      else
//                      {   ListBox422645.setEnabled(false);
//                              ListBox422645.clear();
//                              ListBox376737.clear();
//
//                      }


                //System.out.println("list is ="+selectedDepartments);
                        if(aNameCheckBox.isChecked())
                        {
                                ListBox422645.setEnabled(true);
                //nitin change
                                if(selectedDepartments.isEmpty()){
                                        if(selectedLevel.equals(""))
                                        {
                                                for(int 
i=0;i<hmAgent.size();i++){
                                                        HashMap temp = 
(HashMap)hmAgent.get(new Integer(i));
                                                        
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
                                                        
ListBox422645.addItem((String)temp.get("AGNT_NAME"));
                                                }
                                        }
                                        else{
                                                for(int 
i=0;i<hmAgent.size();i++){
                                                        HashMap temp = 
(HashMap)hmAgent.get(new Integer(i));
                                                        String level = 
(String)temp.get("CMS_M_LEVE_LEVL_LEVEL_CODE");
                                                        
if(level.equals(selectedLevel))
                                                        {
                                                                
ListBox422645.addItem((String)temp.get("AGNT_NAME"));
                                                                
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
                                                        }
                                                }
                                        }
                                }
                                else{
                                        if(selectedLevel.equals(""))
                                        {
                                                for(int 
i=0;i<hmAgent.size();i++){
                                                        HashMap temp = 
(HashMap)hmAgent.get(new Integer(i));
                                                        String sDept = 
(String)temp.get
("CMS_M_DEPARTMENT_DEPT_DEPT_ID");
                                                        
if(selectedDepartments.contains(sDept))
                                                        {
                                                                
ListBox422645.addItem((String)temp.get("AGNT_NAME"));
                                                                
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
                                                        }
                                                }
                                        }
                                        else{
                                                for(int 
i=0;i<hmAgent.size();i++){
                                                        HashMap temp = 
(HashMap)hmAgent.get(new Integer(i));
                                                        String level = 
(String)temp.get("CMS_M_LEVE_LEVL_LEVEL_CODE");
                                                        String sDept = 
(String)temp.get
("CMS_M_DEPARTMENT_DEPT_DEPT_ID");
                                                        
if((level.equals(selectedLevel)) &&
(selectedDepartments.contains(sDept)))
                                                        {
                                                                
ListBox422645.addItem((String)temp.get("AGNT_NAME"));
                                                                
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
                                                        }
                                                }
                                        }
                                }
                        }
                        else
                        {
                                ListBox422645.clear();
                                ListBox376737.clear();
                                ListBox422645.setEnabled(false);
                        }
                }

                else if(sender.equals(querySourceCheckBox))//Query Source
                {
                        if(querySourceCheckBox.isChecked())
                        {
                                ListBox846536.setEnabled(true);
                                for(int i=0;i<listSource.size();i++){
                                        
ListBox846536.addItem((String)listSource.get(i));
                                }
                        }
                        else
                        {
                                ListBox846536.clear();
                                ListBox846536.setEnabled(false);
                        }
                }
                else if(sender.equals(CheckBox473558)){//Query Type
                        if(CheckBox473558.isChecked())
                                TREEQUERYTYPE.setDisabled(false);
                        else
                        {
                                TreeNode[] nodes = TREEQUERYTYPE.getChecked();
                                for(int i=0;i<nodes.length;i++){
                                        nodes[i].setChecked(false);
                                }
                                TREEQUERYTYPE.setDisabled(true);
                        }
                }
                else if(sender.equals(CheckBox853434)){//department tree

                        if(CheckBox853434.isChecked())
                                DEPTTREE.setDisabled(false);
                        else{
                                TreeNode[] nodes = DEPTTREE.getChecked();
                                for(int i=0;i<nodes.length;i++){
                                        nodes[i].setChecked(false);
                                }
                                DEPTTREE.setDisabled(true);
                        }

                }
                else if(sender.equals(CheckBox283341)) //Case Type
                {
                        if(CheckBox283341.isChecked())
                        {
                                ListBox828224.setEnabled(true);
                                for(int i=0;i<listType.size();i++)
                                        
ListBox828224.addItem((String)listType.get(i));
                        }
                        else
                        {
                                ListBox828224.clear();
                                ListBox828224.setEnabled(false);
                        }
                }

                else if(sender.equals(CheckBox441060)) // Case Status
                {
                        if(CheckBox441060.isChecked())
                                ListBox322144.setEnabled(true);
                        else
                                ListBox322144.setEnabled(false);
                }
                else if(sender.equals(ListBox126840)){//Level List box
                        selectedLevel = ListBox126840.getItemText
(ListBox126840.getSelectedIndex());
                }
                else if(sender.equals(ListBox422645)){
                        String sName = ListBox422645.getItemText
(ListBox422645.getSelectedIndex());
                        for(int i=0;i<hmAgent.size();i++){
                                HashMap temp = (HashMap)hmAgent.get(new 
Integer(i));
                                String sListAgentName = 
(String)temp.get("AGNT_NAME");
                                if(sName.equals((String)temp.get("AGNT_NAME")))
                                {
                                        
ListBox376737.addItem((String)temp.get("AGNT_AGENT_ID"));
                                }
                        }

                }
                else if(sender.equals(showButton)){// SHow Button
                        if(!CheckBox441060.isChecked())
                                Window.alert("Case Status Missing");
                        else
                        {

                        String sDate = "",sLevel ="",sAgentName
="",sAgentID="",sQuerySource ="",sCaseType="",sCaseStatus ="";
                        //String dtTo ="";
                        if(dtFrom.getText()!=null && 
!dtFrom.getText().equals("") &&
dtTo.getText()!=null && !dtTo.getText().equals(""))
                                
sDate=Complaint.JAVADTFORMATSHORT.format(dtFrom.getValue())
+"|"+Complaint.JAVADTFORMATSHORT.format(dtTo.getValue());

                        if(ListBox126840.getSelectedIndex() != -1)
                                sLevel = 
ListBox126840.getItemText(ListBox126840.getSelectedIndex
());
                        if(ListBox422645.getSelectedIndex() != -1)
                                sAgentName = ListBox422645.getItemText
(ListBox422645.getSelectedIndex());
                        if(ListBox376737.getSelectedIndex() != -1)
                                sAgentID = 
ListBox376737.getItemText(ListBox376737.getSelectedIndex
());
                        if(ListBox846536.getSelectedIndex() != -1)
                                sQuerySource = ListBox846536.getItemText
(ListBox846536.getSelectedIndex());
                        if(ListBox828224.getSelectedIndex() != -1)
                                sCaseType = ListBox828224.getItemText
(ListBox828224.getSelectedIndex());
                        if(ListBox322144.getSelectedIndex() != -1)
                                sCaseStatus = ListBox322144.getItemText
(ListBox322144.getSelectedIndex());

                        if(sCaseStatus.equals(""))
                                Agent.setStatusBar("Case Status Mandatory Value 
Missing");

                //String selectedDepartment = getSelectedDepartments();
                //String selectedQuerie = getSelectedQueries();
                //System.out.println("department String 2  is 
"+selectedDepartment);
                //System.out.println("Queries String 2  is "+selectedQuerie);
                        DataProviderServiceAsync dps1 = 
(DataProviderServiceAsync)
GWT.create(DataProviderService.class);
                        ServiceDefTarget endpoint1 = (ServiceDefTarget) dps1;
                        String moduleRelativeURL1 = GWT.getModuleBaseURL() +
"DataProvider";
                        endpoint1.setServiceEntryPoint(moduleRelativeURL1);
                        AsyncCallback callback = new AsyncCallback() {
                                public void onSuccess(Object result) {
                                        if(result==null)
                                                System.out.println("Result 
Null");
                                        else {


                                                //sortableTable.deleteAllRows();
                                                HashMap hmReturn = 
(HashMap)result;
                                                //Object[][] data=new 
Object[((HashMap)result).size()][14];
                                                //Object[][]  CCSdata = new 
String[hmReturn.size()][8];
                                             data = new 
Object[hmReturn.size()][8];
                                                try{
                                                for(int 
i=0;i<hmReturn.size();i++){
                                                        HashMap temp = 
(HashMap)hmReturn.get(new Integer(i));
                                                        
if(temp.get("ESC_DEPT_ID")!=null){
                                                                data[i][0] = 
(String)temp.get("ESC_DEPT_ID");
                                                         
System.out.println("ESC_dept is"+data[i][0]);}
                                                        else
                                                                data[i][0] =  
"-";
                                                        
if(temp.get("ESC_AGENT_LEVEL")!=null){
                                                                data[i][1] = 
(String)temp.get("ESC_AGENT_LEVEL");
                                                        
System.out.println("Agent level is"+data[i][1]);}
                                                        else
                                                                data[i][1] =  
"-";
                                                        
if(temp.get("ESC_AGENT_ID")!=null)
                                                                data[i][2] =  
(String)temp.get("ESC_AGENT_ID");
                                                        else
                                                                data[i][2] =  
"-";
                                                        
if(temp.get("ESC_OUT_STATUS")!=null)
                                                                data[i][3] = 
(String)temp.get("ESC_OUT_STATUS");
                                                        else
                                                                data[i][3] =  
"-";
                                                        
if(temp.get("CMS_M_QUERYSOURCE_CMS_SOURCE")!=null)
                                                                data[i][4] = 
(String)temp.get("CMS_M_QUERYSOURCE_CMS_SOURCE");
                                                        else
                                                                data[i][4] =  
"-";
                                                        
if(temp.get("CMS_M_CASETYPE_CAST_TYPE")!=null)
                                                                data[i][5] = 
(String)temp.get("CMS_M_CASETYPE_CAST_TYPE");
                                                        else
                                                                data[i][5] =  
"-";
                                                        
if(temp.get("CMS_M_QUERYTYPE_QUT_TYPE_ID")!=null)
                                                                data[i][6] 
=(String)temp.get("CMS_M_QUERYTYPE_QUT_TYPE_ID");
                                                        else
                                                                data[i][6] =  
"-";
                                                        
if(temp.get("TOTAL")!=null)
                                                                data[i][7] =  
(String)temp.get("TOTAL");
                                                        else
                                                                data[i][7] =  
"-";

                                                }
                                                }
                                                finally{
                                                        //gridPanel.clear();
                                                        createCCSGrid();
                                                        
//CCSGrid.setAutoScroll(false);

                                                        //
                                                        
//ScrollPanel257569.add(CCSGrid);
                                                }

                                        }
                                }
                                public void onFailure(Throwable caught) {
                                        Window.alert("Error in loading tree 1");
                                }
                        };
                        
dps1.doWork2(sDate,selectedDepartment+"|"+selectedQuerie+"|"+sLevel
+"|"+sAgentName+"|"+sAgentID+"|"+sQuerySource+"|"+sCaseType
+"|"+sCaseStatus,"CCS1",callback);
                        }
                }
                else {
//                      if(((CheckBox)sender).getName().indexOf("Q-")!=-1)
//                      {
//                              if(((CheckBox)sender).isChecked())
//                              {
//                                      String selectedQueryID = 
((CheckBox)sender).getName().split
("[-]")[1];
//                                      selectedQueries.add(selectedQueryID);
//                              }
//                              else{
//                                      String selectedQueryID = 
((CheckBox)sender).getName().split
("[-]")[1];
//                                      selectedQueries.remove(selectedQueryID);
//                              }
//                      }
//                      else
//                      {
//                              if(((CheckBox)sender).isChecked())
//                              {
//                                      String selectedDeptID = 
((CheckBox)sender).getName();
//                                      selectedDepartments.add(selectedDeptID);
//                              }
//                              else{
//                                      String selectedDeptID = 
((CheckBox)sender).getName();
//                                      
selectedDepartments.remove(selectedDeptID);
//                              }
//                      }
                }
        }

        public void onCellClicked(SourcesTableEvents sender, int row, int
cell) {
                // TODO Auto-generated method stub

        }


        //start nitin
        public void createCCSGrid(){

                try {
                        recordDef = new RecordDef(
                                   new FieldDef[]{
                                           //new StringFieldDef("#"),
                                           new StringFieldDef("Department"),
                                           new StringFieldDef("Agent Level"),
                                           new StringFieldDef("Agent Id"),
                                           new StringFieldDef("Status"),
                                           new StringFieldDef("Source"),
                                           new StringFieldDef("Case Type"),
                                           new StringFieldDef("Query Type"),
                                           new StringFieldDef("Total"),

                                   }
                           );

                         //CCSGrid.setId("CCSGrid");
                        //final CheckboxSelectionModel cbSelectionModel = new
CheckboxSelectionModel();
                         // Object[][] data=getAgentData();
                           MemoryProxy proxy = new MemoryProxy(data);

                           ArrayReader reader = new ArrayReader(recordDef);
                           store = new Store(proxy, reader);
                           store.load();


                           BaseColumnConfig[] columns = new BaseColumnConfig[]{
                                 new RowNumberingColumnConfig(),
                                   //column ID is company which is later used in
setAutoExpandColumn
                                   //new ColumnConfig("#", "#",5,true, null, 
"#"),
                                   new ColumnConfig("Department", 
"Department",100,true,
null, "Department"),
                                   new ColumnConfig("Agent Level", "Agent 
Level",100,true,
null, "Agent Level"),
                                   new ColumnConfig("Agent Id", "Agent 
Id",100,true, null,
"Agent Id"),
                                   new ColumnConfig("Status", 
"Status",100,true, null,
"Status"),
                                   new ColumnConfig("Source", 
"Source",100,true, null,
"Source"),
                                   new ColumnConfig("Case Type", "Case 
Type",100,true,
null, "Case Type"),
                                   new ColumnConfig("Query Type", "Query 
Type",100,true,
null, "Query Type"),
                                   new ColumnConfig("Total", "Total",100,true, 
null,
"Total"),

                           };

                           ColumnModel columnModel = new ColumnModel(columns);
                           CCSGrid = new GridPanel();
                           CCSGrid.setStore(store);
                           CCSGrid.setColumnModel(columnModel);
                           CCSGrid.setIconCls("grid-icon");
                           CCSGrid.setStripeRows(true);
                          // CCSGrid.setFrame(true);

                           CCSGrid.setAutoHeight(true);//                    
done by Amit
                           CCSGrid.setAutoWidth(true);  //                   
done by Amit
                           gridPanel.add(CCSGrid);
                         // Panel panel=new Panel();
                          // add(panel);
                                //add(gridPanel);
                          // CCSGrid.getStore().removeAll();
                     //CCSGrid.getStore().commitChanges();
//                                 for(int j=0; j < data.length; j++) {
//                                         
CCSGrid.getStore().add(recordDef.createRecord(data[j]));
//                                 }
//                                 CCSGrid.getStore().commitChanges();
//                        CCSGrid.setBodyBorder(true);
//                        GridView view = new GridView();
//                        CCSGrid.setView(view);
//                        CCSGrid.setBorder(false);
//                        CCSGrid.setAutoScroll(true);
//                        CCSGrid.setHeight(300);
//
//                       CCSGrid.setDisabled(true);
//                       CCSGrid.setBorder(true);
//                       CCSGrid.setAutoScroll(false);
//
//                      CCSGrid.setSelectionModel(cbSelectionModel);
//                      CCSGrid.addButton(btnKillSession);

                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

}
//      private Object[][] getAgentData() {
//        return new Object[][]{
//        };
//    }
//
//       public void setCusDetailData(Object[][] data){
//              CCSGrid.getStore().removeAll();
//              CCSGrid.getStore().commitChanges();
//                         for(int j=0; j < data.length; j++) {
//                                 
CCSGrid.getStore().add(recordDef.createRecord(data[j]));
//                         }
//                         CCSGrid.getStore().commitChanges();
//          }
        /**
        * Creates the department tree.
        *
        * @param   Widget The widget for button.
        * @return  void   It returns void.
        * @throws
        */

        private void createDepartmentTree(){
                System.out.println("In create deprt");
                HashMap hmDepartments = new HashMap();
                DEPTTREE = new TreePanel();
                DEPTTREE.setCollapsible(true);
                //DEPTTREE.setIconCls("world-icon");
                DEPTTREE.setAnimate(true);
                DEPTTREE.setEnableDD(true);
                DEPTTREE.setContainerScroll(true);
                DEPTTREE.setAutoScroll(true);
                DEPTTREE.setRootVisible(false);
                DEPTTREE.setFrame(true);
                //DEPTTREE.setDisabled(true);
                DEPTTREE.setBorder(true);
                TreeNode root =new TreeNode("Departments");

                //DEPTTREE.clear();
                root.setId("ROOT");
                DEPTTREE.setRootNode(root);

                try {
                        for(int i = 0;i<Complaint.HM_DEPT.size();i++){
                             HashMap temp = (HashMap)Complaint.HM_DEPT.get(new 
Integer
(i));
                                String sNode = (String)temp.get("DEPT_DEPT_ID");
                                String sParent = 
(String)temp.get("DEPT_PARENT_ID");
                                if(sParent==null){
                                 TreeNode treeItem=new TreeNode((String)temp.get
("DEPT_NAME")+"("+sNode+")");
                                 treeItem.setId(sNode);
                                 treeItem.setChecked(false);
                                 treeItem.setAttribute("TYPE", "DEPT");
                                 root.appendChild(treeItem);
                                 hmDepartments.put(sNode, treeItem);
                                }else{
                                        TreeNode 
treeParent=(TreeNode)hmDepartments.get(sParent);
                                        if(treeParent!=null){
                                                TreeNode treeItem=new 
TreeNode((String)temp.get
("DEPT_NAME")+"("+sNode+")");
                                                treeItem.setId(sNode);
                                                treeItem.setChecked(false);
                                                treeItem.setAttribute("TYPE", 
"DEPT");
                                                
treeParent.appendChild(treeItem);
                                                hmDepartments.put(sNode, 
treeItem);
                                        }
                                }
                            }
                } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                }
                for(int i = 0;i<Complaint.HM_AGNT_LVL.size();i++){
            HashMap temp = (HashMap)Complaint.HM_AGNT_LVL.get(new
Integer (i));
               String sNode = (String)temp.get("AGNT_AGENT_ID");
               String sParent = (String)temp.get
("CMS_M_DEPARTMENT_DEPT_DEPT_ID");
               TreeNode treeParent=(TreeNode)hmDepartments.get
(sParent);
               if(treeParent!=null){
                   TreeNode treeItem=new TreeNode((String)temp.get
("AGNT_SHORT_NAME")+"("+sNode+")");
                   treeItem.setId(sNode);
                   treeItem.setChecked(false);
                   treeItem.setAttribute("TYPE","DEPT");
                   treeParent.appendChild(treeItem);
               }
           }
                ScrollPanel836309.add(DEPTTREE);
            DEPTTREE.disable();


//       TreePanelListener treePanelListener = new TreePanelListenerAdapter
()
//     {
//        public void onDblClick(TreeNode node, EventObject e) {
//        }
//        public void onContextMenu(TreeNode node,EventObject e){
//        }
//        public void onClick(TreeNode node, EventObject e) {
//         //node.expand(true, false);
//      }
//        //method needs to be checked
//        public void onCheckChange(TreeNode node, boolean checked) {
//                 if(checked){
//                        node.expand(true, false);
//
//                       node.cascade(new NodeTraversalCallback() {
//                          public boolean execute(Node node) {
//                             ((TreeNode)node).getUI().toggleCheck(true);//
true if you want
//                             return true;
//                          }
//                        });
//                      //      }
//                      }else if(!checked){
//                              node.expand(true, false);
//                              node.cascade(new NodeTraversalCallback() {
//                          public boolean execute(Node node) {
//                             ((TreeNode)node).getUI().toggleCheck(false);//
true if you want
//                             return true;
//                          }
//                        });
//
//                      }
//
//      }
//
//     };
//     DEPTTREE.addListener(treePanelListener);
   }


        public void onTreeItemSelected(TreeItem item) {
                String selectItem = item.getText();

        }

        public void onTreeItemStateChanged(TreeItem item) {

        }

        private String getSelectedDepartments(){

                ArrayList list = new ArrayList();
                String list2 = "";
                if(CheckBox853434.isChecked())
                {
                        TreeNode[] checkedNodes = DEPTTREE.getChecked();
                        for(int i=0;i<checkedNodes.length;i++){
                                list.add(checkedNodes[i].getId());

                        }
                        //System.out.println("department item is "+list);
                        for(int j=0;j<list.size();j++)
                        {
                        if(j==list.size()-1)
                        list2=list2+list.get(j).toString();
                        else
                                list2+=list.get(j).toString()+"-";
                        }

                }
                //System.out.println("Department string is  "+list2);
                return list2;
        }

        private String getSelectedQueries(){
                ArrayList list = new ArrayList();
                String list1 = "";
                if(CheckBox473558.isChecked())
                {
                        TreeNode[] checkedNodes = TREEQUERYTYPE.getChecked();
                        for(int i=0;i<checkedNodes.length;i++){

                                list.add(checkedNodes[i].getId());

                        }
                        //System.out.println("list item is "+list);
                        for(int j=0;j<list.size();j++)
                        {
                        if(j==list.size()-1)
                        list1+=list.get(j).toString();
                        else
                                list1+=list.get(j).toString()+"-";
                        }

                }
                //  System.out.println("Queries String  is "+list1);
                        return list1;
        }

}
when i am running this code ..its gives
java.lang.IllegalStateException: SimplePanel can only contain one
child widget
plz help am asap.thanks in advance

--

You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=.


Reply via email to