controls/DebugVariablePanel/DebugVariableGraphicPanel.py
changeset 1227 01e86190f8c7
parent 1218 a5a6072ac944
child 1231 0b5d608ed2be
equal deleted inserted replaced
1226:93e7a8abce5e 1227:01e86190f8c7
   159     def ShowMessage(self, message):
   159     def ShowMessage(self, message):
   160         """
   160         """
   161         Show error message in Error Dialog
   161         Show error message in Error Dialog
   162         @param message: Error message to display
   162         @param message: Error message to display
   163         """
   163         """
   164         dialog = wx.MessageDialog(self.ParentWindow, message, _("Error"), wx.OK|wx.ICON_ERROR)
   164         dialog = wx.MessageDialog(self.ParentWindow, 
       
   165                                   message, 
       
   166                                   _("Error"), 
       
   167                                   wx.OK|wx.ICON_ERROR)
   165         dialog.ShowModal()
   168         dialog.ShowModal()
   166         dialog.Destroy()
   169         dialog.Destroy()
   167 
   170 
   168 
   171 
   169 #-------------------------------------------------------------------------------
   172 #-------------------------------------------------------------------------------
   335         @param tick: PLC tick captured
   338         @param tick: PLC tick captured
   336         All other parameters are passed to refresh function 
   339         All other parameters are passed to refresh function 
   337         """
   340         """
   338         # If tick given
   341         # If tick given
   339         if tick is not None:
   342         if tick is not None:
       
   343             self.HasNewData = True
   340             
   344             
   341             # Save tick as start tick for range if data is still empty
   345             # Save tick as start tick for range if data is still empty
   342             if len(self.Ticks) == 0:
   346             if len(self.Ticks) == 0:
   343                 self.StartTick = tick 
   347                 self.StartTick = tick 
   344             
   348             
   363         """
   367         """
   364         self.Force = True
   368         self.Force = True
   365         wx.CallAfter(self.NewDataAvailable, None, True)
   369         wx.CallAfter(self.NewDataAvailable, None, True)
   366     
   370     
   367     def SetCursorTick(self, cursor_tick):
   371     def SetCursorTick(self, cursor_tick):
       
   372         """
       
   373         Set Cursor for displaying values of items at a tick given
       
   374         @param cursor_tick: Tick of cursor
       
   375         """
       
   376         # Save cursor tick
   368         self.CursorTick = cursor_tick
   377         self.CursorTick = cursor_tick
   369         self.Fixed = cursor_tick is not None
   378         self.Fixed = cursor_tick is not None
   370         self.UpdateCursorTick() 
   379         self.UpdateCursorTick() 
   371     
   380     
   372     def MoveCursorTick(self, move):
   381     def MoveCursorTick(self, move):
   387             self.RefreshCanvasPosition()
   396             self.RefreshCanvasPosition()
   388             self.UpdateCursorTick() 
   397             self.UpdateCursorTick() 
   389             
   398             
   390     def ResetCursorTick(self):
   399     def ResetCursorTick(self):
   391         self.CursorTick = None
   400         self.CursorTick = None
       
   401         self.Fixed = False
   392         self.UpdateCursorTick()
   402         self.UpdateCursorTick()
   393     
   403     
   394     def UpdateCursorTick(self):
   404     def UpdateCursorTick(self):
   395         for panel in self.GraphicPanels:
   405         for panel in self.GraphicPanels:
   396             if isinstance(panel, DebugVariableGraphicViewer):
   406             if isinstance(panel, DebugVariableGraphicViewer):
   647         event.Skip()
   657         event.Skip()
   648     
   658     
   649     def OnCurrentButton(self, event):
   659     def OnCurrentButton(self, event):
   650         if len(self.Ticks) > 0:
   660         if len(self.Ticks) > 0:
   651             self.StartTick = max(self.Ticks[0], self.Ticks[-1] - self.CurrentRange)
   661             self.StartTick = max(self.Ticks[0], self.Ticks[-1] - self.CurrentRange)
   652             self.Fixed = False
       
   653             self.ResetCursorTick()
   662             self.ResetCursorTick()
   654         event.Skip()
   663         event.Skip()
   655     
   664     
   656     def CopyDataToClipboard(self, variables):
   665     def CopyDataToClipboard(self, variables):
   657         text = "tick;%s;\n" % ";".join([item.GetVariable() for item, data in variables])
   666         text = "tick;%s;\n" % ";".join([item.GetVariable() for item, data in variables])
   878                 if source_panel.ItemsIsEmpty():
   887                 if source_panel.ItemsIsEmpty():
   879                     source_panel.Destroy()
   888                     source_panel.Destroy()
   880                     self.GraphicPanels.remove(source_panel)
   889                     self.GraphicPanels.remove(source_panel)
   881                     self.ResetVariableNameMask()
   890                     self.ResetVariableNameMask()
   882                     self.RefreshGraphicsSizer()
   891                     self.RefreshGraphicsSizer()
       
   892             if len(self.GraphicPanels) == 0:
       
   893                 self.Fixed = False
       
   894                 self.ResetCursorTick()
   883             self.ForceRefresh()
   895             self.ForceRefresh()
   884     
   896     
   885     def ToggleViewerType(self, panel):
   897     def ToggleViewerType(self, panel):
   886         panel_idx = self.GetViewerIndex(panel)
   898         panel_idx = self.GetViewerIndex(panel)
   887         if panel_idx is not None:
   899         if panel_idx is not None:
   899         self.ForceRefresh()
   911         self.ForceRefresh()
   900     
   912     
   901     def ResetGraphicsValues(self):
   913     def ResetGraphicsValues(self):
   902         self.Ticks = numpy.array([])
   914         self.Ticks = numpy.array([])
   903         self.StartTick = 0
   915         self.StartTick = 0
   904         self.Fixed = False
       
   905         for panel in self.GraphicPanels:
   916         for panel in self.GraphicPanels:
   906             panel.ResetItemsData()
   917             panel.ResetItemsData()
   907         self.ResetCursorTick()
   918         self.ResetCursorTick()
   908 
   919 
   909     def RefreshGraphicsWindowScrollbars(self):
   920     def RefreshGraphicsWindowScrollbars(self):