1 # -*- coding: utf-8 -*-
2 #Author: Pierre Ratinaud
3 #Copyright (c) 2008-2020 Pierre Ratinaud
4 #modification pour python 3 : Laurent Mérat, 6x7 - mai 2020
7 #------------------------------------
8 # import des modules python
9 #------------------------------------
11 #------------------------------------
12 # import des modules wx
13 #------------------------------------
16 #------------------------------------
17 # import des fichiers du projet
18 #------------------------------------
19 from functions import sortedby, DoConf
21 # begin wxGlade: extracode
24 class AlcOptFrame(wx.Dialog):
25 def __init__(self,parent, *args, **kwds):
26 # begin wxGlade: AlcOptFrame.__init__
27 kwds["style"] = wx.DEFAULT_DIALOG_STYLE
28 wx.Dialog.__init__(self, *args, **kwds)
30 'adj_sup': [wx.NewId(),wx.NewId(),"Adjectif supplémentaire"],
31 'art_ind': [wx.NewId(),wx.NewId(),"Article indéfini"],
32 'adj_pos': [wx.NewId(),wx.NewId(),"Adjectif possessif"],
33 'adv_sup': [wx.NewId(),wx.NewId(),"Adverbe supplémentaire"],
34 'pro_dem': [wx.NewId(),wx.NewId(),"Pronom démonstratif"],
35 'art_def': [wx.NewId(),wx.NewId(),"Article défini"],
36 'con': [wx.NewId(),wx.NewId(),"Conjonction"],
37 'pre': [wx.NewId(),wx.NewId(),"Préposition"],
38 'ono': [wx.NewId(),wx.NewId(),"Onomatopée"],
39 'adj_dem': [wx.NewId(),wx.NewId(),"Adjectif démonstratif"],
40 'nom_sup': [wx.NewId(),wx.NewId(),"Nom supplémentaire"],
41 'adv': [wx.NewId(),wx.NewId(),"Adverbe"],
42 'pro_per': [wx.NewId(),wx.NewId(),"Pronom personnel"],
43 'ver': [wx.NewId(),wx.NewId(),"Verbe"],
44 'adj_num': [wx.NewId(),wx.NewId(),"Adjectif numérique"],
45 'pro_rel': [wx.NewId(),wx.NewId(),"Pronom relatif"],
46 'adj_ind': [wx.NewId(),wx.NewId(),"Adjectif indéfini"],
47 'pro_ind': [wx.NewId(),wx.NewId(),"Pronom indéfini"],
48 'pro_pos': [wx.NewId(),wx.NewId(),"Pronom possessif"],
49 'aux': [wx.NewId(),wx.NewId(),"Auxiliaire"],
50 'ver_sup': [wx.NewId(),wx.NewId(),"Verbe supplémentaire"],
51 'adj': [wx.NewId(),wx.NewId(),"Adjectif"],
52 'adj_int': [wx.NewId(),wx.NewId(),"Adjectif interrogatif"],
53 'nom': [wx.NewId(),wx.NewId(),"Nom commun"],
54 'num' : [wx.NewId(),wx.NewId(),"Chiffre"],
55 'nr' : [wx.NewId(),wx.NewId(),"Formes non reconnues"],
58 self.keys=self.parent.keys
66 self.label_1 = wx.StaticText(self, -1, " Choix des clés d'analyse\n0=éliminé ; 1=active ; 2=supplémentaire\n")
67 self.listcleori=[[cle]+self.cle[cle] for cle in self.cle]
68 self.listcleori=sortedby(self.listcleori,1,3)
70 for line in self.listcleori:
71 cle,ids,idb,label=line
72 self.listlabel.append(wx.StaticText(self, -1, label))
73 self.listspin.append(wx.SpinCtrl(self, ids,repr(self.keys[cle]), min=0, max=2))
74 #if cle != 'nr' and cle!= 'num' :
75 self.listbutton.append(wx.Button(self, idb, "voir liste"))
76 self.listids.append(ids)
77 self.listidb.append(idb)
78 self.listcle.append(cle)
81 self.button_val = wx.Button(self, wx.ID_OK)
83 for button in self.listbutton :
84 self.Bind(wx.EVT_BUTTON,self.OnShowList,button)
86 #self.Bind(wx.EVT_BUTTON, self.OnApply, self.button_val)
88 self.dico=self.parent.parent.lexique#'dictionnaires/lexique.txt')
90 self.__set_properties()
94 def __set_properties(self):
95 # begin wxGlade: AlcOptFrame.__set_properties
96 self.SetTitle("Clés d'analyse")
99 def __do_layout(self):
100 # begin wxGlade: AlcOptFrame.__do_layout
101 sizer_1 = wx.BoxSizer(wx.VERTICAL)
102 sizer_2 = wx.BoxSizer(wx.VERTICAL)
103 sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
104 grid_sizer_1 = wx.GridSizer(14, 3, 0, 0)
105 grid_sizer_2 = wx.GridSizer(14, 3, 0, 0)
106 sizer_2.Add(self.label_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
107 for i in range(0,14):
108 grid_sizer_1.Add(self.listlabel[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
109 grid_sizer_1.Add(self.listspin[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
110 grid_sizer_1.Add(self.listbutton[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
111 for i in range(14,len(self.listlabel)):
112 grid_sizer_2.Add(self.listlabel[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
113 grid_sizer_2.Add(self.listspin[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
114 grid_sizer_2.Add(self.listbutton[i], 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
115 sizer_3.Add(grid_sizer_1, 1, wx.EXPAND, 0)
116 sizer_3.Add(grid_sizer_2, 1, wx.EXPAND, 0)
117 sizer_2.Add(sizer_3, 1, wx.EXPAND, 8)
118 sizer_2.Add(self.button_val,0, wx.ALIGN_CENTER_HORIZONTAL, 0)
119 sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
120 self.SetSizer(sizer_1)
125 def OnShowList(self,evt):
126 id=evt.GetEventObject().GetId()
127 pos=self.listidb.index(id)
128 type=self.listcle[pos]
129 self.CreateList(type)
131 def CreateList(self,type):
132 if type=='ver_sup' or type=='ver':
133 #liste=[descr[0] for item,descr in self.dico.iteritems() if descr[1]==type]
134 liste = [forme for forme in self.corpus.formes if self.corpus.formes[forme].gram==type]
135 liste=list(set(liste))
137 #liste=[item for item,descr in self.dico.iteritems() if descr[1]==type]
138 liste = [forme for forme in self.corpus.formes if self.corpus.formes[forme].gram==type]
140 txt=('\n').join(liste)
141 ListViewFrame=ListView(self.parent)
142 ListViewFrame.text_ctrl_1.WriteText(txt)
143 ListViewFrame.text_ctrl_1.SetSelection(0,0)
144 ListViewFrame.text_ctrl_1.SetInsertionPoint(0)
145 ListViewFrame.CenterOnParent()
146 val=ListViewFrame.ShowModal()
148 class ListView(wx.Dialog):
149 def __init__(self, parent):
150 wx.Dialog.__init__(self, parent, size=wx.Size(200, 400),style=wx.DEFAULT_DIALOG_STYLE)
151 self.text_ctrl_1 = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE|wx.TE_RICH2)
152 self.text_ctrl_1.SetMinSize(wx.Size(200, 400))
153 self.btn = wx.Button(self, wx.ID_OK)
154 self.SetMinSize(wx.Size(200, 400))
155 self.__set_properties()
158 def __set_properties(self):
159 self.SetTitle("Liste")
161 def __do_layout(self):
162 sizer_1 = wx.BoxSizer(wx.VERTICAL)
163 sizer_1.Add(self.text_ctrl_1, 1, wx.EXPAND, 0)
164 sizer_1.Add(self.btn,0,wx.EXPAND,0)
165 self.SetSizer(sizer_1)