import wx
import wx.lib.hyperlink as hl
import wx.lib.agw.aui as aui
+import wx.lib.agw.labelbook as LB
+from wx.lib.agw.fmresources import *
from chemins import ConstructPathOut, ChdTxtPathOut, FFF, ffr, PathOut, StatTxtPathOut, simipath
from ConfigParser import ConfigParser
from functions import ReadProfileAsDico, GetTxtProfile, read_list_file, ReadList, exec_rcode, print_liste, BugReport, DoConf, indices_simi, check_Rresult, progressbar
from guifunct import SelectColumn, PrepSimi, PrefSimi
from webexport import WebExport
from corpus import Corpus
+from sheet import MySheet
import datetime
import sys
import tempfile
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)
DictProfile = ReadProfileAsDico(Profile, Alceste, self.encoding)
self.DictProfile = DictProfile
self.cluster_size = []
+ clusternames = {}
+ for i in range(0, clnb) :
+ clusternames[i] = ' '.join([u'%i' % (i + 1), _(u'Cluster').decode('utf8'), u'%i' % (i + 1)])
+ if os.path.exists(self.pathout['classes_names.txt']) :
+ with codecs.open(self.pathout['classes_names.txt'], 'r', self.parent.syscoding) as f :
+ clusternames_ = f.read()
+ clusternames_ = dict([[i, ' '.join([`i + 1`, line])] for i, line in enumerate(clusternames_.splitlines())])
+ clusternames.update(clusternames_)
#print 'lecture des antiprofils'
#DictAnti = ReadProfileAsDico(self, AntiProfile, Alceste, self.encoding)
#self.TabChdSim = wx.aui.AuiNotebook(self.parent.nb, -1, wx.DefaultPosition)
notebook_flags = aui.AUI_NB_DEFAULT_STYLE | aui.AUI_NB_TAB_EXTERNAL_MOVE | aui.AUI_NB_TAB_MOVE | aui.AUI_NB_TAB_FLOAT| wx.NO_BORDER
panel.TabChdSim = aui.AuiNotebook(panel, -1, wx.DefaultPosition)
+ #panel.TabChdSim = LB.LabelBook(panel, -1, agwStyle = INB_TOP|INB_SHOW_ONLY_TEXT|INB_FIT_LABELTEXT)
panel.TabChdSim.SetAGWWindowStyleFlag(notebook_flags)
panel.TabChdSim.SetArtProvider(aui.ChromeTabArt())
sizer1.Add(panel.TabChdSim,10, wx.EXPAND, 5)
panel.TabChdSim.AddPage(CHD,'CHD')
panel.ProfNB = aui.AuiNotebook(panel, -1, wx.DefaultPosition)
- panel.ProfNB.SetArtProvider(aui.ChromeTabArt())
+ notebook_flags |= aui.AUI_NB_WINDOWLIST_BUTTON
+ panel.ProfNB.SetAGWWindowStyleFlag(notebook_flags)
+ #panel.ProfNB.SetArtProvider(aui.ChromeTabArt())
+ #panel.ProfNB = LB.LabelBook(panel, -1, agwStyle = INB_LEFT|INB_SHOW_ONLY_TEXT|INB_FIT_LABELTEXT)
+ #panel.ProfNB = wx.Listbook(self.parent, -1, style = wx.BK_DEFAULT)
+ #panel.ProfNB = wx.Treebook(self.parent, -1, style = wx.BK_DEFAULT)
#self.ProfNB.SetTabCtrlHeight(100)
#panel.AntiProfNB = aui.AuiNotebook(panel, -1, wx.DefaultPosition)
if os.path.exists(DictPathOut['prof_seg']) :
if isinstance(self.corpus, Corpus) :
DictProfile[str(i + 1)][1:] = [val[0:5] + [getlemgram(self.corpus, val)] + val[6:] for val in DictProfile[str(i + 1)][1:]]
dlg.Update(3+i, 'Classe %i' %(i+1))
- ind = '/'.join(DictProfile[str(i + 1)][0][0:2])
- indpour = ' - '.join([ind, DictProfile[str(i + 1)][0][2]])
+ ind = '/'.join(DictProfile[str(i + 1)][0][0:2]).strip()
+ indpour = '\n'.join([ind, DictProfile[str(i + 1)][0][2]])
self.tabprofile = ProfListctrlPanel(self.parent, self.panel, DictProfile[str(i + 1)], Alceste, i + 1)
#self.tabantiprofile = ProfListctrlPanel(self.parent, self, DictAnti[str(i + 1)], Alceste, i + 1)
- panel.ProfNB.AddPage(self.tabprofile, _(u"Cluster").decode('utf8') + ' %s %s(%s%%)' % (str(i + 1), sep, indpour))
+ panel.ProfNB.AddPage(self.tabprofile, clusternames[i] + '\n%s%%' % indpour, True)
+ panel.ProfNB.SetPageTextColour(i, '#890909')
+ panel.ProfNB.SetRenamable(i, True)
#panel.AntiProfNB.AddPage(self.tabantiprofile, 'classe %s' % str(i + 1))
if os.path.exists(DictPathOut['prof_seg']) :
self.tab_prof_seg = ProfListctrlPanel(self.parent, self, prof_seg[str(i + 1)], False, i + 1)
self.prof_seg_nb.AddPage(self.tab_prof_seg, _(u"Cluster").decode('utf8') + ' %i' % (i + 1))
+ panel.ProfNB.SetSelection(0)
if clnb > 2 :
self.TabAFC = aui.AuiNotebook(panel.TabChdSim, -1, wx.DefaultPosition)
if os.path.exists(self.DictPathOut['afc_facteur']) :
dictrow, first = ReadList(self.DictPathOut['afc_facteur'], self.encoding)
- self.TabAFC_facteur = ListForSpec(self.parent, parametres, dictrow, first)
+ self.TabAFC_facteur = ListForSpec(self.parent, parametres, dictrow, first[1:])
#dictrow, first = ReadList(self.DictPathOut['afc_row'], self.encoding)
#self.TabAFC_ligne = ListForSpec(self.parent, self.parametres, dictrow, first)
#dictrow, first = ReadList(self.DictPathOut['afc_col'], self.encoding)
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):
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
- 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']) :
- 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.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.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')
+ self.ira = ira
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")
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
- 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']]
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 )
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)
+ 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']]
#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) :
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 :