...
[iramuteq] / tree.py
diff --git a/tree.py b/tree.py
index 708e0dc..d8008b1 100644 (file)
--- a/tree.py
+++ b/tree.py
@@ -104,6 +104,7 @@ class LeftTree(CT.CustomTreeCtrl):
             elif data.startswith("EVT_"):
                 events.append(data)
         self.parent = parent
+        self.ira = parent
         self.events = events
         self.styles = treestyles
         self.item = None
@@ -125,6 +126,7 @@ class LeftTree(CT.CustomTreeCtrl):
         self.ild['chi2'] = self.il.Add(wx.Image(os.path.join(self.parent.images_path,'chi2.png'), wx.BITMAP_TYPE_PNG).Scale(16,16).ConvertToBitmap())
         self.ild['reinertmatrix'] = self.il.Add(wx.Image(os.path.join(self.parent.images_path,'reinertmatrix.png'), wx.BITMAP_TYPE_PNG).Scale(16,16).ConvertToBitmap())
         self.ild['simimatrix'] = self.il.Add(wx.Image(os.path.join(self.parent.images_path,'simimatrix.png'), wx.BITMAP_TYPE_PNG).Scale(16,16).ConvertToBitmap())
+        self.ild['proto'] = self.il.Add(wx.Image(os.path.join(self.parent.images_path,'proto.png'), wx.BITMAP_TYPE_PNG).Scale(16,16).ConvertToBitmap())
         self.SetImageList(self.il)
         
         self.count = 0
@@ -412,7 +414,13 @@ class LeftTree(CT.CustomTreeCtrl):
                     item = self.parent.matrix_menu.FindItemByPosition(i)
                     itemid = item.GetId()
                     itemtext = item.GetText()
-                    menu.Append(itemid, itemtext)
+                    if item.IsSubMenu() :
+                        nmenu = wx.Menu()
+                        for val in item.GetSubMenu().GetMenuItems() :
+                            nmenu.Append(val.GetId(), val.GetText())
+                        menu.AppendMenu(itemid, itemtext, nmenu)
+                    else :
+                        menu.Append(itemid, itemtext)
                 split = wx.Menu()
                 splitfromvar = split.Append(-1, _(u"Split from variable").decode('utf8'))
                 menu.AppendMenu(-1, _(u"Split matrix").decode('utf8'), split)
@@ -946,20 +954,21 @@ class LeftTree(CT.CustomTreeCtrl):
         self.SetItemBold(item, bold)
         self.SelectItem(item)  
         
-    def OnItemAppend(self, item):
+    def OnItemAppend(self, item, select = True):
         if 'corpus_name' in item :
             child = self.InsertItem(self.textroot, 0, item['corpus_name'])
         else :
             child = self.InsertItem(self.matroot, 0, item['matrix_name'])
         self.SetPyData(child, item)
-        self.history.addtab(item)
         if item['type'] in self.ild :
             img = self.ild[item['type']]
         else :
             img = 24
         self.SetItemImage(child, img, CT.TreeItemIcon_Normal)
         self.SetItemImage(child, img, CT.TreeItemIcon_Expanded)
-        self.SetItemBold(child, True)
+        if select :
+            self.history.addtab(item)
+            self.SetItemBold(child, True)
         
         #dlg = wx.TextEntryDialog(self, "Please Enter The New Item Name", 'Item Naming', 'Python')
 
@@ -1076,7 +1085,14 @@ class LeftTree(CT.CustomTreeCtrl):
         if event is not None :
             item = event.GetItem()
             pydata = self.GetPyData(item)
+
         if pydata is not None :
+            if 'corpus_name' in pydata :
+                self.ira.ShowMenu('text', True)
+                self.ira.ShowMenu('matrix', False)
+            if 'matrix_name' in pydata :
+                self.ira.ShowMenu('text', False)
+                self.ira.ShowMenu('matrix', True)                
             self.pydata = pydata
             if pydata['uuid'] in self.parent.history.opened :
                 for i in range(self.parent.nb.GetPageCount()) :