Пример #1
0
 def OnButton(self,evt):
     item = self.FindWindowById(evt.GetId());n = item.GetName(); #getName ou getLabelText
     [groupe,nom]=n.split('_');
     if groupe=='Modele': groupe='Aquifere' #car toute donnes dans aqui
     retour = self.gui.control.valide(groupe,nom)
     if retour =='Stop' : return
     aqui=self.model.Aquifere
     ### AQUIFERE
     if nom=='GriVar':
         dic1=self.model.getParm(groupe,nom)
         dialg = MyDialogs.MyGriVarDialog(self,self.traduit(str(nom)),dic1)
         retour = dialg.ShowModal()
         if retour == wx.ID_OK:
             dic2 = dialg.GetValues();
             self.model.setParm(groupe,nom,dic2)
         dialg.Destroy()               
     elif nom=='zList': # liste des z de couches
         li1=self.model.getParm(groupe,nom)
         dialg = MyDialogs.MyListDialog(self,self.traduit(str(nom)),li1)
         retour = dialg.ShowModal()
         if retour == wx.ID_OK:
             li2 = dialg.GetValues()
             self.model.setParm(groupe,nom,li2)
         dialg.Destroy()                           
     elif nom=='Variable':
         s=str(item.GetStringSelection())
         if s=='Tr_Source': s='Transport'
         if s=='PH_Source': s='PHT3D'
         self.currentVar = self.tradinverse(s);
         self.setVbase(groupe,item) # met vbase actuel sur bouton
     elif nom=='Milieux':
         self.currentMil=int(item.GetStringSelection())
         #self.setVbase(groupe,item)
     elif nom=='ValBase':
         if self.currentVar==None: return
         mil = self.currentMil
         v = aqui.getVbase(self.currentVar,mil)
         u = ' ('+aqui.getUnits(self.currentVar)+')'
         if self.currentVar=='Mur' or (self.currentVar=='Toit' and int(mil)==0):
             dialg = MyDialogs.MyGenericCtrl(self,nom+u,[(self.currentVar,v)])
             if dialg.ShowModal() == wx.ID_OK:
                 lst2 = dialg.GetValues()
                 if lst2 != None:
                     v = lst2[0][1]
                     aqui.setVbase(self.currentVar,v,[mil])
         elif self.currentVar=='Toit' and int(mil)>0:
             return
         else :
             lst=[(self.currentVar,v)]
             if aqui.getDim()=='3D':
                 lst.extend([('Milieu Haut',0),('Milieu Bas',0)])
             dialg = MyDialogs.MyGenericCtrl(self,nom+u,lst)
             if dialg.ShowModal() == wx.ID_OK:
                 lst2 = dialg.GetValues()
                 if lst2 != None:
                     v = lst2[0][1];llist=[self.currentMil]
                     if aqui.getDim()=='3D':
                         llist= range(lst2[1][1],lst2[2][1]+1) #range of media 
                     aqui.setVbase(self.currentVar,v,[int(l)for l in llist])
         dialg.Destroy()               
         but=self.FindWindowByName(groupe+'_ValBase')
         but.SetLabel(str(v))
         #self.vbase.SetLabel(str(v))
     elif nom=='Carte' :
         dlg = wx.FileDialog(self,self.traduit("Choisir une carte"),"","","*.png",wx.OPEN)
         retour = dlg.ShowModal()
         if retour == wx.ID_OK:
             path = dlg.GetPath()            
             self.model.setMap(path)
         else : return
         dlg.Destroy()
     ### ECOULEMENT
     elif nom=='Particule':
         pName = self.model.getProjectName();
         if pName=='':  # pas de projet
             self.OnMessage('creez ou sauvez votre projet')
             return
         self.visu.startParticules(); self.startP = True;
         self.model.doAction('Top','zoneStart')
     ### Transport
     elif nom in ['Import','Write']: pass
     elif nom=='Chemistry':
         dic = self.model.getParm(groupe,nom)
         dialg = MyDialogs.MyNoteBook(self,"Chemistry",dic)
         retour = dialg.ShowModal()
         if retour == wx.ID_OK:
             dic2 = dialg.GetValues()
             if dic2 != None:
                 self.model.setParm(groupe,nom,dic2)
         dialg.Destroy()                         
     elif nom=='PH_Source':
         nomv ='PHT3D';self.currentVar=nomv;
         self.visu.changeAxesOri('Z',self.currentMil)
         self.visu.showVar(nomv,self.currentMil)
     elif nom=='Immobile':
         dic = self.model.getParm(groupe,nom)
         dialg = MyDialogs.MyNoteBook(self,"Chemistry Immobile",dic)
         retour = dialg.ShowModal()
         if retour == wx.ID_OK:
             dic2 = dialg.GetValues()
             if dic2 != None:
                 self.model.setParm(groupe,nom,dic2)
         dialg.Destroy()                                     
     ### Observation
     elif nom=='ZoneO':
         nomv ='Observation';self.currentVar=nomv;
         self.visu.changeAxesOri('Z',self.currentMil)
         self.visu.showVar(nomv,self.currentMil)
         zlist=aqui.getZoneList(nomv);znames=[z.getNom() for z in zlist]
         self.gui.afficheTree.setNames('Observation_Zone_L',znames)
     ### GENERIQUES
     elif nom[:3]=='Run': pass
     else :
         lstDialg = self.model.getParm(groupe,nom)
         if lstDialg==None: return
         u = self.unitsForDialog(nom)
         dialg = MyDialogs.MyGenericCtrl(self,str(nom)+u,lstDialg)
         retour = dialg.ShowModal()
         if retour == wx.ID_OK:
             lst2 = dialg.GetValues()
             if lst2 != None:
                 self.model.setParm(groupe,nom,lst2)
         dialg.Destroy()               
     self.model.doAction(groupe,nom)