JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / Rectangle.js
1 Clazz.declarePackage ("java.awt");\r
2 Clazz.load (["java.awt.Shape", "java.awt.geom.Rectangle2D"], "java.awt.Rectangle", ["java.awt.Dimension", "$.Point"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.x = 0;\r
5 this.y = 0;\r
6 this.width = 0;\r
7 this.height = 0;\r
8 Clazz.instantialize (this, arguments);\r
9 }, java.awt, "Rectangle", java.awt.geom.Rectangle2D, java.awt.Shape);\r
10 Clazz.makeConstructor (c$, \r
11 function () {\r
12 this.construct (0, 0, 0, 0);\r
13 });\r
14 Clazz.makeConstructor (c$, \r
15 function (r) {\r
16 this.construct (r.x, r.y, r.width, r.height);\r
17 }, "java.awt.Rectangle");\r
18 Clazz.makeConstructor (c$, \r
19 function (x, y, width, height) {\r
20 Clazz.superConstructor (this, java.awt.Rectangle, []);\r
21 this.x = x;\r
22 this.y = y;\r
23 this.width = width;\r
24 this.height = height;\r
25 }, "~N,~N,~N,~N");\r
26 Clazz.makeConstructor (c$, \r
27 function (width, height) {\r
28 this.construct (0, 0, width, height);\r
29 }, "~N,~N");\r
30 Clazz.makeConstructor (c$, \r
31 function (p, d) {\r
32 this.construct (p.x, p.y, d.width, d.height);\r
33 }, "java.awt.Point,java.awt.Dimension");\r
34 Clazz.makeConstructor (c$, \r
35 function (p) {\r
36 this.construct (p.x, p.y, 0, 0);\r
37 }, "java.awt.Point");\r
38 Clazz.makeConstructor (c$, \r
39 function (d) {\r
40 this.construct (0, 0, d.width, d.height);\r
41 }, "java.awt.Dimension");\r
42 Clazz.overrideMethod (c$, "getX", \r
43 function () {\r
44 return this.x;\r
45 });\r
46 Clazz.overrideMethod (c$, "getY", \r
47 function () {\r
48 return this.y;\r
49 });\r
50 Clazz.overrideMethod (c$, "getWidth", \r
51 function () {\r
52 return this.width;\r
53 });\r
54 Clazz.overrideMethod (c$, "getHeight", \r
55 function () {\r
56 return this.height;\r
57 });\r
58 Clazz.overrideMethod (c$, "getBounds", \r
59 function () {\r
60 return  new java.awt.Rectangle (this.x, this.y, this.width, this.height);\r
61 });\r
62 Clazz.overrideMethod (c$, "getBounds2D", \r
63 function () {\r
64 return  new java.awt.Rectangle (this.x, this.y, this.width, this.height);\r
65 });\r
66 Clazz.defineMethod (c$, "setBounds", \r
67 function (r) {\r
68 this.reshape (r.x, r.y, r.width, r.height);\r
69 }, "java.awt.Rectangle");\r
70 Clazz.defineMethod (c$, "setBounds", \r
71 function (x, y, width, height) {\r
72 this.reshape (x, y, width, height);\r
73 }, "~N,~N,~N,~N");\r
74 Clazz.defineMethod (c$, "setRect", \r
75 function (x, y, width, height) {\r
76 var newx;\r
77 var newy;\r
78 var neww;\r
79 var newh;\r
80 if (x > 4.294967294E9) {\r
81 newx = 2147483647;\r
82 neww = -1;\r
83 } else {\r
84 newx = java.awt.Rectangle.clip (x, false);\r
85 if (width >= 0) width += x - newx;\r
86 neww = java.awt.Rectangle.clip (width, width >= 0);\r
87 }if (y > 4.294967294E9) {\r
88 newy = 2147483647;\r
89 newh = -1;\r
90 } else {\r
91 newy = java.awt.Rectangle.clip (y, false);\r
92 if (height >= 0) height += y - newy;\r
93 newh = java.awt.Rectangle.clip (height, height >= 0);\r
94 }this.reshape (newx, newy, neww, newh);\r
95 }, "~N,~N,~N,~N");\r
96 c$.clip = Clazz.defineMethod (c$, "clip", \r
97  function (v, doceil) {\r
98 if (v <= -2147483648) {\r
99 return -2147483648;\r
100 }if (v >= 2147483647) {\r
101 return 2147483647;\r
102 }return Clazz.doubleToInt (doceil ? Math.ceil (v) : Math.floor (v));\r
103 }, "~N,~B");\r
104 Clazz.defineMethod (c$, "reshape", \r
105 function (x, y, width, height) {\r
106 this.x = x;\r
107 this.y = y;\r
108 this.width = width;\r
109 this.height = height;\r
110 }, "~N,~N,~N,~N");\r
111 Clazz.defineMethod (c$, "getLocation", \r
112 function () {\r
113 return  new java.awt.Point (this.x, this.y);\r
114 });\r
115 Clazz.defineMethod (c$, "setLocation", \r
116 function (p) {\r
117 this.setLocation (p.x, p.y);\r
118 }, "java.awt.Point");\r
119 Clazz.defineMethod (c$, "setLocation", \r
120 function (x, y) {\r
121 this.move (x, y);\r
122 }, "~N,~N");\r
123 Clazz.defineMethod (c$, "move", \r
124 function (x, y) {\r
125 this.x = x;\r
126 this.y = y;\r
127 }, "~N,~N");\r
128 Clazz.defineMethod (c$, "translate", \r
129 function (dx, dy) {\r
130 var oldv = this.x;\r
131 var newv = oldv + dx;\r
132 if (dx < 0) {\r
133 if (newv > oldv) {\r
134 if (this.width >= 0) {\r
135 this.width += newv - -2147483648;\r
136 }newv = -2147483648;\r
137 }} else {\r
138 if (newv < oldv) {\r
139 if (this.width >= 0) {\r
140 this.width += newv - 2147483647;\r
141 if (this.width < 0) this.width = 2147483647;\r
142 }newv = 2147483647;\r
143 }}this.x = newv;\r
144 oldv = this.y;\r
145 newv = oldv + dy;\r
146 if (dy < 0) {\r
147 if (newv > oldv) {\r
148 if (this.height >= 0) {\r
149 this.height += newv - -2147483648;\r
150 }newv = -2147483648;\r
151 }} else {\r
152 if (newv < oldv) {\r
153 if (this.height >= 0) {\r
154 this.height += newv - 2147483647;\r
155 if (this.height < 0) this.height = 2147483647;\r
156 }newv = 2147483647;\r
157 }}this.y = newv;\r
158 }, "~N,~N");\r
159 Clazz.defineMethod (c$, "getSize", \r
160 function () {\r
161 return  new java.awt.Dimension (this.width, this.height);\r
162 });\r
163 Clazz.defineMethod (c$, "setSize", \r
164 function (d) {\r
165 this.setSize (d.width, d.height);\r
166 }, "java.awt.Dimension");\r
167 Clazz.defineMethod (c$, "setSize", \r
168 function (width, height) {\r
169 this.resize (width, height);\r
170 }, "~N,~N");\r
171 Clazz.defineMethod (c$, "resize", \r
172 function (width, height) {\r
173 this.width = width;\r
174 this.height = height;\r
175 }, "~N,~N");\r
176 Clazz.defineMethod (c$, "contains", \r
177 function (p) {\r
178 return this.contains (p.x, p.y);\r
179 }, "java.awt.Point");\r
180 Clazz.defineMethod (c$, "contains", \r
181 function (x, y) {\r
182 return this.inside (x, y);\r
183 }, "~N,~N");\r
184 Clazz.defineMethod (c$, "contains", \r
185 function (r) {\r
186 return this.contains (r.x, r.y, r.width, r.height);\r
187 }, "java.awt.Rectangle");\r
188 Clazz.defineMethod (c$, "contains", \r
189 function (X, Y, W, H) {\r
190 var w = this.width;\r
191 var h = this.height;\r
192 if ((w | h | W | H) < 0) {\r
193 return false;\r
194 }var x = this.x;\r
195 var y = this.y;\r
196 if (X < x || Y < y) {\r
197 return false;\r
198 }w += x;\r
199 W += X;\r
200 if (W <= X) {\r
201 if (w >= x || W > w) return false;\r
202 } else {\r
203 if (w >= x && W > w) return false;\r
204 }h += y;\r
205 H += Y;\r
206 if (H <= Y) {\r
207 if (h >= y || H > h) return false;\r
208 } else {\r
209 if (h >= y && H > h) return false;\r
210 }return true;\r
211 }, "~N,~N,~N,~N");\r
212 Clazz.defineMethod (c$, "inside", \r
213 function (X, Y) {\r
214 var w = this.width;\r
215 var h = this.height;\r
216 if ((w | h) < 0) {\r
217 return false;\r
218 }var x = this.x;\r
219 var y = this.y;\r
220 if (X < x || Y < y) {\r
221 return false;\r
222 }w += x;\r
223 h += y;\r
224 return ((w < x || w > X) && (h < y || h > Y));\r
225 }, "~N,~N");\r
226 Clazz.defineMethod (c$, "intersects", \r
227 function (r) {\r
228 var tw = this.width;\r
229 var th = this.height;\r
230 var rw = r.width;\r
231 var rh = r.height;\r
232 if (rw <= 0 || rh <= 0 || tw <= 0 || th <= 0) {\r
233 return false;\r
234 }var tx = this.x;\r
235 var ty = this.y;\r
236 var rx = r.x;\r
237 var ry = r.y;\r
238 rw += rx;\r
239 rh += ry;\r
240 tw += tx;\r
241 th += ty;\r
242 return ((rw < rx || rw > tx) && (rh < ry || rh > ty) && (tw < tx || tw > rx) && (th < ty || th > ry));\r
243 }, "java.awt.Rectangle");\r
244 Clazz.defineMethod (c$, "intersection", \r
245 function (r) {\r
246 var tx1 = this.x;\r
247 var ty1 = this.y;\r
248 var rx1 = r.x;\r
249 var ry1 = r.y;\r
250 var tx2 = tx1;\r
251 tx2 += this.width;\r
252 var ty2 = ty1;\r
253 ty2 += this.height;\r
254 var rx2 = rx1;\r
255 rx2 += r.width;\r
256 var ry2 = ry1;\r
257 ry2 += r.height;\r
258 if (tx1 < rx1) tx1 = rx1;\r
259 if (ty1 < ry1) ty1 = ry1;\r
260 if (tx2 > rx2) tx2 = rx2;\r
261 if (ty2 > ry2) ty2 = ry2;\r
262 tx2 -= tx1;\r
263 ty2 -= ty1;\r
264 if (tx2 < -2147483648) tx2 = -2147483648;\r
265 if (ty2 < -2147483648) ty2 = -2147483648;\r
266 return  new java.awt.Rectangle (tx1, ty1, tx2, ty2);\r
267 }, "java.awt.Rectangle");\r
268 Clazz.defineMethod (c$, "union", \r
269 function (r) {\r
270 var tx2 = this.width;\r
271 var ty2 = this.height;\r
272 if ((tx2 | ty2) < 0) {\r
273 return  new java.awt.Rectangle (r);\r
274 }var rx2 = r.width;\r
275 var ry2 = r.height;\r
276 if ((rx2 | ry2) < 0) {\r
277 return  new java.awt.Rectangle (this);\r
278 }var tx1 = this.x;\r
279 var ty1 = this.y;\r
280 tx2 += tx1;\r
281 ty2 += ty1;\r
282 var rx1 = r.x;\r
283 var ry1 = r.y;\r
284 rx2 += rx1;\r
285 ry2 += ry1;\r
286 if (tx1 > rx1) tx1 = rx1;\r
287 if (ty1 > ry1) ty1 = ry1;\r
288 if (tx2 < rx2) tx2 = rx2;\r
289 if (ty2 < ry2) ty2 = ry2;\r
290 tx2 -= tx1;\r
291 ty2 -= ty1;\r
292 if (tx2 > 2147483647) tx2 = 2147483647;\r
293 if (ty2 > 2147483647) ty2 = 2147483647;\r
294 return  new java.awt.Rectangle (tx1, ty1, tx2, ty2);\r
295 }, "java.awt.Rectangle");\r
296 Clazz.defineMethod (c$, "add", \r
297 function (newx, newy) {\r
298 if ((this.width | this.height) < 0) {\r
299 this.x = newx;\r
300 this.y = newy;\r
301 this.width = this.height = 0;\r
302 return;\r
303 }var x1 = this.x;\r
304 var y1 = this.y;\r
305 var x2 = this.width;\r
306 var y2 = this.height;\r
307 x2 += x1;\r
308 y2 += y1;\r
309 if (x1 > newx) x1 = newx;\r
310 if (y1 > newy) y1 = newy;\r
311 if (x2 < newx) x2 = newx;\r
312 if (y2 < newy) y2 = newy;\r
313 x2 -= x1;\r
314 y2 -= y1;\r
315 if (x2 > 2147483647) x2 = 2147483647;\r
316 if (y2 > 2147483647) y2 = 2147483647;\r
317 this.reshape (x1, y1, x2, y2);\r
318 }, "~N,~N");\r
319 Clazz.defineMethod (c$, "add", \r
320 function (pt) {\r
321 this.add (pt.x, pt.y);\r
322 }, "java.awt.Point");\r
323 Clazz.defineMethod (c$, "add", \r
324 function (r) {\r
325 var tx2 = this.width;\r
326 var ty2 = this.height;\r
327 if ((tx2 | ty2) < 0) {\r
328 this.reshape (r.x, r.y, r.width, r.height);\r
329 }var rx2 = r.width;\r
330 var ry2 = r.height;\r
331 if ((rx2 | ry2) < 0) {\r
332 return;\r
333 }var tx1 = this.x;\r
334 var ty1 = this.y;\r
335 tx2 += tx1;\r
336 ty2 += ty1;\r
337 var rx1 = r.x;\r
338 var ry1 = r.y;\r
339 rx2 += rx1;\r
340 ry2 += ry1;\r
341 if (tx1 > rx1) tx1 = rx1;\r
342 if (ty1 > ry1) ty1 = ry1;\r
343 if (tx2 < rx2) tx2 = rx2;\r
344 if (ty2 < ry2) ty2 = ry2;\r
345 tx2 -= tx1;\r
346 ty2 -= ty1;\r
347 if (tx2 > 2147483647) tx2 = 2147483647;\r
348 if (ty2 > 2147483647) ty2 = 2147483647;\r
349 this.reshape (tx1, ty1, tx2, ty2);\r
350 }, "java.awt.Rectangle");\r
351 Clazz.defineMethod (c$, "grow", \r
352 function (h, v) {\r
353 var x0 = this.x;\r
354 var y0 = this.y;\r
355 var x1 = this.width;\r
356 var y1 = this.height;\r
357 x1 += x0;\r
358 y1 += y0;\r
359 x0 -= h;\r
360 y0 -= v;\r
361 x1 += h;\r
362 y1 += v;\r
363 if (x1 < x0) {\r
364 x1 -= x0;\r
365 if (x1 < -2147483648) x1 = -2147483648;\r
366 if (x0 < -2147483648) x0 = -2147483648;\r
367  else if (x0 > 2147483647) x0 = 2147483647;\r
368 } else {\r
369 if (x0 < -2147483648) x0 = -2147483648;\r
370  else if (x0 > 2147483647) x0 = 2147483647;\r
371 x1 -= x0;\r
372 if (x1 < -2147483648) x1 = -2147483648;\r
373  else if (x1 > 2147483647) x1 = 2147483647;\r
374 }if (y1 < y0) {\r
375 y1 -= y0;\r
376 if (y1 < -2147483648) y1 = -2147483648;\r
377 if (y0 < -2147483648) y0 = -2147483648;\r
378  else if (y0 > 2147483647) y0 = 2147483647;\r
379 } else {\r
380 if (y0 < -2147483648) y0 = -2147483648;\r
381  else if (y0 > 2147483647) y0 = 2147483647;\r
382 y1 -= y0;\r
383 if (y1 < -2147483648) y1 = -2147483648;\r
384  else if (y1 > 2147483647) y1 = 2147483647;\r
385 }this.reshape (x0, y0, x1, y1);\r
386 }, "~N,~N");\r
387 Clazz.overrideMethod (c$, "isEmpty", \r
388 function () {\r
389 return (this.width <= 0) || (this.height <= 0);\r
390 });\r
391 Clazz.defineMethod (c$, "outcode", \r
392 function (x, y) {\r
393 var out = 0;\r
394 if (this.width <= 0) {\r
395 out |= 5;\r
396 } else if (x < this.x) {\r
397 out |= 1;\r
398 } else if (x > this.x + this.width) {\r
399 out |= 4;\r
400 }if (this.height <= 0) {\r
401 out |= 10;\r
402 } else if (y < this.y) {\r
403 out |= 2;\r
404 } else if (y > this.y + this.height) {\r
405 out |= 8;\r
406 }return out;\r
407 }, "~N,~N");\r
408 Clazz.overrideMethod (c$, "createIntersection", \r
409 function (r) {\r
410 if (Clazz.instanceOf (r, java.awt.Rectangle)) {\r
411 return this.intersection (r);\r
412 }var dest =  new java.awt.geom.Rectangle2D.Double ();\r
413 java.awt.geom.Rectangle2D.intersect (this, r, dest);\r
414 return dest;\r
415 }, "java.awt.geom.Rectangle2D");\r
416 Clazz.overrideMethod (c$, "createUnion", \r
417 function (r) {\r
418 if (Clazz.instanceOf (r, java.awt.Rectangle)) {\r
419 return this.union (r);\r
420 }var dest =  new java.awt.geom.Rectangle2D.Double ();\r
421 java.awt.geom.Rectangle2D.union (this, r, dest);\r
422 return dest;\r
423 }, "java.awt.geom.Rectangle2D");\r
424 Clazz.defineMethod (c$, "equals", \r
425 function (obj) {\r
426 if (Clazz.instanceOf (obj, java.awt.Rectangle)) {\r
427 var r = obj;\r
428 return ((this.x == r.x) && (this.y == r.y) && (this.width == r.width) && (this.height == r.height));\r
429 }return Clazz.superCall (this, java.awt.Rectangle, "equals", [obj]);\r
430 }, "~O");\r
431 Clazz.overrideMethod (c$, "toString", \r
432 function () {\r
433 return this.getClass ().getName () + "[x=" + this.x + ",y=" + this.y + ",width=" + this.width + ",height=" + this.height + "]";\r
434 });\r
435 });\r