PLCOpenEditor.py
changeset 555 b6f9d08fd69f
parent 540 82fa901a2160
child 559 984c51d1bf6b
equal deleted inserted replaced
554:08c26c62f5a7 555:b6f9d08fd69f
  2192 
  2192 
  2193     def OnAddDataTypeMenu(self, event):
  2193     def OnAddDataTypeMenu(self, event):
  2194         dialog = DataTypeDialog(self, _("Add a new data type"), _("Please enter data type name"), "", wx.OK|wx.CANCEL)
  2194         dialog = DataTypeDialog(self, _("Add a new data type"), _("Please enter data type name"), "", wx.OK|wx.CANCEL)
  2195         dialog.SetDataTypeNames(self.Controler.GetProjectDataTypeNames())
  2195         dialog.SetDataTypeNames(self.Controler.GetProjectDataTypeNames())
  2196         if dialog.ShowModal() == wx.ID_OK:
  2196         if dialog.ShowModal() == wx.ID_OK:
  2197             self.Controler.ProjectAddDataType(dialog.GetValue())
  2197             tagname = self.Controler.ProjectAddDataType(dialog.GetValue())
  2198             self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
  2198             if tagname is not None:
       
  2199                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
       
  2200                 self.EditProjectElement(ITEM_DATATYPE, tagname)
  2199         dialog.Destroy()
  2201         dialog.Destroy()
  2200 
  2202 
  2201     def GenerateAddPouFunction(self, pou_type):
  2203     def GenerateAddPouFunction(self, pou_type):
  2202         def OnAddPouMenu(event):
  2204         def OnAddPouMenu(event):
  2203             dialog = PouDialog(self, pou_type)
  2205             dialog = PouDialog(self, pou_type)
  2204             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2206             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2205             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2207             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2206             if dialog.ShowModal() == wx.ID_OK:
  2208             if dialog.ShowModal() == wx.ID_OK:
  2207                 values = dialog.GetValues()
  2209                 values = dialog.GetValues()
  2208                 self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
  2210                 tagname = self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
  2209                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
  2211                 if tagname is not None:
       
  2212                     self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
       
  2213                     self.EditProjectElement(ITEM_POU, tagname)
  2210             dialog.Destroy()
  2214             dialog.Destroy()
  2211         return OnAddPouMenu
  2215         return OnAddPouMenu
  2212 
  2216 
  2213     def GenerateAddTransitionFunction(self, pou_name):
  2217     def GenerateAddTransitionFunction(self, pou_name):
  2214         def OnAddTransitionMenu(event):
  2218         def OnAddTransitionMenu(event):
  2215             dialog = PouTransitionDialog(self)
  2219             dialog = PouTransitionDialog(self)
  2216             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2220             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2217             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pou_name))
  2221             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pou_name))
  2218             if dialog.ShowModal() == wx.ID_OK: 
  2222             if dialog.ShowModal() == wx.ID_OK: 
  2219                 values = dialog.GetValues()
  2223                 values = dialog.GetValues()
  2220                 self.Controler.ProjectAddPouTransition(pou_name, values["transitionName"], values["language"])
  2224                 tagname = self.Controler.ProjectAddPouTransition(pou_name, values["transitionName"], values["language"])
  2221                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
  2225                 if tagname is not None:
  2222                 dialog.Destroy()
  2226                     self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
       
  2227                     self.EditProjectElement(ITEM_TRANSITION, tagname)
       
  2228             dialog.Destroy()
  2223         return OnAddTransitionMenu
  2229         return OnAddTransitionMenu
  2224 
  2230 
  2225     def GenerateAddActionFunction(self, pou_name):
  2231     def GenerateAddActionFunction(self, pou_name):
  2226         def OnAddActionMenu(event):
  2232         def OnAddActionMenu(event):
  2227             dialog = PouActionDialog(self)
  2233             dialog = PouActionDialog(self)
  2228             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2234             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2229             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pou_name))
  2235             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pou_name))
  2230             if dialog.ShowModal() == wx.ID_OK:
  2236             if dialog.ShowModal() == wx.ID_OK:
  2231                 values = dialog.GetValues()
  2237                 values = dialog.GetValues()
  2232                 self.Controler.ProjectAddPouAction(pou_name, values["actionName"], values["language"])
  2238                 tagname = self.Controler.ProjectAddPouAction(pou_name, values["actionName"], values["language"])
  2233                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
  2239                 if tagname is not None:
       
  2240                     self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
       
  2241                     self.EditProjectElement(ITEM_ACTION, tagname)
  2234             dialog.Destroy()
  2242             dialog.Destroy()
  2235         return OnAddActionMenu
  2243         return OnAddActionMenu
  2236 
  2244 
  2237     def OnAddConfigurationMenu(self, event):
  2245     def OnAddConfigurationMenu(self, event):
  2238         dialog = ConfigurationNameDialog(self, _("Please enter configuration name"), _("Add new configuration"))
  2246         dialog = ConfigurationNameDialog(self, _("Please enter configuration name"), _("Add new configuration"))
  2239         dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2247         dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2240         dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2248         dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2241         if dialog.ShowModal() == wx.ID_OK:
  2249         if dialog.ShowModal() == wx.ID_OK:
  2242             value = dialog.GetValue()
  2250             value = dialog.GetValue()
  2243             self.Controler.ProjectAddConfiguration(value)
  2251             tagname = self.Controler.ProjectAddConfiguration(value)
  2244             self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
  2252             if tagname is not None:
       
  2253                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
       
  2254                 self.EditProjectElement(ITEM_CONFIGURATION, tagname)
  2245         dialog.Destroy()
  2255         dialog.Destroy()
  2246 
  2256 
  2247     def GenerateAddResourceFunction(self, config_name):
  2257     def GenerateAddResourceFunction(self, config_name):
  2248         def OnAddResourceMenu(event):
  2258         def OnAddResourceMenu(event):
  2249             dialog = ResourceNameDialog(self, _("Please enter resource name"), _("Add new resource"))
  2259             dialog = ResourceNameDialog(self, _("Please enter resource name"), _("Add new resource"))
  2250             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2260             dialog.SetPouNames(self.Controler.GetProjectPouNames())
  2251             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2261             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
  2252             if dialog.ShowModal() == wx.ID_OK:
  2262             if dialog.ShowModal() == wx.ID_OK:
  2253                 value = dialog.GetValue()
  2263                 value = dialog.GetValue()
  2254                 self.Controler.ProjectAddConfigurationResource(config_name, value)
  2264                 tagname = self.Controler.ProjectAddConfigurationResource(config_name, value)
  2255                 self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
  2265                 if tagname is not None:
       
  2266                     self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
       
  2267                     self.EditProjectElement(ITEM_RESOURCE, tagname)
  2256             dialog.Destroy()
  2268             dialog.Destroy()
  2257         return OnAddResourceMenu
  2269         return OnAddResourceMenu
  2258 
  2270 
  2259     def GenerateChangePouTypeFunction(self, name, new_type):
  2271     def GenerateChangePouTypeFunction(self, name, new_type):
  2260         def OnChangePouTypeMenu(event):
  2272         def OnChangePouTypeMenu(event):
  2261             selected = self.TypesTree.GetSelection()
  2273             selected = self.TypesTree.GetSelection()
  2262             if self.TypesTree.GetPyData(selected) == ITEM_POU: 
  2274             if self.TypesTree.GetPyData(selected) == ITEM_POU: 
  2263                 self.Controler.ProjectChangePouType(name, new_type)
  2275                 self.Controler.ProjectChangePouType(name, new_type)
  2264                 self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
  2276                 self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
  2265         return OnChangePouTypeMenu
  2277         return OnChangePouTypeMenu
  2266 
       
  2267     def OnCreatePouFromMenu(self, event):
       
  2268         selected = self.TypesTree.GetSelection()
       
  2269         if self.TypesTree.GetPyData(selected) == ITEM_POU: 
       
  2270             dialog = PouNameDialog(self, _("Please enter POU name"), _("Create a new POU from"), "", wx.OK|wx.CANCEL)
       
  2271             dialog.SetPouNames(self.Controler.GetProjectPouNames())
       
  2272             if dialog.ShowModal() == wx.ID_OK:
       
  2273                 self.Controler.ProjectCreatePouFrom(dialog.GetValue(), self.TypesTree.GetItemText(selected))
       
  2274                 self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
       
  2275 
  2278 
  2276     def OnCopyPou(self, event):
  2279     def OnCopyPou(self, event):
  2277         selected = self.TypesTree.GetSelection()
  2280         selected = self.TypesTree.GetSelection()
  2278         pou_name = self.TypesTree.GetItemText(selected)
  2281         pou_name = self.TypesTree.GetItemText(selected)
  2279         
  2282         
  2733         wx.Panel.__init__(self, id=ID_SCALINGPANEL,
  2736         wx.Panel.__init__(self, id=ID_SCALINGPANEL,
  2734               name='ScalingPanel', parent=prnt, pos=wx.Point(0, 0),
  2737               name='ScalingPanel', parent=prnt, pos=wx.Point(0, 0),
  2735               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
  2738               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
  2736         
  2739         
  2737         self.staticText1 = wx.StaticText(id=ID_SCALINGPANELSTATICTEXT1,
  2740         self.staticText1 = wx.StaticText(id=ID_SCALINGPANELSTATICTEXT1,
  2738               label=_('X Scale:'), name='staticText1', parent=self,
  2741               label=_('Horizontal:'), name='staticText1', parent=self,
  2739               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  2742               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  2740         
  2743         
  2741         self.XScale = wx.SpinCtrl(id=ID_SCALINGPANELXSCALE,
  2744         self.XScale = wx.SpinCtrl(id=ID_SCALINGPANELXSCALE,
  2742               name='XScale', parent=self, pos=wx.Point(0, 0),
  2745               name='XScale', parent=self, pos=wx.Point(0, 0),
  2743               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  2746               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  2744         
  2747         
  2745         self.staticText2 = wx.StaticText(id=ID_SCALINGPANELSTATICTEXT2,
  2748         self.staticText2 = wx.StaticText(id=ID_SCALINGPANELSTATICTEXT2,
  2746               label=_('Y Scale:'), name='staticText2', parent=self,
  2749               label=_('Vertical:'), name='staticText2', parent=self,
  2747               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  2750               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  2748         
  2751         
  2749         self.YScale = wx.SpinCtrl(id=ID_SCALINGPANELYSCALE,
  2752         self.YScale = wx.SpinCtrl(id=ID_SCALINGPANELYSCALE,
  2750               name='YScale', parent=self, pos=wx.Point(0, 0),
  2753               name='YScale', parent=self, pos=wx.Point(0, 0),
  2751               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  2754               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  3006         self.PageHeight = wx.SpinCtrl(id=ID_PROJECTDIALOGPAGEHEIGHT,
  3009         self.PageHeight = wx.SpinCtrl(id=ID_PROJECTDIALOGPAGEHEIGHT,
  3007               name='PageHeight', parent=self.GraphicsPanel, pos=wx.Point(0, 0),
  3010               name='PageHeight', parent=self.GraphicsPanel, pos=wx.Point(0, 0),
  3008               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  3011               size=wx.Size(0, 24), style=0, min=0, max=2**16)
  3009         
  3012         
  3010         self.staticText15 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT15,
  3013         self.staticText15 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT15,
  3011               label=_('Scaling:'), name='staticText15', parent=self.GraphicsPanel,
  3014               label=_('Grid Resolution:'), name='staticText15', parent=self.GraphicsPanel,
  3012               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  3015               pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
  3013         
  3016         
  3014         self.ScalingNotebook = wx.Notebook(id=ID_PROJECTDIALOGSCALINGNOTEBOOK,
  3017         self.ScalingNotebook = wx.Notebook(id=ID_PROJECTDIALOGSCALINGNOTEBOOK,
  3015               name='ScalingNotebook', parent=self.GraphicsPanel, pos=wx.Point(0,
  3018               name='ScalingNotebook', parent=self.GraphicsPanel, pos=wx.Point(0,
  3016               0), size=wx.Size(0, 0), style=0)
  3019               0), size=wx.Size(0, 0), style=0)