summaryrefslogtreecommitdiff
path: root/NET/worlds/console/GammaFrame.java
blob: 4aec0db2aa844a4f07d89f6955743e66a70d9ca9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package NET.worlds.console;

import NET.worlds.core.Std;
import NET.worlds.scape.EditTile;
import NET.worlds.scape.LibrariesTile;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Event;
import java.awt.Frame;

public class GammaFrame extends Frame implements DialogDisabled {
   private static final long serialVersionUID = 2725752068161032112L;
   private Container consoleTile;
   private Tree treeTile;
   private EditTile editTile;
   private LibrariesTile librariesTile;
   private FourTilePanel fourTile;
   private boolean isDialogDisabled;

   @Override
   public boolean handleEvent(Event e) {
      if (this.isDialogDisabled) {
         return false;
      } else {
         Console c = Console.getActive();
         if (c != null && c.handleEvent(e)) {
            return true;
         } else {
            return e.id == 201 ? Console.maybeQuit() : super.handleEvent(e);
         }
      }
   }

   public static String getDefaultTitle() {
      return Std.getProductName();
   }

   public GammaFrame() {
      super(getDefaultTitle());
   }

   @Override
   public void show() {
      Gamma.hideSplash();
      Window.allowFGJavaPalette(false);
      Console cons = Console.getActive();
      if (cons instanceof DefaultConsole) {
         ((DefaultConsole)cons).setOrthoEnabled(this.isShaperVisible());
      }

      super.show();
   }

   public Container getConsoleTile() {
      this.makeTiles();
      return this.consoleTile;
   }

   public Tree getTreeTile() {
      this.makeTiles();
      return this.treeTile;
   }

   public EditTile getEditTile() {
      this.makeTiles();
      return this.editTile;
   }

   public LibrariesTile getLibrariesTile() {
      this.makeTiles();
      return this.librariesTile;
   }

   private void makeTiles() {
      if (this.consoleTile == null) {
         if (Gamma.getShaper() == null) {
            this.consoleTile = this;
         } else {
            this.consoleTile = new ExposedPanel();
            this.treeTile = new Tree();
            this.editTile = new EditTile(this.treeTile);
            this.librariesTile = new LibrariesTile();
            this.setLayout(new BorderLayout());
            this.fourTile = new FourTilePanel(this.librariesTile, this.consoleTile, this.treeTile, this.editTile, 1);
            this.add("Center", this.fourTile);
         }

         this.consoleTile.setLayout(new CardLayout());
      }
   }

   public void setShaperVisible(boolean f) {
      if (Gamma.getShaper() != null) {
         if (this.fourTile.isOneTileMode() == f) {
            if (f) {
               this.fourTile.useFourTileMode();
            } else {
               this.fourTile.useOneTileMode();
            }
         }

         Console cons = Console.getActive();
         if (cons instanceof DefaultConsole) {
            ((DefaultConsole)cons).setOrthoEnabled(f);
         }
      }
   }

   public boolean isShaperVisible() {
      return Gamma.getShaper() != null && this.fourTile != null && !this.fourTile.isOneTileMode();
   }

   public void deactivate() {
   }

   public void activate() {
      if (!this.isShowing()) {
         new GammaFrameState(this);
         this.show();
      }
   }

   @Override
   public boolean action(Event event, Object what) {
      Console c = Console.getActive();
      return c != null && c.action(event, what) ? true : super.action(event, what);
   }

   @Override
   public void dialogDisable(boolean disable) {
      this.isDialogDisabled = disable;
      Console c = Console.getActive();
      if (c != null) {
         c.dialogDisable(disable);
      }

      if (this.isShaperVisible()) {
         this.getTreeTile().dialogDisable(disable);
         this.getLibrariesTile().dialogDisable(disable);
         this.getEditTile().dialogDisable(disable);
      }
   }
}