+ else :
+ list_graph = [['','']]
+ if not self.cmd :
+ notebook_flags = aui.AUI_NB_DEFAULT_STYLE | aui.AUI_NB_TAB_EXTERNAL_MOVE | aui.AUI_NB_TAB_MOVE | aui.AUI_NB_TAB_FLOAT
+ self.tabsimi = aui.AuiNotebook(self.ira.nb, -1, wx.DefaultPosition)
+ self.tabsimi.SetAGWWindowStyleFlag(notebook_flags)
+ self.tabsimi.SetArtProvider(aui.ChromeTabArt())
+ self.tabsimi.corpus = self.corpus
+ self.tabsimi.parametres = self.parametres
+ self.graphpan = GraphPanelSimi(self.tabsimi, self.pathout, list_graph)
+ self.graphpan.Bind(wx.EVT_BUTTON, self.redosimi, self.graphpan.butafc)
+ self.graphpan.Bind(wx.EVT_BUTTON, self.export, self.graphpan.butexport)
+ self.graphpan.Bind(wx.EVT_BUTTON, self.blender, self.graphpan.butblender)
+ self.tabsimi.AddPage(self.graphpan, _('Graph'))
+ self.ira.nb.AddPage(self.tabsimi, _('Graph analysis'))
+ self.ira.ShowTab(True)
+ self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+
+ def redosimi(self, evt) :
+ redosimi(self, evt)
+ # with open(self.pathout['selected.csv'],'r') as f :
+ # selected = f.read()
+ # selected = [int(val) for val in selected.splitlines()]
+ # if self.actives is None :
+ # with codecs.open(self.pathout['actives.csv'], 'r', self.parametres['encoding']) as f :
+ # self.actives = f.read()
+ # self.actives = self.actives.splitlines()#[act for act in self.actives.splitlines()]
+ # if os.path.exists(self.pathout['actives_nb.csv']) :
+ # with open(self.pathout['actives_nb.csv'], 'r') as f :
+ # act_nb = f.read()
+ # act_nb = act_nb.splitlines()
+ # dictcol = dict([[i, [self.actives[i], int(act_nb[i])]] for i, val in enumerate(self.actives)])
+ # else :
+ # dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)])
+ # #res = SelectColumn(self.ira, dictcol, self.actives, self.pathout['selected.csv'], selected = selected, dlg = True)
+ # #if res.ok :
+ # prep = PrepSimi(self.ira, self, self.parametres,self.pathout['selected.csv'], self.actives, indices_simi, wordlist = dictcol, selected = selected)
+ # if prep.val == wx.ID_OK :
+ # self.parametres = prep.parametres
+ # script = PrintSimiScript(self)
+ # script.make_script()
+ # pid = exec_rcode(self.ira.RPath, script.scriptout, wait = True)
+ # check_Rresult(self.ira, pid)
+ # if self.parametres['type_graph'] in [1,3] :
+ # if self.parametres['svg'] :
+ # filename, ext = os.path.splitext(script.filename)
+ # fileout = filename + '.svg'
+ # elif self.parametres['type_graph'] == 3 :
+ # fileout = script.filename
+ # parametres = {'gexffile' : fileout,
+ # 'dirout' : os.path.dirname(fileout),
+ # 'titre': 'Le titre',
+ # #'nodemin': self.param['txt_min'],
+ # #'nodemax': self.param['txt_max'],
+ # #'bargraphw' : 60*int(self.param['clnb']),
+ # }
+ # web = WebExport(self.ira, parametres)
+ # fileout = web.exportsimi()
+ # else :
+ # fileout = script.filename
+ # if os.path.exists(self.pathout['liste_graph']):
+ # graph_simi = read_list_file(self.pathout['liste_graph'])
+ # graph_simi.append([os.path.basename(fileout), script.txtgraph])
+ # else :
+ # graph_simi = [[os.path.basename(fileout), script.txtgraph]]
+ # print_liste(self.pathout['liste_graph'], graph_simi)
+ # DoConf().makeoptions([self.parametres['type']], [self.parametres], self.pathout['Analyse.ira'])
+ # if self.parametres['type_graph'] in [1,3] :
+ # if self.parametres['svg'] or self.parametres['type_graph'] == 3 :
+ # self.graphpan.sizer_3.Add(hl.HyperLinkCtrl(self.graphpan.panel_1, -1, fileout, URL = fileout), 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
+ # else :
+ # self.graphpan.sizer_3.Add(wx.StaticBitmap(self.graphpan.panel_1, -1, wx.Bitmap(fileout, wx.BITMAP_TYPE_ANY)), 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
+ # self.graphpan.sizer_3.Add(wx.StaticText(self.graphpan.panel_1,-1, script.txtgraph), 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
+ # self.graphpan.sizer_3.Fit(self.graphpan.panel_1)
+ # self.graphpan.Layout()
+ # self.graphpan.panel_1.Scroll(0,self.graphpan.panel_1.GetScrollRange(wx.VERTICAL))
+
+ def export(self, evt) :
+ nb = 1
+ while os.path.exists(os.path.join(self.pathout.dirout,'graph_'+str(nb)+'.graphml')):
+ nb +=1
+ fileout = ffr(os.path.join(self.pathout.dirout,'graph_'+str(nb)+'.graphml'))
+ txt = """
+ library(igraph)
+ load("%s")
+ source("%s")
+ fileout <- "%s"
+ graph <- graph.simi$graph
+ V(graph)$x <- graph.simi$layout[,1]
+ V(graph)$y <- graph.simi$layout[,2]
+ if (length(graph.simi$label.cex == 1)) {
+ V(graph)$weight <- graph.simi$eff
+ } else {
+ V(graph)$weight <- graph.simi$label.cex
+ }
+ V(graph)$rcolor <- vertex.label.color
+ V(graph)$frequences <- graph.simi$mat.eff
+ V(graph)$label <- as.character(graph.simi$v.label)
+ E(graph)$weight <- graph.simi$we.width
+ write.graph(graph, fileout, format = 'graphml')
+ #saveAsGEXF(graph, filepath = fileout)
+ """ % (ffr(self.pathout['RData.RData']), ffr(self.parent.RscriptsPath['simi']), fileout)
+ filetmp = tempfile.mktemp()
+ with open(filetmp, 'w', encoding='utf8') as f :
+ f.write(txt)
+ exec_rcode(self.ira.RPath, filetmp)
+ mss = wx.MessageDialog(self.ira, fileout, _('File exported'), wx.OK)
+ mss.CenterOnParent()
+ mss.ShowModal()
+ mss.Destroy()
+
+ def blender(self, evt):
+ blender(self)
+
+
+class DefaultMatLayout :
+
+ def __init__(self, parent, tableau, parametres) :
+ self.pathout = PathOut(dirout = parametres['pathout'])
+ self.ira = parent
+ self.parent = parent
+ self.tableau = tableau
+ self.parametres = parametres
+ if os.path.exists(self.pathout['analyse.db']) :
+ self.tableau.read_tableau(self.pathout['analyse.db'])
+ self.dolayout()
+ self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+ self.ira.ShowAPane("Tab_content")
+
+ def dolayout(self) :
+ pass
+
+
+class FreqLayout(DefaultMatLayout) :
+
+ def dolayout(self) :
+ self.tab = wx.html.HtmlWindow(self.ira.nb, -1)
+ #self.tab = wx.html2.WebView.New(self)
+ res = normpath_win32(self.pathout['resultats.html']).replace('\\','/')
+ self.tab.LoadPage(res)
+ #self.tab.LoadURL(res)
+ self.tab.parametres = self.parametres
+ self.ira.nb.AddPage(self.tab, ' - '.join([_("Frequency"), self.parametres['name']]))
+
+
+class Chi2Layout(DefaultMatLayout) :
+
+ def dolayout(self):
+ self.tab = wx.html.HtmlWindow(self.ira.nb, -1)
+ if "gtk2" in wx.PlatformInfo:
+ self.tab.SetStandardFonts()
+ res = normpath_win32(self.pathout['resultats-chi2.html']).replace('\\','/')
+ self.tab.LoadPage(res)
+ self.tab.parametres = self.parametres
+ self.ira.nb.AddPage(self.tab, ' - '.join(["Chi2", self.parametres['name']]))
+ #self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+ #self.ira.ShowAPane("Tab_content")
+
+
+class ProtoLayout(DefaultMatLayout) :
+
+ def dolayout(self) :
+ list_graph = [['proto.png', _('Prototypical analysis')]]
+ #self.Tab = aui.AuiNotebook(self.ira.nb, -1, wx.DefaultPosition)
+ #if self.parametres['svg'] :
+ # list_graph = [['nuage_1.svg', 'Nuage']]
+ #else :
+ # list_graph = [['nuage_1.png', 'Nuage']]
+ self.TabProto = GraphPanel(self.ira.nb, self.pathout, list_graph)
+ #self.Tab.AddPage(self.TabProto, 'Analyse Prototypique')
+ #self.Tab.corpus = self.corpus
+ self.TabProto.parametres = self.parametres
+ self.ira.nb.AddPage(self.TabProto, ' - '.join([_('Prototypical analysis'), self.parametres['name']]))
+ #self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+ #self.ira.ShowAPane("Tab_content")
+
+
+class SimiMatLayout(DefaultMatLayout) :
+
+ def dolayout(self):
+ self.pathout.basefiles(simipath)
+ self.indices = indices_simi
+ if os.path.exists(self.pathout['liste_graph']) :
+ list_graph = read_list_file(self.pathout['liste_graph'])
+ else :