359 self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE, |
359 self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE, |
360 name='treeCtrl1', parent=self, pos=wx.Point(0, 0), |
360 name='treeCtrl1', parent=self, pos=wx.Point(0, 0), |
361 size=wx.Size(200, -1), |
361 size=wx.Size(200, -1), |
362 style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
362 style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
363 self.AUIManager.AddPane(self.ProjectTree, wx.aui.AuiPaneInfo().Caption("Project Tree").Left().Layer(1).BestSize(wx.Size(200, 500)).CloseButton(False)) |
363 self.AUIManager.AddPane(self.ProjectTree, wx.aui.AuiPaneInfo().Caption("Project Tree").Left().Layer(1).BestSize(wx.Size(200, 500)).CloseButton(False)) |
364 if wx.VERSION >= (2, 6, 0): |
364 if wx.Platform == '__WXMSW__': |
365 self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp) |
365 self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnProjectTreeRightUp, |
366 self.ProjectTree.Bind(wx.EVT_LEFT_UP, self.OnProjectTreeLeftUp) |
366 id=ID_PLCOPENEDITORPROJECTTREE) |
367 else: |
367 self.Bind(wx.EVT_TREE_ITEM_CHANGED, self.OnProjectTreeItemSelected, |
368 wx.EVT_RIGHT_UP(self.ProjectTree, self.OnProjectTreeRightUp) |
368 id=ID_PLCOPENEDITORPROJECTTREE) |
369 wx.EVT_LEFT_UP(self.ProjectTree, self.OnProjectTreeLeftUp) |
369 else: |
|
370 if wx.VERSION >= (2, 6, 0): |
|
371 self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp) |
|
372 self.ProjectTree.Bind(wx.EVT_LEFT_UP, self.OnProjectTreeLeftUp) |
|
373 else: |
|
374 wx.EVT_RIGHT_UP(self.ProjectTree, self.OnProjectTreeRightUp) |
|
375 wx.EVT_LEFT_UP(self.ProjectTree, self.OnProjectTreeLeftUp) |
|
376 self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnProjectTreeItemChanging, |
|
377 id=ID_PLCOPENEDITORPROJECTTREE) |
370 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag, |
378 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag, |
371 id=ID_PLCOPENEDITORPROJECTTREE) |
379 id=ID_PLCOPENEDITORPROJECTTREE) |
372 self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit, |
380 self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit, |
373 id=ID_PLCOPENEDITORPROJECTTREE) |
381 id=ID_PLCOPENEDITORPROJECTTREE) |
374 self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit, |
382 self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit, |
375 id=ID_PLCOPENEDITORPROJECTTREE) |
383 id=ID_PLCOPENEDITORPROJECTTREE) |
376 self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated, |
384 self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated, |
377 id=ID_PLCOPENEDITORPROJECTTREE) |
|
378 self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnProjectTreeItemChanging, |
|
379 id=ID_PLCOPENEDITORPROJECTTREE) |
385 id=ID_PLCOPENEDITORPROJECTTREE) |
380 |
386 |
381 if wx.VERSION < (2, 8, 0): |
387 if wx.VERSION < (2, 8, 0): |
382 self.ToolBar = self.CreateToolBar(wx.TB_HORIZONTAL|wx.TB_FLAT|wx.NO_BORDER, |
388 self.ToolBar = self.CreateToolBar(wx.TB_HORIZONTAL|wx.TB_FLAT|wx.NO_BORDER, |
383 ID_PLCOPENEDITORTOOLBAR, 'ToolBar') |
389 ID_PLCOPENEDITORTOOLBAR, 'ToolBar') |
1006 found = self.SelectProjectTreeItem(item, items) |
1012 found = self.SelectProjectTreeItem(item, items) |
1007 item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie) |
1013 item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie) |
1008 return found |
1014 return found |
1009 |
1015 |
1010 def OnProjectTreeBeginDrag(self, event): |
1016 def OnProjectTreeBeginDrag(self, event): |
|
1017 if wx.Platform == '__WXMSW__': |
|
1018 self.SelectItem = event.Skip() |
1011 if self.SelectedItem is not None and self.ProjectTree.GetPyData(self.SelectedItem) == ITEM_POU: |
1019 if self.SelectedItem is not None and self.ProjectTree.GetPyData(self.SelectedItem) == ITEM_POU: |
1012 block_name = self.ProjectTree.GetItemText(self.SelectedItem) |
1020 block_name = self.ProjectTree.GetItemText(self.SelectedItem) |
1013 block_type = self.Controler.GetPouType(block_name) |
1021 block_type = self.Controler.GetPouType(block_name) |
1014 if block_type != "program": |
1022 if block_type != "program": |
1015 data = wx.TextDataObject(str((block_name, block_type, ""))) |
1023 data = wx.TextDataObject(str((block_name, block_type, ""))) |
1189 elif data == ITEM_ACTION: |
1197 elif data == ITEM_ACTION: |
1190 tagname = self.Controler.ComputePouActionName(pou_name, name) |
1198 tagname = self.Controler.ComputePouActionName(pou_name, name) |
1191 self.EditProjectElement(data, tagname) |
1199 self.EditProjectElement(data, tagname) |
1192 event.Skip() |
1200 event.Skip() |
1193 |
1201 |
|
1202 def ProjectTreeItemSelect(self, select_item): |
|
1203 name = self.ProjectTree.GetItemText(select_item) |
|
1204 data = self.ProjectTree.GetPyData(select_item) |
|
1205 if data == ITEM_DATATYPE: |
|
1206 self.EditProjectElement(data, self.Controler.ComputeDataTypeName(name), True) |
|
1207 elif data == ITEM_POU: |
|
1208 self.EditProjectElement(data, self.Controler.ComputePouName(name), True) |
|
1209 elif data == ITEM_CONFIGURATION: |
|
1210 self.EditProjectElement(data, self.Controler.ComputeConfigurationName(name), True) |
|
1211 elif data == ITEM_RESOURCE: |
|
1212 item = self.ProjectTree.GetItemParent(select_item) |
|
1213 item_type = self.ProjectTree.GetPyData(item) |
|
1214 while item_type != ITEM_CONFIGURATION: |
|
1215 item = self.ProjectTree.GetItemParent(item) |
|
1216 item_type = self.ProjectTree.GetPyData(item) |
|
1217 config_name = self.ProjectTree.GetItemText(item) |
|
1218 self.EditProjectElement(data, self.Controler.ComputeConfigurationResourceName(config_name, name), True) |
|
1219 elif data in [ITEM_TRANSITION, ITEM_ACTION]: |
|
1220 item = self.ProjectTree.GetItemParent(select_Item) |
|
1221 item_type = self.ProjectTree.GetPyData(item) |
|
1222 while item_type != ITEM_POU: |
|
1223 item = self.ProjectTree.GetItemParent(item) |
|
1224 item_type = self.ProjectTree.GetPyData(item) |
|
1225 pou_name = self.ProjectTree.GetItemText(item) |
|
1226 if data == ITEM_TRANSITION: |
|
1227 tagname = self.Controler.ComputePouTransitionName(pou_name, name) |
|
1228 elif data == ITEM_ACTION: |
|
1229 tagname = self.Controler.ComputePouActionName(pou_name, name) |
|
1230 self.EditProjectElement(data, tagname, True) |
|
1231 |
1194 def OnProjectTreeLeftUp(self, event): |
1232 def OnProjectTreeLeftUp(self, event): |
1195 if self.SelectedItem is not None: |
1233 if self.SelectedItem is not None: |
1196 self.ProjectTree.SelectItem(self.SelectedItem) |
1234 self.ProjectTree.SelectItem(self.SelectedItem) |
1197 name = self.ProjectTree.GetItemText(self.SelectedItem) |
1235 self.ProjectTreeItemSelect(self.SelectedItem) |
1198 data = self.ProjectTree.GetPyData(self.SelectedItem) |
|
1199 if data == ITEM_DATATYPE: |
|
1200 self.EditProjectElement(data, self.Controler.ComputeDataTypeName(name), True) |
|
1201 elif data == ITEM_POU: |
|
1202 self.EditProjectElement(data, self.Controler.ComputePouName(name), True) |
|
1203 elif data == ITEM_CONFIGURATION: |
|
1204 self.EditProjectElement(data, self.Controler.ComputeConfigurationName(name), True) |
|
1205 elif data == ITEM_RESOURCE: |
|
1206 item = self.ProjectTree.GetItemParent(self.SelectedItem) |
|
1207 item_type = self.ProjectTree.GetPyData(item) |
|
1208 while item_type != ITEM_CONFIGURATION: |
|
1209 item = self.ProjectTree.GetItemParent(item) |
|
1210 item_type = self.ProjectTree.GetPyData(item) |
|
1211 config_name = self.ProjectTree.GetItemText(item) |
|
1212 self.EditProjectElement(data, self.Controler.ComputeConfigurationResourceName(config_name, name), True) |
|
1213 elif data in [ITEM_TRANSITION, ITEM_ACTION]: |
|
1214 item = self.ProjectTree.GetItemParent(self.SelectedItem) |
|
1215 item_type = self.ProjectTree.GetPyData(item) |
|
1216 while item_type != ITEM_POU: |
|
1217 item = self.ProjectTree.GetItemParent(item) |
|
1218 item_type = self.ProjectTree.GetPyData(item) |
|
1219 pou_name = self.ProjectTree.GetItemText(item) |
|
1220 if data == ITEM_TRANSITION: |
|
1221 tagname = self.Controler.ComputePouTransitionName(pou_name, name) |
|
1222 elif data == ITEM_ACTION: |
|
1223 tagname = self.Controler.ComputePouActionName(pou_name, name) |
|
1224 self.EditProjectElement(data, tagname, True) |
|
1225 wx.CallAfter(self.ResetSelectedItem) |
1236 wx.CallAfter(self.ResetSelectedItem) |
|
1237 event.Skip() |
|
1238 |
|
1239 def OnProjectTreeItemSelected(self, event): |
|
1240 self.ProjectTreeItemSelect(event.GetItem()) |
1226 event.Skip() |
1241 event.Skip() |
1227 |
1242 |
1228 def OnProjectTreeItemChanging(self, event): |
1243 def OnProjectTreeItemChanging(self, event): |
1229 if self.ProjectTree.GetPyData(event.GetItem()) != ITEM_UNEDITABLE and self.SelectedItem is None: |
1244 if self.ProjectTree.GetPyData(event.GetItem()) != ITEM_UNEDITABLE and self.SelectedItem is None: |
1230 self.SelectedItem = event.GetItem() |
1245 self.SelectedItem = event.GetItem() |
3194 var_class = self.Table.GetValueByName(row, "Class") |
3209 var_class = self.Table.GetValueByName(row, "Class") |
3195 var_type = self.Table.GetValueByName(row, "Type") |
3210 var_type = self.Table.GetValueByName(row, "Type") |
3196 data = wx.TextDataObject(str((var_name, var_class, var_type, self.TagName))) |
3211 data = wx.TextDataObject(str((var_name, var_class, var_type, self.TagName))) |
3197 dragSource = wx.DropSource(self.VariablesGrid) |
3212 dragSource = wx.DropSource(self.VariablesGrid) |
3198 dragSource.SetData(data) |
3213 dragSource.SetData(data) |
3199 print dragSource.DoDragDrop() |
|
3200 event.Skip() |
3214 event.Skip() |
3201 |
3215 |
3202 def OnVariablesGridSelectCell(self, event): |
3216 def OnVariablesGridSelectCell(self, event): |
3203 wx.CallAfter(self.RefreshButtons) |
3217 wx.CallAfter(self.RefreshButtons) |
3204 event.Skip() |
3218 event.Skip() |