788 def OnProjectTreeBeginDrag(self, event): |
788 def OnProjectTreeBeginDrag(self, event): |
789 item = event.GetItem() |
789 item = event.GetItem() |
790 if self.ProjectTree.GetPyData(item) == ITEM_POU: |
790 if self.ProjectTree.GetPyData(item) == ITEM_POU: |
791 block_name = self.ProjectTree.GetItemText(item) |
791 block_name = self.ProjectTree.GetItemText(item) |
792 block_type = self.Controler.GetPouType(block_name) |
792 block_type = self.Controler.GetPouType(block_name) |
793 data = wxTextDataObject(str((block_name, block_type))) |
793 if block_type != "program": |
794 dragSource = wxDropSource(self.ProjectTree) |
794 data = wxTextDataObject(str((block_name, block_type))) |
795 dragSource.SetData(data) |
795 dragSource = wxDropSource(self.ProjectTree) |
796 dragSource.DoDragDrop() |
796 dragSource.SetData(data) |
|
797 dragSource.DoDragDrop() |
797 |
798 |
798 def OnProjectTreeItemEndEdit(self, event): |
799 def OnProjectTreeItemEndEdit(self, event): |
799 message = None |
800 message = None |
800 abort = False |
801 abort = False |
801 new_name = event.GetLabel() |
802 new_name = event.GetLabel() |
2034 |
2035 |
2035 def Empty(self): |
2036 def Empty(self): |
2036 self.data = [] |
2037 self.data = [] |
2037 self.editors = [] |
2038 self.editors = [] |
2038 |
2039 |
|
2040 class VariableDropTarget(wx.TextDropTarget): |
|
2041 |
|
2042 def __init__(self, parent): |
|
2043 wx.TextDropTarget.__init__(self) |
|
2044 self.Parent = parent |
|
2045 |
|
2046 def OnDropText(self, x, y, data): |
|
2047 col = self.Parent.VariablesGrid.XToCol(x) |
|
2048 row = self.Parent.VariablesGrid.YToRow(y) |
|
2049 if col != wxNOT_FOUND and row != wxNOT_FOUND: |
|
2050 if self.Parent.Table.GetColLabelValue(col) != "Location": |
|
2051 return |
|
2052 try: |
|
2053 values = eval(data) |
|
2054 except: |
|
2055 values = None |
|
2056 if values and values[1] == "location": |
|
2057 dialog = wxSingleChoiceDialog(self.Parent, "Select a variable class:", "Variable class", ["Input", "Output", "Memory"], wxOK|wxCANCEL) |
|
2058 if dialog.ShowModal() == wxID_OK: |
|
2059 selected = dialog.GetSelection() |
|
2060 if selected == 0: |
|
2061 location = "%I" + values[0] |
|
2062 elif selected == 1: |
|
2063 location = "%Q" + values[0] |
|
2064 else: |
|
2065 location = "%M" + values[0] |
|
2066 self.Parent.Table.SetValue(row - 1, col, location) |
|
2067 self.Parent.Table.ResetView(self.Parent.VariablesGrid) |
|
2068 self.Parent.SaveValues() |
|
2069 dialog.Destroy() |
|
2070 |
2039 [wxID_POUEDITORPANEL, wxID_POUEDITORPANELVIEWER, |
2071 [wxID_POUEDITORPANEL, wxID_POUEDITORPANELVIEWER, |
2040 wxID_POUEDITORPANELVARIABLESGRID, wxID_POUEDITORPANELRETURNTYPE, |
2072 wxID_POUEDITORPANELVARIABLESGRID, wxID_POUEDITORPANELRETURNTYPE, |
2041 wxID_POUEDITORPANELCLASSFILTER, wxID_POUEDITORPANELADDBUTTON, |
2073 wxID_POUEDITORPANELCLASSFILTER, wxID_POUEDITORPANELADDBUTTON, |
2042 wxID_POUEDITORPANELDELETEBUTTON, wxID_POUEDITORPANELUPBUTTON, |
2074 wxID_POUEDITORPANELDELETEBUTTON, wxID_POUEDITORPANELUPBUTTON, |
2043 wxID_POUEDITORPANELDOWNBUTTON, wxID_POUEDITORPANELSTATICTEXT1, |
2075 wxID_POUEDITORPANELDOWNBUTTON, wxID_POUEDITORPANELSTATICTEXT1, |
2182 self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL, |
2214 self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL, |
2183 False, 'Sans')) |
2215 False, 'Sans')) |
2184 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnVariablesGridCellChange) |
2216 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnVariablesGridCellChange) |
2185 self.VariablesGrid.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnVariablesGridSelectCell) |
2217 self.VariablesGrid.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnVariablesGridSelectCell) |
2186 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnVariablesGridCellLeftClick) |
2218 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnVariablesGridCellLeftClick) |
|
2219 |
|
2220 self.VariablesGrid.SetDropTarget(VariableDropTarget(self)) |
2187 |
2221 |
2188 self.AddButton = wx.Button(id=wxID_POUEDITORPANELADDBUTTON, label='Add', |
2222 self.AddButton = wx.Button(id=wxID_POUEDITORPANELADDBUTTON, label='Add', |
2189 name='AddButton', parent=self, pos=wx.Point(345, 340), |
2223 name='AddButton', parent=self, pos=wx.Point(345, 340), |
2190 size=wx.Size(72, 32), style=0) |
2224 size=wx.Size(72, 32), style=0) |
2191 EVT_BUTTON(self, wxID_POUEDITORPANELADDBUTTON, self.OnAddButton) |
2225 EVT_BUTTON(self, wxID_POUEDITORPANELADDBUTTON, self.OnAddButton) |