Вопрос выбора в выпадающем списке в gxt - PullRequest
1 голос
/ 10 декабря 2010

Я занимаюсь разработкой проекта с использованием GXT-2.1.1. Я хочу отображать информацию о транспортном средстве для выбранной группы транспортных средств в сетке с установленным флажком. У меня есть выпадающий список VehicleGroup, он отображает имя группы. Как отобразить автомобили для выбранного имени группы. Я использую два магазина 1.storeVehicleFrom со всеми данными об автомобиле и 2.storeTempVehicleFrom только с подгруппой автомобилей Здесь под я мой код Sorce. Будет отображаться сообщение об ошибке classcastException. Как решить эту проблему.

ComboBox<VehicleGroupModel> comboGroup = new ComboBox<VehicleGroupModel>();
    ListStore<VehicleGroupModel> storeGroup = new ListStore<VehicleGroupModel>();
    ListStore<VehicleGroupModel> storeVehicleFrom =new ListStore<VehicleGroupModel> ();
    ListStore<VehicleGroupModel> storeTempVehicleFrom = new ListStore<VehicleGroupModel>();// Temp. store

    // combolistener
     SelectionChangedListener<VehicleGroupModel> comboListener =new SelectionChangedListener<VehicleGroupModel>(){
        @Override
        public void selectionChanged(SelectionChangedEvent<VehicleGroupModel> se) { 

            VehicleGroupModel vg = se.getSelectedItem();            
            Record record = storeGroup.getRecord(vg);       
            ProcessGroupSelection(record);
        }

    };

     private void ProcessGroupSelection(Record record){
        try{
            int groupId = record.getModel().get("groupId");
            disableFlag = false;

            //if(groupDetailList == null || groupDetailList.size() <= 0) return;commented by meena

            for(int i = 0; i < groupDetailList.size(); i++){ // all the vehicles are unchecked first
                VehicleGroupDetails groupDetail = (VehicleGroupDetails)groupDetailList.get(i);
                Integer vehicleId = new Integer(groupDetail.getVehicleId());                
                Record vehicleRecord = storeVehicleFrom.getRecord(storeVehicleFrom.getAt(0));//getAt(0).get("vehicleId");
                vehicleRecord.set("vehicleId", vehicleId.toString());
                vehicleRecord.set("Add", false);

            }
            storeTempVehicleFrom.removeAll(); // store the checkbox checked for the selected group 
            for(int i = 0; i < groupDetailList.size(); i++){
                VehicleGroupDetails groupDetail = (VehicleGroupDetails)groupDetailList.get(i);
                if(groupId == groupDetail.getGroupId()){
                    Integer vehicleId = new Integer(groupDetail.getVehicleId());                    
                    Record vehicleRecord = storeVehicleFrom.getRecord(storeVehicleFrom.getAt(0));
                    vehicleRecord.set("vehicleId", vehicleId.toString());
                    vehicleRecord.set("Add", true);                 
                    storeTempVehicleFrom.add(vehicleRecord);
                }
                disableFlag = true;
            }


            int[] existsInGroup = new int[storeGroup.getCount()] ;//All the below is for getting the ungrouped vehicles by 
            //storing the vehicle ids present in vehicle Group into array and then comparing with vehicle list and get the remaining ungrouped vehicles. 
            if (storeTempVehicleFrom.getCount() == 0) 
            { 
                disableFlag = false;
                for(int i = 0; i < groupDetailList.size(); i++){
                    VehicleGroupDetails groupDetail = (VehicleGroupDetails)groupDetailList.get(i);
                    for(int j=0;j< AppContext.companyVehicles.length;j++)
                    {
                        Vehicle vehicle =AppContext.companyVehicles[j];
                        //System.out.println("vehicle id in List "+vehicle.getId().getVehicleId()+"total Group id  "+groupDetail.getVehicleId());

                    if(vehicle.getId().getVehicleId() == groupDetail.getVehicleId())
                        {
                         existsInGroup[i] = vehicle.getId().getVehicleId() ;
                         continue;
                        }
                    }
                }
                int flag =0;
                Integer vehicleId = null ;
                for(int i = 0; i < AppContext.companyVehicles.length; i++){

                    //System.out.println("Exists in Group "+existsInGroup.length);
                    for(int k=0;k<existsInGroup.length;k++) 
                        {   
                        //System.out.println(" "+existsInGroup[k]+" "+AppContext.companyVehicles[i].getId().getVehicleId());
                        vehicleId = new Integer(AppContext.companyVehicles[i].getId().getVehicleId());
                        if (vehicleId == existsInGroup[k])
                         {
                            flag =1;
                            break;
                         }
                       }
                    //System.out.println("Flag :"+flag);
                    if(flag !=1){
                        Record vehicleRecord = storeVehicleFrom.getRecord(storeVehicleFrom.getAt(0));                         
                        vehicleRecord.set("Add", true);
                        storeTempVehicleFrom.add(vehicleRecord);

                         }
                     flag =0;
                    }
            }

            storeVehicleFrom.commitChanges();
            storeTempVehicleFrom.commitChanges();
        }
          catch(Exception e){
              ExceptionHandler.performDefaultErrorHandling(e);
          }
      }
...