from tableau import Tableau
from tabrsimple import InputText
from tabsimi import DoSimi
+from tabcatego import Categorisation
from tabsplitvar import SplitMatrixFromVar
from tabverges import Prototypical
from textaslexico import Lexico
ID_Tabcontent = wx.Window.NewControlId()
ID_AFCM = wx.Window.NewControlId()
ID_SIMI = wx.Window.NewControlId()
+ID_CATE = wx.Window.NewControlId()
ID_CloseTab = wx.Window.NewControlId()
ID_SaveTab = wx.Window.NewControlId()
ID_CreateText = wx.Window.NewControlId()
'preferences' : 'preferences.png',
'exportmetatable' : 'exportmetatable.png',
'importdmi' : 'twitter.png',
- 'labbe' : 'spec.png'
+ 'labbe' : 'spec.png',
+ 'categorisation' : 'spec.png',
}
wx.CLIP_CHILDREN):
log.info('Starting Iramuteq... ' )
log.info('version : %s' % ConfigGlob.get('DEFAULT', 'version'))
+ print(size)
wx.Frame.__init__(self, parent, id, title, pos, size, style)
+ #Font
+ self.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
# configuration
self.AppliPath = AppliPath
self.images_path = os.path.join(AppliPath,'images')
[ID_SIMI, _("Similarities Analysis"), 'simimatrix'],
[ID_proto, _("Prototypical Analysis"), 'proto'],
[ID_Splitfromvar, _("Split from variable"), 'subcorpusmeta'],
+ [ID_CATE, _("ElCaTeGoRiZatoR"), 'categorisation'],
]
for analyse in matanalyses :
if not isinstance(analyse, dict) :
# min size for the frame itself isn't completely done.
# see the end up FrameManager::Update() for the test
# code. For now, just hard code a frame minimum size
- self.SetMinSize(wx.Size(400, 400))
+ self.SetMinSize(wx.Size(800, 600))
#--------------------------------------------------------------------
# barre d'outils : le menu de petits icones en haut de la fenetre
#------------------------------------------------------------------------------------------------
# fichier d'historique de Iramuteq
#------------------------------------------------------------------------------------------------
- #if not os.path.exists(os.path.join(UserConfigPath, 'history.db')) :
- # with open(os.path.join(UserConfigPath, 'history.db'), 'w') as f :
- # f.write('')
- self.history = History(os.path.join(UserConfigPath, 'historyIramuteq'))
+ if not os.path.exists(os.path.join(UserConfigPath, 'history.db')) :
+ with open(os.path.join(UserConfigPath, 'history.db'), 'w') as f :
+ f.write('{}')
+ self.history = History(os.path.join(UserConfigPath, 'history.db'))
# l'extension ".db" est ajoutée automatiquement par le module
#------------------------------------------------------------------------------------------------
Name("lefttree").
Caption(_("Historic")).
Left().
- MinSize(wx.Size(200,500)).
+ MinSize(wx.Size(300,400)).
Layer(1).
Position(1).
CloseButton(False).
self._mgr.GetPane("lefttree").Show()
self._mgr.GetPane("classif_tb").Hide() # utilisé nulle part ailleurs que sur cette ligne ???
# "commit" all changes made to FrameManager
- self._mgr.Update()
+ #self._mgr.Update()
# Attache les événements aux éléments d'interface
self.Bind(wx.EVT_MENU, self.OnAcceuil, id=ID_ACCEUIL)
self.Bind(wx.EVT_MENU, self.OnAFCM, id=ID_AFCM)
self.Bind(wx.EVT_MENU, self.OnProto, id=ID_proto)
self.Bind(wx.EVT_MENU, self.OnSplitVar, id = ID_Splitfromvar)
+ self.Bind(wx.EVT_MENU, self.OnCategorisation, id = ID_CATE)
#self.Bind(wx.EVT_MENU, self.OnRCode, id=ID_RCODE) #???
#self.Bind(wx.EVT_MENU, self.OnSplitVar, id=ID_SPLITVAR) #???
#self.Bind(wx.EVT_MENU, self.OnCheckcorpus, id = ID_CHECKCORPUS) #???
self._mgr.SetAGWFlags(self._mgr.GetAGWFlags() ^ (aui.AUI_MGR_RECTANGLE_HINT | aui.AUI_MGR_ALLOW_FLOATING))
self._mgr.GetArtProvider().SetMetric(aui.AUI_DOCKART_GRADIENT_TYPE, aui.AUI_GRADIENT_HORIZONTAL)
self.GetDockArt().SetColor(aui.AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR, "#00FFF9")
- self.DoUpdate()
+ #self.DoUpdate()
self._icon = wx.Icon(os.path.join(ImagePath, "iraicone.ico"), wx.BITMAP_TYPE_ICO)
self.SetIcon(self._icon)
BestRPath = False
if not CheckRPath(self.PathPath) :
if sys.platform == 'win32':
- if os.path.exists(self.AppliPath + '\\R\\R') :
+ if os.path.exists(self.AppliPath + '\\R\\R\\x64\\R.exe') :
BestRPath = self.AppliPath + '\\R\\R\\bin\\x64\\R.exe'
+ elif os.path.exists(self.AppliPath + '\\R\\R\\i386\\R.exe') :
+ BestRPath = self.AppliPath + '\\R\\R\\bin\\i386\\R.exe'
else :
BestRPath = FindRPAthWin32()
+ elif os.path.exists(self.AppliPath + '/R/R') :
+ BestRPath = self.AppliPath + '/R/R'
else:
BestRPath = FindRPathNix()
if BestRPath:
if menu == 'text' :
menu_pos = 4
if Show :
+ if self._mgr.GetPane('tb_text').IsShown() :
+ return
self._mgr.GetPane('tb_text').Show()
+ self._mgr.GetPane('tb_mat').Hide()
+ self.mb.EnableTop(menu_pos, Show)
+ self.mb.EnableTop(3, False)
else :
self._mgr.GetPane('tb_text').Hide()
elif menu == 'matrix' :
menu_pos = 3
if Show :
+ if self._mgr.GetPane('tb_mat').IsShown():
+ return
self._mgr.GetPane('tb_mat').Show()
+ self._mgr.GetPane('tb_text').Hide()
+ self.mb.EnableTop(menu_pos, Show)
+ self.mb.EnableTop(4, False)
else :
self._mgr.GetPane('tb_mat').Hide()
elif menu == 'view' :
else :
menu_pos = None
if not menu_pos is None :
- self.mb.EnableTop(menu_pos, Show)
+ #self.mb.EnableTop(menu_pos, Show)
self.mb.Refresh()
- #self._mgr.Update()
+ self._mgr.Update()
+ self.Refresh()
#--------------------------------------------------------------------
# fin de __init__ du wx.Frame
if isinstance(parent, IraFrame) :
npage = self.nb.GetPage(new)
if 'parametres' in dir(npage) :
- #self.tree.GiveFocus(uuid=npage.parametres['uuid'])
- if npage.parametres.get('matrix', False) :
- self.ShowMenu('text', False)
- self.ShowMenu('matrix', True)
- elif npage.parametres.get('corpus', False) :
- self.ShowMenu('text')
- self.ShowMenu('matrix', False)
- #self._mgr.Update()
- #wx.CallAfter(self.nb.SendSizeEvent)
- #self.Refresh()
+ self.tree.GiveFocus(uuid=npage.parametres['uuid'])
# action ou évènement ?
def OnCloseTab(self, evt):
# action ou évènement ?
def ShowAPane(self, panel):
+ print('ShowAPane')
for pane in self._mgr.GetAllPanes() :
if not pane.IsToolbar() and pane.name != 'lefttree':
pane.Hide()
self._mgr.GetPane(panel).Show()
self._mgr.Update()
- print('show a pane refresh')
wx.CallAfter(self.nb.SendSizeEvent)
self.Refresh()
def OnSimiTab(self, event, matrix = None):
self.analyse_matrix(DoSimi, matrix = matrix, analyse_type = 'simimatrix', dlgnb = 5)
+ def OnCategorisation(self, event, matrix = None) :
+ self.analyse_matrix(Categorisation, matrix = matrix, analyse_type = 'categorisation', dlgnb = 1)
+
+
def OnCHDReinert(self, event, matrix = None):
#if matrix is None :
# matrix = self.tree.getmatrix()