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