20dc3d941960842cfba84a3866634bd018f0f788
[jalviewjs.git] / site / j2s / javax / swing / SizeRequirements.js
1 Clazz.declarePackage ("javax.swing");
2 c$ = Clazz.decorateAsClass (function () {
3 this.minimum = 0;
4 this.preferred = 0;
5 this.maximum = 0;
6 this.alignment = 0;
7 Clazz.instantialize (this, arguments);
8 }, javax.swing, "SizeRequirements");
9 Clazz.makeConstructor (c$, 
10 function () {
11 this.minimum = 0;
12 this.preferred = 0;
13 this.maximum = 0;
14 this.alignment = 0.5;
15 });
16 Clazz.makeConstructor (c$, 
17 function (min, pref, max, a) {
18 this.minimum = min;
19 this.preferred = pref;
20 this.maximum = max;
21 this.alignment = a > 1.0 ? 1.0 : a < 0.0 ? 0.0 : a;
22 }, "~N,~N,~N,~N");
23 Clazz.overrideMethod (c$, "toString", 
24 function () {
25 return "[" + this.minimum + "," + this.preferred + "," + this.maximum + "]@" + this.alignment;
26 });
27 c$.getTiledSizeRequirements = Clazz.defineMethod (c$, "getTiledSizeRequirements", 
28 function (children) {
29 var total =  new javax.swing.SizeRequirements ();
30 for (var i = 0; i < children.length; i++) {
31 var req = children[i];
32 total.minimum = Math.min (total.minimum + req.minimum, 2147483647);
33 total.preferred = Math.min (total.preferred + req.preferred, 2147483647);
34 total.maximum = Math.min (total.maximum + req.maximum, 2147483647);
35 }
36 return total;
37 }, "~A");
38 c$.getAlignedSizeRequirements = Clazz.defineMethod (c$, "getAlignedSizeRequirements", 
39 function (children) {
40 var totalAscent =  new javax.swing.SizeRequirements ();
41 var totalDescent =  new javax.swing.SizeRequirements ();
42 for (var i = 0; i < children.length; i++) {
43 var req = children[i];
44 var ascent = Clazz.floatToInt (req.alignment * req.minimum);
45 var descent = req.minimum - ascent;
46 totalAscent.minimum = Math.max (ascent, totalAscent.minimum);
47 totalDescent.minimum = Math.max (descent, totalDescent.minimum);
48 ascent = Clazz.floatToInt (req.alignment * req.preferred);
49 descent = req.preferred - ascent;
50 totalAscent.preferred = Math.max (ascent, totalAscent.preferred);
51 totalDescent.preferred = Math.max (descent, totalDescent.preferred);
52 ascent = Clazz.floatToInt (req.alignment * req.maximum);
53 descent = req.maximum - ascent;
54 totalAscent.maximum = Math.max (ascent, totalAscent.maximum);
55 totalDescent.maximum = Math.max (descent, totalDescent.maximum);
56 }
57 var min = Math.min (totalAscent.minimum + totalDescent.minimum, 2147483647);
58 var pref = Math.min (totalAscent.preferred + totalDescent.preferred, 2147483647);
59 var max = Math.min (totalAscent.maximum + totalDescent.maximum, 2147483647);
60 var alignment = 0.0;
61 if (min > 0) {
62 alignment = totalAscent.minimum / min;
63 alignment = alignment > 1.0 ? 1.0 : alignment < 0.0 ? 0.0 : alignment;
64 }return  new javax.swing.SizeRequirements (min, pref, max, alignment);
65 }, "~A");
66 c$.calculateTiledPositions = Clazz.defineMethod (c$, "calculateTiledPositions", 
67 function (allocated, total, children, offsets, spans) {
68 javax.swing.SizeRequirements.calcTiled (allocated, total, children, offsets, spans, true);
69 }, "~N,javax.swing.SizeRequirements,~A,~A,~A");
70 c$.calculateTiledPositions = Clazz.defineMethod (c$, "calculateTiledPositions", 
71 function (allocated, total, children, offsets, spans, forward) {
72 javax.swing.SizeRequirements.calcTiled (allocated, total, children, offsets, spans, forward);
73 }, "~N,javax.swing.SizeRequirements,~A,~A,~A,~B");
74 c$.calcTiled = Clazz.defineMethod (c$, "calcTiled", 
75 function (allocated, total, children, offsets, spans, forward) {
76 var min = 0;
77 var pref = 0;
78 var max = 0;
79 for (var i = 0; i < children.length; i++) {
80 min += children[i].minimum;
81 pref += children[i].preferred;
82 max += children[i].maximum;
83 }
84 if (allocated >= pref) {
85 javax.swing.SizeRequirements.expandedTile (allocated, min, pref, max, children, offsets, spans, forward);
86 } else {
87 javax.swing.SizeRequirements.compressedTile (allocated, min, pref, max, children, offsets, spans, forward);
88 }}, "~N,javax.swing.SizeRequirements,~A,~A,~A,~B");
89 c$.compressedTile = Clazz.defineMethod (c$, "compressedTile", 
90  function (allocated, min, pref, max, request, offsets, spans, forward) {
91 var totalPlay = Math.min (pref - allocated, pref - min);
92 var factor = (pref - min == 0) ? 0.0 : totalPlay / (pref - min);
93 var totalOffset;
94 if (forward) {
95 totalOffset = 0;
96 for (var i = 0; i < spans.length; i++) {
97 offsets[i] = totalOffset;
98 var req = request[i];
99 var play = factor * (req.preferred - req.minimum);
100 spans[i] = Clazz.floatToInt (req.preferred - play);
101 totalOffset = Math.min (totalOffset + spans[i], 2147483647);
102 }
103 } else {
104 totalOffset = allocated;
105 for (var i = 0; i < spans.length; i++) {
106 var req = request[i];
107 var play = factor * (req.preferred - req.minimum);
108 spans[i] = Clazz.floatToInt (req.preferred - play);
109 offsets[i] = totalOffset - spans[i];
110 totalOffset = Math.max (totalOffset - spans[i], 0);
111 }
112 }}, "~N,~N,~N,~N,~A,~A,~A,~B");
113 c$.expandedTile = Clazz.defineMethod (c$, "expandedTile", 
114  function (allocated, min, pref, max, request, offsets, spans, forward) {
115 var totalPlay = Math.min (allocated - pref, max - pref);
116 var factor = (max - pref == 0) ? 0.0 : totalPlay / (max - pref);
117 var totalOffset;
118 if (forward) {
119 totalOffset = 0;
120 for (var i = 0; i < spans.length; i++) {
121 offsets[i] = totalOffset;
122 var req = request[i];
123 var play = Clazz.floatToInt (factor * (req.maximum - req.preferred));
124 spans[i] = Math.min (req.preferred + play, 2147483647);
125 totalOffset = Math.min (totalOffset + spans[i], 2147483647);
126 }
127 } else {
128 totalOffset = allocated;
129 for (var i = 0; i < spans.length; i++) {
130 var req = request[i];
131 var play = Clazz.floatToInt (factor * (req.maximum - req.preferred));
132 spans[i] = Math.min (req.preferred + play, 2147483647);
133 offsets[i] = totalOffset - spans[i];
134 totalOffset = Math.max (totalOffset - spans[i], 0);
135 }
136 }}, "~N,~N,~N,~N,~A,~A,~A,~B");
137 c$.calculateAlignedPositions = Clazz.defineMethod (c$, "calculateAlignedPositions", 
138 function (allocated, total, children, offsets, spans) {
139 javax.swing.SizeRequirements.calcAligned (allocated, total, children, offsets, spans, true);
140 }, "~N,javax.swing.SizeRequirements,~A,~A,~A");
141 c$.calcAligned = Clazz.defineMethod (c$, "calcAligned", 
142 function (allocated, total, children, offsets, spans, normal) {
143 var totalAlignment = normal ? total.alignment : 1.0 - total.alignment;
144 var totalAscent = Clazz.floatToInt (allocated * totalAlignment);
145 var totalDescent = allocated - totalAscent;
146 for (var i = 0; i < children.length; i++) {
147 var req = children[i];
148 var alignment = normal ? req.alignment : 1.0 - req.alignment;
149 var maxAscent = Clazz.floatToInt (req.maximum * alignment);
150 var maxDescent = req.maximum - maxAscent;
151 var ascent = Math.min (totalAscent, maxAscent);
152 var descent = Math.min (totalDescent, maxDescent);
153 offsets[i] = totalAscent - ascent;
154 spans[i] = Math.min (ascent + descent, 2147483647);
155 }
156 }, "~N,javax.swing.SizeRequirements,~A,~A,~A,~B");
157 c$.calculateAlignedPositions = Clazz.defineMethod (c$, "calculateAlignedPositions", 
158 function (allocated, total, children, offsets, spans, normal) {
159 javax.swing.SizeRequirements.calcAligned (allocated, total, children, offsets, spans, normal);
160 }, "~N,javax.swing.SizeRequirements,~A,~A,~A,~B");
161 c$.adjustSizes = Clazz.defineMethod (c$, "adjustSizes", 
162 function (delta, children) {
163 return  Clazz.newIntArray (0, 0);
164 }, "~N,~A");