ModalOps.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import EditorUI = require("../EditorUI");
  2. import ModalWindow = require("./ModalWindow");
  3. import NewProject = require("./NewProject");
  4. import CreateProject = require("./CreateProject");
  5. import EULAWindow = require("../license/EULAWindow");
  6. import ActivationWindow = require("../license/ActivationWindow");
  7. import ActivationSuccessWindow = require("../license/ActivationSuccessWindow");
  8. class ModalOps extends Atomic.ScriptObject {
  9. constructor() {
  10. super();
  11. this.dimmer = new Atomic.UIDimmer();
  12. }
  13. showCreateProject(projectTemplateFolder:string) {
  14. if (this.show()) {
  15. this.opWindow = new CreateProject(projectTemplateFolder);
  16. }
  17. }
  18. showNewProject() {
  19. if (this.show()) {
  20. this.opWindow = new NewProject();
  21. }
  22. }
  23. showEULAWindow() {
  24. if (this.show()) {
  25. this.opWindow = new EULAWindow();
  26. }
  27. }
  28. showActivationWindow() {
  29. if (this.show()) {
  30. this.opWindow = new ActivationWindow();
  31. }
  32. }
  33. showActivationSuccessWindow() {
  34. if (this.show()) {
  35. this.opWindow = new ActivationSuccessWindow();
  36. }
  37. }
  38. private show(): boolean {
  39. if (this.dimmer.parent) {
  40. console.log("WARNING: attempting to show modal while dimmer is active");
  41. return false;
  42. }
  43. if (this.opWindow) {
  44. console.log("WARNING: attempting to show modal while another opWindow is active");
  45. return false;
  46. }
  47. var view = EditorUI.getView();
  48. view.addChild(this.dimmer);
  49. return true;
  50. }
  51. hide() {
  52. if (this.opWindow) {
  53. var window = this.opWindow;
  54. this.opWindow = null;
  55. if (window.parent)
  56. window.parent.removeChild(window, false);
  57. var view = EditorUI.getView();
  58. view.setFocusRecursive();
  59. }
  60. if (this.dimmer.parent) {
  61. this.dimmer.parent.removeChild(this.dimmer, false);
  62. }
  63. }
  64. dimmer: Atomic.UIDimmer;
  65. opWindow: ModalWindow;
  66. }
  67. export = ModalOps;