controls/DebugVariablePanel.py
author Laurent Bessard
Mon, 25 Jun 2012 20:03:53 +0200
changeset 714 131ea7f237b9
parent 711 5f6a743dcde5
child 715 6a3792a6bf7b
permissions -rw-r--r--
Replacing buttons with text by buttons with icons
Adding support for bitmap library to have a common API for icon request handling
Simplify wx controls and sizers creation in dialogs and custom controls and panels
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     1
#!/usr/bin/env python
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     3
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     4
#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     5
#based on the plcopen standard. 
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     6
#
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     7
#Copyright (C) 2012: Edouard TISSERANT and Laurent BESSARD
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     8
#
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
     9
#See COPYING file for copyrights details.
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    10
#
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    11
#This library is free software; you can redistribute it and/or
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    12
#modify it under the terms of the GNU General Public
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    13
#License as published by the Free Software Foundation; either
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    14
#version 2.1 of the License, or (at your option) any later version.
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    15
#
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    16
#This library is distributed in the hope that it will be useful,
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    17
#but WITHOUT ANY WARRANTY; without even the implied warranty of
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    18
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    19
#General Public License for more details.
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    20
#
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    21
#You should have received a copy of the GNU General Public
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    22
#License along with this library; if not, write to the Free Software
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    23
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    24
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    25
import wx
714
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
    26
import wx.lib.buttons
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    27
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    28
from graphics import DebugDataConsumer, DebugViewer
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    29
from controls import CustomGrid, CustomTable
714
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
    30
from utils.BitmapLibrary import GetBitmap
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    31
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    32
def GetDebugVariablesTableColnames():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    33
    _ = lambda x : x
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    34
    return [_("Variable"), _("Value")]
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    35
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    36
class VariableTableItem(DebugDataConsumer):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    37
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    38
    def __init__(self, parent, variable, value):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    39
        DebugDataConsumer.__init__(self)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    40
        self.Parent = parent
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    41
        self.Variable = variable
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    42
        self.Value = value
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    43
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    44
    def __del__(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    45
        self.Parent = None
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    46
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    47
    def SetVariable(self, variable):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    48
        if self.Parent and self.Variable != variable:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    49
            self.Variable = variable
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    50
            self.Parent.RefreshGrid()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    51
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    52
    def GetVariable(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    53
        return self.Variable
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    54
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    55
    def SetForced(self, forced):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    56
        if self.Forced != forced:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    57
            self.Forced = forced
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    58
            self.Parent.HasNewData = True
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    59
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    60
    def SetValue(self, value):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    61
        if self.Value != value:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    62
            self.Value = value
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    63
            self.Parent.HasNewData = True
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    64
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    65
    def GetValue(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    66
        return self.Value
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    67
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    68
class DebugVariableTable(CustomTable):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    69
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    70
    def GetValue(self, row, col):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    71
        if row < self.GetNumberRows():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    72
            return self.GetValueByName(row, self.GetColLabelValue(col, False))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    73
        return ""
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    74
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    75
    def SetValue(self, row, col, value):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    76
        if col < len(self.colnames):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    77
            self.SetValueByName(row, self.GetColLabelValue(col, False), value)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    78
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    79
    def GetValueByName(self, row, colname):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    80
        if row < self.GetNumberRows():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    81
            if colname == "Variable":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    82
                return self.data[row].GetVariable()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    83
            elif colname == "Value":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    84
                return self.data[row].GetValue()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    85
        return ""
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    86
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    87
    def SetValueByName(self, row, colname, value):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    88
        if row < self.GetNumberRows():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    89
            if colname == "Variable":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    90
                self.data[row].SetVariable(value)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    91
            elif colname == "Value":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    92
                self.data[row].SetValue(value)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    93
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    94
    def IsForced(self, row):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    95
        if row < self.GetNumberRows():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    96
            return self.data[row].IsForced()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    97
        return False
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    98
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
    99
    def _updateColAttrs(self, grid):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   100
        """
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   101
        wx.grid.Grid -> update the column attributes to add the
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   102
        appropriate renderer given the column name.
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   103
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   104
        Otherwise default to the default renderer.
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   105
        """
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   106
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   107
        for row in range(self.GetNumberRows()):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   108
            for col in range(self.GetNumberCols()):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   109
                if self.GetColLabelValue(col, False) == "Value":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   110
                    if self.IsForced(row):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   111
                        grid.SetCellTextColour(row, col, wx.BLUE)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   112
                    else:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   113
                        grid.SetCellTextColour(row, col, wx.BLACK)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   114
                grid.SetReadOnly(row, col, True)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   115
            self.ResizeRow(grid, row)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   116
                
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   117
    def AppendItem(self, data):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   118
        self.data.append(data)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   119
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   120
    def InsertItem(self, idx, data):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   121
        self.data.insert(idx, data)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   122
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   123
    def RemoveItem(self, idx):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   124
        self.data.pop(idx)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   125
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   126
    def MoveItem(self, idx, new_idx):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   127
        self.data.insert(new_idx, self.data.pop(idx))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   128
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   129
    def GetItem(self, idx):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   130
        return self.data[idx]
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   131
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   132
class DebugVariableDropTarget(wx.TextDropTarget):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   133
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   134
    def __init__(self, parent):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   135
        wx.TextDropTarget.__init__(self)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   136
        self.ParentWindow = parent
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   137
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   138
    def OnDropText(self, x, y, data):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   139
        x, y = self.ParentWindow.VariablesGrid.CalcUnscrolledPosition(x, y)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   140
        row = self.ParentWindow.VariablesGrid.YToRow(y - self.ParentWindow.VariablesGrid.GetColLabelSize())
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   141
        if row == wx.NOT_FOUND:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   142
            row = self.ParentWindow.Table.GetNumberRows()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   143
        message = None
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   144
        try:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   145
            values = eval(data)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   146
        except:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   147
            message = _("Invalid value \"%s\" for debug variable")%data
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   148
            values = None
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   149
        if not isinstance(values, TupleType):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   150
            message = _("Invalid value \"%s\" for debug variable")%data
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   151
            values = None
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   152
        if values is not None and values[1] == "debug":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   153
            self.ParentWindow.InsertValue(values[0], row)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   154
        if message is not None:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   155
            wx.CallAfter(self.ShowMessage, message)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   156
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   157
    def ShowMessage(self, message):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   158
        dialog = wx.MessageDialog(self.ParentWindow, message, _("Error"), wx.OK|wx.ICON_ERROR)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   159
        dialog.ShowModal()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   160
        dialog.Destroy()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   161
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   162
class DebugVariablePanel(wx.Panel, DebugViewer):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   163
    
714
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   164
    def __init__(self, parent, producer):
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   165
        wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   166
        DebugViewer.__init__(self, producer, True)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   167
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   168
        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   169
        main_sizer.AddGrowableCol(0)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   170
        main_sizer.AddGrowableRow(1)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   171
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   172
        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   173
        main_sizer.AddSizer(button_sizer, border=5, 
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   174
              flag=wx.ALIGN_RIGHT|wx.ALL)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   175
        
714
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   176
        for name, bitmap, help in [
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   177
                ("DeleteButton", "remove_element", _("Remove debug variable")),
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   178
                ("UpButton", "up", _("Move debug variable up")),
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   179
                ("DownButton", "down", _("Move debug variable down"))]:
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   180
            button = wx.lib.buttons.GenBitmapButton(self, bitmap=GetBitmap(bitmap), 
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   181
                  size=wx.Size(28, 28), style=wx.NO_BORDER)
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   182
            button.SetToolTipString(help)
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   183
            setattr(self, name, button)
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   184
            button_sizer.AddWindow(button, border=5, flag=wx.LEFT)
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   185
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   186
        self.VariablesGrid = CustomGrid(self, size=wx.Size(0, 150), style=wx.VSCROLL)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   187
        self.VariablesGrid.SetDropTarget(DebugVariableDropTarget(self))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   188
        self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_RIGHT_CLICK, 
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   189
              self.OnVariablesGridCellRightClick)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   190
        main_sizer.AddWindow(self.VariablesGrid, flag=wx.GROW)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   191
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   192
        self.SetSizer(main_sizer)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   193
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   194
        self.HasNewData = False
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   195
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   196
        self.Table = DebugVariableTable(self, [], GetDebugVariablesTableColnames())
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   197
        self.VariablesGrid.SetTable(self.Table)
714
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   198
        self.VariablesGrid.SetButtons({"Delete": self.DeleteButton,
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   199
                                       "Up": self.UpButton,
131ea7f237b9 Replacing buttons with text by buttons with icons
Laurent Bessard
parents: 711
diff changeset
   200
                                       "Down": self.DownButton})
711
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   201
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   202
        def _AddVariable(new_row):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   203
            return self.VariablesGrid.GetGridCursorRow()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   204
        setattr(self.VariablesGrid, "_AddRow", _AddVariable)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   205
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   206
        def _DeleteVariable(row):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   207
            item = self.Table.GetItem(row)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   208
            self.RemoveDataConsumer(item)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   209
            self.Table.RemoveItem(row)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   210
            self.RefreshGrid()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   211
        setattr(self.VariablesGrid, "_DeleteRow", _DeleteVariable)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   212
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   213
        def _MoveVariable(row, move):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   214
            new_row = max(0, min(row + move, self.Table.GetNumberRows() - 1))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   215
            if new_row != row:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   216
                self.Table.MoveItem(row, new_row)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   217
                self.RefreshGrid()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   218
            return new_row
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   219
        setattr(self.VariablesGrid, "_MoveRow", _MoveVariable)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   220
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   221
        self.VariablesGrid.SetRowLabelSize(0)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   222
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   223
        for col in range(self.Table.GetNumberCols()):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   224
            attr = wx.grid.GridCellAttr()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   225
            attr.SetAlignment(wx.ALIGN_RIGHT, wx.ALIGN_CENTER)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   226
            self.VariablesGrid.SetColAttr(col, attr)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   227
            self.VariablesGrid.SetColSize(col, 100)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   228
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   229
        self.Table.ResetView(self.VariablesGrid)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   230
        self.VariablesGrid.RefreshButtons()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   231
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   232
    def RefreshNewData(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   233
        if self.HasNewData:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   234
            self.HasNewData = False
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   235
            self.RefreshGrid()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   236
        DebugViewer.RefreshNewData(self)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   237
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   238
    def RefreshGrid(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   239
        self.Freeze()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   240
        self.Table.ResetView(self.VariablesGrid)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   241
        self.VariablesGrid.RefreshButtons()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   242
        self.Thaw()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   243
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   244
    def UnregisterObsoleteData(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   245
        items = [(idx, item) for idx, item in enumerate(self.Table.GetData())]
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   246
        items.reverse()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   247
        for idx, item in items:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   248
            iec_path = item.GetVariable().upper()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   249
            if self.GetDataType(iec_path) is None:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   250
                self.RemoveDataConsumer(item)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   251
                self.Table.RemoveItem(idx)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   252
            else:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   253
                self.AddDataConsumer(iec_path, item)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   254
        self.Freeze()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   255
        self.Table.ResetView(self.VariablesGrid)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   256
        self.VariablesGrid.RefreshButtons()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   257
        self.Thaw()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   258
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   259
    def ResetGrid(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   260
        self.DeleteDataConsumers()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   261
        self.Table.Empty()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   262
        self.Freeze()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   263
        self.Table.ResetView(self.VariablesGrid)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   264
        self.VariablesGrid.RefreshButtons()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   265
        self.Thaw()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   266
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   267
    def GetForceVariableMenuFunction(self, iec_path, item):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   268
        iec_type = self.GetDataType(iec_path)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   269
        def ForceVariableFunction(event):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   270
            if iec_type is not None:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   271
                dialog = ForceVariableDialog(self, iec_type, str(item.GetValue()))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   272
                if dialog.ShowModal() == wx.ID_OK:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   273
                    self.ForceDataValue(iec_path, dialog.GetValue())
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   274
        return ForceVariableFunction
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   275
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   276
    def GetReleaseVariableMenuFunction(self, iec_path):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   277
        def ReleaseVariableFunction(event):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   278
            self.ReleaseDataValue(iec_path)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   279
        return ReleaseVariableFunction
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   280
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   281
    def OnVariablesGridCellRightClick(self, event):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   282
        row, col = event.GetRow(), event.GetCol()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   283
        if self.Table.GetColLabelValue(col, False) == "Value":
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   284
            iec_path = self.Table.GetValueByName(row, "Variable").upper()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   285
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   286
            menu = wx.Menu(title='')
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   287
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   288
            new_id = wx.NewId()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   289
            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Force value"))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   290
            self.Bind(wx.EVT_MENU, self.GetForceVariableMenuFunction(iec_path.upper(), self.Table.GetItem(row)), id=new_id)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   291
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   292
            new_id = wx.NewId()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   293
            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Release value"))
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   294
            self.Bind(wx.EVT_MENU, self.GetReleaseVariableMenuFunction(iec_path.upper()), id=new_id)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   295
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   296
            if self.Table.IsForced(row):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   297
                menu.Enable(new_id, True)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   298
            else:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   299
                menu.Enable(new_id, False)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   300
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   301
            self.PopupMenu(menu)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   302
            
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   303
            menu.Destroy()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   304
        event.Skip()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   305
    
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   306
    def InsertValue(self, iec_path, idx = None, force=False):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   307
        if idx is None:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   308
            idx = self.Table.GetNumberRows()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   309
        for item in self.Table.GetData():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   310
            if iec_path == item.GetVariable():
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   311
                return
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   312
        item = VariableTableItem(self, iec_path, "")
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   313
        result = self.AddDataConsumer(iec_path.upper(), item)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   314
        if result is not None or force:
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   315
            self.Table.InsertItem(idx, item)
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   316
            self.RefreshGrid()
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   317
        
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   318
    def GetDebugVariables(self):
5f6a743dcde5 Adding support for exporting graph value to csv formatted string to clipboard
Laurent Bessard
parents:
diff changeset
   319
        return [item.GetVariable() for item in self.Table.GetData()]