PLCOpenEditor.py
changeset 575 a7c706b9492e
parent 571 79af7b821233
child 577 9dbb79722fbc
equal deleted inserted replaced
574:8c525217ef1f 575:a7c706b9492e
   152  ID_PLCOPENEDITORTOOLBARPOWERRAIL, ID_PLCOPENEDITORTOOLBARRUNG,
   152  ID_PLCOPENEDITORTOOLBARPOWERRAIL, ID_PLCOPENEDITORTOOLBARRUNG,
   153  ID_PLCOPENEDITORTOOLBARCOIL, ID_PLCOPENEDITORTOOLBARCONTACT,
   153  ID_PLCOPENEDITORTOOLBARCOIL, ID_PLCOPENEDITORTOOLBARCONTACT,
   154  ID_PLCOPENEDITORTOOLBARBRANCH, ID_PLCOPENEDITORTOOLBARINITIALSTEP,
   154  ID_PLCOPENEDITORTOOLBARBRANCH, ID_PLCOPENEDITORTOOLBARINITIALSTEP,
   155  ID_PLCOPENEDITORTOOLBARSTEP, ID_PLCOPENEDITORTOOLBARTRANSITION,
   155  ID_PLCOPENEDITORTOOLBARSTEP, ID_PLCOPENEDITORTOOLBARTRANSITION,
   156  ID_PLCOPENEDITORTOOLBARACTIONBLOCK, ID_PLCOPENEDITORTOOLBARDIVERGENCE,
   156  ID_PLCOPENEDITORTOOLBARACTIONBLOCK, ID_PLCOPENEDITORTOOLBARDIVERGENCE,
   157  ID_PLCOPENEDITORTOOLBARJUMP,
   157  ID_PLCOPENEDITORTOOLBARJUMP, ID_PLCOPENEDITORTOOLBARMOTION, 
   158 ] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(17)]
   158 ] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(18)]
   159 
   159 
   160 # Define behaviour of each Toolbar item according to current POU body type 
   160 # Define behaviour of each Toolbar item according to current POU body type 
   161 # Informations meaning are in this order:
   161 # Informations meaning are in this order:
   162 #  - Item is toggled
   162 #  - Item is toggled
   163 #  - PLCOpenEditor mode where item is displayed (could be more then one)
   163 #  - PLCOpenEditor mode where item is displayed (could be more then one)
   165 #  - Item callback function name
   165 #  - Item callback function name
   166 #  - Item icon filename
   166 #  - Item icon filename
   167 #  - Item tooltip text
   167 #  - Item tooltip text
   168 ToolBarItems = {
   168 ToolBarItems = {
   169     "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
   169     "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
       
   170               ID_PLCOPENEDITORTOOLBARMOTION, "OnMotionTool",
       
   171               "move.png", _("Move the view")),
       
   172              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
   170               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool",
   173               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool",
   171               "add_comment.png", _("Create a new comment")),
   174               "add_comment.png", _("Create a new comment")),
   172              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
   175              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
   173               ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool",
   176               ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool",
   174               "add_variable.png", _("Create a new variable")),
   177               "add_variable.png", _("Create a new variable")),
   176               ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool",
   179               ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool",
   177               "add_block.png", _("Create a new block")),
   180               "add_block.png", _("Create a new block")),
   178              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   181              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   179               ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", 
   182               ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", 
   180               "add_connection.png", _("Create a new connection"))],
   183               "add_connection.png", _("Create a new connection"))],
   181     "LD"  : [(True, FREEDRAWING_MODE, 
   184     "LD"  : [((True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
       
   185               ID_PLCOPENEDITORTOOLBARMOTION, "OnMotionTool",
       
   186               "move.png", _("Move the view")),
       
   187              True, FREEDRAWING_MODE, 
   182               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", 
   188               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", 
   183               "add_comment.png", _("Create a new comment")),
   189               "add_comment.png", _("Create a new comment")),
   184              (True, FREEDRAWING_MODE, 
   190              (True, FREEDRAWING_MODE, 
   185               ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", 
   191               ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", 
   186               "add_powerrail.png", _("Create a new power rail")),
   192               "add_powerrail.png", _("Create a new power rail")),
   203               ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", 
   209               ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", 
   204               "add_block.png", _("Create a new block")),
   210               "add_block.png", _("Create a new block")),
   205              (True, FREEDRAWING_MODE, 
   211              (True, FREEDRAWING_MODE, 
   206               ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", 
   212               ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", 
   207               "add_connection.png", _("Create a new connection"))],
   213               "add_connection.png", _("Create a new connection"))],
   208     "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   214     "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
       
   215               ID_PLCOPENEDITORTOOLBARMOTION, "OnMotionTool",
       
   216               "move.png", _("Move the view")),
       
   217              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   209               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", 
   218               ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", 
   210               "add_comment.png", _("Create a new comment")),
   219               "add_comment.png", _("Create a new comment")),
   211              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   220              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, 
   212               ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", 
   221               ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", 
   213               "add_initial_step.png", _("Create a new initial step")),
   222               "add_initial_step.png", _("Create a new initial step")),
   593             self.ToolBar.SetToolBitmapSize(wx.Size(25, 25))
   602             self.ToolBar.SetToolBitmapSize(wx.Size(25, 25))
   594             self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
   603             self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
   595                   wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, _("Select an object"))
   604                   wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, _("Select an object"))
   596             self.ToolBar.Realize()
   605             self.ToolBar.Realize()
   597             
   606             
   598             self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
   607         self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
   599                   id=ID_PLCOPENEDITORTOOLBARSELECTION)
   608               id=ID_PLCOPENEDITORTOOLBARSELECTION)
   600         
   609         
   601         self.VariablePanelIndexer = VariablePanelIndexer(self.BottomNoteBook, self)
   610         self.VariablePanelIndexer = VariablePanelIndexer(self.BottomNoteBook, self)
   602         self.BottomNoteBook.AddPage(self.VariablePanelIndexer, _("Variables"))
   611         self.BottomNoteBook.AddPage(self.VariablePanelIndexer, _("Variables"))
   603 
   612 
   604         self.SearchResultPanel = SearchResultPanel(self.BottomNoteBook, self)
   613         self.SearchResultPanel = SearchResultPanel(self.BottomNoteBook, self)
  2081 
  2090 
  2082     def OnSelectionTool(self, event):
  2091     def OnSelectionTool(self, event):
  2083         selected = self.TabsOpened.GetSelection()
  2092         selected = self.TabsOpened.GetSelection()
  2084         if selected != -1:
  2093         if selected != -1:
  2085             self.TabsOpened.GetPage(selected).SetMode(MODE_SELECTION)
  2094             self.TabsOpened.GetPage(selected).SetMode(MODE_SELECTION)
  2086         event.Skip()
  2095     
       
  2096     def OnMotionTool(self, event):
       
  2097         selected = self.TabsOpened.GetSelection()
       
  2098         if selected != -1:
       
  2099             self.TabsOpened.GetPage(selected).SetMode(MODE_MOTION)
  2087     
  2100     
  2088     def OnCommentTool(self, event):
  2101     def OnCommentTool(self, event):
  2089         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCOMMENT)
  2102         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCOMMENT)
  2090         selected = self.TabsOpened.GetSelection()
  2103         selected = self.TabsOpened.GetSelection()
  2091         if selected != -1:
  2104         if selected != -1:
  2092             self.TabsOpened.GetPage(selected).SetMode(MODE_COMMENT)
  2105             self.TabsOpened.GetPage(selected).SetMode(MODE_COMMENT)
  2093         event.Skip()
       
  2094     
  2106     
  2095     def OnVariableTool(self, event):
  2107     def OnVariableTool(self, event):
  2096         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARVARIABLE)
  2108         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARVARIABLE)
  2097         selected = self.TabsOpened.GetSelection()
  2109         selected = self.TabsOpened.GetSelection()
  2098         if selected != -1:
  2110         if selected != -1:
  2099             self.TabsOpened.GetPage(selected).SetMode(MODE_VARIABLE)
  2111             self.TabsOpened.GetPage(selected).SetMode(MODE_VARIABLE)
  2100         event.Skip()
       
  2101     
  2112     
  2102     def OnBlockTool(self, event):
  2113     def OnBlockTool(self, event):
  2103         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARBLOCK)
  2114         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARBLOCK)
  2104         selected = self.TabsOpened.GetSelection()
  2115         selected = self.TabsOpened.GetSelection()
  2105         if selected != -1:
  2116         if selected != -1:
  2106             self.TabsOpened.GetPage(selected).SetMode(MODE_BLOCK)
  2117             self.TabsOpened.GetPage(selected).SetMode(MODE_BLOCK)
  2107         event.Skip()
       
  2108         
  2118         
  2109     def OnConnectionTool(self, event):
  2119     def OnConnectionTool(self, event):
  2110         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCONNECTION)
  2120         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCONNECTION)
  2111         selected = self.TabsOpened.GetSelection()
  2121         selected = self.TabsOpened.GetSelection()
  2112         if selected != -1:
  2122         if selected != -1:
  2113             self.TabsOpened.GetPage(selected).SetMode(MODE_CONNECTION)
  2123             self.TabsOpened.GetPage(selected).SetMode(MODE_CONNECTION)
  2114         event.Skip()
  2124     
  2115 
       
  2116     def OnPowerRailTool(self, event):
  2125     def OnPowerRailTool(self, event):
  2117         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARPOWERRAIL)
  2126         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARPOWERRAIL)
  2118         selected = self.TabsOpened.GetSelection()
  2127         selected = self.TabsOpened.GetSelection()
  2119         if selected != -1:
  2128         if selected != -1:
  2120             self.TabsOpened.GetPage(selected).SetMode(MODE_POWERRAIL)
  2129             self.TabsOpened.GetPage(selected).SetMode(MODE_POWERRAIL)
  2121         event.Skip()
  2130     
  2122 
       
  2123     def OnRungTool(self, event):
  2131     def OnRungTool(self, event):
  2124         selected = self.TabsOpened.GetSelection()
  2132         selected = self.TabsOpened.GetSelection()
  2125         if selected != -1:
  2133         if selected != -1:
  2126             self.TabsOpened.GetPage(selected).AddLadderRung()
  2134             self.TabsOpened.GetPage(selected).AddLadderRung()
  2127         event.Skip()
  2135         event.Skip()
  2140         if selected != -1:
  2148         if selected != -1:
  2141             if self.DrawingMode == FREEDRAWING_MODE:
  2149             if self.DrawingMode == FREEDRAWING_MODE:
  2142                 self.TabsOpened.GetPage(selected).SetMode(MODE_CONTACT)
  2150                 self.TabsOpened.GetPage(selected).SetMode(MODE_CONTACT)
  2143             else:
  2151             else:
  2144                 self.TabsOpened.GetPage(selected).AddLadderContact()
  2152                 self.TabsOpened.GetPage(selected).AddLadderContact()
  2145         event.Skip()
       
  2146     
  2153     
  2147     def OnBranchTool(self, event): 
  2154     def OnBranchTool(self, event): 
  2148         selected = self.TabsOpened.GetSelection()
  2155         selected = self.TabsOpened.GetSelection()
  2149         if selected != -1:
  2156         if selected != -1:
  2150             self.TabsOpened.GetPage(selected).AddLadderBranch()
  2157             self.TabsOpened.GetPage(selected).AddLadderBranch()
  2151         event.Skip()    
       
  2152     
  2158     
  2153     def OnInitialStepTool(self, event):
  2159     def OnInitialStepTool(self, event):
  2154         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARINITIALSTEP)
  2160         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARINITIALSTEP)
  2155         selected = self.TabsOpened.GetSelection()
  2161         selected = self.TabsOpened.GetSelection()
  2156         if selected != -1:
  2162         if selected != -1:
  2157             self.TabsOpened.GetPage(selected).SetMode(MODE_INITIALSTEP)
  2163             self.TabsOpened.GetPage(selected).SetMode(MODE_INITIALSTEP)
  2158         event.Skip()
       
  2159     
  2164     
  2160     def OnStepTool(self, event):
  2165     def OnStepTool(self, event):
  2161         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2166         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2162             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARSTEP)
  2167             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARSTEP)
  2163         selected = self.TabsOpened.GetSelection()
  2168         selected = self.TabsOpened.GetSelection()
  2164         if selected != -1:
  2169         if selected != -1:
  2165             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2170             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2166                 self.TabsOpened.GetPage(selected).SetMode(MODE_STEP)
  2171                 self.TabsOpened.GetPage(selected).SetMode(MODE_STEP)
  2167             else:
  2172             else:
  2168                 self.TabsOpened.GetPage(selected).AddStep()
  2173                 self.TabsOpened.GetPage(selected).AddStep()
  2169         event.Skip()
  2174     
  2170 
       
  2171     def OnActionBlockTool(self, event):
  2175     def OnActionBlockTool(self, event):
  2172         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2176         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2173             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARACTIONBLOCK)
  2177             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARACTIONBLOCK)
  2174         selected = self.TabsOpened.GetSelection()
  2178         selected = self.TabsOpened.GetSelection()
  2175         if selected != -1:
  2179         if selected != -1:
  2176             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2180             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2177                 self.TabsOpened.GetPage(selected).SetMode(MODE_ACTION)
  2181                 self.TabsOpened.GetPage(selected).SetMode(MODE_ACTION)
  2178             else:
  2182             else:
  2179                 self.TabsOpened.GetPage(selected).AddStepAction()
  2183                 self.TabsOpened.GetPage(selected).AddStepAction()
  2180         event.Skip()
  2184     
  2181 
       
  2182     def OnTransitionTool(self, event):
  2185     def OnTransitionTool(self, event):
  2183         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARTRANSITION)
  2186         self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARTRANSITION)
  2184         selected = self.TabsOpened.GetSelection()
  2187         selected = self.TabsOpened.GetSelection()
  2185         if selected != -1:
  2188         if selected != -1:
  2186             self.TabsOpened.GetPage(selected).SetMode(MODE_TRANSITION)
  2189             self.TabsOpened.GetPage(selected).SetMode(MODE_TRANSITION)
  2187         event.Skip()
  2190     
  2188 
       
  2189     def OnDivergenceTool(self, event):
  2191     def OnDivergenceTool(self, event):
  2190         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2192         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2191             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARDIVERGENCE)
  2193             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARDIVERGENCE)
  2192         selected = self.TabsOpened.GetSelection()
  2194         selected = self.TabsOpened.GetSelection()
  2193         if selected != -1:
  2195         if selected != -1:
  2194             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2196             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2195                 self.TabsOpened.GetPage(selected).SetMode(MODE_DIVERGENCE)
  2197                 self.TabsOpened.GetPage(selected).SetMode(MODE_DIVERGENCE)
  2196             else:
  2198             else:
  2197                 self.TabsOpened.GetPage(selected).AddDivergence()
  2199                 self.TabsOpened.GetPage(selected).AddDivergence()
  2198         event.Skip()
       
  2199     
  2200     
  2200     def OnJumpTool(self, event):
  2201     def OnJumpTool(self, event):
  2201         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2202         if self.GetDrawingMode() == FREEDRAWING_MODE:
  2202             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARJUMP)
  2203             self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARJUMP)
  2203         selected = self.TabsOpened.GetSelection()
  2204         selected = self.TabsOpened.GetSelection()
  2204         if selected != -1:
  2205         if selected != -1:
  2205             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2206             if self.GetDrawingMode() == FREEDRAWING_MODE:
  2206                 self.TabsOpened.GetPage(selected).SetMode(MODE_JUMP)
  2207                 self.TabsOpened.GetPage(selected).SetMode(MODE_JUMP)
  2207             else:
  2208             else:
  2208                 self.TabsOpened.GetPage(selected).AddJump()
  2209                 self.TabsOpened.GetPage(selected).AddJump()
  2209         event.Skip()
  2210     
  2210 
       
  2211 
  2211 
  2212 #-------------------------------------------------------------------------------
  2212 #-------------------------------------------------------------------------------
  2213 #                         Add Project Elements Functions
  2213 #                         Add Project Elements Functions
  2214 #-------------------------------------------------------------------------------
  2214 #-------------------------------------------------------------------------------
  2215 
  2215