1 Clazz.declarePackage ("javax.swing");
\r
2 Clazz.load (["java.awt.LayoutManager2"], "javax.swing.OverlayLayout", ["java.awt.AWTError", "$.Dimension", "javax.swing.SizeRequirements"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.xChildren = null;
\r
6 this.yChildren = null;
\r
9 Clazz.instantialize (this, arguments);
\r
10 }, javax.swing, "OverlayLayout", null, java.awt.LayoutManager2);
\r
11 Clazz.makeConstructor (c$,
\r
13 this.target = target;
\r
14 }, "java.awt.Container");
\r
15 Clazz.defineMethod (c$, "getTarget",
\r
19 Clazz.overrideMethod (c$, "invalidateLayout",
\r
21 this.checkContainer (target);
\r
22 this.xChildren = null;
\r
23 this.yChildren = null;
\r
26 }, "java.awt.Container");
\r
27 Clazz.defineMethod (c$, "addLayoutComponent",
\r
28 function (name, comp) {
\r
29 this.invalidateLayout (comp.getParent ());
\r
30 }, "~S,java.awt.Component");
\r
31 Clazz.overrideMethod (c$, "removeLayoutComponent",
\r
33 this.invalidateLayout (comp.getParent ());
\r
34 }, "java.awt.Component");
\r
35 Clazz.defineMethod (c$, "addLayoutComponent",
\r
36 function (comp, constraints) {
\r
37 this.invalidateLayout (comp.getParent ());
\r
38 }, "java.awt.Component,~O");
\r
39 Clazz.overrideMethod (c$, "preferredLayoutSize",
\r
41 this.checkContainer (target);
\r
42 this.checkRequests ();
\r
43 var size = new java.awt.Dimension (this.xTotal.preferred, this.yTotal.preferred);
\r
44 var insets = target.getInsets ();
\r
45 size.width += insets.left + insets.right;
\r
46 size.height += insets.top + insets.bottom;
\r
48 }, "java.awt.Container");
\r
49 Clazz.overrideMethod (c$, "minimumLayoutSize",
\r
51 this.checkContainer (target);
\r
52 this.checkRequests ();
\r
53 var size = new java.awt.Dimension (this.xTotal.minimum, this.yTotal.minimum);
\r
54 var insets = target.getInsets ();
\r
55 size.width += insets.left + insets.right;
\r
56 size.height += insets.top + insets.bottom;
\r
58 }, "java.awt.Container");
\r
59 Clazz.overrideMethod (c$, "maximumLayoutSize",
\r
61 this.checkContainer (target);
\r
62 this.checkRequests ();
\r
63 var size = new java.awt.Dimension (this.xTotal.maximum, this.yTotal.maximum);
\r
64 var insets = target.getInsets ();
\r
65 size.width += insets.left + insets.right;
\r
66 size.height += insets.top + insets.bottom;
\r
68 }, "java.awt.Container");
\r
69 Clazz.overrideMethod (c$, "getLayoutAlignmentX",
\r
71 this.checkContainer (target);
\r
72 this.checkRequests ();
\r
73 return this.xTotal.alignment;
\r
74 }, "java.awt.Container");
\r
75 Clazz.overrideMethod (c$, "getLayoutAlignmentY",
\r
77 this.checkContainer (target);
\r
78 this.checkRequests ();
\r
79 return this.yTotal.alignment;
\r
80 }, "java.awt.Container");
\r
81 Clazz.overrideMethod (c$, "layoutContainer",
\r
83 this.checkContainer (target);
\r
84 this.checkRequests ();
\r
85 var nChildren = target.getComponentCount ();
\r
86 var xOffsets = Clazz.newIntArray (nChildren, 0);
\r
87 var xSpans = Clazz.newIntArray (nChildren, 0);
\r
88 var yOffsets = Clazz.newIntArray (nChildren, 0);
\r
89 var ySpans = Clazz.newIntArray (nChildren, 0);
\r
90 var alloc = target.getSize ();
\r
91 var $in = target.getInsets ();
\r
92 alloc.width -= $in.left + $in.right;
\r
93 alloc.height -= $in.top + $in.bottom;
\r
94 javax.swing.SizeRequirements.calculateAlignedPositions (alloc.width, this.xTotal, this.xChildren, xOffsets, xSpans);
\r
95 javax.swing.SizeRequirements.calculateAlignedPositions (alloc.height, this.yTotal, this.yChildren, yOffsets, ySpans);
\r
96 for (var i = 0; i < nChildren; i++) {
\r
97 var c = target.getComponent (i);
\r
98 c.setBounds ($in.left + xOffsets[i], $in.top + yOffsets[i], xSpans[i], ySpans[i]);
\r
100 }, "java.awt.Container");
\r
101 Clazz.defineMethod (c$, "checkContainer",
\r
102 function (target) {
\r
103 if (this.target !== target) {
\r
104 throw new java.awt.AWTError ("OverlayLayout can't be shared");
\r
105 }}, "java.awt.Container");
\r
106 Clazz.defineMethod (c$, "checkRequests",
\r
108 if (this.xChildren == null || this.yChildren == null) {
\r
109 var n = this.target.getComponentCount ();
\r
110 this.xChildren = new Array (n);
\r
111 this.yChildren = new Array (n);
\r
112 for (var i = 0; i < n; i++) {
\r
113 var c = this.target.getComponent (i);
\r
114 var min = c.getMinimumSize ();
\r
115 var typ = c.getPreferredSize ();
\r
116 var max = c.getMaximumSize ();
\r
117 this.xChildren[i] = new javax.swing.SizeRequirements (min.width, typ.width, max.width, c.getAlignmentX ());
\r
118 this.yChildren[i] = new javax.swing.SizeRequirements (min.height, typ.height, max.height, c.getAlignmentY ());
\r
120 this.xTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.xChildren);
\r
121 this.yTotal = javax.swing.SizeRequirements.getAlignedSizeRequirements (this.yChildren);
\r