+ self.m_panel2.SetSizer( fgSizer3 )
+ self.m_panel2.Layout()
+ fgSizer3.Fit( self.m_panel2 )
+ self.m_notebook1.AddPage( self.m_panel2, _(u"Cleaning").decode('utf8'), False )
+
+ bSizer1.Add( self.m_notebook1, 1, wx.EXPAND |wx.ALL, 5 )
+
+ m_sdbSizer1 = wx.StdDialogButtonSizer()
+ self.m_sdbSizer1OK = wx.Button( self, wx.ID_OK )
+ m_sdbSizer1.AddButton( self.m_sdbSizer1OK )
+ self.m_sdbSizer1Cancel = wx.Button( self, wx.ID_CANCEL )
+ m_sdbSizer1.AddButton( self.m_sdbSizer1Cancel )
+ m_sdbSizer1.Realize();
+
+ bSizer1.Add( m_sdbSizer1, 0, wx.EXPAND, 5 )
+
+
+ # Connect Events
+ self.Bind(wx.EVT_BUTTON, self.OnChangeDir, self.m_button1)
+ self.lang_choices.Bind( wx.EVT_CHOICE, self.OnChangeLangage )
+ self.radio_other_dict.Bind( wx.EVT_RADIOBUTTON, self.changedictchoice )
+ self.radio_default_dict.Bind( wx.EVT_RADIOBUTTON, self.changedictchoice )
+ self.otherdictpath.Bind( wx.EVT_FILEPICKER_CHANGED, self.selectdict)
+
+ self.setparametres(parametres)
+ self.SetSizer( bSizer1 )
+ self.Layout()
+ bSizer1.Fit( self )
+
+ self.Centre( wx.BOTH )
+
+ def OnChangeDir(self, evt) :
+ dlg = wx.DirDialog(self.parent, _(u"Choose a folder").decode('utf8'), style = wx.DD_DEFAULT_STYLE)
+ if dlg.ShowModal() == wx.ID_OK :
+ self.repout_choices.SetValue(dlg.GetPath())
+
+ def __del__( self ):
+ pass
+
+ def setparametres(self, parametres) :
+ if locale.getpreferredencoding().lower() == 'mac-roman' :
+ enc = self.encodages.index('macroman')
+ else :
+ try :
+ enc = self.encodages.index(locale.getpreferredencoding().lower())
+ except ValueError :
+ enc = self.encodages.index('utf-8')
+ self.encodage_choices.SetSelection(enc)
+ self.lang_choices.SetSelection(0)
+ self.repout_choices.SetValue(parametres['pathout'])
+ self.corpusname.SetValue(parametres['corpus_name'])
+ self.ucimark_choices.SetSelection(parametres['ucimark'])
+ self.check_expressions.SetValue(parametres['expressions'])
+ self.check_makeuce.SetValue(parametres['douce'])
+ self.uce_mode.SetSelection(parametres['ucemethod'])
+ self.uce_size.SetValue(parametres['ucesize'])
+ self.check_lower.SetValue(parametres['lower'])
+ #self.check_charact.SetValue(parametres['charact'])
+ self.txt_charact.SetValue(parametres['keep_caract'])
+ self.check_apos.SetValue(parametres['apos'])
+ self.check_tirets.SetValue(parametres['tiret'])
+ self.check_tolist.SetValue(parametres['tolist'])
+ self.check_ponct.SetValue(parametres['keep_ponct'])
+ self.defaultdictpath.SetValue(self.langues[0])
+
+ def doparametres(self) :
+ parametres = {}
+ parametres['encoding'] = encodages[self.encodage_choices.GetSelection()][0]
+ parametres['lang'] = self.langues[self.lang_choices.GetSelection()]
+ parametres['pathout'] = self.repout_choices.GetValue()
+ parametres['corpus_name'] = self.corpusname.GetValue()
+ parametres['ucimark'] = self.ucimark_choices.GetSelection()
+ parametres['expressions'] = self.check_expressions.GetValue()
+ parametres['douce'] = self.check_makeuce.GetValue()
+ parametres['ucemethod'] = self.uce_mode.GetSelection()
+ parametres['ucesize'] = self.uce_size.GetValue()
+ parametres['lower'] = self.check_lower.GetValue()
+ parametres['charact'] = self.check_charact.GetValue()
+ parametres['keep_caract'] = self.txt_charact.GetValue()
+ parametres['apos'] = self.check_apos.GetValue()
+ parametres['tiret'] = self.check_tirets.GetValue()
+ parametres['tolist'] = self.check_tolist.GetValue()
+ parametres['keep_ponct'] = self.check_ponct.GetValue()
+ if self.radio_other_dict.GetValue() :
+ parametres['dictionary'] = self.otherdictpath.GetPath()
+ for val in parametres :
+ if isinstance(parametres[val], bool) :
+ if parametres[val] :
+ parametres[val] = 1
+ else :
+ parametres[val] = 0
+ return parametres
+
+ def OnChangeLangage(self, evt):
+ self.defaultdictpath.SetValue(self.langues[self.lang_choices.GetSelection()])
+
+ def changedictchoice(self, evt):
+ if self.radio_default_dict.GetValue() :
+ self.otherdictpath.Enable( False )
+ self.m_sdbSizer1OK.Enable( True )
+ else :
+ self.otherdictpath.Enable( True )
+ if self.otherdictpath.GetPath() == '' :
+ self.m_sdbSizer1OK.Enable( False )
+
+ def selectdict(self, evt):
+ if self.otherdictpath.GetPath() != '' :
+ self.m_sdbSizer1OK.Enable( True )
+
+
+
+class ConcordList(wx.HtmlListBox):
+ def __init__(self, parent, concord):
+ self.concord = concord
+ #self.script_status = dict()
+ wx.HtmlListBox.__init__(self, parent, -1, size = (900, 600))
+ self.SetItemCount(len(concord))
+ #self.Bind(wx.EVT_LISTBOX, self.RefreshMe)
+ #self.Bind(wx.EVT_LISTBOX_DCLICK, self.Download)
+
+ def OnGetItem(self, index):
+ return self.concord[index] #+ '<br>'
+
+class message(wx.Frame):
+ def __init__(self, parent, items, title, size, save = True, uceids = None):
+ wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = title, pos = wx.DefaultPosition, size = size, style = wx.CLOSE_BOX|wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT|wx.TAB_TRAVERSAL )
+ self.save = save
+ self.uceids = uceids
+ self.ira = wx.GetApp().GetTopWindow()
+ self.SetIcon(self.ira._icon)
+ #self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
+ self.items = items
+ self.html = ""
+ #self.HtmlPage=wx.html.HtmlWindow(self, -1)
+ self.panel = wx.Panel(self, wx.ID_ANY)
+ self.HtmlPage = ConcordList(self.panel, items)
+ #self.HtmlPage.SetMinSize( size )
+ #if "gtk2" in wx.PlatformInfo:
+ # self.HtmlPage.SetStandardFonts()
+ #self.HtmlPage.SetFonts('Courier','Courier')
+
+ self.button_1 = wx.Button(self.panel, wx.ID_CANCEL)
+
+ self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button_1)
+ if self.save :
+ self.button_2 = wx.Button(self.panel, wx.ID_SAVE)
+ self.Bind(wx.EVT_BUTTON, self.OnSavePage, self.button_2)
+ if self.uceids is not None :
+ self.butsub = wx.Button(self.panel, -1, _(u"Build sub corpus").decode('utf8'))
+ self.Bind(wx.EVT_BUTTON, self.OnSub, self.butsub)
+ self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
+ self.__do_layout()
+
+ def __do_layout(self):
+ sizer_2 = wx.BoxSizer(wx.VERTICAL)
+ sizer_2.Add(self.HtmlPage, 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+ #m_sdbSizer1 = wx.StdDialogButtonSizer()
+ m_sdbSizer1 = wx.BoxSizer(wx.HORIZONTAL)
+ m_sdbSizer1.Add( self.button_1 , 0, wx.ALIGN_RIGHT | wx.EXPAND)
+ if self.save :
+ m_sdbSizer1.Add( self.button_2 , 0, wx.ALIGN_RIGHT | wx.EXPAND)
+ if self.uceids is not None :
+ m_sdbSizer1.Add( self.butsub , 0, wx.ALIGN_RIGHT | wx.EXPAND)
+ #m_sdbSizer1.Realize()
+ #self.panel.SetSizer( m_sdbSizer1 )
+ sizer_2.Add( m_sdbSizer1, 0, wx.ALIGN_RIGHT, 5)
+ self.panel.SetSizer(sizer_2)
+ self.panel.Layout()
+ sizer_2.Fit( self )
+
+ def OnSavePage(self, evt) :
+ dlg = wx.FileDialog(
+ self, message=_(u"Save as ...").decode('utf8'), defaultDir=os.getcwd(),
+ defaultFile="concordancier.html", wildcard="html|*.html", style=wx.SAVE | wx.OVERWRITE_PROMPT
+ )
+ dlg.SetFilterIndex(2)
+ dlg.CenterOnParent()
+ self.html = '<br>'.join([self.items[i] for i in range(0,len(self.items))])
+ if dlg.ShowModal() == wx.ID_OK:
+ path = dlg.GetPath()
+ with open(path, 'w') as f :
+ f.write(self.html)
+
+ def OnCloseMe(self, event):
+ self.Close(True)
+
+ def OnCloseWindow(self, event):
+ self.Destroy()
+
+ def OnSub(self ,evt):
+ parametres = {'fromuceids' : True, 'uceids' : self.uceids, 'isempty' : True}
+ self.ira.OnSubText(wx.MenuEvent(), None, parametres)
+
+
+class ExtractDialog ( wx.Dialog ):
+
+ def __init__( self, parent, option ):
+ wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_DIALOG_STYLE )
+
+ self.option = option
+
+ self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
+
+ fgSizer1 = wx.FlexGridSizer( 0, 2, 0, 0 )
+ fgSizer1.SetFlexibleDirection( wx.BOTH )
+ fgSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
+
+ self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, _(u"corpus").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText1.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText1, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.ALL, 5 )
+
+ self.corpusfile = wx.FilePickerCtrl( self, wx.ID_ANY, wx.EmptyString, _(u"Select a file").decode('utf8'), u"*.txt", wx.DefaultPosition, wx.Size( -1,-1 ), wx.FLP_DEFAULT_STYLE|wx.FLP_FILE_MUST_EXIST|wx.FLP_OPEN )
+ self.corpusfile.SetMinSize( wx.Size( 500,-1 ) )
+
+ fgSizer1.Add( self.corpusfile, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 5 )
+
+ self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, _(u"Characters set").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText2.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText2, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ encodageChoices = [' - '.join(encodage) for encodage in encodages]
+ self.encodage = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, encodageChoices, 0 )
+ self.encodage.SetSelection( 0 )
+ self.encodage.SetMinSize( wx.Size( 200,-1 ) )
+
+ fgSizer1.Add( self.encodage, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 5 )
+
+ if option == 'splitvar' :
+ self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, _(u"Variables (with the * but without the _)").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText3.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText3, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ self.txtvar = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.txtvar.SetMinSize( wx.Size( 200,-1 ) )
+
+ fgSizer1.Add( self.txtvar, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 5 )
+
+ if option == 'mods' :
+ self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, _(u"Modalities (one by line, with the *)").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText4.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText4, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ self.txtmods = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE )
+ self.txtmods.SetMinSize( wx.Size( 200,150 ) )
+
+ fgSizer1.Add( self.txtmods, 0, wx.ALL|wx.EXPAND, 5 )
+
+ self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, _(u"Extraction type").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText5.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText5, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ extractformatChoices = [ _(u"Only one file").decode('utf8'), _(u"One file by modality").decode('utf8') ]
+ self.extractformat = wx.RadioBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, extractformatChoices, 1, wx.RA_SPECIFY_COLS )
+ self.extractformat.SetSelection( 0 )
+ fgSizer1.Add( self.extractformat, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ if option == 'them' :
+ self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, _(u"thematics (one by line, with the -*)").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.m_staticText4.Wrap( -1 )
+ fgSizer1.Add( self.m_staticText4, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ self.txtmods = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE )
+ self.txtmods.SetMinSize( wx.Size( 200,150 ) )
+
+ fgSizer1.Add( self.txtmods, 0, wx.ALL|wx.EXPAND, 5 )
+
+ #self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, _(u"Extraction type").decode('utf8'), wx.DefaultPosition, wx.DefaultSize, 0 )
+ #self.m_staticText5.Wrap( -1 )
+ #fgSizer1.Add( self.m_staticText5, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+ #extractformatChoices = [ _(u"Only one file").decode('utf8'), _(u"One file by thematic").decode('utf8') ]
+ #self.extractformat = wx.RadioBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, extractformatChoices, 1, wx.RA_SPECIFY_COLS )
+ #self.extractformat.SetSelection( 0 )
+ #fgSizer1.Add( self.extractformat, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+
+
+ fgSizer1.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )