Merge branch 'master' of http://www.netdig.org/git/iramuteq
[iramuteq] / openanalyse.py
index 29a0d63..ddb205b 100644 (file)
@@ -4,14 +4,15 @@
 #Copyright (c) 2008-2012, Pierre Ratinaud
 #Lisense: GNU/GPL
 
 #Copyright (c) 2008-2012, Pierre Ratinaud
 #Lisense: GNU/GPL
 
-from chemins import ChdTxtPathOut, StatTxtPathOut, construct_simipath
-from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout
+from chemins import ChdTxtPathOut, StatTxtPathOut, PathOut
+from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout, SimiMatLayout
 from corpus import Corpus, copycorpus
 from tableau import Tableau
 import os
 import shelve
 from corpus import Corpus, copycorpus
 from tableau import Tableau
 import os
 import shelve
-from tabsimi import DoSimi
+#from tabsimi import DoSimi
 from functions import BugReport, DoConf
 from functions import BugReport, DoConf
+from tableau import Tableau
 import logging
 
 log = logging.getLogger('iramuteq.openanalyse')
 import logging
 
 log = logging.getLogger('iramuteq.openanalyse')
@@ -30,7 +31,7 @@ class OpenAnalyse():
         
         if self.conf['type'] == 'corpus' :
             corpus = self.opencorpus()
         
         if self.conf['type'] == 'corpus' :
             corpus = self.opencorpus()
-        elif self.conf['corpus'] in self.parent.history.corpus :
+        elif self.conf.get('corpus', False) in self.parent.history.corpus :
             if self.conf['uuid'] in self.parent.history.analyses :
                 intree  = True
             else :
             if self.conf['uuid'] in self.parent.history.analyses :
                 intree  = True
             else :
@@ -47,6 +48,19 @@ class OpenAnalyse():
             self.doopen(corpus)
         else :
             corpus = None
             self.doopen(corpus)
         else :
             corpus = None
+            if isinstance(parametres, dict) :
+                tableau = Tableau(parent, parametres['ira'])
+            else :
+                tableau = Tableau(parent, parametres)
+            tableau.parametres = self.conf 
+            tableau.dictpathout = PathOut(filename = tableau.parametres['filename'], dirout = self.conf['pathout'], analyse_type = self.conf['type'])
+            tableau.dictpathout.basefiles(ChdTxtPathOut)
+            tableau.read_tableau(tableau.dictpathout['db'])
+            if self.parent.tree.IsInTree(uuid = self.conf['uuid']) :
+                self.parent.tree.GiveFocus(uuid = self.conf['uuid'], bold = True)
+            else :
+                self.parent.tree.AddAnalyse(self.conf, bold = True)
+            self.doopen(tableau)
         self.parent.history.addtab(self.conf)
     
     def redopath(self, conf, path) :
         self.parent.history.addtab(self.conf)
     
     def redopath(self, conf, path) :
@@ -59,10 +73,10 @@ class OpenAnalyse():
         log.info('open corpus')
         if self.conf['uuid'] not in self.parent.history.corpus :
             self.parent.history.add(self.conf) 
         log.info('open corpus')
         if self.conf['uuid'] not in self.parent.history.corpus :
             self.parent.history.add(self.conf) 
-            log.info('add to history')
+            log.info('add corpus to history')
             self.parent.tree.OnItemAppend(self.conf)
         if self.conf['uuid'] in self.parent.history.openedcorpus :
             self.parent.tree.OnItemAppend(self.conf)
         if self.conf['uuid'] in self.parent.history.openedcorpus :
-            log.info('corpus is already opened 1')
+            log.info('corpus is already opened')
             self.doopen(self.parent.history.openedcorpus[self.conf['uuid']])
         else :
             corpus = Corpus(self, parametres = self.conf, read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['uuid']]]['ira'])
             self.doopen(self.parent.history.openedcorpus[self.conf['uuid']])
         else :
             corpus = Corpus(self, parametres = self.conf, read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['uuid']]]['ira'])
@@ -88,8 +102,8 @@ class OpenAnalyse():
 
     def openanalyse(self) :
         if self.conf['corpus'] in self.parent.history.openedcorpus :
 
     def openanalyse(self) :
         if self.conf['corpus'] in self.parent.history.openedcorpus :
-            log.info('corpus is already opened 2')
-            corpus = self.parent.history.openedcorpus[self.conf['corpus']]
+            log.info('corpus is already opened')
+            corpus = copycorpus(self.parent.history.openedcorpus[self.conf['corpus']])
         else :
             if os.path.exists(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']) :
                 corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']).getoptions('corpus'), read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira'])
         else :
             if os.path.exists(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']) :
                 corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']).getoptions('corpus'), read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira'])
@@ -116,4 +130,10 @@ class OpenAnalyse():
         elif self.conf['type'] == 'wordcloud' :
             self.parent.ShowMenu(_("Text analysis"))
             WordCloudLayout(self.parent, corpus, self.conf)
         elif self.conf['type'] == 'wordcloud' :
             self.parent.ShowMenu(_("Text analysis"))
             WordCloudLayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'gnepamatrix' :
+            #self.parent.ShowMenu(_("Spreadsheet analysis"))
+            OpenCHDS(self.parent,  corpus, self.conf, Alceste = False)
+        elif self.conf['type'] == 'simimatrix' :
+            #self.parent.ShowMenu(_("Spreadsheet analysis"))
+            SimiMatLayout(self.parent, corpus, self.conf)