...
[iramuteq] / Liste.py
index e0bc11a..daf58f5 100644 (file)
--- a/Liste.py
+++ b/Liste.py
@@ -19,7 +19,7 @@ import  wx
 from dialog import SearchDial, message
 import wx.lib.mixins.listctrl as listmix 
 from operator import itemgetter
 from dialog import SearchDial, message
 import wx.lib.mixins.listctrl as listmix 
 from operator import itemgetter
-
+from functions import doconcorde
 #---------------------------------------------------------------------------
 
 class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorterMixin):
 #---------------------------------------------------------------------------
 
 class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorterMixin):
@@ -53,9 +53,9 @@ class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorte
         self.attr2.SetBackgroundColour("light blue")
 
         
         self.attr2.SetBackgroundColour("light blue")
 
         
-        self.InsertColumn(0, 'forme', wx.LIST_FORMAT_RIGHT)
-        self.InsertColumn(1, 'nb', wx.LIST_FORMAT_RIGHT)
-        self.InsertColumn(2, 'type', wx.LIST_FORMAT_RIGHT)
+        self.InsertColumn(0, _(u'Form').decode('utf8'), wx.LIST_FORMAT_RIGHT)
+        self.InsertColumn(1, _(u'Freq.').decode('utf8'), wx.LIST_FORMAT_RIGHT)
+        self.InsertColumn(2, _(u'POS').decode('utf8'), wx.LIST_FORMAT_RIGHT)
         #self.InsertColumn(3, '', wx.LIST_FORMAT_RIGHT)
 
         self.SetColumnWidth(0, 150)   
         #self.InsertColumn(3, '', wx.LIST_FORMAT_RIGHT)
 
         self.SetColumnWidth(0, 150)   
@@ -71,6 +71,7 @@ class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorte
 
         self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self)
         self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self)
 
         self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self)
         self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self)
+        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED , self.OnPopupTwo, self)
         # for wxMSW
         self.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnRightClick)
 
         # for wxMSW
         self.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnRightClick)
 
@@ -159,8 +160,8 @@ class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorte
         # make a menu
         menu = wx.Menu()
         # add some items
         # make a menu
         menu = wx.Menu()
         # add some items
-        menu.Append(self.popupID1, u"Formes associĆ©es")
-        menu.Append(self.popupID2, u"Concordancier")
+        menu.Append(self.popupID1, _(u"Associated forms").decode('utf8'))
+        menu.Append(self.popupID2, _(u"Concordance").decode('utf8'))
 #        menu.Append(self.popupID3, "recharger")
 
         self.PopupMenu(menu)
 #        menu.Append(self.popupID3, "recharger")
 
         self.PopupMenu(menu)
@@ -173,29 +174,22 @@ class ListPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorte
         lems = corpus.getlems()
         rep = []
         for forme in lems[word].formes :
         lems = corpus.getlems()
         rep = []
         for forme in lems[word].formes :
-             rep.append([corpus.getforme(forme).forme, corpus.getforme(forme).freq])
+            rep.append([corpus.getforme(forme).forme, corpus.getforme(forme).freq])
         rep.sort(key = itemgetter(1), reverse = True)
         rep.sort(key = itemgetter(1), reverse = True)
-        win = message(self, u"Formes associĆ©es", (300, 200))
-        win.html = '<html>\n' + '<br>'.join([' : '.join([str(val) for val in forme]) for forme in rep]) + '\n</html>'
-        win.HtmlPage.SetPage(win.html)
+        items = dict([[i, '<font face="courier">' + '\t:\t'.join([str(val) for val in forme]) + '</font>'] for i, forme in enumerate(rep)])
+        win = message(self, items, _(u"Associated forms").decode('utf8'), (300, 200))
+        #win.html = '<html>\n' + '<br>'.join([' : '.join([str(val) for val in forme]) for forme in rep]) + '\n</html>'
+        #win.HtmlPage.SetPage(win.html)
         win.Show(True)
 
     def OnPopupTwo(self, event):
         corpus = self.gparent.corpus
         win.Show(True)
 
     def OnPopupTwo(self, event):
         corpus = self.gparent.corpus
-        win = message(self, u"Concordancier", (750, 600))
-        avap = 60
         item = self.getColumnText(self.GetFirstSelected(), 0)
         item = self.getColumnText(self.GetFirstSelected(), 0)
-        listmot = corpus.getlems()[item].formes
-        #uce_ok = [corpus.formes[corpus.idformes[forme].forme][1] for forme in listmot]
-        uce_ok = corpus.getlemuces(item)#list(set([tuple(val) for line in uce_ok for val in line]))
-        txt = '<h1>Concordancier</h1>'
-        res = corpus.getconcorde(uce_ok)
-        for uce in res :
-            ucetxt = ' '+uce[1]+' '
-            txt += ' '.join(corpus.ucis[corpus.getucefromid(uce[0]).uci].etoiles) + '<br>'
-            for forme in listmot :
-                forme = corpus.getforme(forme).forme
-                ucetxt = ucetxt.replace(' '+forme+' ', '<font color=red> ' + forme + ' </font>')
-            txt += ucetxt + '<br><br>'
-        win.HtmlPage.SetPage(txt) 
+        uce_ok = corpus.getlemuces(item)
+        ucis_txt, ucestxt = doconcorde(corpus, uce_ok, [item])
+        items = dict([[i, '<br><br>'.join([ucis_txt[i], ucestxt[i]])] for i in range(0,len(ucestxt))])
+        win = message(self, items, ' - '.join([_(u"Concordance").decode('utf8'),  "%s" % item]), (800, 500), uceids = uce_ok)
+        #win = message(self, u"Concordancier", (750, 600))
+        #win.html = ('<html>\n<h1>%s</h1>' % item) + '<br>'.join(['<br>'.join([ucis_txt[i], ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n</html>'
+        #win.HtmlPage.SetPage(win.html)
         win.Show(True)
         win.Show(True)