X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=iramuteq.py;h=706082058fd8d239dce8dcc2cb6e5a7d368732bb;hp=e5d145bbaa1b733778e8132d8778f0eda80b67d6;hb=3f163578604e3bfd31697d516ea2a5082866b2d5;hpb=b97b227a7f3f45bf2258f12853e4de9d7aa39f96 diff --git a/iramuteq.py b/iramuteq.py index e5d145b..7060820 100644 --- a/iramuteq.py +++ b/iramuteq.py @@ -29,7 +29,7 @@ import wx.html import wx.grid import wx.lib.hyperlink as hl #------------------------------------ -from functions import BugReport, PlaySound, History +from functions import BugReport, PlaySound, History, progressbar from checkversion import NewVersion from guifunct import * from tableau import Tableau @@ -96,6 +96,7 @@ ID_ImportEuro = wx.NewId() ID_Fact_xml = wx.NewId() ID_Fact_mail = wx.NewId() ID_Fact_copy = wx.NewId() +ID_exportmeta = wx.NewId() ########################################################## #elements de configuration ########################################################## @@ -192,7 +193,8 @@ images_analyses = { 'iramuteq' : 'iraicone.png', 'subcorpusmeta' : 'subcorpusmeta.png', 'subcorpusthema' : 'subcorpusthema.png', - 'preferences' : 'preferences.png' + 'preferences' : 'preferences.png', + 'exportmetatable' : 'exportmetatable.png', } ##################################################################### @@ -311,13 +313,14 @@ class IraFrame(wx.Frame): #view_menu.AppendSeparator() matrix_menu = wx.Menu() matanalyses = [[ID_Freq, _(u"Frequencies").decode('utf8'), 'freq'], - [ID_Freq, _(u"Multiple Frequencies").decode('utf8'), 'freqmulti'], + [ID_FreqMulti, _(u"Multiple Frequencies").decode('utf8'), 'freqmulti'], [ID_Chi2, _(u"Chi2").decode('utf8'), 'chi2'], {'name' : _(u"Clustering").decode('utf8'), 'content' : [[ID_CHDReinert, _(u"Reinert's Method").decode('utf8'), 'reinertmatrix']]}, [ID_SIMI, _(u"Similarities Analysis").decode('utf8'), 'simimatrix'], [ID_proto, _(u"Prototypical Analysis").decode('utf8'), 'proto'], - [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta']] + [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta'], + ] for analyse in matanalyses : if not isinstance(analyse, dict) : @@ -367,6 +370,7 @@ class IraFrame(wx.Frame): {'name' : _(u"Sub corpus").decode('utf8'), 'content' : [[ID_Subtxtfrommeta, _(u'Sub corpus from metadata').decode('utf8'), 'subcorpusmeta'], [ID_Subtxtfromthem, _(u'Sub corpus from thematic').decode('utf8'), 'subcorpusthema']]}, + [ID_exportmeta, _(u"Export metadata table").decode('utf8'), 'exportmetatable'], ] for analyse in analyses_text : @@ -589,6 +593,7 @@ class IraFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.OnPref, id=wx.ID_PREFERENCES) self.Bind(wx.EVT_MENU, self.OnImportTXM, id=ID_ImportTXM) self.Bind(wx.EVT_MENU, self.OnImportEuropress, id=ID_ImportEuro) + self.Bind(wx.EVT_MENU, self.OnExportMeta, id=ID_exportmeta) self.Bind(wx.EVT_CLOSE, self.OnClose) ################################################################## flags = self._mgr.GetAGWFlags() @@ -679,10 +684,10 @@ class IraFrame(wx.Frame): if not RLibsAreInstalled(self) : CheckRPackages(self) else : - msg = '\n'.join([_(u"Can't find R executable"), _(u"If R is not installed, get it from http://www.r-project.org.").decode('utf8'), + msg = '\n'.join([_(u"Can't find R executable").decode('utf8'), _(u"If R is not installed, get it from http://www.r-project.org.").decode('utf8'), _(u"If R is installed, report its path in Preferences.").decode('utf8'), _(u"IRaMuTeQ does not work without R.").decode('utf8')]) - dlg = wx.MessageDialog(self, msg, _(u"Problem").decode('utf8'), wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING) + dlg = wx.MessageDialog(self, msg, _(u"Problem").decode('utf8'), wx.OK | wx.ICON_WARNING) dlg.CenterOnParent() if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: pass @@ -781,17 +786,12 @@ class IraFrame(wx.Frame): wx.SafeYield() corpus = builder.doanalyse() self.history.add(corpus.parametres) - self.tree.OnItemAppend(corpus.parametres) OpenAnalyse(self, corpus.parametres) + self.tree.OnItemAppend(corpus.parametres) del busy def OpenText(self): - dlg = wx.ProgressDialog("Ouverture...", - "Veuillez patienter...", - maximum=2, - parent=self, - style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT - ) + dlg = progressbar(self, 5) builder = Builder(self, dlg) if builder.res == wx.ID_OK : @@ -1096,6 +1096,14 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" ImportFactiva(self, 'euro') except : BugReport(self) + + def OnExportMeta(self, evt, corpus = None): + if corpus is None : + corpus = self.tree.getcorpus() + try : + ExportMetaTable(self, corpus) + except : + BugReport(self) def ExtractTools(self, evt) : ID = evt.GetId() @@ -1193,43 +1201,54 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" #self.Text = OpenAnalyse(self, self.filename) OpenAnalyse(self, self.filename) if not truepath: - print 'ce fichier n\'existe pas' + print 'This file does not exist' class IntroPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) - col = randint(0, 255) - col1 = randint(0,255) - col2 = randint(0,255) + #col = randint(0, 255) + #col1 = randint(0,255) + #col2 = randint(0,255) #col = 57 + col = 161 + col1 = 198 + col2 = 224 bckgrdcolor = wx.Colour(col, col1, col2) self.SetBackgroundColour(bckgrdcolor) txtcolour = wx.Colour(250, 250, 250) linkcolor = wx.Colour(255, 0, 0) sizer1 = wx.BoxSizer(wx.VERTICAL) sizer2 = wx.BoxSizer(wx.VERTICAL) - sizer3 = wx.BoxSizer(wx.HORIZONTAL) sizer4 = wx.BoxSizer(wx.HORIZONTAL) - sizer5 = wx.BoxSizer(wx.HORIZONTAL) grid_sizer_1 = wx.FlexGridSizer(1, 4, 0, 0) grid_sizer_3 = wx.FlexGridSizer(1, 4, 0, 0) grid_sizer_2 = wx.BoxSizer(wx.HORIZONTAL) + + iralink = hl.HyperLinkCtrl(self, wx.ID_ANY, u"http://www.iramuteq.org", URL="http://www.iramuteq.org") + iralink.SetColours(linkcolor, linkcolor, "RED") + iralink.SetBackgroundColour(bckgrdcolor) + iralink.EnableRollover(True) + iralink.SetUnderlines(False, False, True) + iralink.SetBold(True) + iralink.UpdateLink() + PanelPres = wx.Panel(self) bckgrdcolor = wx.Colour(randint(0, 255), randint(0, 255), randint(0, 255)) PanelPres.SetBackgroundColour(bckgrdcolor) + label_1 = wx.StaticText(self, -1, u"IRaMuTeQ", size=(-1, -1)) label_1.SetFont(wx.Font(46, wx.TELETYPE, wx.NORMAL, wx.BOLD, 0, "Purisa")) label_1.SetForegroundColour(wx.RED) - iraicone = wx.Image(os.path.join(ImagePath,'iraicone248x248.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() + + iraicone = wx.Image(os.path.join(ImagePath,'iraicone100x100.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() but_ira = wx.StaticBitmap(self, -1, bitmap = iraicone) + + label2 = wx.StaticText(PanelPres, -1 , u'\nVersion ' + ConfigGlob.get('DEFAULT', 'version') + '\n') label2.SetForegroundColour(txtcolour) label2.SetBackgroundColour(bckgrdcolor) - #label3 = wx.StaticText(PanelPres, -1 , u'Equipe ') - #label3.SetForegroundColour(txtcolour) - #label3.SetBackgroundColour(bckgrdcolor) self.hyper2 = hl.HyperLinkCtrl(PanelPres, wx.ID_ANY, u"REPERE", URL="http://repere.no-ip.org/") self.hyper2.SetColours(linkcolor, linkcolor, "RED") self.hyper2.SetBackgroundColour(bckgrdcolor) @@ -1237,9 +1256,11 @@ class IntroPanel(wx.Panel): self.hyper2.SetUnderlines(False, False, True) self.hyper2.SetBold(True) self.hyper2.UpdateLink() + label_lerass = wx.StaticText(PanelPres, -1, u'Laboratoire ') label_lerass.SetForegroundColour(txtcolour) label_lerass.SetBackgroundColour(bckgrdcolor) + self.hyper_lerass = hl.HyperLinkCtrl(PanelPres, -1, u'LERASS', URL="http://www.lerass.com") self.hyper_lerass.SetColours(linkcolor, linkcolor, "RED") self.hyper_lerass.SetBackgroundColour(bckgrdcolor) @@ -1247,14 +1268,18 @@ class IntroPanel(wx.Panel): self.hyper_lerass.SetUnderlines(False, False, True) self.hyper_lerass.SetBold(True) self.hyper_lerass.UpdateLink() + blank = wx.StaticText(PanelPres, -1, u'\n') blank1 = wx.StaticText(PanelPres, -1, u'\n') + labellicence = wx.StaticText(PanelPres, -1, _(u"License GNU GPL").decode('utf8')) labellicence.SetForegroundColour(txtcolour) labellicence.SetBackgroundColour(bckgrdcolor) + labelcopy = wx.StaticText(PanelPres, -1, ConfigGlob.get('DEFAULT', 'copyright')) labelcopy.SetForegroundColour(txtcolour) labelcopy.SetBackgroundColour(bckgrdcolor) + python_img = wx.Image(os.path.join(ImagePath,'python-logo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() r_img = wx.Image(os.path.join(ImagePath,'Rlogo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() lexique_img = wx.Image(os.path.join(ImagePath,'LexTexte4.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() @@ -1266,35 +1291,29 @@ class IntroPanel(wx.Panel): self.Bind(wx.EVT_BUTTON, self.OnR, but_r) - #grid_sizer_1.Add(label3, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) grid_sizer_1.Add(self.hyper2, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) grid_sizer_3.Add(label_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) grid_sizer_3.Add(self.hyper_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) sizer4.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5) sizer2.Add(label2, 0, wx.ALIGN_CENTER, 5) - #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) sizer2.Add(grid_sizer_3, 0, wx.ALIGN_CENTER, 5) sizer2.Add(wx.StaticText(PanelPres, -1, u' '), 0, wx.ALIGN_CENTER, 5) - #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) - #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) sizer2.Add(grid_sizer_1, 0, wx.ALIGN_CENTER, 5) sizer2.Add(labellicence, 0, wx.ALIGN_CENTER, 5) sizer2.Add(labelcopy, 0, wx.ALIGN_CENTER, 5) - sizer1.Add(sizer4, 1, wx.ALIGN_CENTER_HORIZONTAL, 0) + sizer1.Add(sizer4, 2, wx.ALIGN_CENTER_HORIZONTAL, 0) sizer1.Add(but_ira, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5) - sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) + sizer1.Add(iralink, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_TOP, 5) + sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 10) PanelPres.SetSizer(sizer2) - #sizer5.Add(blank, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 2) - sizer5.Add(PanelPres, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) - #sizer5.Add(blank1, 1, wx.ALIGN_CENTER_HORIZONTAL,2) grid_sizer_2.Add(but_python, 1, wx.ALIGN_BOTTOM) grid_sizer_2.Add(but_lexique, 1, wx.ALIGN_BOTTOM) grid_sizer_2.Add(but_r, 1, wx.ALIGN_BOTTOM) - sizer1.Add(sizer5, 0, wx.EXPAND |wx.ALL, 10) + sizer1.Add(PanelPres, 0, wx.EXPAND |wx.ALL, 10) sizer1.Add(grid_sizer_2, 2, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 1) self.SetSizer(sizer1) sizer1.Fit(self)