GuiType.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. ###################
  2. # Gui Data Types
  3. ###################
  4. class _GuiForm():
  5. def __init__(self, fixed_row, rows):
  6. self.FixedRow = fixed_row
  7. self.Rows = rows
  8. # Form = _GuiForm( ["Col1", "Col2"], [["a1","a2"],["b1","b2"],["c1","c2"]])
  9. class _GuiFormMulti():
  10. def __init__(self, name_forms):
  11. self.Names = []
  12. self.__Forms = []
  13. for nf in name_forms:
  14. self.Names.append(nf[0])
  15. self.__Forms.append(nf[1])
  16. def GetForm(self, index): # can be further modify to lazy eval
  17. return self.__Forms[index]
  18. # Forms = _GuiFormMulti([["Sheet1", _GuiForm( ["Col1", "Col2"], [["a1","a2"],["b1","b2"],["c1","c2"]])], ["Sheet2", _GuiForm( ["Col1", "Col2"], [["d1","d2"],["e1","e2"],["f1","f2"]])]])
  19. class _GuiTreeRow():
  20. def __init__(self, treerows, name, row):
  21. self.Name = name
  22. self.Row = row
  23. if treerows:
  24. self.HasSubTreeRows = True
  25. self.__SubTreeRows = treerows
  26. else:
  27. self.HasSubTreeRows = False
  28. self.__SubTreeRows = []
  29. def GetSubTreeRows(self):
  30. return self.__SubTreeRows
  31. def GetID(self):
  32. pass
  33. # TreeRow = _GuiTreeRow([], "SubDesign1", ["12", "0"])
  34. # TreeRow = _GuiTreeRow([_GuiTreeRow([], "Sub3", ["5", "0"])], "SubDesign2", ["34", "1"])
  35. class _GuiTree():
  36. def __init__(self, fixed_row, treerows:_GuiTreeRow):
  37. self.FixedRow = fixed_row
  38. self.TreeRows = treerows
  39. # Tree = _GuiTree(["","DFFs","SubModules"], [_GuiTreeRow([_GuiTreeRow([], "SubDesign1", ["12", "0"]),_GuiTreeRow([_GuiTreeRow([], "Sub3", ["5", "0"])], "SubDesign2", ["34", "1"])], "DemoDesign", ["123", "2"]),])
  40. #####################
  41. # Gui Window Types
  42. #####################
  43. class _GuiWinText():
  44. def __init__(self, title, text):
  45. self.Title = title
  46. self.Text = text
  47. class _GuiWinLinedText():
  48. def __init__(self, title, lined_text, line):
  49. self.Title = title
  50. self.LinedText = lined_text
  51. self.Line = line
  52. class _GuiWinForm():
  53. def __init__(self, title, form):
  54. self.Title = title
  55. self.Form = form
  56. class _GuiWinFormMulti():
  57. def __init__(self, title, forms):
  58. self.Title = title
  59. self.Forms = forms
  60. class _GuiWinTree():
  61. def __init__(self, tree):
  62. self.Title = ""
  63. self.Tree = tree
  64. class _GuiSideBar():
  65. def __init__(self, title, tree:_GuiTree):
  66. self.Title = title
  67. self.Tree = tree
  68. def GetForms(self, treenames):
  69. return _GuiFormMulti([["Sheet1", _GuiForm(["Col1", "Col2"], [[treename, "ok"] for treename in treenames])], ["Sheet2", _GuiForm(["Col1", "Col2"], [[treename, "fail"] for treename in treenames])]])
  70. def CrossProbe(self, treenames, name):
  71. line = 1000
  72. return _GuiWinLinedText(name, ("Text Start\n\n"+'\n'.join([str(x) for x in treenames])+'\n'.join(['generated line '+str(x) for x in range(line*2)])+"\n\nText End").split("\n"), line)
  73. class _GuiMessages(): # to be further defined
  74. def __init__(self):
  75. self.Infos = []
  76. self.Warnings = []
  77. self.CriticalWarnings = []
  78. self.Errors = []
  79. def CrossProbe(self, filename, line):
  80. return _GuiWinLinedText(filename, ("Text Start\n\n"+'\n'.join(['generated line '+str(x) for x in range(line*2)])+"\n\nText End").split("\n"), line)
  81. def __init__(self, info, warn, crit, err):
  82. self.Infos = info
  83. self.Warnings = warn
  84. self.CriticalWarnings = crit
  85. self.Errors = err