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
6 this.xChildren = null;
\r
7 this.yChildren = 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
17 this.target = target;
\r
18 }, "java.awt.Container,~N");
\r
19 Clazz.defineMethod (c$, "getTarget",
\r
23 Clazz.defineMethod (c$, "getAxis",
\r
27 Clazz.overrideMethod (c$, "invalidateLayout",
\r
29 this.checkContainer (target);
\r
30 this.xChildren = null;
\r
31 this.yChildren = 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
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
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
58 }, "java.awt.Container");
\r
59 Clazz.overrideMethod (c$, "minimumLayoutSize",
\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
70 }, "java.awt.Container");
\r
71 Clazz.overrideMethod (c$, "maximumLayoutSize",
\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
82 }, "java.awt.Container");
\r
83 Clazz.overrideMethod (c$, "getLayoutAlignmentX",
\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
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
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
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
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
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
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
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
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
151 this.xTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.xChildren);
\r
152 this.yTotal = javax.swing.SizeRequirements.getTiledSizeRequirements (this.yChildren);
\r
154 Clazz.defineMethod (c$, "resolveAxis",
\r
155 function (axis, o) {
\r
158 absoluteAxis = o.isHorizontal () ? 0 : 1;
\r
159 } else if (axis == 3) {
\r
160 absoluteAxis = o.isHorizontal () ? 1 : 0;
\r
162 absoluteAxis = axis;
\r
163 }return absoluteAxis;
\r
164 }, "~N,java.awt.ComponentOrientation");
\r
165 Clazz.defineStatics (c$,
\r