PLCOpenEditor.py
changeset 335 c2c6db53a04f
parent 332 555124c752ec
child 337 388a00b05b6b
equal deleted inserted replaced
334:cf0809bc5675 335:c2c6db53a04f
  1316             if self.Debug:
  1316             if self.Debug:
  1317                 self.TabsOpened.SetPageText(idx, window.GetInstancePath())
  1317                 self.TabsOpened.SetPageText(idx, window.GetInstancePath())
  1318             else:
  1318             else:
  1319                 self.TabsOpened.SetPageText(idx, "-".join(words[1:]))
  1319                 self.TabsOpened.SetPageText(idx, "-".join(words[1:]))
  1320 
  1320 
  1321     def GetTabsOpenedDClickFunction(self, window):
  1321     def GetTabsOpenedDClickFunction(self, tabctrl):
  1322         def OnTabsOpenedDClick(event):
  1322         def OnTabsOpenedDClick(event):
  1323             pane = self.AUIManager.GetPane(self.TabsOpened)
  1323             pos = event.GetPosition()
  1324             if pane.IsMaximized():
  1324             if tabctrl.TabHitTest(pos.x, pos.y, None):
  1325                 self.AUIManager.RestorePane(pane)
  1325                 pane = self.AUIManager.GetPane(self.TabsOpened)
  1326             else:
  1326                 if pane.IsMaximized():
  1327                 self.AUIManager.MaximizePane(pane)
  1327                     self.AUIManager.RestorePane(pane)
  1328             self.AUIManager.Update()
  1328                 else:
       
  1329                     self.AUIManager.MaximizePane(pane)
       
  1330                 self.AUIManager.Update()
  1329             event.Skip()
  1331             event.Skip()
  1330         return OnTabsOpenedDClick
  1332         return OnTabsOpenedDClick
  1331 
  1333 
  1332 #-------------------------------------------------------------------------------
  1334 #-------------------------------------------------------------------------------
  1333 #                         Types Tree Management Functions
  1335 #                         Types Tree Management Functions
  1690             elif elementtype == ITEM_DATATYPE:
  1692             elif elementtype == ITEM_DATATYPE:
  1691                 new_window = DataTypeEditor(self.TabsOpened, tagname, self, self.Controler)
  1693                 new_window = DataTypeEditor(self.TabsOpened, tagname, self, self.Controler)
  1692                 self.TabsOpened.AddPage(new_window, "")
  1694                 self.TabsOpened.AddPage(new_window, "")
  1693             if wx.VERSION >= (2, 6, 0):
  1695             if wx.VERSION >= (2, 6, 0):
  1694                 children = self.TabsOpened.GetChildren()
  1696                 children = self.TabsOpened.GetChildren()
  1695                 children[len(children) - 1].Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(new_window))  
  1697                 last_element = children[len(children) - 1]
       
  1698                 if isinstance(last_element, wx.aui.AuiTabCtrl):
       
  1699                     last_element.Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(last_element))  
  1696             self.VariablePanelIndexer.ChangeVariablePanel(tagname)
  1700             self.VariablePanelIndexer.ChangeVariablePanel(tagname)
  1697             openedidx = self.IsOpened(tagname)
  1701             openedidx = self.IsOpened(tagname)
  1698             old_selected = self.TabsOpened.GetSelection()
  1702             old_selected = self.TabsOpened.GetSelection()
  1699             if old_selected != openedidx:
  1703             if old_selected != openedidx:
  1700                 if old_selected >= 0:
  1704                 if old_selected >= 0:
  1914                     if bodytype == "IL":
  1918                     if bodytype == "IL":
  1915                         new_window.SetKeywords(IL_KEYWORDS)
  1919                         new_window.SetKeywords(IL_KEYWORDS)
  1916                     else:
  1920                     else:
  1917                         new_window.SetKeywords(ST_KEYWORDS)
  1921                         new_window.SetKeywords(ST_KEYWORDS)
  1918                 self.TabsOpened.AddPage(new_window, "")
  1922                 self.TabsOpened.AddPage(new_window, "")
       
  1923                 if wx.VERSION >= (2, 6, 0):
       
  1924                     children = self.TabsOpened.GetChildren()
       
  1925                     last_element = children[len(children) - 1]
       
  1926                     if isinstance(last_element, wx.aui.AuiTabCtrl):
       
  1927                         last_element.Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(last_element))  
  1919                 new_window.RefreshView()
  1928                 new_window.RefreshView()
  1920                 new_window.SetFocus()
  1929                 new_window.SetFocus()
  1921                 self.RefreshPageTitles()
  1930                 self.RefreshPageTitles()
  1922         if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE:
  1931         if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE:
  1923             var_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (")
  1932             var_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (")
  3987         message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
  3996         message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
  3988         message.ShowModal()
  3997         message.ShowModal()
  3989         message.Destroy()
  3998         message.Destroy()
  3990 
  3999 
  3991 [ID_VARIABLEEDITORPANEL, ID_VARIABLEEDITORPANELVARIABLESGRID, 
  4000 [ID_VARIABLEEDITORPANEL, ID_VARIABLEEDITORPANELVARIABLESGRID, 
  3992  ID_VARIABLEEDITORPANELRETURNTYPE, ID_VARIABLEEDITORPANELCLASSFILTER, 
  4001  ID_VARIABLEEDITORCONTROLPANEL, ID_VARIABLEEDITORPANELRETURNTYPE, 
  3993  ID_VARIABLEEDITORPANELADDBUTTON, ID_VARIABLEEDITORPANELDELETEBUTTON, 
  4002  ID_VARIABLEEDITORPANELCLASSFILTER, ID_VARIABLEEDITORPANELADDBUTTON, 
  3994  ID_VARIABLEEDITORPANELUPBUTTON, ID_VARIABLEEDITORPANELDOWNBUTTON, 
  4003  ID_VARIABLEEDITORPANELDELETEBUTTON, ID_VARIABLEEDITORPANELUPBUTTON, 
  3995  ID_VARIABLEEDITORPANELSTATICTEXT1, ID_VARIABLEEDITORPANELSTATICTEXT2, 
  4004  ID_VARIABLEEDITORPANELDOWNBUTTON, ID_VARIABLEEDITORPANELSTATICTEXT1, 
  3996  ID_VARIABLEEDITORPANELSTATICTEXT3,
  4005  ID_VARIABLEEDITORPANELSTATICTEXT2, ID_VARIABLEEDITORPANELSTATICTEXT3,
  3997 ] = [wx.NewId() for _init_ctrls in range(11)]
  4006 ] = [wx.NewId() for _init_ctrls in range(12)]
  3998 
  4007 
  3999 class VariablePanel(wx.Panel):
  4008 class VariablePanel(wx.Panel):
  4000     
  4009     
  4001     if wx.VERSION < (2, 6, 0):
  4010     if wx.VERSION < (2, 6, 0):
  4002         def Bind(self, event, function, id = None):
  4011         def Bind(self, event, function, id = None):
  4005             else:
  4014             else:
  4006                 event(self, function)
  4015                 event(self, function)
  4007     
  4016     
  4008     def _init_coll_MainSizer_Items(self, parent):
  4017     def _init_coll_MainSizer_Items(self, parent):
  4009         parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW)
  4018         parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW)
  4010         parent.AddSizer(self.ControlPanelSizer, 0, border=5, flag=wx.GROW|wx.ALL)
  4019         parent.AddWindow(self.ControlPanel, 0, border=5, flag=wx.GROW|wx.ALL)
  4011     
  4020     
  4012     def _init_coll_MainSizer_Growables(self, parent):
  4021     def _init_coll_MainSizer_Growables(self, parent):
  4013         parent.AddGrowableCol(0)
  4022         parent.AddGrowableCol(0)
  4014         parent.AddGrowableRow(0)
  4023         parent.AddGrowableRow(0)
  4015     
  4024     
  4054         self._init_coll_ChoicePanelSizer_Items(self.ChoicePanelSizer)
  4063         self._init_coll_ChoicePanelSizer_Items(self.ChoicePanelSizer)
  4055         self._init_coll_ButtonPanelSizer_Items(self.ButtonPanelSizer)
  4064         self._init_coll_ButtonPanelSizer_Items(self.ButtonPanelSizer)
  4056         self._init_coll_ButtonPanelSizer_Growables(self.ButtonPanelSizer)
  4065         self._init_coll_ButtonPanelSizer_Growables(self.ButtonPanelSizer)
  4057         
  4066         
  4058         self.SetSizer(self.MainSizer)
  4067         self.SetSizer(self.MainSizer)
       
  4068         self.ControlPanel.SetSizer(self.ControlPanelSizer)
  4059 
  4069 
  4060     def _init_ctrls(self, prnt):
  4070     def _init_ctrls(self, prnt):
  4061         wx.Panel.__init__(self, id=ID_VARIABLEEDITORPANEL,
  4071         wx.Panel.__init__(self, id=ID_VARIABLEEDITORPANEL,
  4062               name='VariableEditorPanel', parent=prnt, pos=wx.Point(0, 0),
  4072               name='VariableEditorPanel', parent=prnt, pos=wx.Point(0, 0),
  4063               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
  4073               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
  4064         
       
  4065         self.staticText1 = wx.StaticText(id=ID_VARIABLEEDITORPANELSTATICTEXT1,
       
  4066               label='Return Type:', name='staticText1', parent=self,
       
  4067               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
       
  4068 
       
  4069         self.ReturnType = wx.ComboBox(id=ID_VARIABLEEDITORPANELRETURNTYPE,
       
  4070               name='ReturnType', parent=self, pos=wx.Point(0, 0),
       
  4071               size=wx.Size(145, 24), style=wx.CB_READONLY)
       
  4072         self.Bind(wx.EVT_COMBOBOX, self.OnReturnTypeChanged, id=ID_VARIABLEEDITORPANELRETURNTYPE)
       
  4073 
       
  4074         self.staticText2 = wx.StaticText(id=ID_VARIABLEEDITORPANELSTATICTEXT2,
       
  4075               label='Class Filter:', name='staticText2', parent=self,
       
  4076               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
       
  4077 
       
  4078         self.ClassFilter = wx.ComboBox(id=ID_VARIABLEEDITORPANELCLASSFILTER,
       
  4079               name='ClassFilter', parent=self, pos=wx.Point(0, 0),
       
  4080               size=wx.Size(145, 24), style=wx.CB_READONLY)
       
  4081         self.Bind(wx.EVT_COMBOBOX, self.OnClassFilter, id=ID_VARIABLEEDITORPANELCLASSFILTER)
       
  4082 
  4074 
  4083         self.VariablesGrid = wx.grid.Grid(id=ID_VARIABLEEDITORPANELVARIABLESGRID,
  4075         self.VariablesGrid = wx.grid.Grid(id=ID_VARIABLEEDITORPANELVARIABLESGRID,
  4084               name='VariablesGrid', parent=self, pos=wx.Point(0, 0), 
  4076               name='VariablesGrid', parent=self, pos=wx.Point(0, 0), 
  4085               size=wx.Size(0, 150), style=wx.VSCROLL)
  4077               size=wx.Size(0, 150), style=wx.VSCROLL)
  4086         self.VariablesGrid.SetFont(wx.Font(12, 77, wx.NORMAL, wx.NORMAL, False,
  4078         self.VariablesGrid.SetFont(wx.Font(12, 77, wx.NORMAL, wx.NORMAL, False,
  4099             wx.grid.EVT_GRID_SELECT_CELL(self.VariablesGrid, self.OnVariablesGridSelectCell)
  4091             wx.grid.EVT_GRID_SELECT_CELL(self.VariablesGrid, self.OnVariablesGridSelectCell)
  4100             wx.grid.EVT_GRID_CELL_LEFT_CLICK(self.VariablesGrid, self.OnVariablesGridCellLeftClick)
  4092             wx.grid.EVT_GRID_CELL_LEFT_CLICK(self.VariablesGrid, self.OnVariablesGridCellLeftClick)
  4101             wx.grid.EVT_GRID_EDITOR_SHOWN(self.VariablesGrid, self.OnVariablesGridEditorShown)
  4093             wx.grid.EVT_GRID_EDITOR_SHOWN(self.VariablesGrid, self.OnVariablesGridEditorShown)
  4102         self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
  4094         self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
  4103         
  4095         
       
  4096         self.ControlPanel = wx.ScrolledWindow(id=ID_VARIABLEEDITORCONTROLPANEL,
       
  4097               name='ControlPanel', parent=self, pos=wx.Point(0, 0),
       
  4098               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
       
  4099         self.ControlPanel.SetScrollRate(0, 10)
       
  4100         
       
  4101         self.staticText1 = wx.StaticText(id=ID_VARIABLEEDITORPANELSTATICTEXT1,
       
  4102               label='Return Type:', name='staticText1', parent=self.ControlPanel,
       
  4103               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
       
  4104 
       
  4105         self.ReturnType = wx.ComboBox(id=ID_VARIABLEEDITORPANELRETURNTYPE,
       
  4106               name='ReturnType', parent=self.ControlPanel, pos=wx.Point(0, 0),
       
  4107               size=wx.Size(145, 24), style=wx.CB_READONLY)
       
  4108         self.Bind(wx.EVT_COMBOBOX, self.OnReturnTypeChanged, id=ID_VARIABLEEDITORPANELRETURNTYPE)
       
  4109 
       
  4110         self.staticText2 = wx.StaticText(id=ID_VARIABLEEDITORPANELSTATICTEXT2,
       
  4111               label='Class Filter:', name='staticText2', parent=self.ControlPanel,
       
  4112               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
       
  4113 
       
  4114         self.ClassFilter = wx.ComboBox(id=ID_VARIABLEEDITORPANELCLASSFILTER,
       
  4115               name='ClassFilter', parent=self.ControlPanel, pos=wx.Point(0, 0),
       
  4116               size=wx.Size(145, 24), style=wx.CB_READONLY)
       
  4117         self.Bind(wx.EVT_COMBOBOX, self.OnClassFilter, id=ID_VARIABLEEDITORPANELCLASSFILTER)
       
  4118 
  4104         self.AddButton = wx.Button(id=ID_VARIABLEEDITORPANELADDBUTTON, label='Add',
  4119         self.AddButton = wx.Button(id=ID_VARIABLEEDITORPANELADDBUTTON, label='Add',
  4105               name='AddButton', parent=self, pos=wx.Point(0, 0),
  4120               name='AddButton', parent=self.ControlPanel, pos=wx.Point(0, 0),
  4106               size=wx.Size(72, 32), style=0)
  4121               size=wx.Size(72, 32), style=0)
  4107         self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_VARIABLEEDITORPANELADDBUTTON)
  4122         self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_VARIABLEEDITORPANELADDBUTTON)
  4108 
  4123 
  4109         self.DeleteButton = wx.Button(id=ID_VARIABLEEDITORPANELDELETEBUTTON, label='Delete',
  4124         self.DeleteButton = wx.Button(id=ID_VARIABLEEDITORPANELDELETEBUTTON, label='Delete',
  4110               name='DeleteButton', parent=self, pos=wx.Point(0, 0),
  4125               name='DeleteButton', parent=self.ControlPanel, pos=wx.Point(0, 0),
  4111               size=wx.Size(72, 32), style=0)
  4126               size=wx.Size(72, 32), style=0)
  4112         self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_VARIABLEEDITORPANELDELETEBUTTON)
  4127         self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_VARIABLEEDITORPANELDELETEBUTTON)
  4113 
  4128 
  4114         self.UpButton = wx.Button(id=ID_VARIABLEEDITORPANELUPBUTTON, label='^',
  4129         self.UpButton = wx.Button(id=ID_VARIABLEEDITORPANELUPBUTTON, label='^',
  4115               name='UpButton', parent=self, pos=wx.Point(0, 0),
  4130               name='UpButton', parent=self.ControlPanel, pos=wx.Point(0, 0),
  4116               size=wx.Size(32, 32), style=0)
  4131               size=wx.Size(32, 32), style=0)
  4117         self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_VARIABLEEDITORPANELUPBUTTON)
  4132         self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_VARIABLEEDITORPANELUPBUTTON)
  4118 
  4133 
  4119         self.DownButton = wx.Button(id=ID_VARIABLEEDITORPANELDOWNBUTTON, label='v',
  4134         self.DownButton = wx.Button(id=ID_VARIABLEEDITORPANELDOWNBUTTON, label='v',
  4120               name='DownButton', parent=self, pos=wx.Point(0, 0),
  4135               name='DownButton', parent=self.ControlPanel, pos=wx.Point(0, 0),
  4121               size=wx.Size(32, 32), style=0)
  4136               size=wx.Size(32, 32), style=0)
  4122         self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_VARIABLEEDITORPANELDOWNBUTTON)
  4137         self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_VARIABLEEDITORPANELDOWNBUTTON)
  4123 
  4138 
  4124         self._init_sizers()
  4139         self._init_sizers()
  4125 
  4140