diff -r 805d13d216c0 -r 50192dd2f5ff editors/DataTypeEditor.py --- a/editors/DataTypeEditor.py Wed May 28 18:33:41 2014 +0200 +++ b/editors/DataTypeEditor.py Fri May 30 02:20:19 2014 +0200 @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- #This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor -#based on the plcopen standard. +#based on the plcopen standard. # #Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD # @@ -29,7 +29,7 @@ import wx.grid import wx.lib.buttons -from plcopen.structures import IEC_KEYWORDS, TestIdentifier +from plcopen.structures import IEC_KEYWORDS, TestIdentifier, DefaultType from graphics.GraphicCommons import REFRESH_HIGHLIGHT_PERIOD from controls import CustomEditableListBox, CustomGrid, CustomTable from dialogs import ArrayTypeDialog @@ -59,7 +59,7 @@ #------------------------------------------------------------------------------- class ElementsTable(CustomTable): - + """ A custom wx.grid.Grid Table using user supplied data """ @@ -67,7 +67,7 @@ # The base class must be initialized *first* CustomTable.__init__(self, parent, data, colnames) self.old_value = None - + def GetValue(self, row, col): if row < self.GetNumberRows(): if col == 0: @@ -78,17 +78,17 @@ if value[0] == "array": return "ARRAY [%s] OF %s" % (",".join(map(lambda x : "..".join(x), value[2])), value[1]) return str(value) - + def SetValue(self, row, col, value): if col < len(self.colnames): colname = self.GetColLabelValue(col, False) if colname == "Name": self.old_value = self.data[row][colname] self.data[row][colname] = value - + def GetOldValue(self): return self.old_value - + def _updateColAttrs(self, grid): """ wx.grid.Grid -> update the column attributes to add the @@ -96,7 +96,7 @@ Otherwise default to the default renderer. """ - + for row in range(self.GetNumberRows()): row_highlights = self.Highlights.get(row, {}) for col in range(self.GetNumberCols()): @@ -115,15 +115,15 @@ editor = wx.grid.GridCellTextEditor() else: grid.SetReadOnly(row, col, True) - + grid.SetCellEditor(row, col, editor) grid.SetCellRenderer(row, col, renderer) - + highlight_colours = row_highlights.get(colname.lower(), [(wx.WHITE, wx.BLACK)])[-1] grid.SetCellBackgroundColour(row, col, highlight_colours[0]) grid.SetCellTextColour(row, col, highlight_colours[1]) self.ResizeRow(grid, row) - + def AddHighlight(self, infos, highlight_type): row_highlights = self.Highlights.setdefault(infos[0], {}) if infos[1] == "initial": @@ -137,216 +137,216 @@ #------------------------------------------------------------------------------- class DataTypeEditor(EditorPanel): - + def _init_Editor(self, parent): self.Editor = wx.Panel(parent, style=wx.SUNKEN_BORDER) - + self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) self.MainSizer.AddGrowableCol(0) self.MainSizer.AddGrowableRow(1) - + top_sizer = wx.BoxSizer(wx.HORIZONTAL) - self.MainSizer.AddSizer(top_sizer, border=5, + self.MainSizer.AddSizer(top_sizer, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) - + derivation_type_label = wx.StaticText(self.Editor, label=_('Derivation Type:')) - top_sizer.AddWindow(derivation_type_label, border=5, + top_sizer.AddWindow(derivation_type_label, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT) - + self.DerivationType = wx.ComboBox(self.Editor, size=wx.Size(200, -1), style=wx.CB_READONLY) self.Bind(wx.EVT_COMBOBOX, self.OnDerivationTypeChanged, self.DerivationType) top_sizer.AddWindow(self.DerivationType, border=5, flag=wx.GROW|wx.RIGHT) - + typeinfos_staticbox = wx.StaticBox(self.Editor, label=_('Type infos:')) typeinfos_sizer = wx.StaticBoxSizer(typeinfos_staticbox, wx.HORIZONTAL) - self.MainSizer.AddSizer(typeinfos_sizer, border=5, + self.MainSizer.AddSizer(typeinfos_sizer, border=5, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) - + # Panel for Directly derived data types self.DirectlyPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) typeinfos_sizer.AddWindow(self.DirectlyPanel, 1) - + directly_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) - - directly_basetype_label = wx.StaticText(self.DirectlyPanel, + + directly_basetype_label = wx.StaticText(self.DirectlyPanel, label=_('Base Type:')) - directly_panel_sizer.AddWindow(directly_basetype_label, 1, border=5, + directly_panel_sizer.AddWindow(directly_basetype_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.DirectlyBaseType = wx.ComboBox(self.DirectlyPanel, style=wx.CB_READONLY) self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.DirectlyBaseType) - directly_panel_sizer.AddWindow(self.DirectlyBaseType, 1, border=5, + directly_panel_sizer.AddWindow(self.DirectlyBaseType, 1, border=5, flag=wx.GROW|wx.ALL) - + directly_initialvalue_label = wx.StaticText(self.DirectlyPanel, label=_('Initial Value:')) - directly_panel_sizer.AddWindow(directly_initialvalue_label, 1, border=5, + directly_panel_sizer.AddWindow(directly_initialvalue_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - - self.DirectlyInitialValue = wx.TextCtrl(self.DirectlyPanel, + + self.DirectlyInitialValue = wx.TextCtrl(self.DirectlyPanel, style=wx.TE_PROCESS_ENTER|wx.TE_RICH) self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.DirectlyInitialValue) - directly_panel_sizer.AddWindow(self.DirectlyInitialValue, 1, border=5, + directly_panel_sizer.AddWindow(self.DirectlyInitialValue, 1, border=5, flag=wx.ALL) - + self.DirectlyPanel.SetSizer(directly_panel_sizer) - + # Panel for Subrange data types self.SubrangePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) typeinfos_sizer.AddWindow(self.SubrangePanel, 1) - + subrange_panel_sizer = wx.GridSizer(cols=4, hgap=5, rows=3, vgap=0) - + subrange_basetype_label = wx.StaticText(self.SubrangePanel, label=_('Base Type:')) - subrange_panel_sizer.AddWindow(subrange_basetype_label, 1, border=5, + subrange_panel_sizer.AddWindow(subrange_basetype_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.SubrangeBaseType = wx.ComboBox(self.SubrangePanel, style=wx.CB_READONLY) - self.Bind(wx.EVT_COMBOBOX, self.OnSubrangeBaseTypeChanged, + self.Bind(wx.EVT_COMBOBOX, self.OnSubrangeBaseTypeChanged, self.SubrangeBaseType) - subrange_panel_sizer.AddWindow(self.SubrangeBaseType, 1, border=5, + subrange_panel_sizer.AddWindow(self.SubrangeBaseType, 1, border=5, flag=wx.GROW|wx.ALL) - + subrange_initialvalue_label = wx.StaticText(self.SubrangePanel, label=_('Initial Value:')) - subrange_panel_sizer.AddWindow(subrange_initialvalue_label, 1, border=5, + subrange_panel_sizer.AddWindow(subrange_initialvalue_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - - self.SubrangeInitialValue = wx.SpinCtrl(self.SubrangePanel, + + self.SubrangeInitialValue = wx.SpinCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) self.Bind(wx.EVT_SPINCTRL, self.OnInfosChanged, self.SubrangeInitialValue) - subrange_panel_sizer.AddWindow(self.SubrangeInitialValue, 1, border=5, + subrange_panel_sizer.AddWindow(self.SubrangeInitialValue, 1, border=5, flag=wx.GROW|wx.ALL) - + subrange_minimum_label = wx.StaticText(self.SubrangePanel, label=_('Minimum:')) - subrange_panel_sizer.AddWindow(subrange_minimum_label, 1, border=5, + subrange_panel_sizer.AddWindow(subrange_minimum_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.SubrangeMinimum = wx.SpinCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) self.Bind(wx.EVT_SPINCTRL, self.OnSubrangeMinimumChanged, self.SubrangeMinimum) - subrange_panel_sizer.AddWindow(self.SubrangeMinimum, 1, border=5, + subrange_panel_sizer.AddWindow(self.SubrangeMinimum, 1, border=5, flag=wx.GROW|wx.ALL) - + for i in xrange(2): subrange_panel_sizer.AddWindow(wx.Size(0, 0), 1) - + subrange_maximum_label = wx.StaticText(self.SubrangePanel, label=_('Maximum:')) - subrange_panel_sizer.AddWindow(subrange_maximum_label, 1, border=5, + subrange_panel_sizer.AddWindow(subrange_maximum_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.SubrangeMaximum = wx.SpinCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) self.Bind(wx.EVT_SPINCTRL, self.OnSubrangeMaximumChanged, self.SubrangeMaximum) - - subrange_panel_sizer.AddWindow(self.SubrangeMaximum, 1, border=5, + + subrange_panel_sizer.AddWindow(self.SubrangeMaximum, 1, border=5, flag=wx.GROW|wx.ALL) - + self.SubrangePanel.SetSizer(subrange_panel_sizer) - + # Panel for Enumerated data types - + self.EnumeratedPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) typeinfos_sizer.AddWindow(self.EnumeratedPanel, 1) - + enumerated_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) - - self.EnumeratedValues = CustomEditableListBox(self.EnumeratedPanel, - label=_("Values:"), style=wx.gizmos.EL_ALLOW_NEW| - wx.gizmos.EL_ALLOW_EDIT| + + self.EnumeratedValues = CustomEditableListBox(self.EnumeratedPanel, + label=_("Values:"), style=wx.gizmos.EL_ALLOW_NEW| + wx.gizmos.EL_ALLOW_EDIT| wx.gizmos.EL_ALLOW_DELETE) setattr(self.EnumeratedValues, "_OnLabelEndEdit", self.OnEnumeratedValueEndEdit) for func in ["_OnAddButton", "_OnDelButton", "_OnUpButton", "_OnDownButton"]: setattr(self.EnumeratedValues, func, self.OnEnumeratedValuesChanged) - enumerated_panel_sizer.AddWindow(self.EnumeratedValues, 1, border=5, + enumerated_panel_sizer.AddWindow(self.EnumeratedValues, 1, border=5, flag=wx.GROW|wx.ALL) - + enumerated_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) enumerated_panel_sizer.AddSizer(enumerated_panel_rightsizer, 1) - + enumerated_initialvalue_label = wx.StaticText(self.EnumeratedPanel, label=_('Initial Value:')) - enumerated_panel_rightsizer.AddWindow(enumerated_initialvalue_label, 1, + enumerated_panel_rightsizer.AddWindow(enumerated_initialvalue_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - - self.EnumeratedInitialValue = wx.ComboBox(self.EnumeratedPanel, + + self.EnumeratedInitialValue = wx.ComboBox(self.EnumeratedPanel, style=wx.CB_READONLY) self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.EnumeratedInitialValue) - enumerated_panel_rightsizer.AddWindow(self.EnumeratedInitialValue, 1, + enumerated_panel_rightsizer.AddWindow(self.EnumeratedInitialValue, 1, border=5, flag=wx.ALL) - + self.EnumeratedPanel.SetSizer(enumerated_panel_sizer) - + # Panel for Array data types self.ArrayPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) typeinfos_sizer.AddWindow(self.ArrayPanel, 1) - + array_panel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) array_panel_sizer.AddGrowableCol(0) array_panel_sizer.AddGrowableCol(1) array_panel_sizer.AddGrowableRow(1) - + array_panel_leftSizer = wx.BoxSizer(wx.HORIZONTAL) array_panel_sizer.AddSizer(array_panel_leftSizer, flag=wx.GROW) - + array_basetype_label = wx.StaticText(self.ArrayPanel, label=_('Base Type:')) - array_panel_leftSizer.AddWindow(array_basetype_label, 1, border=5, + array_panel_leftSizer.AddWindow(array_basetype_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.ArrayBaseType = wx.ComboBox(self.ArrayPanel, style=wx.CB_READONLY) self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.ArrayBaseType) - array_panel_leftSizer.AddWindow(self.ArrayBaseType, 1, border=5, + array_panel_leftSizer.AddWindow(self.ArrayBaseType, 1, border=5, flag=wx.GROW|wx.ALL) - + array_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) array_panel_sizer.AddSizer(array_panel_rightsizer, flag=wx.GROW) - + array_initialvalue_label = wx.StaticText(self.ArrayPanel, label=_('Initial Value:')) - array_panel_rightsizer.AddWindow(array_initialvalue_label, 1, border=5, + array_panel_rightsizer.AddWindow(array_initialvalue_label, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) - + self.ArrayInitialValue = wx.TextCtrl(self.ArrayPanel, style=wx.TE_PROCESS_ENTER|wx.TE_RICH) self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.ArrayInitialValue) - array_panel_rightsizer.AddWindow(self.ArrayInitialValue, 1, border=5, - flag=wx.ALL) - - self.ArrayDimensions = CustomEditableListBox(self.ArrayPanel, + array_panel_rightsizer.AddWindow(self.ArrayInitialValue, 1, border=5, + flag=wx.ALL) + + self.ArrayDimensions = CustomEditableListBox(self.ArrayPanel, label=_("Dimensions:"), style=wx.gizmos.EL_ALLOW_NEW| wx.gizmos.EL_ALLOW_EDIT| wx.gizmos.EL_ALLOW_DELETE) - for func in ["_OnLabelEndEdit", "_OnAddButton", "_OnDelButton", + for func in ["_OnLabelEndEdit", "_OnAddButton", "_OnDelButton", "_OnUpButton", "_OnDownButton"]: setattr(self.ArrayDimensions, func, self.OnDimensionsChanged) - array_panel_sizer.AddWindow(self.ArrayDimensions, 0, border=5, + array_panel_sizer.AddWindow(self.ArrayDimensions, 0, border=5, flag=wx.GROW|wx.ALL) - + self.ArrayPanel.SetSizer(array_panel_sizer) - + # Panel for Structure data types - + self.StructurePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) typeinfos_sizer.AddWindow(self.StructurePanel, 1) - + structure_panel_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) structure_panel_sizer.AddGrowableCol(0) structure_panel_sizer.AddGrowableRow(1) - + structure_button_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) structure_button_sizer.AddGrowableCol(0) structure_button_sizer.AddGrowableRow(0) - structure_panel_sizer.AddSizer(structure_button_sizer, 0, border=5, + structure_panel_sizer.AddSizer(structure_button_sizer, 0, border=5, flag=wx.ALL|wx.GROW) - + structure_elements_label = wx.StaticText(self.StructurePanel, label=_('Elements :')) structure_button_sizer.AddWindow(structure_elements_label, flag=wx.ALIGN_BOTTOM) - + for name, bitmap, help in [ ("StructureAddButton", "add_element", _("Add element")), ("StructureDeleteButton", "remove_element", _("Remove element")), @@ -357,46 +357,46 @@ button.SetToolTipString(help) setattr(self, name, button) structure_button_sizer.AddWindow(button) - - self.StructureElementsGrid = CustomGrid(self.StructurePanel, + + self.StructureElementsGrid = CustomGrid(self.StructurePanel, size=wx.Size(0, 150), style=wx.VSCROLL) - self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, + self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnStructureElementsGridCellChange) - self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, + self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, self.OnStructureElementsGridEditorShown) structure_panel_sizer.AddWindow(self.StructureElementsGrid, flag=wx.GROW) - + self.StructurePanel.SetSizer(structure_panel_sizer) - + self.Editor.SetSizer(self.MainSizer) - + def __init__(self, parent, tagname, window, controler): EditorPanel.__init__(self, parent, tagname, window, controler) - - self.StructureElementDefaultValue = {"Name" : "", "Type" : "INT", "Initial Value" : ""} + + self.StructureElementDefaultValue = {"Name" : "", "Type" : DefaultType, "Initial Value" : ""} self.StructureElementsTable = ElementsTable(self, [], GetElementsTableColnames()) self.StructureColSizes = [40, 150, 100, 250] self.StructureColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT] - + self.StructureElementsGrid.SetTable(self.StructureElementsTable) self.StructureElementsGrid.SetButtons({"Add": self.StructureAddButton, "Delete": self.StructureDeleteButton, "Up": self.StructureUpButton, "Down": self.StructureDownButton}) - + def _AddStructureElement(new_row): self.StructureElementsTable.InsertRow(new_row, self.StructureElementDefaultValue.copy()) self.RefreshTypeInfos() self.StructureElementsTable.ResetView(self.StructureElementsGrid) return new_row setattr(self.StructureElementsGrid, "_AddRow", _AddStructureElement) - + def _DeleteStructureElement(row): self.StructureElementsTable.RemoveRow(row) self.RefreshTypeInfos() self.StructureElementsTable.ResetView(self.StructureElementsGrid) setattr(self.StructureElementsGrid, "_DeleteRow", _DeleteStructureElement) - + def _MoveStructureElement(row, move): new_row = self.StructureElementsTable.MoveRow(row, move) if new_row != row: @@ -404,7 +404,7 @@ self.StructureElementsTable.ResetView(self.StructureElementsGrid) return new_row setattr(self.StructureElementsGrid, "_MoveRow", _MoveStructureElement) - + self.StructureElementsGrid.SetRowLabelSize(0) for col in range(self.StructureElementsTable.GetNumberCols()): attr = wx.grid.GridCellAttr() @@ -413,7 +413,7 @@ self.StructureElementsGrid.SetColMinimalWidth(col, self.StructureColSizes[col]) self.StructureElementsGrid.AutoSizeColumn(col, False) self.StructureElementsGrid.RefreshButtons() - + for datatype in GetDatatypeTypes(): self.DerivationType.Append(_(datatype)) self.SubrangePanel.Hide() @@ -423,7 +423,7 @@ self.CurrentPanel = "Directly" self.Highlights = [] self.Initializing = False - + self.HighlightControls = { ("Directly", "base"): self.DirectlyBaseType, ("Directly", "initial"): self.DirectlyInitialValue, @@ -437,27 +437,27 @@ ("Array", "base"): self.ArrayBaseType, ("Array", "range"): self.ArrayDimensions, } - + self.RefreshHighlightsTimer = wx.Timer(self, -1) self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) - + def __del__(self): self.RefreshHighlightsTimer.Stop() - + def GetBufferState(self): return self.Controler.GetBufferState() - + def Undo(self): self.Controler.LoadPrevious() self.ParentWindow.CloseTabsWithoutModel() - + def Redo(self): self.Controler.LoadNext() self.ParentWindow.CloseTabsWithoutModel() - + def HasNoModel(self): return self.Controler.GetEditedElement(self.TagName) is None - + def RefreshView(self): self.Initializing = True self.DirectlyBaseType.Clear() @@ -504,7 +504,7 @@ self.StructureElementsTable.ResetView(self.StructureElementsGrid) self.StructureElementsGrid.RefreshButtons() self.Initializing = False - + def OnDerivationTypeChanged(self, event): wx.CallAfter(self.RefreshDisplayedInfos) wx.CallAfter(self.RefreshTypeInfos) @@ -512,7 +512,7 @@ def OnReturnKeyPressed(self, event): self.RefreshTypeInfos() - + def OnInfosChanged(self, event): self.RefreshTypeInfos() event.Skip() @@ -563,12 +563,12 @@ event.Skip() else: event.Skip() - + def OnEnumeratedValuesChanged(self, event): wx.CallAfter(self.RefreshEnumeratedValues) wx.CallAfter(self.RefreshTypeInfos) event.Skip() - + def OnStructureElementsGridCellChange(self, event): row, col = event.GetRow(), event.GetCol() colname = self.StructureElementsTable.GetColLabelValue(col, False) @@ -606,34 +606,34 @@ self.RefreshTypeInfos() wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid) event.Skip() - + def OnStructureElementsGridSelectCell(self, event): wx.CallAfter(self.RefreshStructureButtons) event.Skip() - + def OnStructureElementsGridEditorShown(self, event): - row, col = event.GetRow(), event.GetCol() + row, col = event.GetRow(), event.GetCol() if self.StructureElementsTable.GetColLabelValue(col, False) == "Type": type_menu = wx.Menu(title='') - + base_menu = wx.Menu(title='') for base_type in self.Controler.GetBaseTypes(): new_id = wx.NewId() AppendMenu(base_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(base_type), id=new_id) type_menu.AppendMenu(wx.NewId(), _("Base Types"), base_menu) - + datatype_menu = wx.Menu(title='') for datatype in self.Controler.GetDataTypes(self.TagName, False): new_id = wx.NewId() AppendMenu(datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(datatype), id=new_id) type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu) - + new_id = wx.NewId() AppendMenu(type_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Array")) self.Bind(wx.EVT_MENU, self.ElementArrayTypeFunction, id=new_id) - + ## functionblock_menu = wx.Menu(title='') ## bodytype = self.Controler.GetEditedElementBodyType(self.TagName) ## pouname, poutype = self.Controler.GetEditedElementType(self.TagName) @@ -661,8 +661,8 @@ def ElementArrayTypeFunction(self, event): row = self.StructureElementsGrid.GetGridCursorRow() - dialog = ArrayTypeDialog(self, - self.Controler.GetDataTypes(self.TagName), + dialog = ArrayTypeDialog(self, + self.Controler.GetDataTypes(self.TagName), self.StructureElementsTable.GetValueByName(row, "Type")) if dialog.ShowModal() == wx.ID_OK: self.StructureElementsTable.SetValueByName(row, "Type", dialog.GetValue())