JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / swingjs / test / converter / Converter.js
1 Clazz.declarePackage ("swingjs.test.converter");\r
2 Clazz.load (["javax.swing.JApplet", "swingjs.test.converter.ConverterRangeModel"], "swingjs.test.converter.Converter", ["java.awt.Color", "$.Dimension", "javax.swing.BorderFactory", "$.Box", "$.BoxLayout", "$.JPanel", "$.UIManager", "swingjs.test.converter.ConversionPanel", "$.FollowerRangeModel", "$.Unit"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.metricPanel = null;\r
5 this.usaPanel = null;\r
6 this.metricDistances = null;\r
7 this.usaDistances = null;\r
8 this.dataModel = null;\r
9 this.mainPane = null;\r
10 Clazz.instantialize (this, arguments);\r
11 }, swingjs.test.converter, "Converter", javax.swing.JApplet);\r
12 Clazz.prepareFields (c$, function () {\r
13 this.metricDistances =  new Array (3);\r
14 this.usaDistances =  new Array (4);\r
15 this.dataModel =  new swingjs.test.converter.ConverterRangeModel ();\r
16 });\r
17 Clazz.makeConstructor (c$, \r
18 function () {\r
19 Clazz.superConstructor (this, swingjs.test.converter.Converter, []);\r
20 this.metricDistances[0] =  new swingjs.test.converter.Unit ("Centimeters", 0.01);\r
21 this.metricDistances[1] =  new swingjs.test.converter.Unit ("Meters", 1.0);\r
22 this.metricDistances[2] =  new swingjs.test.converter.Unit ("Kilometers", 1000.0);\r
23 this.metricPanel =  new swingjs.test.converter.ConversionPanel (this, "Metric System", this.metricDistances, this.dataModel);\r
24 this.usaDistances[0] =  new swingjs.test.converter.Unit ("Inches", 0.0254);\r
25 this.usaDistances[1] =  new swingjs.test.converter.Unit ("Feet", 0.305);\r
26 this.usaDistances[2] =  new swingjs.test.converter.Unit ("Yards", 0.914);\r
27 this.usaDistances[3] =  new swingjs.test.converter.Unit ("Miles", 1613.0);\r
28 this.usaPanel =  new swingjs.test.converter.ConversionPanel (this, "U.S. System", this.usaDistances,  new swingjs.test.converter.FollowerRangeModel (this.dataModel));\r
29 this.mainPane =  new javax.swing.JPanel ();\r
30 this.mainPane.setLayout ( new javax.swing.BoxLayout (this.mainPane, 3));\r
31 if (false) {\r
32 this.mainPane.setOpaque (true);\r
33 this.mainPane.setBackground ( new java.awt.Color (255, 0, 0));\r
34 }this.mainPane.setBorder (javax.swing.BorderFactory.createEmptyBorder (5, 5, 5, 5));\r
35 this.mainPane.add (javax.swing.Box.createRigidArea ( new java.awt.Dimension (0, 5)));\r
36 this.mainPane.add (this.metricPanel);\r
37 this.mainPane.add (javax.swing.Box.createRigidArea ( new java.awt.Dimension (0, 5)));\r
38 this.mainPane.add (this.usaPanel);\r
39 this.mainPane.add (javax.swing.Box.createGlue ());\r
40 this.resetMaxValues (true);\r
41 });\r
42 Clazz.defineMethod (c$, "resetMaxValues", \r
43 function (resetCurrentValues) {\r
44 var metricMultiplier = this.metricPanel.getMultiplier ();\r
45 var usaMultiplier = this.usaPanel.getMultiplier ();\r
46 var maximum = 10000;\r
47 if (metricMultiplier > usaMultiplier) {\r
48 maximum = Clazz.doubleToInt (10000 * (usaMultiplier / metricMultiplier));\r
49 }this.dataModel.setMaximum (maximum);\r
50 if (resetCurrentValues) {\r
51 this.dataModel.setDoubleValue (maximum);\r
52 }}, "~B");\r
53 c$.initLookAndFeel = Clazz.defineMethod (c$, "initLookAndFeel", \r
54  function () {\r
55 var lookAndFeel = null;\r
56 if (swingjs.test.converter.Converter.LOOKANDFEEL != null) {\r
57 if (swingjs.test.converter.Converter.LOOKANDFEEL.equals ("Metal")) {\r
58 lookAndFeel = javax.swing.UIManager.getCrossPlatformLookAndFeelClassName ();\r
59 } else if (swingjs.test.converter.Converter.LOOKANDFEEL.equals ("System")) {\r
60 lookAndFeel = javax.swing.UIManager.getSystemLookAndFeelClassName ();\r
61 } else if (swingjs.test.converter.Converter.LOOKANDFEEL.equals ("Motif")) {\r
62 lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";\r
63 } else if (swingjs.test.converter.Converter.LOOKANDFEEL.equals ("GTK+")) {\r
64 lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";\r
65 } else {\r
66 System.err.println ("Unexpected value of LOOKANDFEEL specified: " + swingjs.test.converter.Converter.LOOKANDFEEL);\r
67 lookAndFeel = javax.swing.UIManager.getCrossPlatformLookAndFeelClassName ();\r
68 }try {\r
69 javax.swing.UIManager.setLookAndFeel (lookAndFeel);\r
70 } catch (e$$) {\r
71 if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {\r
72 var e = e$$;\r
73 {\r
74 System.err.println ("Couldn't find class for specified look and feel:" + lookAndFeel);\r
75 System.err.println ("Did you include the L&F library in the class path?");\r
76 System.err.println ("Using the default look and feel.");\r
77 }\r
78 } else if (Clazz.exceptionOf (e$$, javax.swing.UnsupportedLookAndFeelException)) {\r
79 var e = e$$;\r
80 {\r
81 System.err.println ("Can't use the specified look and feel (" + lookAndFeel + ") on this platform.");\r
82 System.err.println ("Using the default look and feel.");\r
83 }\r
84 } else if (Clazz.exceptionOf (e$$, Exception)) {\r
85 var e = e$$;\r
86 {\r
87 System.err.println ("Couldn't get specified look and feel (" + lookAndFeel + "), for some reason.");\r
88 System.err.println ("Using the default look and feel.");\r
89 e.printStackTrace ();\r
90 }\r
91 } else {\r
92 throw e$$;\r
93 }\r
94 }\r
95 }});\r
96 Clazz.overrideMethod (c$, "init", \r
97 function () {\r
98 this.resize (300, 170);\r
99 this.createAndShowGUI ();\r
100 });\r
101 Clazz.defineMethod (c$, "createAndShowGUI", \r
102  function () {\r
103 swingjs.test.converter.Converter.initLookAndFeel ();\r
104 var converter =  new swingjs.test.converter.Converter ();\r
105 converter.mainPane.setOpaque (true);\r
106 this.add (converter.mainPane);\r
107 });\r
108 Clazz.defineStatics (c$,\r
109 "MULTICOLORED", false,\r
110 "LOOKANDFEEL", null);\r
111 });\r