1 Clazz.declarePackage ("javax.swing");
2 c$ = Clazz.decorateAsClass (function () {
7 Clazz.instantialize (this, arguments);
8 }, javax.swing, "SizeRequirements");
9 Clazz.makeConstructor (c$,
16 Clazz.makeConstructor (c$,
17 function (min, pref, max, a) {
19 this.preferred = pref;
21 this.alignment = a > 1.0 ? 1.0 : a < 0.0 ? 0.0 : a;
23 Clazz.overrideMethod (c$, "toString",
25 return "[" + this.minimum + "," + this.preferred + "," + this.maximum + "]@" + this.alignment;
27 c$.getTiledSizeRequirements = Clazz.defineMethod (c$, "getTiledSizeRequirements",
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);
38 c$.getAlignedSizeRequirements = Clazz.defineMethod (c$, "getAlignedSizeRequirements",
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);
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);
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);
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) {
79 for (var i = 0; i < children.length; i++) {
80 min += children[i].minimum;
81 pref += children[i].preferred;
82 max += children[i].maximum;
84 if (allocated >= pref) {
85 javax.swing.SizeRequirements.expandedTile (allocated, min, pref, max, children, offsets, spans, forward);
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);
96 for (var i = 0; i < spans.length; i++) {
97 offsets[i] = totalOffset;
99 var play = factor * (req.preferred - req.minimum);
100 spans[i] = Clazz.floatToInt (req.preferred - play);
101 totalOffset = Math.min (totalOffset + spans[i], 2147483647);
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);
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);
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);
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);
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);
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);