RessourceEditor.py
changeset 714 131ea7f237b9
parent 684 f10449b18dbe
--- a/RessourceEditor.py	Fri Jun 15 18:03:25 2012 +0200
+++ b/RessourceEditor.py	Mon Jun 25 20:03:53 2012 +0200
@@ -23,10 +23,12 @@
 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import wx
+import wx.lib.buttons
 import wx.grid
 
 from graphics.GraphicCommons import REFRESH_HIGHLIGHT_PERIOD
 from controls import CustomGrid, CustomTable, EditorPanel, DurationCellEditor
+from utils.BitmapLibrary import GetBitmap
 
 #-------------------------------------------------------------------------------
 #                          Configuration Editor class
@@ -187,149 +189,81 @@
                     if len(col_highlights) == 0:
                         row_highlights.pop(col)
 
-[ID_RESOURCEEDITOR, ID_RESOURCEEDITORPANEL, ID_RESOURCEEDITORSTATICTEXT1,
- ID_RESOURCEEDITORSTATICTEXT2, ID_RESOURCEEDITORINSTANCESGRID,
- ID_RESOURCEEDITORTASKSGRID, ID_RESOURCEEDITORADDINSTANCEBUTTON,
- ID_RESOURCEEDITORDELETEINSTANCEBUTTON, ID_RESOURCEEDITORUPINSTANCEBUTTON,
- ID_RESOURCEEDITORDOWNINSTANCEBUTTON, ID_RESOURCEEDITORADDTASKBUTTON,
- ID_RESOURCEEDITORDELETETASKBUTTON, ID_RESOURCEEDITORUPTASKBUTTON,
- ID_RESOURCEEDITORDOWNTASKBUTTON,
-] = [wx.NewId() for _init_ctrls in range(14)]
+
 
 class ResourceEditor(EditorPanel):
     
-    ID = ID_RESOURCEEDITOR
     VARIABLE_PANEL_TYPE = "resource"
-    
-    def _init_coll_InstancesSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(1)
-
-    def _init_coll_InstancesSizer_Items(self, parent):
-        parent.AddSizer(self.InstancesButtonsSizer, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.InstancesGrid, 0, border=0, flag=wx.GROW)
-
-    def _init_coll_InstancesButtonsSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(0)
-
-    def _init_coll_InstancesButtonsSizer_Items(self, parent):
-        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.ALIGN_BOTTOM)
-        parent.AddWindow(self.AddInstanceButton, 0, border=0, flag=0)
-        parent.AddWindow(self.DeleteInstanceButton, 0, border=0, flag=0)
-        parent.AddWindow(self.UpInstanceButton, 0, border=0, flag=0)
-        parent.AddWindow(self.DownInstanceButton, 0, border=0, flag=0)
-
-    def _init_coll_TasksSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(1)
-
-    def _init_coll_TasksSizer_Items(self, parent):
-        parent.AddSizer(self.TasksButtonsSizer, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.TasksGrid, 0, border=0, flag=wx.GROW)
-
-    def _init_coll_TasksButtonsSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(0)
-
-    def _init_coll_TasksButtonsSizer_Items(self, parent):
-        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.ALIGN_BOTTOM)
-        parent.AddWindow(self.AddTaskButton, 0, border=0, flag=0)
-        parent.AddWindow(self.DeleteTaskButton, 0, border=0, flag=0)
-        parent.AddWindow(self.UpTaskButton, 0, border=0, flag=0)
-        parent.AddWindow(self.DownTaskButton, 0, border=0, flag=0)
-
-    def _init_coll_MainGridSizer_Items(self, parent):
-        parent.AddSizer(self.TasksSizer, 0, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
-        parent.AddSizer(self.InstancesSizer, 0, border=5, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT)
-
-    def _init_coll_MainGridSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(0)
-        parent.AddGrowableRow(1)
-
-    def _init_sizers(self):
-        self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
-        self.InstancesSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
-        self.InstancesButtonsSizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0)
-        self.TasksSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
-        self.TasksButtonsSizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0)
-
-        self._init_coll_MainGridSizer_Growables(self.MainGridSizer)
-        self._init_coll_MainGridSizer_Items(self.MainGridSizer)
-        self._init_coll_InstancesSizer_Growables(self.InstancesSizer)
-        self._init_coll_InstancesSizer_Items(self.InstancesSizer)
-        self._init_coll_InstancesButtonsSizer_Growables(self.InstancesButtonsSizer)
-        self._init_coll_InstancesButtonsSizer_Items(self.InstancesButtonsSizer)
-        self._init_coll_TasksSizer_Growables(self.TasksSizer)
-        self._init_coll_TasksSizer_Items(self.TasksSizer)
-        self._init_coll_TasksButtonsSizer_Growables(self.TasksButtonsSizer)
-        self._init_coll_TasksButtonsSizer_Items(self.TasksButtonsSizer)
-
-        self.Editor.SetSizer(self.MainGridSizer)
-
-    def _init_Editor(self, prnt):
-        self.Editor = wx.Panel(id=ID_RESOURCEEDITORPANEL, name='ResourceEditor', parent=prnt,
-              size=wx.Size(0, 0), style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL)
-        
-        self.staticText1 = wx.StaticText(id=ID_RESOURCEEDITORSTATICTEXT1,
-              label=_(u'Tasks:'), name='staticText2', parent=self.Editor, pos=wx.Point(0,
-              0), size=wx.DefaultSize, style=0)
-
-        self.TasksGrid = CustomGrid(id=ID_RESOURCEEDITORTASKSGRID,
-              name='TasksGrid', parent=self.Editor, pos=wx.Point(0, 0), 
-              size=wx.Size(-1, -1), style=wx.VSCROLL)
-        if wx.VERSION >= (2, 6, 0):
-            self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange)
-        else:
-            wx.grid.EVT_GRID_CELL_CHANGE(self.TasksGrid, self.OnTasksGridCellChange)
-        
-        self.AddTaskButton = wx.Button(id=ID_RESOURCEEDITORADDTASKBUTTON, label=_('Add Task'),
-              name='AddTaskButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.DefaultSize, style=0)
-        
-        self.DeleteTaskButton = wx.Button(id=ID_RESOURCEEDITORDELETETASKBUTTON, label=_('Delete Task'),
-              name='DeleteTaskButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.DefaultSize, style=0)
-        
-        self.UpTaskButton = wx.Button(id=ID_RESOURCEEDITORUPTASKBUTTON, label='^',
-              name='UpTaskButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.Size(32, -1), style=0)
-        
-        self.DownTaskButton = wx.Button(id=ID_RESOURCEEDITORDOWNTASKBUTTON, label='v',
-              name='DownTaskButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.Size(32, -1), style=0)
-        
-        self.staticText2 = wx.StaticText(id=ID_RESOURCEEDITORSTATICTEXT2,
-              label=_(u'Instances:'), name='staticText1', parent=self.Editor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-
-        self.InstancesGrid = CustomGrid(id=ID_RESOURCEEDITORINSTANCESGRID,
-              name='InstancesGrid', parent=self.Editor, pos=wx.Point(0, 0), 
-              size=wx.Size(-1, -1), style=wx.VSCROLL)
-        if wx.VERSION >= (2, 6, 0):
-            self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnInstancesGridCellChange)
-        else:
-            wx.grid.EVT_GRID_CELL_CHANGE(self.InstancesGrid, self.OnInstancesGridCellChange)
-        
-        self.AddInstanceButton = wx.Button(id=ID_RESOURCEEDITORADDINSTANCEBUTTON, label=_('Add Instance'),
-              name='AddInstanceButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.DefaultSize, style=0)
-        
-        self.DeleteInstanceButton = wx.Button(id=ID_RESOURCEEDITORDELETEINSTANCEBUTTON, label=_('Delete Instance'),
-              name='DeleteInstanceButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.DefaultSize, style=0)
-        
-        self.UpInstanceButton = wx.Button(id=ID_RESOURCEEDITORUPINSTANCEBUTTON, label='^',
-              name='UpInstanceButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.Size(32, -1), style=0)
-        
-        self.DownInstanceButton = wx.Button(id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON, label='v',
-              name='DownInstanceButton', parent=self.Editor, pos=wx.Point(0, 0),
-              size=wx.Size(32, -1), style=0)
-        
-        self._init_sizers()
-
+
+    def _init_Editor(self, parent):
+        self.Editor = wx.Panel(parent, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL)
+        
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(0)
+        main_sizer.AddGrowableRow(1)
+        
+        tasks_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
+        tasks_sizer.AddGrowableCol(0)
+        tasks_sizer.AddGrowableRow(1)
+        main_sizer.AddSizer(tasks_sizer, border=5, 
+              flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        
+        tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0)
+        tasks_buttons_sizer.AddGrowableCol(0)
+        tasks_buttons_sizer.AddGrowableRow(0)
+        tasks_sizer.AddSizer(tasks_buttons_sizer, flag=wx.GROW)
+        
+        tasks_label = wx.StaticText(self.Editor, label=_(u'Tasks:'))
+        tasks_buttons_sizer.AddWindow(tasks_label, flag=wx.ALIGN_BOTTOM)
+        
+        for name, bitmap, help in [
+                ("AddTaskButton", "add_element", _("Add task")),
+                ("DeleteTaskButton", "remove_element", _("Remove task")),
+                ("UpTaskButton", "up", _("Move task up")),
+                ("DownTaskButton", "down", _("Move task down"))]:
+            button = wx.lib.buttons.GenBitmapButton(self.Editor, 
+                  bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER)
+            button.SetToolTipString(help)
+            setattr(self, name, button)
+            tasks_buttons_sizer.AddWindow(button)
+        
+        self.TasksGrid = CustomGrid(self.Editor, style=wx.VSCROLL)
+        self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange)
+        tasks_sizer.AddWindow(self.TasksGrid, flag=wx.GROW)
+        
+        instances_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
+        instances_sizer.AddGrowableCol(0)
+        instances_sizer.AddGrowableRow(1)
+        main_sizer.AddSizer(instances_sizer, border=5, 
+              flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+        instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0)
+        instances_buttons_sizer.AddGrowableCol(0)
+        instances_buttons_sizer.AddGrowableRow(0)
+        instances_sizer.AddSizer(instances_buttons_sizer, flag=wx.GROW)
+        
+        instances_label = wx.StaticText(self.Editor, label=_(u'Instances:'))
+        instances_buttons_sizer.AddWindow(instances_label, flag=wx.ALIGN_BOTTOM)
+        
+        for name, bitmap, help in [
+                ("AddInstanceButton", "add_element", _("Add instance")),
+                ("DeleteInstanceButton", "remove_element", _("Remove instance")),
+                ("UpInstanceButton", "up", _("Move instance up")),
+                ("DownInstanceButton", "down", _("Move instance down"))]:
+            button = wx.lib.buttons.GenBitmapButton(self.Editor, 
+                  bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER)
+            button.SetToolTipString(help)
+            setattr(self, name, button)
+            instances_buttons_sizer.AddWindow(button)
+        
+        self.InstancesGrid = CustomGrid(self.Editor, style=wx.VSCROLL)
+        self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, 
+              self.OnInstancesGridCellChange)
+        instances_sizer.AddWindow(self.InstancesGrid, flag=wx.GROW)
+        
+        self.Editor.SetSizer(main_sizer)
+        
     def __init__(self, parent, tagname, window, controler):
         EditorPanel.__init__(self, parent, tagname, window, controler)