1f5dd5dc3712eba1d6fc7d5bfaadd1c755642a2d
[jalviewjs.git] / site / swingjs / j2s / javax / swing / JLayeredPane.js
1 Clazz.declarePackage ("javax.swing");
2 Clazz.load (["javax.swing.JComponent"], "javax.swing.JLayeredPane", ["java.util.ArrayList", "$.Hashtable", "java.awt.Color"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.componentToLayer = null;
5 this.optimizedDrawingPossible = true;
6 Clazz.instantialize (this, arguments);
7 }, javax.swing, "JLayeredPane", javax.swing.JComponent);
8 Clazz.makeConstructor (c$, 
9 function () {
10 Clazz.superConstructor (this, javax.swing.JLayeredPane, []);
11 this.setLayout (null);
12 });
13 Clazz.defineMethod (c$, "validateOptimizedDrawing", 
14  function () {
15 var layeredComponentFound = false;
16 {
17 var layer = null;
18 for (var c, $c = 0, $$c = this.getComponents (); $c < $$c.length && ((c = $$c[$c]) || true); $c++) {
19 layer = null;
20 if ((Clazz.instanceOf (c, javax.swing.JComponent) && (layer = (c).getClientProperty ("layeredContainerLayer")) != null)) {
21 if (layer != null && layer.equals (javax.swing.JLayeredPane.FRAME_CONTENT_LAYER)) continue;
22 layeredComponentFound = true;
23 break;
24 }}
25 }if (layeredComponentFound) this.optimizedDrawingPossible = false;
26  else this.optimizedDrawingPossible = true;
27 });
28 Clazz.overrideMethod (c$, "addImpl", 
29 function (comp, constraints, index) {
30 var layer = javax.swing.JLayeredPane.DEFAULT_LAYER.intValue ();
31 var pos;
32 if (Clazz.instanceOf (constraints, Integer)) {
33 layer = (constraints).intValue ();
34 this.setLayer (comp, layer);
35 } else layer = this.getLayer (comp);
36 pos = this.insertIndexForLayer (layer, index);
37 this.addImplSAEM (comp, constraints, pos);
38 comp.validate ();
39 comp.repaint ();
40 this.validateOptimizedDrawing ();
41 return comp;
42 }, "java.awt.Component,~O,~N");
43 Clazz.defineMethod (c$, "remove", 
44 function (index) {
45 var c = this.getComponent (index);
46 Clazz.superCall (this, javax.swing.JLayeredPane, "remove", [index]);
47 if (c != null && !(Clazz.instanceOf (c, javax.swing.JComponent))) {
48 this.getComponentToLayer ().remove (c);
49 }this.validateOptimizedDrawing ();
50 }, "~N");
51 Clazz.defineMethod (c$, "removeAll", 
52 function () {
53 var children = this.getComponents ();
54 var cToL = this.getComponentToLayer ();
55 for (var counter = children.length - 1; counter >= 0; counter--) {
56 var c = children[counter];
57 if (c != null && !(Clazz.instanceOf (c, javax.swing.JComponent))) {
58 cToL.remove (c);
59 }}
60 Clazz.superCall (this, javax.swing.JLayeredPane, "removeAll", []);
61 });
62 Clazz.overrideMethod (c$, "isOptimizedDrawingEnabled", 
63 function () {
64 return this.optimizedDrawingPossible;
65 });
66 c$.putLayer = Clazz.defineMethod (c$, "putLayer", 
67 function (c, layer) {
68 var layerObj;
69 layerObj =  new Integer (layer);
70 c.putClientProperty ("layeredContainerLayer", layerObj);
71 }, "javax.swing.JComponent,~N");
72 c$.getLayer = Clazz.defineMethod (c$, "getLayer", 
73 function (c) {
74 var i;
75 if ((i = c.getClientProperty ("layeredContainerLayer")) != null) return i.intValue ();
76 return javax.swing.JLayeredPane.DEFAULT_LAYER.intValue ();
77 }, "javax.swing.JComponent");
78 c$.getLayeredPaneAbove = Clazz.defineMethod (c$, "getLayeredPaneAbove", 
79 function (c) {
80 if (c == null) return null;
81 var parent = c.getParent ();
82 while (parent != null && !(Clazz.instanceOf (parent, javax.swing.JLayeredPane))) parent = parent.getParent ();
83
84 return parent;
85 }, "java.awt.Component");
86 Clazz.defineMethod (c$, "setLayer", 
87 function (c, layer) {
88 this.setLayer (c, layer, -1);
89 }, "java.awt.Component,~N");
90 Clazz.defineMethod (c$, "setLayer", 
91 function (c, layer, position) {
92 var layerObj;
93 layerObj = this.getObjectForLayer (layer);
94 if (layer == this.getLayer (c) && position == this.getPosition (c)) {
95 this.repaint (c.getBounds ());
96 return;
97 }if (Clazz.instanceOf (c, javax.swing.JComponent)) (c).putClientProperty ("layeredContainerLayer", layerObj);
98  else this.getComponentToLayer ().put (c, layerObj);
99 if (c.getParent () == null || c.getParent () !== this) {
100 this.repaint (c.getBounds ());
101 return;
102 }var index = this.insertIndexForLayer (c, layer, position);
103 this.setComponentZOrder (c, index);
104 this.repaint (c.getBounds ());
105 }, "java.awt.Component,~N,~N");
106 Clazz.defineMethod (c$, "getLayer", 
107 function (c) {
108 var i;
109 if (Clazz.instanceOf (c, javax.swing.JComponent)) i = (c).getClientProperty ("layeredContainerLayer");
110  else i = this.getComponentToLayer ().get (c);
111 if (i == null) return javax.swing.JLayeredPane.DEFAULT_LAYER.intValue ();
112 return i.intValue ();
113 }, "java.awt.Component");
114 Clazz.defineMethod (c$, "getIndexOf", 
115 function (c) {
116 var i;
117 var count;
118 count = this.getComponentCount ();
119 for (i = 0; i < count; i++) {
120 if (c === this.getComponent (i)) return i;
121 }
122 return -1;
123 }, "java.awt.Component");
124 Clazz.defineMethod (c$, "moveToFront", 
125 function (c) {
126 this.setPosition (c, 0);
127 }, "java.awt.Component");
128 Clazz.defineMethod (c$, "moveToBack", 
129 function (c) {
130 this.setPosition (c, -1);
131 }, "java.awt.Component");
132 Clazz.defineMethod (c$, "setPosition", 
133 function (c, position) {
134 this.setLayer (c, this.getLayer (c), position);
135 }, "java.awt.Component,~N");
136 Clazz.defineMethod (c$, "getPosition", 
137 function (c) {
138 var i;
139 var count;
140 var startLayer;
141 var curLayer;
142 var startLocation;
143 var pos = 0;
144 count = this.getComponentCount ();
145 startLocation = this.getIndexOf (c);
146 if (startLocation == -1) return -1;
147 startLayer = this.getLayer (c);
148 for (i = startLocation - 1; i >= 0; i--) {
149 curLayer = this.getLayer (this.getComponent (i));
150 if (curLayer == startLayer) pos++;
151  else return pos;
152 }
153 return pos;
154 }, "java.awt.Component");
155 Clazz.defineMethod (c$, "highestLayer", 
156 function () {
157 if (this.getComponentCount () > 0) return this.getLayer (this.getComponent (0));
158 return 0;
159 });
160 Clazz.defineMethod (c$, "lowestLayer", 
161 function () {
162 var count = this.getComponentCount ();
163 if (count > 0) return this.getLayer (this.getComponent (count - 1));
164 return 0;
165 });
166 Clazz.defineMethod (c$, "getComponentCountInLayer", 
167 function (layer) {
168 var i;
169 var count;
170 var curLayer;
171 var layerCount = 0;
172 count = this.getComponentCount ();
173 for (i = 0; i < count; i++) {
174 curLayer = this.getLayer (this.getComponent (i));
175 if (curLayer == layer) {
176 layerCount++;
177 } else if (layerCount > 0 || curLayer < layer) {
178 break;
179 }}
180 return layerCount;
181 }, "~N");
182 Clazz.defineMethod (c$, "getComponentsInLayer", 
183 function (layer) {
184 var i;
185 var count;
186 var curLayer;
187 var layerCount = 0;
188 var results;
189 results =  new Array (this.getComponentCountInLayer (layer));
190 count = this.getComponentCount ();
191 for (i = 0; i < count; i++) {
192 curLayer = this.getLayer (this.getComponent (i));
193 if (curLayer == layer) {
194 results[layerCount++] = this.getComponent (i);
195 } else if (layerCount > 0 || curLayer < layer) {
196 break;
197 }}
198 return results;
199 }, "~N");
200 Clazz.defineMethod (c$, "paint", 
201 function (g) {
202 if (this.isOpaque ()) {
203 var r = g.getClipBounds ();
204 var c = this.getBackground ();
205 if (c == null) c = java.awt.Color.lightGray;
206 g.setColor (c);
207 if (r != null) {
208 g.fillRect (r.x, r.y, r.width, r.height);
209 } else {
210 g.fillRect (0, 0, this.getWidth (), this.getHeight ());
211 }}Clazz.superCall (this, javax.swing.JLayeredPane, "paint", [g]);
212 }, "java.awt.Graphics");
213 Clazz.defineMethod (c$, "getComponentToLayer", 
214 function () {
215 if (this.componentToLayer == null) this.componentToLayer =  new java.util.Hashtable (4);
216 return this.componentToLayer;
217 });
218 Clazz.defineMethod (c$, "getObjectForLayer", 
219 function (layer) {
220 var layerObj;
221 switch (layer) {
222 case 0:
223 layerObj = javax.swing.JLayeredPane.DEFAULT_LAYER;
224 break;
225 case 100:
226 layerObj = javax.swing.JLayeredPane.PALETTE_LAYER;
227 break;
228 case 200:
229 layerObj = javax.swing.JLayeredPane.MODAL_LAYER;
230 break;
231 case 300:
232 layerObj = javax.swing.JLayeredPane.POPUP_LAYER;
233 break;
234 case 400:
235 layerObj = javax.swing.JLayeredPane.DRAG_LAYER;
236 break;
237 default:
238 layerObj =  new Integer (layer);
239 }
240 return layerObj;
241 }, "~N");
242 Clazz.defineMethod (c$, "insertIndexForLayer", 
243 function (layer, position) {
244 return this.insertIndexForLayer (null, layer, position);
245 }, "~N,~N");
246 Clazz.defineMethod (c$, "insertIndexForLayer", 
247  function (comp, layer, position) {
248 var i;
249 var count;
250 var curLayer;
251 var layerStart = -1;
252 var layerEnd = -1;
253 var componentCount = this.getComponentCount ();
254 var compList =  new java.util.ArrayList (componentCount);
255 for (var index = 0; index < componentCount; index++) {
256 if (this.getComponent (index) !== comp) {
257 compList.add (this.getComponent (index));
258 }}
259 count = compList.size ();
260 for (i = 0; i < count; i++) {
261 curLayer = this.getLayer (compList.get (i));
262 if (layerStart == -1 && curLayer == layer) {
263 layerStart = i;
264 }if (curLayer < layer) {
265 if (i == 0) {
266 layerStart = 0;
267 layerEnd = 0;
268 } else {
269 layerEnd = i;
270 }break;
271 }}
272 if (layerStart == -1 && layerEnd == -1) return count;
273 if (layerStart != -1 && layerEnd == -1) layerEnd = count;
274 if (layerEnd != -1 && layerStart == -1) layerStart = layerEnd;
275 if (position == -1) return layerEnd;
276 if (position > -1 && layerStart + position <= layerEnd) return layerStart + position;
277 return layerEnd;
278 }, "java.awt.Component,~N,~N");
279 Clazz.defineMethod (c$, "paramString", 
280 function () {
281 var optimizedDrawingPossibleString = (this.optimizedDrawingPossible ? "true" : "false");
282 return Clazz.superCall (this, javax.swing.JLayeredPane, "paramString", []) + ",optimizedDrawingPossible=" + optimizedDrawingPossibleString;
283 });
284 c$.DEFAULT_LAYER = c$.prototype.DEFAULT_LAYER =  new Integer (0);
285 c$.PALETTE_LAYER = c$.prototype.PALETTE_LAYER =  new Integer (100);
286 c$.MODAL_LAYER = c$.prototype.MODAL_LAYER =  new Integer (200);
287 c$.POPUP_LAYER = c$.prototype.POPUP_LAYER =  new Integer (300);
288 c$.DRAG_LAYER = c$.prototype.DRAG_LAYER =  new Integer (400);
289 c$.FRAME_CONTENT_LAYER = c$.prototype.FRAME_CONTENT_LAYER =  new Integer (-30000);
290 Clazz.defineStatics (c$,
291 "LAYER_PROPERTY", "layeredContainerLayer");
292 });