77afcbd197a9db96186b0990262e03a0a38da861
[jalviewjs.git] / site / j2s / javax / swing / OverlayLayout.js
1 Clazz.declarePackage ("javax.swing");\r
2 Clazz.load (["java.awt.LayoutManager2"], "javax.swing.OverlayLayout", ["java.awt.AWTError", "$.Dimension", "javax.swing.SizeRequirements"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.target = null;\r
5 this.xChildren = null;\r
6 this.yChildren = null;\r
7 this.xTotal = null;\r
8 this.yTotal = null;\r
9 Clazz.instantialize (this, arguments);\r
10 }, javax.swing, "OverlayLayout", null, java.awt.LayoutManager2);\r
11 Clazz.makeConstructor (c$, \r
12 function (target) {\r
13 this.target = target;\r
14 }, "java.awt.Container");\r
15 Clazz.defineMethod (c$, "getTarget", \r
16 function () {\r
17 return this.target;\r
18 });\r
19 Clazz.overrideMethod (c$, "invalidateLayout", \r
20 function (target) {\r
21 this.checkContainer (target);\r
22 this.xChildren = null;\r
23 this.yChildren = null;\r
24 this.xTotal = null;\r
25 this.yTotal = null;\r
26 }, "java.awt.Container");\r
27 Clazz.defineMethod (c$, "addLayoutComponent", \r
28 function (name, comp) {\r
29 this.invalidateLayout (comp.getParent ());\r
30 }, "~S,java.awt.Component");\r
31 Clazz.overrideMethod (c$, "removeLayoutComponent", \r
32 function (comp) {\r
33 this.invalidateLayout (comp.getParent ());\r
34 }, "java.awt.Component");\r
35 Clazz.defineMethod (c$, "addLayoutComponent", \r
36 function (comp, constraints) {\r
37 this.invalidateLayout (comp.getParent ());\r
38 }, "java.awt.Component,~O");\r
39 Clazz.overrideMethod (c$, "preferredLayoutSize", \r
40 function (target) {\r
41 this.checkContainer (target);\r
42 this.checkRequests ();\r
43 var size =  new java.awt.Dimension (this.xTotal.preferred, this.yTotal.preferred);\r
44 var insets = target.getInsets ();\r
45 size.width += insets.left + insets.right;\r
46 size.height += insets.top + insets.bottom;\r
47 return size;\r
48 }, "java.awt.Container");\r
49 Clazz.overrideMethod (c$, "minimumLayoutSize", \r
50 function (target) {\r
51 this.checkContainer (target);\r
52 this.checkRequests ();\r
53 var size =  new java.awt.Dimension (this.xTotal.minimum, this.yTotal.minimum);\r
54 var insets = target.getInsets ();\r
55 size.width += insets.left + insets.right;\r
56 size.height += insets.top + insets.bottom;\r
57 return size;\r
58 }, "java.awt.Container");\r
59 Clazz.overrideMethod (c$, "maximumLayoutSize", \r
60 function (target) {\r
61 this.checkContainer (target);\r
62 this.checkRequests ();\r
63 var size =  new java.awt.Dimension (this.xTotal.maximum, this.yTotal.maximum);\r
64 var insets = target.getInsets ();\r
65 size.width += insets.left + insets.right;\r
66 size.height += insets.top + insets.bottom;\r
67 return size;\r
68 }, "java.awt.Container");\r
69 Clazz.overrideMethod (c$, "getLayoutAlignmentX", \r
70 function (target) {\r
71 this.checkContainer (target);\r
72 this.checkRequests ();\r
73 return this.xTotal.alignment;\r
74 }, "java.awt.Container");\r
75 Clazz.overrideMethod (c$, "getLayoutAlignmentY", \r
76 function (target) {\r
77 this.checkContainer (target);\r
78 this.checkRequests ();\r
79 return this.yTotal.alignment;\r
80 }, "java.awt.Container");\r
81 Clazz.overrideMethod (c$, "layoutContainer", \r
82 function (target) {\r
83 this.checkContainer (target);\r
84 this.checkRequests ();\r
85 var nChildren = target.getComponentCount ();\r
86 var xOffsets =  Clazz.newIntArray (nChildren, 0);\r
87 var xSpans =  Clazz.newIntArray (nChildren, 0);\r
88 var yOffsets =  Clazz.newIntArray (nChildren, 0);\r
89 var ySpans =  Clazz.newIntArray (nChildren, 0);\r
90 var alloc = target.getSize ();\r
91 var $in = target.getInsets ();\r
92 alloc.width -= $in.left + $in.right;\r
93 alloc.height -= $in.top + $in.bottom;\r
94 javax.swing.SizeRequirements.calculateAlignedPositions (alloc.width, this.xTotal, this.xChildren, xOffsets, xSpans);\r
95 javax.swing.SizeRequirements.calculateAlignedPositions (alloc.height, this.yTotal, this.yChildren, yOffsets, ySpans);\r
96 for (var i = 0; i < nChildren; i++) {\r
97 var c = target.getComponent (i);\r
98 c.setBounds ($in.left + xOffsets[i], $in.top + yOffsets[i], xSpans[i], ySpans[i]);\r
99 }\r
100 }, "java.awt.Container");\r
101 Clazz.defineMethod (c$, "checkContainer", \r
102 function (target) {\r
103 if (this.target !== target) {\r
104 throw  new java.awt.AWTError ("OverlayLayout can't be shared");\r
105 }}, "java.awt.Container");\r
106 Clazz.defineMethod (c$, "checkRequests", \r
107 function () {\r
108 if (this.xChildren == null || this.yChildren == null) {\r
109 var n = this.target.getComponentCount ();\r
110 this.xChildren =  new Array (n);\r
111 this.yChildren =  new Array (n);\r
112 for (var i = 0; i < n; i++) {\r
113 var c = this.target.getComponent (i);\r
114 var min = c.getMinimumSize ();\r
115 var typ = c.getPreferredSize ();\r
116 var max = c.getMaximumSize ();\r
117 this.xChildren[i] =  new javax.swing.SizeRequirements (min.width, typ.width, max.width, c.getAlignmentX ());\r
118 this.yChildren[i] =  new javax.swing.SizeRequirements (min.height, typ.height, max.height, c.getAlignmentY ());\r
119 }\r
120 this.xTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.xChildren);\r
121 this.yTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.yChildren);\r
122 }});\r
123 });\r