matrix
[iramuteq] / layout.py
index 96aaaf6..2c3f41c 100644 (file)
--- a/layout.py
+++ b/layout.py
@@ -23,6 +23,7 @@ from dialog import PrefGraph, PrefExport, PrefSimpleFile, PrefDendro, SimpleDial
 from guifunct import SelectColumn, PrepSimi, PrefSimi
 from webexport import WebExport
 from corpus import Corpus
 from guifunct import SelectColumn, PrepSimi, PrefSimi
 from webexport import WebExport
 from corpus import Corpus
+from sheet import MySheet
 import datetime
 import sys
 import tempfile
 import datetime
 import sys
 import tempfile
@@ -361,7 +362,9 @@ class OpenCHDS():
             self.corpus.make_ucecl_from_R(self.pathout['uce'])
             corpname = self.corpus.parametres['corpus_name']
         else :
             self.corpus.make_ucecl_from_R(self.pathout['uce'])
             corpname = self.corpus.parametres['corpus_name']
         else :
-            corpname = self.corpus.parametres['name']
+            corpname = self.corpus.parametres['matrix_name']
+            if os.path.exists(self.pathout['analyse.db']) :
+                self.corpus.read_tableau(self.pathout['analyse.db'])
 
         clnb = parametres['clnb']
         dlg = progressbar(self, maxi = 4 + clnb) 
 
         clnb = parametres['clnb']
         dlg = progressbar(self, maxi = 4 + clnb) 
@@ -629,7 +632,27 @@ class SashList(wx.Panel) :
         self.rightwin1 = rightwin1
         winids.append(rightwin1.GetId())
 
         self.rightwin1 = rightwin1
         winids.append(rightwin1.GetId())
 
-
+class TgenLayout :
+    def __init__(self, page):
+        self.page = page
+        parametres = self.page.parametres
+        ira = wx.GetApp().GetTopWindow()
+        self.page.tgens, etoiles =  ReadList(parametres['tgenspec'], ira.syscoding, sep="\t")
+        tgentab = False
+        for i in range(page.GetPageCount()) :
+            tab = page.GetPage(i)
+            if 'tgen' in dir(tab) :
+                if tab.tgen :
+                    tgentab = tab
+                    break
+        if tgentab :
+            self.page.tgentab.RefreshData(self.page.tgens)
+            self.page.SetSelection(i)
+        else :
+            self.page.tgentab = ListForSpec(ira, None, self.page.tgens, etoiles[1:])
+            self.page.tgentab.tgen = True
+            self.page.AddPage(self.page.tgentab, u'Tgens Specificities')
+            self.page.SetSelection(self.page.GetPageCount() - 1)
 
 class dolexlayout :
     def __init__(self, ira, corpus, parametres):
 
 class dolexlayout :
     def __init__(self, ira, corpus, parametres):
@@ -649,21 +672,21 @@ class dolexlayout :
         self.DictEffType, firstefft = ReadList(self.dictpathout['tabletypem'], self.corpus.parametres['syscoding'])
         self.DictEffRelForme, firsteffrelf = ReadList(self.dictpathout['eff_relatif_forme'], self.corpus.parametres['syscoding']) 
         self.DictEffRelType, firsteffrelt = ReadList(self.dictpathout['eff_relatif_type'], self.corpus.parametres['syscoding'])    
         self.DictEffType, firstefft = ReadList(self.dictpathout['tabletypem'], self.corpus.parametres['syscoding'])
         self.DictEffRelForme, firsteffrelf = ReadList(self.dictpathout['eff_relatif_forme'], self.corpus.parametres['syscoding']) 
         self.DictEffRelType, firsteffrelt = ReadList(self.dictpathout['eff_relatif_type'], self.corpus.parametres['syscoding'])    
-        
+        self.etoiles = firsteff[1:]
         #sash = SashList(ira.nb)
         
         
         self.TabStat = aui.AuiNotebook(ira.nb, -1, wx.DefaultPosition)
         self.TabStat.parametres = parametres
         #sash = SashList(ira.nb)
         
         
         self.TabStat = aui.AuiNotebook(ira.nb, -1, wx.DefaultPosition)
         self.TabStat.parametres = parametres
-        self.ListPan = ListForSpec(ira, self, self.DictSpec, first)
+        self.ListPan = ListForSpec(ira, self, self.DictSpec, self.etoiles)
         if os.path.exists(self.pathout['banalites.csv']) :
         if os.path.exists(self.pathout['banalites.csv']) :
-            self.listban = ListForSpec(ira, self, self.dictban, firstban)
+            self.listban = ListForSpec(ira, self, self.dictban, ['eff'] + self.etoiles)
         #self.ListPan2 = ListForSpec(sash.rightwin1, self, self.DictSpec, first)
         #self.ListPan2 = ListForSpec(sash.rightwin1, self, self.DictSpec, first)
-        self.ListPant = ListForSpec(ira, self, self.DictType, firstt)
-        self.ListPanEff = ListForSpec(ira, self, self.DictEff, firsteff)
-        self.ListPanEffType = ListForSpec(ira, self, self.DictEffType, firstefft)
-        self.ListPanEffRelForme = ListForSpec(ira, self, self.DictEffRelForme, firsteffrelf)
-        self.ListPanEffRelType = ListForSpec(ira, self.parent, self.DictEffRelType, firsteffrelt)
+        self.ListPant = ListForSpec(ira, self, self.DictType, self.etoiles)
+        self.ListPanEff = ListForSpec(ira, self, self.DictEff, self.etoiles)
+        self.ListPanEffType = ListForSpec(ira, self, self.DictEffType, self.etoiles)
+        self.ListPanEffRelForme = ListForSpec(ira, self, self.DictEffRelForme, self.etoiles)
+        self.ListPanEffRelType = ListForSpec(ira, self.parent, self.DictEffRelType, self.etoiles)
         
         self.TabStat.AddPage(self.ListPan, u'formes') 
         if os.path.exists(self.pathout['banalites.csv']) :
         
         self.TabStat.AddPage(self.ListPan, u'formes') 
         if os.path.exists(self.pathout['banalites.csv']) :
@@ -682,11 +705,20 @@ class dolexlayout :
             self.tabAFCTGraph = GraphPanelAfc(self.TabAFC, self.dictpathout, list_graph, self.parametres['clnb'], itempath ='liste_graph_afct', coding=self.encoding)
             self.TabAFC.AddPage(self.tabAFCTGraph, 'AFC type')
             self.TabStat.AddPage(self.TabAFC, 'AFC')
             self.tabAFCTGraph = GraphPanelAfc(self.TabAFC, self.dictpathout, list_graph, self.parametres['clnb'], itempath ='liste_graph_afct', coding=self.encoding)
             self.TabAFC.AddPage(self.tabAFCTGraph, 'AFC type')
             self.TabStat.AddPage(self.TabAFC, 'AFC')
+        
+        
+        
            
         
         ira.nb.AddPage(self.TabStat, u'Spécificités')
            
         
         ira.nb.AddPage(self.TabStat, u'Spécificités')
+        self.ira = ira
         
         self.TabStat.corpus = self.corpus
         
         self.TabStat.corpus = self.corpus
+        self.TabStat.etoiles = self.etoiles
+        if os.path.exists(os.path.join(self.parametres['pathout'], 'tgenspec.csv')) :
+            self.parametres['tgenspec'] = os.path.join(self.parametres['pathout'], 'tgenspec.csv')
+            TgenLayout(self.TabStat)
+        self.TabStat.SetSelection(0)
         ira.nb.SetSelection(self.parent.nb.GetPageCount() - 1)
         ira.ShowAPane("Tab_content")
 
         ira.nb.SetSelection(self.parent.nb.GetPageCount() - 1)
         ira.ShowAPane("Tab_content")
 
@@ -798,9 +830,9 @@ class GraphPanelDendro(wx.Panel):
         self.param['type_tclasse'] = dial.m_radioBox2.GetSelection()
 
     def make_dendro(self, dendro = 'simple') :
         self.param['type_tclasse'] = dial.m_radioBox2.GetSelection()
 
     def make_dendro(self, dendro = 'simple') :
-        while os.path.exists(os.path.join(self.dirout, 'dendrogamme_' + str(self.graphnb)+'.png')) :
+        while os.path.exists(os.path.join(self.dirout, 'dendrogramme_' + str(self.graphnb)+'.png')) :
             self.graphnb += 1
             self.graphnb += 1
-        fileout = ffr(os.path.join(self.dirout,'dendrogamme_' + str(self.graphnb)+'.png'))
+        fileout = ffr(os.path.join(self.dirout,'dendrogramme_' + str(self.graphnb)+'.png'))
         width = self.param['width']
         height = self.param['height']
         type_dendro = self.type_dendro[self.param['type_dendro']]
         width = self.param['width']
         height = self.param['height']
         type_dendro = self.type_dendro[self.param['type_dendro']]
@@ -892,6 +924,25 @@ class OpenCorpus :
         ira.nb.SetSelection(ira.nb.GetPageCount() - 1)
         ira.ShowAPane("Tab_content")
 
         ira.nb.SetSelection(ira.nb.GetPageCount() - 1)
         ira.ShowAPane("Tab_content")
 
+class MatLayout :
+    def __init__(self, ira, matrix):
+        #self.parent.content = self.csvtable
+        self.sheet = MySheet(ira.nb)
+        ira.nb.AddPage(self.sheet, matrix.parametres['matrix_name'])
+        self.sheet.Populate(matrix.csvtable)
+        self.sheet.parametres = matrix.parametres
+        #self.ira.ShowMenu(_(u"View").decode('utf8'))
+        #self.ira.ShowMenu(_(u"Matrix analysis").decode('utf8'))
+        #self.ira.ShowMenu(_(u"Text analysis").decode('utf8'), False)
+        #self.parent.type = "Data"
+        #self.parent.DataPop = False
+        ira.nb.SetSelection(ira.nb.GetPageCount() - 1)
+        ira.ShowAPane("Tab_content")
+        #self.ira.OnViewData('')
+
+      
+        
+
 class CopusPanel(wx.Panel) :
     def __init__(self, parent, parametres) :
         wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.TAB_TRAVERSAL )
 class CopusPanel(wx.Panel) :
     def __init__(self, parent, parametres) :
         wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.TAB_TRAVERSAL )
@@ -1119,11 +1170,37 @@ class DefaultMatLayout :
         self.parent = parent
         self.tableau = tableau
         self.parametres = parametres
         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.dolayout()
+        self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+        self.ira.ShowAPane("Tab_content")
 
     def dolayout(self) :
         pass
 
 
     def dolayout(self) :
         pass
 
+class FreqLayout(DefaultMatLayout) :
+    def dolayout(self) :
+        self.tab = wx.html.HtmlWindow(self.ira.nb, -1)
+        if "gtk2" in wx.PlatformInfo:
+            self.tab.SetStandardFonts()
+        self.tab.LoadPage(self.pathout['resultats.html'])
+        self.tab.parametres = self.parametres
+        self.ira.nb.AddPage(self.tab, u"Fréquences")
+
+
+class Chi2Layout(DefaultMatLayout) :
+    def dolayout(self):
+        self.tab = wx.html.HtmlWindow(self.ira.nb, -1)
+        if "gtk2" in wx.PlatformInfo:
+            self.tab.SetStandardFonts()
+        self.tab.LoadPage(self.pathout['resultats-chi2.html'])
+        self.tab.parametres = self.parametres
+        self.ira.nb.AddPage(self.tab, ' - '.join([u"Chi2", "%s" % 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', 'Analyse prototypique']]
 class ProtoLayout(DefaultMatLayout) :
     def dolayout(self) :
         list_graph = [['proto.png', 'Analyse prototypique']]
@@ -1137,8 +1214,8 @@ class ProtoLayout(DefaultMatLayout) :
         #self.Tab.corpus = self.corpus
         self.TabProto.parametres = self.parametres
         self.ira.nb.AddPage(self.TabProto, 'Analyse Prototypique - %s' % self.parametres['name'])
         #self.Tab.corpus = self.corpus
         self.TabProto.parametres = self.parametres
         self.ira.nb.AddPage(self.TabProto, 'Analyse Prototypique - %s' % self.parametres['name'])
-        self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
-        self.ira.ShowAPane("Tab_content")
+        #self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+        #self.ira.ShowAPane("Tab_content")
 
 
 class SimiMatLayout(DefaultMatLayout) :
 
 
 class SimiMatLayout(DefaultMatLayout) :
@@ -1159,8 +1236,8 @@ class SimiMatLayout(DefaultMatLayout) :
         self.tabsimi.AddPage(self.graphpan, 'Graph')
         self.tabsimi.parametres = self.parametres
         self.parent.nb.AddPage(self.tabsimi, 'Analyse de graph')
         self.tabsimi.AddPage(self.graphpan, 'Graph')
         self.tabsimi.parametres = self.parametres
         self.parent.nb.AddPage(self.tabsimi, 'Analyse de graph')
-        self.parent.ShowTab(True)
-        self.parent.nb.SetSelection(self.parent.nb.GetPageCount() - 1)
+        #self.parent.ShowTab(True)
+        #self.parent.nb.SetSelection(self.parent.nb.GetPageCount() - 1)
 
     def redosimi(self,evt) :
         with open(self.pathout['selected.csv'],'r') as f :
 
     def redosimi(self,evt) :
         with open(self.pathout['selected.csv'],'r') as f :