You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UIController.py 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from UIModell import *
  2. import UIViewTKinter as viewTkinter
  3. import UIViewPySide as viewPySide
  4. from threading import Thread
  5. class Controller():
  6. def __init__(self):
  7. self.view = viewTkinter.View(self)
  8. self.commands = {
  9. "copySpelling": self.commandoCopySpelling,
  10. "stop": self.commandStop,
  11. "freeSpelling": self.commandFreeSpelling,
  12. "test": self.test
  13. }
  14. self.nexts = {
  15. "filterXdawn" : self.filterXdawn,
  16. "filterClassic": self.filterClassic
  17. }
  18. self.pages = {
  19. "stop": "StartPage",
  20. "copySpelling": "WorkingPage",
  21. "freeSpelling": "WorkingPage",
  22. "test": "WorkingPage"
  23. }
  24. self.view.mainloop()
  25. def actionPerformed(self, action):
  26. self.view.changeFrame(self.pages.get(action))
  27. func = self.commands.get(action)
  28. if(func is not None):
  29. func()
  30. else:
  31. print("Kommado existiert nicht")
  32. def test(self):
  33. self.model = Modell(self)
  34. self.model.setFunktion(self.model.trainXDawn)
  35. self.model.start()
  36. #wird durch Btn gestartet -> startet copyspelling als thread
  37. def commandoCopySpelling(self):
  38. self.model = Modell(self)
  39. self.model.setFunktion(self.model.startCopySpelling)
  40. self.model.start()
  41. #wird durch Copy-Speller Thread copystelling gestartet -> startete filtern als thread
  42. def filterXdawn(self):
  43. self.model = Modell(self)
  44. self.model.setFunktion(self.model.trainXDawn)
  45. self.model.start()
  46. #wird durch XDawn-Thread copystelling gestartet -> startete filtern als thread
  47. def filterClassic(self):
  48. self.model = Modell(self)
  49. self.model.setFunktion(self.model.trainClassifier)
  50. self.model.start()
  51. def commandFreeSpelling(self):
  52. print("freespelling")
  53. self.model = Modell(self)
  54. self.model.setFunktion(self.model.freeSpelling)
  55. self.model.start()
  56. def commandStop(self):
  57. self.setInfos("Action: STOP-Command")
  58. self.model.stop()
  59. self.model.join()
  60. self.model.killProzess()
  61. self.mode = None
  62. def stop(self, next=None):
  63. print("Stop aus Modell")
  64. self.model.stop()
  65. self.model.join()
  66. self.model.killProzess()
  67. self.mode = None
  68. if(next is not None):
  69. func = self.nexts.get(next)
  70. func()
  71. def setInfos(self,text):
  72. self.view.setInfoText(text)
  73. def setTitle(self,text):
  74. self.view.setTitleText(text)
  75. def changeScreen(self, pageName):
  76. self.view.changeFrame(pageName=pageName)