229 |
229 |
230 #------------------------------------------------------------------------------- |
230 #------------------------------------------------------------------------------- |
231 # Datatype Editor class |
231 # Datatype Editor class |
232 #------------------------------------------------------------------------------- |
232 #------------------------------------------------------------------------------- |
233 |
233 |
234 [ID_DATATYPEEDITOR, ID_DATATYPEEDITORSTATICBOX, |
234 [ID_DATATYPEEDITOR, ID_DATATYPEEDITORPANEL, ID_DATATYPEEDITORSTATICBOX, |
235 ID_DATATYPEEDITORDERIVATIONTYPE, ID_DATATYPEEDITORDIRECTLYPANEL, |
235 ID_DATATYPEEDITORDERIVATIONTYPE, ID_DATATYPEEDITORDIRECTLYPANEL, |
236 ID_DATATYPEEDITORSUBRANGEPANEL, ID_DATATYPEEDITORDIRECTLYBASETYPE, |
236 ID_DATATYPEEDITORSUBRANGEPANEL, ID_DATATYPEEDITORDIRECTLYBASETYPE, |
237 ID_DATATYPEEDITORSUBRANGEBASETYPE, ID_DATATYPEEDITORSUBRANGEMINIMUM, |
237 ID_DATATYPEEDITORSUBRANGEBASETYPE, ID_DATATYPEEDITORSUBRANGEMINIMUM, |
238 ID_DATATYPEEDITORSUBRANGEMAXIMUM, ID_DATATYPEEDITORDIRECTLYINITIALVALUE, |
238 ID_DATATYPEEDITORSUBRANGEMAXIMUM, ID_DATATYPEEDITORDIRECTLYINITIALVALUE, |
239 ID_DATATYPEEDITORSUBRANGEINITIALVALUE, ID_DATATYPEEDITORENUMERATEDPANEL, |
239 ID_DATATYPEEDITORSUBRANGEINITIALVALUE, ID_DATATYPEEDITORENUMERATEDPANEL, |
247 ID_DATATYPEEDITORSTATICTEXT3, ID_DATATYPEEDITORSTATICTEXT4, |
247 ID_DATATYPEEDITORSTATICTEXT3, ID_DATATYPEEDITORSTATICTEXT4, |
248 ID_DATATYPEEDITORSTATICTEXT5, ID_DATATYPEEDITORSTATICTEXT6, |
248 ID_DATATYPEEDITORSTATICTEXT5, ID_DATATYPEEDITORSTATICTEXT6, |
249 ID_DATATYPEEDITORSTATICTEXT7, ID_DATATYPEEDITORSTATICTEXT8, |
249 ID_DATATYPEEDITORSTATICTEXT7, ID_DATATYPEEDITORSTATICTEXT8, |
250 ID_DATATYPEEDITORSTATICTEXT9, ID_DATATYPEEDITORSTATICTEXT10, |
250 ID_DATATYPEEDITORSTATICTEXT9, ID_DATATYPEEDITORSTATICTEXT10, |
251 ID_DATATYPEEDITORSTATICTEXT11, |
251 ID_DATATYPEEDITORSTATICTEXT11, |
252 ] = [wx.NewId() for _init_ctrls in range(35)] |
252 ] = [wx.NewId() for _init_ctrls in range(36)] |
253 |
253 |
254 def GetDatatypeTypes(): |
254 def GetDatatypeTypes(): |
255 _ = lambda x : x |
255 _ = lambda x : x |
256 return [_("Directly"), _("Subrange"), _("Enumerated"), _("Array"), _("Structure")] |
256 return [_("Directly"), _("Subrange"), _("Enumerated"), _("Array"), _("Structure")] |
257 DATATYPE_TYPES_DICT = dict([(_(datatype), datatype) for datatype in GetDatatypeTypes()]) |
257 DATATYPE_TYPES_DICT = dict([(_(datatype), datatype) for datatype in GetDatatypeTypes()]) |
258 |
258 |
259 class DataTypeEditor(wx.Panel): |
259 class DataTypeEditor(EditorPanel): |
|
260 |
|
261 ID = ID_DATATYPEEDITOR |
260 |
262 |
261 def _init_coll_MainSizer_Items(self, parent): |
263 def _init_coll_MainSizer_Items(self, parent): |
262 parent.AddSizer(self.TopSizer, 0, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
264 parent.AddSizer(self.TopSizer, 0, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
263 parent.AddSizer(self.TypeInfosSizer, 0, border=5, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
265 parent.AddSizer(self.TypeInfosSizer, 0, border=5, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
264 |
266 |
320 def _init_coll_ArrayPanelRightSizer_Items(self, parent): |
322 def _init_coll_ArrayPanelRightSizer_Items(self, parent): |
321 parent.AddWindow(self.staticText10, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) |
323 parent.AddWindow(self.staticText10, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) |
322 parent.AddWindow(self.ArrayInitialValue, 1, border=5, flag=wx.ALL) |
324 parent.AddWindow(self.ArrayInitialValue, 1, border=5, flag=wx.ALL) |
323 |
325 |
324 def _init_coll_StructurePanelSizer_Items(self, parent): |
326 def _init_coll_StructurePanelSizer_Items(self, parent): |
325 parent.AddWindow(self.staticText11, 0, border=5, flag=wx.ALL) |
327 parent.AddSizer(self.StructurePanelButtonSizer, 0, border=5, flag=wx.ALL|wx.GROW) |
326 parent.AddWindow(self.StructureElementsGrid, 0, border=0, flag=wx.GROW) |
328 parent.AddWindow(self.StructureElementsGrid, 0, border=0, flag=wx.GROW) |
327 parent.AddSizer(self.StructurePanelButtonSizer, 0, border=0, flag=wx.ALIGN_RIGHT) |
|
328 |
329 |
329 def _init_coll_StructurePanelSizer_Growables(self, parent): |
330 def _init_coll_StructurePanelSizer_Growables(self, parent): |
330 parent.AddGrowableCol(0) |
331 parent.AddGrowableCol(0) |
331 parent.AddGrowableRow(1) |
332 parent.AddGrowableRow(1) |
332 |
333 |
333 def _init_coll_StructurePanelButtonSizer_Items(self, parent): |
334 def _init_coll_StructurePanelButtonSizer_Items(self, parent): |
334 parent.AddWindow(self.StructureAddButton, 0, border=5, flag=wx.ALL) |
335 parent.AddWindow(self.staticText11, 0, border=0, flag=wx.ALIGN_BOTTOM) |
335 parent.AddWindow(self.StructureDeleteButton, 0, border=5, flag=wx.ALL) |
336 parent.AddWindow(self.StructureAddButton, 0, border=0, flag=0) |
336 parent.AddWindow(self.StructureUpButton, 0, border=5, flag=wx.ALL) |
337 parent.AddWindow(self.StructureDeleteButton, 0, border=0, flag=0) |
337 parent.AddWindow(self.StructureDownButton, 0, border=5, flag=wx.ALL) |
338 parent.AddWindow(self.StructureUpButton, 0, border=0, flag=0) |
338 |
339 parent.AddWindow(self.StructureDownButton, 0, border=0, flag=0) |
|
340 |
|
341 def _init_coll_StructurePanelButtonSizer_Growables(self, parent): |
|
342 parent.AddGrowableCol(0) |
|
343 parent.AddGrowableRow(0) |
|
344 |
339 def _init_sizers(self): |
345 def _init_sizers(self): |
340 self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
346 self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
341 self.TopSizer = wx.BoxSizer(wx.HORIZONTAL) |
347 self.TopSizer = wx.BoxSizer(wx.HORIZONTAL) |
342 self.TypeInfosSizer = wx.StaticBoxSizer(self.staticbox, wx.HORIZONTAL) |
348 self.TypeInfosSizer = wx.StaticBoxSizer(self.staticbox, wx.HORIZONTAL) |
343 self.DirectlyPanelSizer = wx.BoxSizer(wx.HORIZONTAL) |
349 self.DirectlyPanelSizer = wx.BoxSizer(wx.HORIZONTAL) |
345 self.EnumeratedPanelSizer = wx.BoxSizer(wx.HORIZONTAL) |
351 self.EnumeratedPanelSizer = wx.BoxSizer(wx.HORIZONTAL) |
346 self.EnumeratedPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) |
352 self.EnumeratedPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) |
347 self.ArrayPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) |
353 self.ArrayPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) |
348 self.ArrayPanelLeftSizer = wx.BoxSizer(wx.HORIZONTAL) |
354 self.ArrayPanelLeftSizer = wx.BoxSizer(wx.HORIZONTAL) |
349 self.ArrayPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) |
355 self.ArrayPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) |
350 self.StructurePanelSizer = wx.FlexGridSizer(cols=1, hgap=5, rows=3, vgap=0) |
356 self.StructurePanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
351 self.StructurePanelButtonSizer = wx.BoxSizer(wx.HORIZONTAL) |
357 self.StructurePanelButtonSizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
|
358 |
352 self._init_coll_MainSizer_Items(self.MainSizer) |
359 self._init_coll_MainSizer_Items(self.MainSizer) |
353 self._init_coll_MainSizer_Growables(self.MainSizer) |
360 self._init_coll_MainSizer_Growables(self.MainSizer) |
354 self._init_coll_TopSizer_Items(self.TopSizer) |
361 self._init_coll_TopSizer_Items(self.TopSizer) |
355 self._init_coll_TypeInfosSizer_Items(self.TypeInfosSizer) |
362 self._init_coll_TypeInfosSizer_Items(self.TypeInfosSizer) |
356 self._init_coll_DirectlyPanelSizer_Items(self.DirectlyPanelSizer) |
363 self._init_coll_DirectlyPanelSizer_Items(self.DirectlyPanelSizer) |
362 self._init_coll_ArrayPanelLeftSizer_Items(self.ArrayPanelLeftSizer) |
369 self._init_coll_ArrayPanelLeftSizer_Items(self.ArrayPanelLeftSizer) |
363 self._init_coll_ArrayPanelRightSizer_Items(self.ArrayPanelRightSizer) |
370 self._init_coll_ArrayPanelRightSizer_Items(self.ArrayPanelRightSizer) |
364 self._init_coll_StructurePanelSizer_Items(self.StructurePanelSizer) |
371 self._init_coll_StructurePanelSizer_Items(self.StructurePanelSizer) |
365 self._init_coll_StructurePanelSizer_Growables(self.StructurePanelSizer) |
372 self._init_coll_StructurePanelSizer_Growables(self.StructurePanelSizer) |
366 self._init_coll_StructurePanelButtonSizer_Items(self.StructurePanelButtonSizer) |
373 self._init_coll_StructurePanelButtonSizer_Items(self.StructurePanelButtonSizer) |
367 |
374 self._init_coll_StructurePanelButtonSizer_Growables(self.StructurePanelButtonSizer) |
368 self.SetSizer(self.MainSizer) |
375 |
|
376 self.Editor.SetSizer(self.MainSizer) |
369 self.DirectlyPanel.SetSizer(self.DirectlyPanelSizer) |
377 self.DirectlyPanel.SetSizer(self.DirectlyPanelSizer) |
370 self.SubrangePanel.SetSizer(self.SubrangePanelSizer) |
378 self.SubrangePanel.SetSizer(self.SubrangePanelSizer) |
371 self.EnumeratedPanel.SetSizer(self.EnumeratedPanelSizer) |
379 self.EnumeratedPanel.SetSizer(self.EnumeratedPanelSizer) |
372 self.ArrayPanel.SetSizer(self.ArrayPanelSizer) |
380 self.ArrayPanel.SetSizer(self.ArrayPanelSizer) |
373 self.StructurePanel.SetSizer(self.StructurePanelSizer) |
381 self.StructurePanel.SetSizer(self.StructurePanelSizer) |
374 |
382 |
375 def _init_ctrls(self, prnt): |
383 def _init_Editor(self, prnt): |
376 wx.Panel.__init__(self, id=ID_DATATYPEEDITOR, name='', parent=prnt, |
384 self.Editor = wx.Panel(id=ID_DATATYPEEDITORPANEL, name='', parent=prnt, |
377 size=wx.Size(0, 0), style=wx.SUNKEN_BORDER) |
385 size=wx.Size(0, 0), style=wx.SUNKEN_BORDER) |
378 |
386 |
379 self.staticbox = wx.StaticBox(id=ID_DATATYPEEDITORSTATICBOX, |
387 self.staticbox = wx.StaticBox(id=ID_DATATYPEEDITORSTATICBOX, |
380 label=_('Type infos:'), name='staticBox1', parent=self, |
388 label=_('Type infos:'), name='staticBox1', parent=self.Editor, |
381 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
389 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
382 |
390 |
383 self.staticText1 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT1, |
391 self.staticText1 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT1, |
384 label=_('Derivation Type:'), name='staticText1', parent=self, |
392 label=_('Derivation Type:'), name='staticText1', parent=self.Editor, |
385 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
393 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
386 |
394 |
387 self.DerivationType = wx.ComboBox(id=ID_DATATYPEEDITORDERIVATIONTYPE, |
395 self.DerivationType = wx.ComboBox(id=ID_DATATYPEEDITORDERIVATIONTYPE, |
388 name='DerivationType', parent=self, pos=wx.Point(0, 0), |
396 name='DerivationType', parent=self.Editor, pos=wx.Point(0, 0), |
389 size=wx.Size(200, 28), style=wx.CB_READONLY) |
397 size=wx.Size(200, 28), style=wx.CB_READONLY) |
390 self.Bind(wx.EVT_COMBOBOX, self.OnDerivationTypeChanged, id=ID_DATATYPEEDITORDERIVATIONTYPE) |
398 self.Bind(wx.EVT_COMBOBOX, self.OnDerivationTypeChanged, id=ID_DATATYPEEDITORDERIVATIONTYPE) |
391 |
399 |
392 # Panel for Directly derived data types |
400 # Panel for Directly derived data types |
393 |
401 |
394 self.DirectlyPanel = wx.Panel(id=ID_DATATYPEEDITORDIRECTLYPANEL, |
402 self.DirectlyPanel = wx.Panel(id=ID_DATATYPEEDITORDIRECTLYPANEL, |
395 name='DirectlyPanel', parent=self, pos=wx.Point(0, 0), |
403 name='DirectlyPanel', parent=self.Editor, pos=wx.Point(0, 0), |
396 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
404 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
397 |
405 |
398 self.staticText2 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT2, |
406 self.staticText2 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT2, |
399 label=_('Base Type:'), name='staticText2', parent=self.DirectlyPanel, |
407 label=_('Base Type:'), name='staticText2', parent=self.DirectlyPanel, |
400 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
408 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
415 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, id=ID_DATATYPEEDITORDIRECTLYINITIALVALUE) |
423 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, id=ID_DATATYPEEDITORDIRECTLYINITIALVALUE) |
416 |
424 |
417 # Panel for Subrange data types |
425 # Panel for Subrange data types |
418 |
426 |
419 self.SubrangePanel = wx.Panel(id=ID_DATATYPEEDITORSUBRANGEPANEL, |
427 self.SubrangePanel = wx.Panel(id=ID_DATATYPEEDITORSUBRANGEPANEL, |
420 name='SubrangePanel', parent=self, pos=wx.Point(0, 0), |
428 name='SubrangePanel', parent=self.Editor, pos=wx.Point(0, 0), |
421 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
429 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
422 |
430 |
423 self.staticText4 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT4, |
431 self.staticText4 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT4, |
424 label=_('Base Type:'), name='staticText4', parent=self.SubrangePanel, |
432 label=_('Base Type:'), name='staticText4', parent=self.SubrangePanel, |
425 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
433 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
458 self.Bind(wx.EVT_SPINCTRL, self.OnSubrangeMaximumChanged, id=ID_DATATYPEEDITORSUBRANGEMAXIMUM) |
466 self.Bind(wx.EVT_SPINCTRL, self.OnSubrangeMaximumChanged, id=ID_DATATYPEEDITORSUBRANGEMAXIMUM) |
459 |
467 |
460 # Panel for Enumerated data types |
468 # Panel for Enumerated data types |
461 |
469 |
462 self.EnumeratedPanel = wx.Panel(id=ID_DATATYPEEDITORENUMERATEDPANEL, |
470 self.EnumeratedPanel = wx.Panel(id=ID_DATATYPEEDITORENUMERATEDPANEL, |
463 name='EnumeratedPanel', parent=self, pos=wx.Point(0, 0), |
471 name='EnumeratedPanel', parent=self.Editor, pos=wx.Point(0, 0), |
464 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
472 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
465 |
473 |
466 self.EnumeratedValues = CustomEditableListBox(id=ID_DATATYPEEDITORENUMERATEDVALUES, |
474 self.EnumeratedValues = CustomEditableListBox(id=ID_DATATYPEEDITORENUMERATEDVALUES, |
467 name='EnumeratedValues', parent=self.EnumeratedPanel, label=_("Values:"), pos=wx.Point(0, 0), |
475 name='EnumeratedValues', parent=self.EnumeratedPanel, label=_("Values:"), pos=wx.Point(0, 0), |
468 size=wx.Size(0, 0), style=wx.gizmos.EL_ALLOW_NEW | wx.gizmos.EL_ALLOW_EDIT | wx.gizmos.EL_ALLOW_DELETE) |
476 size=wx.Size(0, 0), style=wx.gizmos.EL_ALLOW_NEW | wx.gizmos.EL_ALLOW_EDIT | wx.gizmos.EL_ALLOW_DELETE) |
479 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, id=ID_DATATYPEEDITORENUMERATEDINITIALVALUE) |
487 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, id=ID_DATATYPEEDITORENUMERATEDINITIALVALUE) |
480 |
488 |
481 # Panel for Array data types |
489 # Panel for Array data types |
482 |
490 |
483 self.ArrayPanel = wx.Panel(id=ID_DATATYPEEDITORARRAYPANEL, |
491 self.ArrayPanel = wx.Panel(id=ID_DATATYPEEDITORARRAYPANEL, |
484 name='ArrayPanel', parent=self, pos=wx.Point(0, 0), |
492 name='ArrayPanel', parent=self.Editor, pos=wx.Point(0, 0), |
485 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
493 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
486 |
494 |
487 self.staticText9 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT9, |
495 self.staticText9 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT9, |
488 label=_('Base Type:'), name='staticText9', parent=self.ArrayPanel, |
496 label=_('Base Type:'), name='staticText9', parent=self.ArrayPanel, |
489 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
497 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
510 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, id=ID_DATATYPEEDITORARRAYINITIALVALUE) |
518 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, id=ID_DATATYPEEDITORARRAYINITIALVALUE) |
511 |
519 |
512 # Panel for Structure data types |
520 # Panel for Structure data types |
513 |
521 |
514 self.StructurePanel = wx.Panel(id=ID_DATATYPEEDITORSTRUCTUREPANEL, |
522 self.StructurePanel = wx.Panel(id=ID_DATATYPEEDITORSTRUCTUREPANEL, |
515 name='StructurePanel', parent=self, pos=wx.Point(0, 0), |
523 name='StructurePanel', parent=self.Editor, pos=wx.Point(0, 0), |
516 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
524 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
517 |
525 |
518 self.staticText11 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT11, |
526 self.staticText11 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT11, |
519 label=_('Elements :'), name='staticText11', parent=self.StructurePanel, |
527 label=_('Elements :'), name='staticText11', parent=self.StructurePanel, |
520 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
528 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
552 size=wx.Size(32, 32), style=0) |
560 size=wx.Size(32, 32), style=0) |
553 |
561 |
554 self._init_sizers() |
562 self._init_sizers() |
555 |
563 |
556 def __init__(self, parent, tagname, window, controler): |
564 def __init__(self, parent, tagname, window, controler): |
557 self._init_ctrls(parent) |
565 EditorPanel.__init__(self, parent, tagname, window, controler) |
558 |
566 |
559 self.StructureElementDefaultValue = {"Name" : "", "Type" : "INT", "Initial Value" : ""} |
567 self.StructureElementDefaultValue = {"Name" : "", "Type" : "INT", "Initial Value" : ""} |
560 self.StructureElementsTable = ElementsTable(self, [], GetElementsTableColnames()) |
568 self.StructureElementsTable = ElementsTable(self, [], GetElementsTableColnames()) |
561 self.StructureColSizes = [40, 150, 100, 250] |
569 self.StructureColSizes = [40, 150, 100, 250] |
562 self.StructureColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT] |
570 self.StructureColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT] |
605 self.StructurePanel.Hide() |
613 self.StructurePanel.Hide() |
606 self.CurrentPanel = "Directly" |
614 self.CurrentPanel = "Directly" |
607 self.Highlights = [] |
615 self.Highlights = [] |
608 self.Initializing = False |
616 self.Initializing = False |
609 |
617 |
610 self.ParentWindow = window |
|
611 self.Controler = controler |
|
612 self.TagName = tagname |
|
613 |
|
614 self.HighlightControls = { |
618 self.HighlightControls = { |
615 ("Directly", "base"): self.DirectlyBaseType, |
619 ("Directly", "base"): self.DirectlyBaseType, |
616 ("Directly", "initial"): self.DirectlyInitialValue, |
620 ("Directly", "initial"): self.DirectlyInitialValue, |
617 ("Subrange", "base"): self.SubrangeBaseType, |
621 ("Subrange", "base"): self.SubrangeBaseType, |
618 ("Subrange", "lower"): self.SubrangeMinimum, |
622 ("Subrange", "lower"): self.SubrangeMinimum, |
629 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
633 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
630 |
634 |
631 def __del__(self): |
635 def __del__(self): |
632 self.RefreshHighlightsTimer.Stop() |
636 self.RefreshHighlightsTimer.Stop() |
633 |
637 |
634 def SetTagName(self, tagname): |
638 def GetBufferState(self): |
635 self.TagName = tagname |
639 return self.Controler.GetBufferState() |
636 |
640 |
637 def GetTagName(self): |
641 def Undo(self): |
638 return self.TagName |
642 self.Controler.LoadPrevious() |
639 |
643 self.ParentWindow.CloseTabsWithoutModel() |
640 def IsViewing(self, tagname): |
644 self.ParentWindow.RefreshEditor() |
641 return self.TagName == tagname |
645 |
642 |
646 def Redo(self): |
643 def IsDebugging(self): |
647 self.Controler.LoadNext() |
644 return False |
648 self.ParentWindow.CloseTabsWithoutModel() |
645 |
649 self.ParentWindow.RefreshEditor() |
646 def SetMode(self, mode): |
650 |
647 pass |
651 def HasNoModel(self): |
648 |
652 return self.Controler.GetEditedElement(self.TagName) is None |
649 def ResetBuffer(self): |
653 |
650 pass |
|
651 |
|
652 def RefreshView(self): |
654 def RefreshView(self): |
653 self.Initializing = True |
655 self.Initializing = True |
654 self.DirectlyBaseType.Clear() |
656 self.DirectlyBaseType.Clear() |
655 self.ArrayBaseType.Clear() |
657 self.ArrayBaseType.Clear() |
656 for datatype in self.Controler.GetDataTypes(self.TagName): |
658 for datatype in self.Controler.GetDataTypes(self.TagName): |