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