JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / javax / swing / BoxLayout.js
1 Clazz.declarePackage ("javax.swing");\r
2 Clazz.load (["java.awt.LayoutManager2"], "javax.swing.BoxLayout", ["java.awt.AWTError", "$.Dimension", "javax.swing.SizeRequirements"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.axis = 0;\r
5 this.target = null;\r
6 this.xChildren = null;\r
7 this.yChildren = null;\r
8 this.xTotal = null;\r
9 this.yTotal = null;\r
10 Clazz.instantialize (this, arguments);\r
11 }, javax.swing, "BoxLayout", null, java.awt.LayoutManager2);\r
12 Clazz.makeConstructor (c$, \r
13 function (target, axis) {\r
14 if (axis != 0 && axis != 1 && axis != 2 && axis != 3) {\r
15 throw  new java.awt.AWTError ("Invalid axis");\r
16 }this.axis = axis;\r
17 this.target = target;\r
18 }, "java.awt.Container,~N");\r
19 Clazz.defineMethod (c$, "getTarget", \r
20 function () {\r
21 return this.target;\r
22 });\r
23 Clazz.defineMethod (c$, "getAxis", \r
24 function () {\r
25 return this.axis;\r
26 });\r
27 Clazz.overrideMethod (c$, "invalidateLayout", \r
28 function (target) {\r
29 this.checkContainer (target);\r
30 this.xChildren = null;\r
31 this.yChildren = null;\r
32 this.xTotal = null;\r
33 this.yTotal = null;\r
34 }, "java.awt.Container");\r
35 Clazz.defineMethod (c$, "addLayoutComponent", \r
36 function (name, comp) {\r
37 this.invalidateLayout (comp.getParent ());\r
38 }, "~S,java.awt.Component");\r
39 Clazz.overrideMethod (c$, "removeLayoutComponent", \r
40 function (comp) {\r
41 this.invalidateLayout (comp.getParent ());\r
42 }, "java.awt.Component");\r
43 Clazz.defineMethod (c$, "addLayoutComponent", \r
44 function (comp, constraints) {\r
45 this.invalidateLayout (comp.getParent ());\r
46 }, "java.awt.Component,~O");\r
47 Clazz.overrideMethod (c$, "preferredLayoutSize", \r
48 function (target) {\r
49 var size;\r
50 {\r
51 this.checkContainer (target);\r
52 this.checkRequests ();\r
53 size =  new java.awt.Dimension (this.xTotal.preferred, this.yTotal.preferred);\r
54 }var insets = target.getInsets ();\r
55 size.width = Math.min (size.width + insets.left + insets.right, 2147483647);\r
56 size.height = Math.min (size.height + insets.top + insets.bottom, 2147483647);\r
57 return size;\r
58 }, "java.awt.Container");\r
59 Clazz.overrideMethod (c$, "minimumLayoutSize", \r
60 function (target) {\r
61 var size;\r
62 {\r
63 this.checkContainer (target);\r
64 this.checkRequests ();\r
65 size =  new java.awt.Dimension (this.xTotal.minimum, this.yTotal.minimum);\r
66 }var insets = target.getInsets ();\r
67 size.width = Math.min (size.width + insets.left + insets.right, 2147483647);\r
68 size.height = Math.min (size.height + insets.top + insets.bottom, 2147483647);\r
69 return size;\r
70 }, "java.awt.Container");\r
71 Clazz.overrideMethod (c$, "maximumLayoutSize", \r
72 function (target) {\r
73 var size;\r
74 {\r
75 this.checkContainer (target);\r
76 this.checkRequests ();\r
77 size =  new java.awt.Dimension (this.xTotal.maximum, this.yTotal.maximum);\r
78 }var insets = target.getInsets ();\r
79 size.width = Math.min (size.width + insets.left + insets.right, 2147483647);\r
80 size.height = Math.min (size.height + insets.top + insets.bottom, 2147483647);\r
81 return size;\r
82 }, "java.awt.Container");\r
83 Clazz.overrideMethod (c$, "getLayoutAlignmentX", \r
84 function (target) {\r
85 this.checkContainer (target);\r
86 this.checkRequests ();\r
87 return this.xTotal.alignment;\r
88 }, "java.awt.Container");\r
89 Clazz.overrideMethod (c$, "getLayoutAlignmentY", \r
90 function (target) {\r
91 this.checkContainer (target);\r
92 this.checkRequests ();\r
93 return this.yTotal.alignment;\r
94 }, "java.awt.Container");\r
95 Clazz.overrideMethod (c$, "layoutContainer", \r
96 function (target) {\r
97 this.checkContainer (target);\r
98 var nChildren = target.getComponentCount ();\r
99 var xOffsets =  Clazz.newIntArray (nChildren, 0);\r
100 var xSpans =  Clazz.newIntArray (nChildren, 0);\r
101 var yOffsets =  Clazz.newIntArray (nChildren, 0);\r
102 var ySpans =  Clazz.newIntArray (nChildren, 0);\r
103 var alloc = target.getSize ();\r
104 var $in = target.getInsets ();\r
105 alloc.width -= $in.left + $in.right;\r
106 alloc.height -= $in.top + $in.bottom;\r
107 var o = target.getComponentOrientation ();\r
108 var absoluteAxis = this.resolveAxis (this.axis, o);\r
109 var ltr = (absoluteAxis != this.axis) ? o.isLeftToRight () : true;\r
110 {\r
111 this.checkRequests ();\r
112 if (absoluteAxis == 0) {\r
113 javax.swing.SizeRequirements.calcTiled (alloc.width, this.xTotal, this.xChildren, xOffsets, xSpans, ltr);\r
114 javax.swing.SizeRequirements.calcAligned (alloc.height, this.yTotal, this.yChildren, yOffsets, ySpans, true);\r
115 } else {\r
116 javax.swing.SizeRequirements.calcAligned (alloc.width, this.xTotal, this.xChildren, xOffsets, xSpans, ltr);\r
117 javax.swing.SizeRequirements.calcTiled (alloc.height, this.yTotal, this.yChildren, yOffsets, ySpans, true);\r
118 }}for (var i = 0; i < nChildren; i++) {\r
119 var c = target.getComponent (i);\r
120 c.setBounds (Math.min ($in.left + xOffsets[i], 2147483647), Math.min ($in.top + yOffsets[i], 2147483647), xSpans[i], ySpans[i]);\r
121 }\r
122 }, "java.awt.Container");\r
123 Clazz.defineMethod (c$, "checkContainer", \r
124 function (target) {\r
125 if (this.target !== target) {\r
126 throw  new java.awt.AWTError ("BoxLayout can't be shared");\r
127 }}, "java.awt.Container");\r
128 Clazz.defineMethod (c$, "checkRequests", \r
129 function () {\r
130 if (this.xChildren == null || this.yChildren == null) {\r
131 var n = this.target.getComponentCount ();\r
132 this.xChildren =  new Array (n);\r
133 this.yChildren =  new Array (n);\r
134 for (var i = 0; i < n; i++) {\r
135 var c = this.target.getComponent (i);\r
136 if (!c.isVisible ()) {\r
137 this.xChildren[i] =  new javax.swing.SizeRequirements (0, 0, 0, c.getAlignmentX ());\r
138 this.yChildren[i] =  new javax.swing.SizeRequirements (0, 0, 0, c.getAlignmentY ());\r
139 continue;\r
140 }var min = c.getMinimumSize ();\r
141 var typ = c.getPreferredSize ();\r
142 var max = c.getMaximumSize ();\r
143 this.xChildren[i] =  new javax.swing.SizeRequirements (min.width, typ.width, max.width, c.getAlignmentX ());\r
144 this.yChildren[i] =  new javax.swing.SizeRequirements (min.height, typ.height, max.height, c.getAlignmentY ());\r
145 }\r
146 var absoluteAxis = this.resolveAxis (this.axis, this.target.getComponentOrientation ());\r
147 if (absoluteAxis == 0) {\r
148 this.xTotal = javax.swing.SizeRequirements.getTiledSizeRequirements (this.xChildren);\r
149 this.yTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.yChildren);\r
150 } else {\r
151 this.xTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.xChildren);\r
152 this.yTotal = javax.swing.SizeRequirements.getTiledSizeRequirements (this.yChildren);\r
153 }}});\r
154 Clazz.defineMethod (c$, "resolveAxis", \r
155  function (axis, o) {\r
156 var absoluteAxis;\r
157 if (axis == 2) {\r
158 absoluteAxis = o.isHorizontal () ? 0 : 1;\r
159 } else if (axis == 3) {\r
160 absoluteAxis = o.isHorizontal () ? 1 : 0;\r
161 } else {\r
162 absoluteAxis = axis;\r
163 }return absoluteAxis;\r
164 }, "~N,java.awt.ComponentOrientation");\r
165 Clazz.defineStatics (c$,\r
166 "X_AXIS", 0,\r
167 "Y_AXIS", 1,\r
168 "LINE_AXIS", 2,\r
169 "PAGE_AXIS", 3);\r
170 });\r