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