Helios-Workspace.st 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. Smalltalk current createPackage: 'Helios-Workspace' properties: #{}!
  2. Object subclass: #HLWorkspaceModel
  3. instanceVariableNames: 'announcer environment'
  4. package: 'Helios-Workspace'!
  5. !HLWorkspaceModel methodsFor: 'accessing'!
  6. announcer
  7. ^ announcer ifNil: [ self initializeAnnouncer ]
  8. !
  9. environment
  10. ^ environment ifNil: [ self initializeEnvironment]
  11. !
  12. environment: anEnvironment
  13. environment := anEnvironment
  14. ! !
  15. !HLWorkspaceModel methodsFor: 'actions'!
  16. subscribe: aWidget
  17. aWidget subscribeTo: self announcer
  18. ! !
  19. !HLWorkspaceModel methodsFor: 'initialization'!
  20. initializeAnnouncer
  21. ^ announcer := Announcer new
  22. !
  23. initializeEnvironment
  24. ^ environment := Smalltalk current
  25. ! !
  26. !HLWorkspaceModel methodsFor: 'reactions'!
  27. onKeyDown: anEvent
  28. <if(anEvent.ctrlKey) {
  29. if(anEvent.keyCode === 80) { //ctrl+p
  30. self._printIt();
  31. anEvent.preventDefault();
  32. return false;
  33. }
  34. if(anEvent.keyCode === 68) { //ctrl+d
  35. self._doIt();
  36. anEvent.preventDefault();
  37. return false;
  38. }
  39. if(anEvent.keyCode === 73) { //ctrl+i
  40. self._inspectIt();
  41. anEvent.preventDefault();
  42. return false;
  43. }
  44. }>
  45. ! !
  46. !HLWorkspaceModel class methodsFor: 'actions'!
  47. on: anEnvironment
  48. ^ self new
  49. environment: anEnvironment;
  50. yourself
  51. ! !