168d0890ee4e8bd01f91937b19ee8769a844908c
[jalviewjs.git] / site / swingjs / j2s / javax / swing / LayoutComparator.js
1 Clazz.declarePackage ("javax.swing");
2 Clazz.load (null, "javax.swing.LayoutComparator", ["java.lang.ClassCastException", "java.util.LinkedList", "java.awt.Window"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.horizontal = true;
5 this.leftToRight = true;
6 Clazz.instantialize (this, arguments);
7 }, javax.swing, "LayoutComparator", null, [java.util.Comparator, java.io.Serializable]);
8 Clazz.defineMethod (c$, "setComponentOrientation", 
9 function (orientation) {
10 this.horizontal = orientation.isHorizontal ();
11 this.leftToRight = orientation.isLeftToRight ();
12 }, "java.awt.ComponentOrientation");
13 Clazz.overrideMethod (c$, "compare", 
14 function (o1, o2) {
15 var a = o1;
16 var b = o2;
17 if (a === b) {
18 return 0;
19 }if (a.getParent () !== b.getParent ()) {
20 var aAncestory;
21 var bAncestory;
22 for (aAncestory =  new java.util.LinkedList (); a != null; a = a.getParent ()) {
23 aAncestory.add (a);
24 if (Clazz.instanceOf (a, java.awt.Window)) {
25 break;
26 }}
27 if (a == null) {
28 throw  new ClassCastException ();
29 }for (bAncestory =  new java.util.LinkedList (); b != null; b = b.getParent ()) {
30 bAncestory.add (b);
31 if (Clazz.instanceOf (b, java.awt.Window)) {
32 break;
33 }}
34 if (b == null) {
35 throw  new ClassCastException ();
36 }for (var aIter = aAncestory.listIterator (aAncestory.size ()), bIter = bAncestory.listIterator (bAncestory.size ()); ; ) {
37 if (aIter.hasPrevious ()) {
38 a = aIter.previous ();
39 } else {
40 return -1;
41 }if (bIter.hasPrevious ()) {
42 b = bIter.previous ();
43 } else {
44 return 1;
45 }if (a !== b) {
46 break;
47 }}
48 }var ax = a.getX ();
49 var ay = a.getY ();
50 var bx = b.getX ();
51 var by = b.getY ();
52 var zOrder = a.getParent ().getComponentZOrder (a) - b.getParent ().getComponentZOrder (b);
53 if (this.horizontal) {
54 if (this.leftToRight) {
55 if (Math.abs (ay - by) < 10) {
56 return (ax < bx) ? -1 : ((ax > bx) ? 1 : zOrder);
57 } else {
58 return (ay < by) ? -1 : 1;
59 }} else {
60 if (Math.abs (ay - by) < 10) {
61 return (ax > bx) ? -1 : ((ax < bx) ? 1 : zOrder);
62 } else {
63 return (ay < by) ? -1 : 1;
64 }}} else {
65 if (this.leftToRight) {
66 if (Math.abs (ax - bx) < 10) {
67 return (ay < by) ? -1 : ((ay > by) ? 1 : zOrder);
68 } else {
69 return (ax < bx) ? -1 : 1;
70 }} else {
71 if (Math.abs (ax - bx) < 10) {
72 return (ay < by) ? -1 : ((ay > by) ? 1 : zOrder);
73 } else {
74 return (ax > bx) ? -1 : 1;
75 }}}}, "~O,~O");
76 Clazz.defineStatics (c$,
77 "ROW_TOLERANCE", 10);
78 });