if options.affichage_commandes == "alphabetic":
liste_cmd = self.get_liste_cmd()
Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,
- filtre='oui',titre = "Commandes")
+ filtre='oui',titre = "Commandes",optionReturn="oui")
else:
liste_groupes=self.node.item.object.niveau.definition.liste_groupes
dict_groupes=self.node.item.object.niveau.definition.dict_groupes
Liste = ListeChoixParGroupes(self,frame2,liste_groupes,dict_groupes,
liste_commandes = liste_commandes,
- filtre='oui',titre = "Commandes")
+ filtre='oui',titre = "Commandes",optionReturn="oui")
Liste.affiche_liste()
self.command_entry=Liste.entry
# aide associée au panneau
if options.affichage_commandes == "alphabetic":
liste_cmd = self.get_liste_cmd()
Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes,
- filtre='oui',titre = "Commandes")
+ filtre='oui',titre = "Commandes",optionReturn="oui")
else:
liste_groupes=self.node.item.object.niveau.definition.liste_groupes
dict_groupes=self.node.item.object.niveau.definition.dict_groupes
Liste = ListeChoixParGroupes(self,page,liste_groupes,dict_groupes,
liste_commandes = liste_commandes,
- filtre='oui',titre = "Commandes")
+ filtre='oui',titre = "Commandes",optionReturn="oui")
Liste.affiche_liste()
# aide associée au panneau
bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes"""
#
__version__="$Name: $"
-__Id__="$Id: treewidget.py,v 1.17 2004/11/15 14:01:36 eficas Exp $"
+__Id__="$Id: treewidget.py,v 1.18 2004/11/17 16:08:34 eficas Exp $"
#
Fonte_Standard = fontes.standard
self.canvas.bind("<Key-Next>", self.page_down)
self.canvas.bind("<Key-Up>", self.unit_up)
self.canvas.bind("<Key-Down>", self.unit_down)
+ self.canvas.bind("<Key-Left>", self.mot_up)
+ self.canvas.bind("<Key-Right>", self.mot_down)
self.canvas.bind("<1>", self.canvas_select)
self.tree = self
self.command = command
def unit_down(self,event):
event.widget.yview_scroll(1, "unit")
+ def mot_down(self,event):
+ self.select_next(None)
+ self.canvas.focus_set()
+
+ def mot_up(self,event):
+ self.node_selected.select_mot_previous()
+ self.canvas.focus_set()
+
def build_children(self):
""" Construit la liste des enfants de self """
self.children = []
def select_next(self,event):
self.node_selected.select_next()
+ self.canvas.focus_set()
def select_previous(self,event):
self.node_selected.select_previous()
self.children[ind].select()
else :
index = self.parent.children.index(self) + 1
- if isinstance(self.parent,TREE) :
+ try :
+ if isinstance(self.parent,TREE) :
try:
self.children[ind].select()
except:
self.children[0].select()
- else :
+ else :
+ self.parent.select_next(index)
+ except :
self.parent.select_next(index)
+ def select_mot_previous(self):
+ index = self.parent.children.index(self) - 1
+ try :
+ if index > 0 :
+ self.parent.children[index].select()
+ else :
+ self.parent.select()
+ except:
+ self.parent.select()
+
def select_previous(self):
""" on doit d'abord sélectionner(dans l'ordre) :
- son frère aîné
class ListeChoix :
""" Cette classe est utilisée pour afficher une liste de choix passée en paramètre
en passant les commandes à lancer suivant différents bindings """
- def __init__(self,parent,page,liste,liste_commandes=[],liste_marques =[],active ='oui',filtre='non',titre=''):
+ def __init__(self,parent,page,liste,liste_commandes=[],liste_marques =[],active ='oui',filtre='non',titre='',optionReturn=None):
self.parent = parent
self.page = page
self.liste = liste
self.active = active
self.titre = titre
self.filtre = filtre
+ self.optionReturn = optionReturn
self.init()
def init(self):
self.MCbox.pack(fill='y',expand=1,padx=2,pady=2)
self.MCbox.configure(yscrollcommand=self.MCscroll.set)
+
def affiche_liste(self):
""" Affiche la liste dans la fenêtre"""
liste_labels=[]
mot="("
premier=1
for val in objet:
- if (not premier):
- mot=mot+","
- else:
- premier=0
- mot=mot+str(val)
+ if (not premier):
+ mot=mot+","
+ else:
+ premier=0
+ mot=mot+str(val)
mot=mot+")"
else:
mot=`objet`
window=label,
stretch = 1)
self.MCbox.insert(END,'\n')
+ if self.optionReturn != None :
+ label.bind("<Return>",lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitemsurligne(x,l,c))
+ label.bind("<Key-Right>",lambda e,s=self,x=objet,l=label : s.selectNextItem(x,l))
if self.active == 'oui':
label.bind(self.liste_commandes[0][0],lambda e,s=self,c=self.liste_commandes[0][1],x=objet,l=label : s.selectitem(x,l,c))
label.bind(self.liste_commandes[1][0],lambda e,s=self,c=self.liste_commandes[1][1],x=objet,l=label : s.deselectitem(l,x,c))
except:
pass
+ def chooseitemsurligne(self,mot,label,commande):
+ """ Active la méthode de choix passée en argument"""
+ try:
+ mot=self.arg_selected
+ commande(mot)
+ except AsException,e:
+ raison=str(e)
+ showerror(raison.split('\n')[0],raison)
+
def chooseitem(self,mot,label,commande):
""" Active la méthode de choix passée en argument"""
try:
raison=str(e)
showerror(raison.split('\n')[0],raison)
+ def selectNextItem(self,mot,label):
+ try :
+ index=self.liste.index(mot)
+ indexsuivant=index+1
+ motsuivant=self.liste[indexsuivant]
+ labelsuivant=self.dico_labels[motsuivant]
+ self.clear_marque()
+ if self.selection != None :
+ self.deselectitem(self.selection[1],self.selection[0],self.selection[2],)
+ self.selection = (mot,label,self.selection[2])
+ self.highlightitem(labelsuivant)
+ self.arg_selected=motsuivant
+ labelsuivant.focus_set()
+ # PN il faut faire quelque chose pour être dans la fenetre
+ except:
+ pass
+
+
def selectitem(self,mot,label,commande) :
""" Met l'item sélectionné (représenté par son label) en surbrillance
et lance la commande associée au double-clic"""
self.MCbox.see(index)
self.arg_selected = arg
break
+ try :
+ self.dico_labels[self.arg_selected].focus_set()
+ except :
+ pass
def get_liste_old(self):
return self.liste
lambda e,s=self,c=self.liste_commandes[1][1],x=cmd,l=label : s.deselectitem(l,x,c))
label.bind(self.liste_commandes[2][0],
lambda e,s=self,c=self.liste_commandes[2][1],x=cmd,l=label : s.chooseitem(x,l,c))
+ label.bind("<Key-Down>", self.selectNextItem(event))
for marque in self.liste_marques:
try: