X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=ProfList.py;h=909789776a7d8fc5633b390c8da92c98749739f6;hp=73f8ff721d52dc124cffd9a236a755dff6ebc33c;hb=25061ca972d5be7a8ef3aa42276accc3761a3364;hpb=a503f041dc4947ee21c1d353ddd05ddb13a5e322 diff --git a/ProfList.py b/ProfList.py index 73f8ff7..9097897 100644 --- a/ProfList.py +++ b/ProfList.py @@ -20,7 +20,7 @@ import wx.lib.mixins.listctrl as listmix from tabsimi import DoSimi from listlex import ListForSpec from chemins import ConstructPathOut, ffr -from dialog import PrefExport, PrefUCECarac, SearchDial +from dialog import PrefExport, PrefUCECarac, SearchDial, message from tableau import Tableau from search_tools import SearchFrame import webbrowser @@ -41,6 +41,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col self.Alceste = Alceste self.Source = gparent self.cl = cl + self.var_mod = {} line1 = profclasse.pop(0) classen = [line for line in profclasse if line[0] != '*' and line[0] != '*****'] @@ -56,7 +57,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col except ValueError: self.lensup = 0 self.lenet = len(profclasse) - (self.lenact + self.lensup) - print self.lenact, self.lensup, self.lenet +# print self.lenact, self.lensup, self.lenet for i, line in enumerate(classen) : line[0] = i dictdata = dict(zip([i for i in range(0,len(classen))], classen)) @@ -153,7 +154,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def OnItemSelected(self, event): self.currentItem = event.m_itemIndex - print 'OnItemSelected: "%s", "%s", "%s", "%s"\n' % (self.currentItem, self.GetItemText(self.currentItem), self.getColumnText(self.currentItem, 1), self.getColumnText(self.currentItem, 2)) + #print 'OnItemSelected: "%s", "%s", "%s", "%s"\n' % (self.currentItem, self.GetItemText(self.currentItem), self.getColumnText(self.currentItem, 1), self.getColumnText(self.currentItem, 2)) #self.log.WriteText('OnItemSelected: "%s", "%s", "%s", "%s"\n' % # (self.currentItem, # self.GetItemText(self.currentItem), @@ -162,7 +163,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def OnItemActivated(self, event): self.currentItem = event.m_itemIndex - print "OnItemActivated: %s\nTopItem: %s\n" % (self.GetItemText(self.currentItem), self.GetTopItem()) + #print "OnItemActivated: %s\nTopItem: %s\n" % (self.GetItemText(self.currentItem), self.GetTopItem()) #self.log.WriteText("OnItemActivated: %s\nTopItem: %s\n" % # (self.GetItemText(self.currentItem), self.GetTopItem())) @@ -367,11 +368,19 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col corpus = self.Source.corpus ClasseCHD(self.parent, corpus, self.cl) + def getselectedwords(self) : + words = [self.getColumnText(self.GetFirstSelected(), 6)] + last = self.GetFirstSelected() + while self.GetNextSelected(last) != -1: + last = self.GetNextSelected(last) + words.append(self.getColumnText(last, 6)) + return words + def quest_var_mod(self, evt) : if 'corpus' in dir(self.Source): corpus = self.Source.corpus if self.var_mod == {} : - self.var_mod = treat_var_mod([val for val in corpus.make_etoiles()]) + self.var_mod = self.Source.corpus.make_etoiles_dict() else : corpus = self.Source.tableau if self.var_mod == {} : @@ -383,10 +392,10 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col chistable.pop(0) vchistable = [line[1:] for line in chistable] fchistable = [line[0] for line in chistable] - word = self.getColumnText(self.GetFirstSelected(), 6) + word = self.getselectedwords()[0] if len(word.split('_')) > 1 : - var = word.split('_')[0] - words = [word for word in self.var_mod[var]] + var = word.split('_') + words = ['_'.join([var[0],word]) for word in self.var_mod[var[0]]] words.sort() tableout = [] kwords = [] @@ -401,7 +410,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col file.write(txt) file.close() exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + win = MessageImage(self,u"Graphique", size=(700, 500)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -632,7 +641,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col #ucestxt = [corpus.make_concord(self.la, ' '.join(uce), 'red') for uce in ucestxt] dlg.Update(4, u'texte...') #ucis_txt = [' '.join(corpus.ucis[val[1][0]][0]) for val in ntab2] - win = message(self, -1, u"UCE caractéristiques - Classe %i" % self.cl, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) + win = message(self, u"UCE caractéristiques - Classe %i" % self.cl, (750, 600)) win.html = '\n' + '

'.join(['
'.join([ucis_txt[i], 'score : ' + str(ntab2[i][0]), ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n' win.HtmlPage.SetPage(win.html) dlg.Destroy() @@ -650,24 +659,23 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col chistable.pop(0) vchistable = [line[1:] for line in chistable] fchistable = [line[0] for line in chistable] - words = [self.getColumnText(self.GetFirstSelected(), 6)] - tableout = [vchistable[fchistable.index(words[0])]] - last = self.GetFirstSelected() - while self.GetNextSelected(last) != -1: - last = self.GetNextSelected(last) - word = self.getColumnText(last, 6) - words.append(word) - tableout.append(vchistable[fchistable.index(word)]) + words = self.getselectedwords() + tableout = [vchistable[fchistable.index(word)] for word in words] tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) nbcl = len(title) + nbwords = len(words) txt = barplot(tableout, words, title, self.Source.parent.RscriptsPath['Rgraph'], tmpgraph) tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) file = open(tmpscript,'w') file.write(txt) file.close() - exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + w = 100 + (20 * nbwords) + (100 * nbcl) + h = 100 + (nbwords * 15) + if w > 1100 : w = 1100 + if h > 800 : h = 800 + if h < 450 : h = 450 + win = MessageImage(self, u"Graphique", size=(w, h)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -685,14 +693,8 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col chistable.pop(0) vchistable = [line[1:] for line in chistable] fchistable = [line[0] for line in chistable] - words = [self.getColumnText(self.GetFirstSelected(), 6)] - tableout = [vchistable[fchistable.index(words[0])]] - last = self.GetFirstSelected() - while self.GetNextSelected(last) != -1: - last = self.GetNextSelected(last) - word = self.getColumnText(last, 6) - words.append(word) - tableout.append(vchistable[fchistable.index(word)]) + words = self.getselectedwords() + tableout = [vchistable[fchistable.index(word)] for word in words] tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) txttable = 'c(' + ','.join([','.join(line) for line in tableout]) + ')' rownames = 'c("' + '","'.join(words) + '")' @@ -717,7 +719,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col file.write(txt) file.close() exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + win = MessageImage(self, u"Graphique", size=(700, 500)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -732,7 +734,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col last = self.GetNextSelected(last) ListWord.append(self.getColumnText(last, 6)) listmot = [forme for item in ListWord for forme in corpus.getlems()[item].formes] - win = message(self, -1, title, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) + win = message(self, title, size=(750, 600)) toshow = ['\n

Concordancier

\n'] toshow.append('

' % color + ' '.join(ListWord) + '


') duce = {} @@ -1268,7 +1270,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col if ucef != [] : nb = len(ucef) rep.append([corpus.getforme(forme).forme, nb]) - win = message(self, -1, u"Formes associées", size=(300, 200), style=wx.DEFAULT_FRAME_STYLE) + win = message(self, u"Formes associées", wx.Size(300, 200)) win.html = '\n' + '
'.join([' : '.join([str(val) for val in forme]) for forme in rep]) + '\n' win.HtmlPage.SetPage(win.html) win.Show(True) @@ -1591,81 +1593,55 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col # def OnCloseWindow(self, event): # self.Destroy() # -class message(wx.Frame): - def __init__(self, *args, **kwds): - kwds["style"] = wx.DEFAULT_FRAME_STYLE - wx.Frame.__init__(self, *args, **kwds) - self.html = "" - self.HtmlPage=wx.html.HtmlWindow(self, -1) - if "gtk2" in wx.PlatformInfo: - self.HtmlPage.SetStandardFonts() - self.HtmlPage.SetFonts('Courier','Courier') - self.button_1 = wx.Button(self, -1, "Fermer") - self.button_2 = wx.Button(self, -1, u"Enregistrer...") - - self.Bind(wx.EVT_BUTTON, self.OnSavePage, self.button_2) - self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button_1) - self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) - self.__do_layout() - - def __do_layout(self): - sizer_1 = wx.BoxSizer(wx.VERTICAL) - sizer_2 = wx.BoxSizer(wx.VERTICAL) - sizer_2.Add(self.HtmlPage, 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0) - sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0) - sizer_2.Add(self.button_2, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0) - sizer_1.Add(sizer_2, 1, wx.EXPAND, 0) - self.SetAutoLayout(True) - self.SetSizer(sizer_1) - self.Layout() - - def OnSavePage(self, evt) : - dlg = wx.FileDialog( - self, message="Enregistrer sous...", defaultDir=os.getcwd(), - defaultFile="concordancier.html", wildcard="html|*.html", style=wx.SAVE | wx.OVERWRITE_PROMPT - ) - dlg.SetFilterIndex(2) - dlg.CenterOnParent() - if dlg.ShowModal() == wx.ID_OK: - path = dlg.GetPath() - with open(path, 'w') as f : - f.write(self.html) - - def OnCloseMe(self, event): - self.Close(True) - - def OnCloseWindow(self, event): - self.Destroy() +#class message(wx.Dialog): +# def __init__(self, parent, title, size, save = True): +# wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = title, pos = wx.DefaultPosition, size = size, style = wx.DEFAULT_DIALOG_STYLE ) +# self.save = save +# self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) # -#def getSmallUpArrowData(): -# return \ -#'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ -#\x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ -#\x00\x00C\xb0\x89\ -#\xd3.\x10\xd1m\xc3\xe5*\xbc.\x80i\xc2\x17.\x8c\xa3y\x81\x01\x00\xa1\x0e\x04e\ -#?\x84B\xef\x00\x00\x00\x00IEND\xaeB`\x82" +# def __do_layout(self): +# sizer_2 = wx.BoxSizer(wx.VERTICAL) +# sizer_2.Add(self.HtmlPage, 0, wx.EXPAND|wx.ADJUST_MINSIZE, 0) +# m_sdbSizer1 = wx.StdDialogButtonSizer() +# m_sdbSizer1.AddButton( self.button_1 ) +# if self.save : +# m_sdbSizer1.AddButton( self.button_2 ) +# m_sdbSizer1.Realize() +# sizer_2.Add(m_sdbSizer1, 1, wx.EXPAND, 5) +# self.SetSizer(sizer_2) +# self.Layout() +# sizer_2.Fit( self ) # -#def getSmallDnArrowBitmap(): -# return wx.BitmapFromImage(getSmallDnArrowImage()) +# def OnSavePage(self, evt) : +# dlg = wx.FileDialog( +# self, message="Enregistrer sous...", defaultDir=os.getcwd(), +# defaultFile="concordancier.html", wildcard="html|*.html", style=wx.SAVE | wx.OVERWRITE_PROMPT +# ) +# dlg.SetFilterIndex(2) +# dlg.CenterOnParent() +# if dlg.ShowModal() == wx.ID_OK: +# path = dlg.GetPath() +# with open(path, 'w') as f : +# f.write(self.html) # -#def getSmallDnArrowImage(): -# stream = cStringIO.StringIO(getSmallDnArrowData()) -# return wx.ImageFromStream(stream) +# def OnCloseMe(self, event): +# self.Close(True) +# +# def OnCloseWindow(self, event): +# self.Destroy()