RessourceEditor.py
changeset 121 40b91ba978db
parent 113 9eeaebd867aa
child 124 635d0817508c
equal deleted inserted replaced
120:add8e391e00c 121:40b91ba978db
    22 #License along with this library; if not, write to the Free Software
    22 #License along with this library; if not, write to the Free Software
    23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    24 
    24 
    25 import wx
    25 import wx
    26 import wx.grid
    26 import wx.grid
       
    27 
       
    28 if wx.VERSION >= (2, 8, 0):
       
    29     import wx.aui
       
    30 
       
    31     class MDIConfigurationEditor(wx.aui.AuiMDIChildFrame):
       
    32         def __init__(self, parent, tagname, window, controler):
       
    33             wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = "")
       
    34             
       
    35             sizer = wx.BoxSizer(wx.HORIZONTAL)
       
    36             
       
    37             self.Viewer = ConfigurationEditor(self, tagname, window, controler)
       
    38             
       
    39             sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW)
       
    40             
       
    41             self.SetSizer(sizer)
       
    42         
       
    43         def GetViewer(self):
       
    44             return self.Viewer
       
    45 
       
    46     class MDIResourceEditor(wx.aui.AuiMDIChildFrame):
       
    47         def __init__(self, parent, tagname, window, controler):
       
    48             wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = "")
       
    49             
       
    50             sizer = wx.BoxSizer(wx.HORIZONTAL)
       
    51             
       
    52             self.Viewer = ResourceEditor(self, tagname, window, controler)
       
    53             
       
    54             sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW)
       
    55             
       
    56             self.SetSizer(sizer)
       
    57         
       
    58         def GetViewer(self):
       
    59             return self.Viewer
       
    60 
       
    61 #-------------------------------------------------------------------------------
       
    62 #                          Configuration Editor class
       
    63 #-------------------------------------------------------------------------------
       
    64 
       
    65 [ID_CONFIGURATIONEDITOR, 
       
    66 ] = [wx.NewId() for _init_ctrls in range(1)]
       
    67 
       
    68 class ConfigurationEditor(wx.Panel):
       
    69     
       
    70     def _init_ctrls(self, prnt):
       
    71         wx.Panel.__init__(self, id=ID_CONFIGURATIONEDITOR, name='', parent=prnt,
       
    72               size=wx.Size(0, 0), style=wx.SUNKEN_BORDER)
       
    73 
       
    74     def __init__(self, parent, tagname, window, controler):
       
    75         self._init_ctrls(parent)
       
    76         
       
    77         self.ParentWindow = window
       
    78         self.Controler = controler
       
    79         self.TagName = tagname
       
    80 
       
    81     def SetTagName(self, tagname):
       
    82         self.TagName = tagname
       
    83         
       
    84     def GetTagName(self):
       
    85         return self.TagName
       
    86     
       
    87     def IsViewing(self, tagname):
       
    88         return self.TagName == tagname
       
    89 
       
    90     def SetMode(self, mode):
       
    91         pass
       
    92 
       
    93     def ResetBuffer(self):
       
    94         pass
       
    95 
       
    96     def RefreshView(self):
       
    97         pass
    27 
    98 
    28 #-------------------------------------------------------------------------------
    99 #-------------------------------------------------------------------------------
    29 #                            Resource Editor class
   100 #                            Resource Editor class
    30 #-------------------------------------------------------------------------------
   101 #-------------------------------------------------------------------------------
    31 
   102 
   359               size=wx.Size(32, 32), style=0)
   430               size=wx.Size(32, 32), style=0)
   360         self.Bind(wx.EVT_BUTTON, self.OnDownInstanceButton, id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON)
   431         self.Bind(wx.EVT_BUTTON, self.OnDownInstanceButton, id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON)
   361 
   432 
   362         self._init_sizers()
   433         self._init_sizers()
   363 
   434 
   364     def __init__(self, parent, window, controler):
   435     def __init__(self, parent, tagname, window, controler):
   365         self._init_ctrls(parent)
   436         self._init_ctrls(parent)
   366         
   437         
   367         self.ParentWindow = window
   438         self.ParentWindow = window
   368         self.Controler = controler
   439         self.Controler = controler
       
   440         self.TagName = tagname
   369         
   441         
   370         self.TasksDefaultValue = {"Name" : "", "Single" : "", "Interval" : "", "Priority" : 0}
   442         self.TasksDefaultValue = {"Name" : "", "Single" : "", "Interval" : "", "Priority" : 0}
   371         self.TasksTable = ResourceTable(self, [], ["Name", "Single", "Interval", "Priority"])
   443         self.TasksTable = ResourceTable(self, [], ["Name", "Single", "Interval", "Priority"])
   372         self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT])
   444         self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT])
   373         self.TasksTable.SetColSizes([200, 100, 100, 100])
   445         self.TasksTable.SetColSizes([200, 100, 100, 100])
   381         self.InstancesTable.SetColSizes([200, 150, 150])
   453         self.InstancesTable.SetColSizes([200, 150, 150])
   382         self.InstancesGrid.SetTable(self.InstancesTable)
   454         self.InstancesGrid.SetTable(self.InstancesTable)
   383         self.InstancesGrid.SetRowLabelSize(0)
   455         self.InstancesGrid.SetRowLabelSize(0)
   384         self.InstancesTable.ResetView(self.InstancesGrid)
   456         self.InstancesTable.ResetView(self.InstancesGrid)
   385 
   457 
       
   458     def SetTagName(self, tagname):
       
   459         self.TagName = tagname
       
   460         
       
   461     def GetTagName(self):
       
   462         return self.TagName
       
   463     
       
   464     def IsViewing(self, tagname):
       
   465         return self.TagName == tagname
       
   466 
   386     def SetMode(self, mode):
   467     def SetMode(self, mode):
   387         pass
       
   388 
       
   389     def VerifyVariableTypeCompatibility(self):
       
   390         pass
   468         pass
   391 
   469 
   392     def RefreshTypeList(self):
   470     def RefreshTypeList(self):
   393         self.TypeList = ""
   471         self.TypeList = ""
   394         blocktypes = self.Controler.GetBlockResource()
   472         blocktypes = self.Controler.GetBlockResource()
   400         for row in xrange(self.TasksTable.GetNumberRows()):
   478         for row in xrange(self.TasksTable.GetNumberRows()):
   401             self.TaskList += ",%s"%self.TasksTable.GetValueByName(row, "Name")
   479             self.TaskList += ",%s"%self.TasksTable.GetValueByName(row, "Name")
   402 
   480 
   403     def RefreshVariableList(self):
   481     def RefreshVariableList(self):
   404         self.VariableList = ""
   482         self.VariableList = ""
   405         for variable in self.Controler.GetCurrentResourceEditingVariables():
   483         for variable in self.Controler.GetEditedResourceVariables(self.TagName):
   406             self.VariableList += ",%s"%variable
   484             self.VariableList += ",%s"%variable
   407         
   485         
   408     def RefreshModel(self):
   486     def RefreshModel(self):
   409         self.Controler.SetCurrentResourceEditingInfos(self.TasksTable.GetData(), self.InstancesTable.GetData())
   487         self.Controler.SetEditedResourceInfos(self.TagName, self.TasksTable.GetData(), self.InstancesTable.GetData())
   410         self.RefreshBuffer()
   488         self.RefreshBuffer()
   411         
   489         
   412     def ResetBuffer(self):
   490     def ResetBuffer(self):
   413         pass
   491         pass
   414 
   492 
   417         self.Controler.BufferProject()
   495         self.Controler.BufferProject()
   418         self.ParentWindow.RefreshTitle()
   496         self.ParentWindow.RefreshTitle()
   419         self.ParentWindow.RefreshEditMenu()
   497         self.ParentWindow.RefreshEditMenu()
   420 
   498 
   421     def RefreshView(self):
   499     def RefreshView(self):
   422         tasks, instances = self.Controler.GetCurrentResourceEditingInfos()
   500         tasks, instances = self.Controler.GetEditedResourceInfos(self.TagName)
   423         self.TasksTable.SetData(tasks)
   501         self.TasksTable.SetData(tasks)
   424         self.InstancesTable.SetData(instances)
   502         self.InstancesTable.SetData(instances)
   425         self.RefreshTypeList()
   503         self.RefreshTypeList()
   426         self.RefreshTaskList()
   504         self.RefreshTaskList()
   427         self.RefreshVariableList()
   505         self.RefreshVariableList()