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