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