ModalOps.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import EditorUI = require("../EditorUI");
  2. import ModalWindow = require("./ModalWindow");
  3. import NewProject = require("./NewProject");
  4. class ModalOps extends Atomic.ScriptObject {
  5. constructor() {
  6. super();
  7. this.dimmer = new Atomic.UIDimmer();
  8. }
  9. private show(): boolean {
  10. if (this.dimmer.parent) {
  11. console.log("WARNING: attempting to show modal while dimmer is active");
  12. return false;
  13. }
  14. if (this.opWindow) {
  15. console.log("WARNING: attempting to show modal while another opWindow is active");
  16. return false;
  17. }
  18. var view = EditorUI.getView();
  19. view.addChild(this.dimmer);
  20. return true;
  21. }
  22. hide() {
  23. if (this.opWindow) {
  24. var window = this.opWindow;
  25. this.opWindow = null;
  26. var view = EditorUI.getView();
  27. view.setFocusRecursive();
  28. }
  29. if (this.dimmer.parent) {
  30. this.dimmer.parent.removeChild(this.dimmer, false);
  31. }
  32. }
  33. showNewProject() {
  34. if (this.show()) {
  35. this.opWindow = new NewProject();
  36. }
  37. }
  38. dimmer: Atomic.UIDimmer;
  39. opWindow: ModalWindow;
  40. }
  41. export = ModalOps;