MainFrame.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import ProjectFrame = require("./ProjectFrame");
  2. import ResourceFrame = require("./ResourceFrame");
  3. import InspectorFrame = require("./inspector/InspectorFrame");
  4. import HierarchyFrame = require("./HierarchyFrame");
  5. import MainToolbar = require("./MainToolbar");
  6. import MessageModal = require("./modal/MessageModal");
  7. import UIEvents = require("./UIEvents");
  8. import ScriptWidget = require("./ScriptWidget");
  9. import MainFrameMenu = require("./MainFrameMenu");
  10. class MainFrame extends ScriptWidget {
  11. projectframe: ProjectFrame;
  12. resourceframe: ResourceFrame;
  13. inspectorframe: InspectorFrame;
  14. hierarchyFrame: HierarchyFrame;
  15. inspectorlayout: Atomic.UILayout;
  16. mainToolbar: MainToolbar;
  17. menu: MainFrameMenu;
  18. private messagemodal: MessageModal.MessageModal = new MessageModal.MessageModal();
  19. constructor() {
  20. super();
  21. this.load("AtomicEditor/editor/ui/mainframe.tb.txt");
  22. this.inspectorlayout = <Atomic.UILayout> this.getWidget("inspectorlayout");
  23. this.getWidget("consolecontainer").visibility = Atomic.UI_WIDGET_VISIBILITY_GONE;
  24. this.inspectorframe = new InspectorFrame();
  25. this.inspectorlayout.addChild(this.inspectorframe);
  26. this.projectframe = new ProjectFrame(this);
  27. this.hierarchyFrame = new HierarchyFrame(this);
  28. this.resourceframe = new ResourceFrame(this);
  29. this.mainToolbar = new MainToolbar(this.getWidget("maintoolbarcontainer"));
  30. this.menu = new MainFrameMenu();
  31. this.showInspectorFrame(true);
  32. this.subscribeToEvent(UIEvents.ResourceEditorChanged, (data) => this.handleResourceEditorChanged(data));
  33. }
  34. showInspectorFrame(show: boolean) {
  35. return;
  36. if (show) {
  37. this.inspectorlayout.visibility = Atomic.UI_WIDGET_VISIBILITY_VISIBLE;
  38. this.inspectorframe.visibility = Atomic.UI_WIDGET_VISIBILITY_VISIBLE;
  39. } else {
  40. this.inspectorframe.visibility = Atomic.UI_WIDGET_VISIBILITY_GONE;
  41. this.inspectorlayout.visibility = Atomic.UI_WIDGET_VISIBILITY_GONE;
  42. }
  43. }
  44. onEventClick(target: Atomic.UIWidget, refid: string): boolean {
  45. if (this.menu.handlePopupMenu(target, refid))
  46. return true;
  47. var src = this.menu.getMenuItemSource(target.id);
  48. if (src) {
  49. var menu = new Atomic.UIMenuWindow(target, target.id + " popup");
  50. menu.show(src);
  51. return true;
  52. }
  53. return false;
  54. }
  55. handleResourceEditorChanged(data): void {
  56. var editor = <Editor.ResourceEditor> data.editor;
  57. if (editor) {
  58. this.showInspectorFrame(editor.requiresInspector());
  59. } else {
  60. this.showInspectorFrame(false);
  61. }
  62. }
  63. }
  64. export = MainFrame;