Beremiz.py
changeset 730 4480b7da6bea
parent 727 3edd2f19bce2
child 731 4fc681ed0c61
--- a/Beremiz.py	Sat May 12 12:11:42 2012 +0200
+++ b/Beremiz.py	Fri May 18 18:50:49 2012 +0200
@@ -147,11 +147,11 @@
 from util.BrowseValuesLibraryDialog import BrowseValuesLibraryDialog
 import types, time, re, platform, time, traceback, commands
 from ProjectController import ProjectController, MATIEC_ERROR_MODEL
-from util import MiniTextControler
+from util.MiniTextControler import MiniTextControler
 from util.ProcessLogger import ProcessLogger
 
 from docutil import OpenHtmlFrame
-from PLCOpenEditor import IDEFrame, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
+from PLCOpenEditor import IDEFrame, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
 from PLCOpenEditor import EditorPanel, Viewer, TextViewer, GraphicViewer, ResourceEditor, ConfigurationEditor, DataTypeEditor
 from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
 
@@ -558,8 +558,9 @@
             result = self.CTR.LoadProject(projectOpen, buildpath)
             if not result:
                 self.LibraryPanel.SetControler(self.Controler)
+                self.PouInstanceVariablesPanel.SetController(self.Controler)
                 self.RefreshConfigRecentProjects(os.path.abspath(projectOpen))
-                self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
                 self.RefreshAll()
             else:
                 self.ResetView()
@@ -569,7 +570,8 @@
             self.Controler = ctr
             if ctr is not None:
                 self.LibraryPanel.SetControler(self.Controler)
-                self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self.PouInstanceVariablesPanel.SetController(self.Controler)
+                self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
                 self.RefreshAll()
         if self.EnableDebug:
             self.DebugVariablePanel.SetDataProducer(self.CTR)
@@ -773,18 +775,22 @@
             self.FileMenu.Enable(wx.ID_CLOSE_ALL, False)
     
     def RefreshRecentProjectsMenu(self):
-        for i in xrange(self.RecentProjectsMenu.GetMenuItemCount()):
-            item = self.RecentProjectsMenu.FindItemByPosition(0)
-            self.RecentProjectsMenu.Delete(item.GetId())
-        
         recent_projects = cPickle.loads(str(self.Config.Read("RecentProjects", cPickle.dumps([]))))
         self.FileMenu.Enable(ID_FILEMENURECENTPROJECTS, len(recent_projects) > 0)
         for idx, projectpath in enumerate(recent_projects):
-            id = wx.NewId()
-            AppendMenu(self.RecentProjectsMenu, help='', id=id, 
-                       kind=wx.ITEM_NORMAL, text="%d: %s" % (idx + 1, projectpath))
+            text = u'%d: %s' % (idx + 1, projectpath)
+            
+            if idx < self.RecentProjectsMenu.GetMenuItemCount():
+                item = self.RecentProjectsMenu.FindItemByPosition(idx)
+                id = item.GetId()
+                item.SetItemLabel(text)
+                self.Disconnect(id, id, wx.EVT_BUTTON._getEvtType())
+            else:
+                id = wx.NewId()
+                AppendMenu(self.RecentProjectsMenu, help='', id=id, 
+                           kind=wx.ITEM_NORMAL, text=text)
             self.Bind(wx.EVT_MENU, self.GenerateOpenRecentProjectFunction(projectpath), id=id)
-    
+        
     def GenerateOpenRecentProjectFunction(self, projectpath):
         def OpenRecentProject(event):
             if self.CTR is not None and not self.CheckSaveBeforeClosing():
@@ -1680,10 +1686,11 @@
                 self.CTR = ctr
                 self.Controler = self.CTR
                 self.LibraryPanel.SetControler(self.Controler)
+                self.PouInstanceVariablesPanel.SetController(self.Controler)
                 self.RefreshConfigRecentProjects(projectpath)
                 if self.EnableDebug:
                     self.DebugVariablePanel.SetDataProducer(self.CTR)
-                self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
                 self.RefreshAll()
             else:
                 self.ResetView()
@@ -1715,11 +1722,12 @@
             result = self.CTR.LoadProject(projectpath)
             if not result:
                 self.LibraryPanel.SetControler(self.Controler)
+                self.PouInstanceVariablesPanel.SetController(self.Controler)
                 self.RefreshConfigRecentProjects(projectpath)
                 if self.EnableDebug:
                     self.DebugVariablePanel.SetDataProducer(self.CTR)
                 self.LoadProjectOrganization()
-                self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
                 self.RefreshAll()
             else:
                 self.ResetView()