JAL-1807 update
[jalviewjs.git] / site / j2s / swingjs / plaf / JSSliderUI.js
1 Clazz.declarePackage ("swingjs.plaf");
2 Clazz.load (["java.beans.PropertyChangeListener", "javax.swing.event.ChangeListener", "swingjs.plaf.JSComponentUI", "swingjs.jquery.JQueryUI"], "swingjs.plaf.JSSliderUI", ["java.awt.Dimension", "swingjs.JSToolkit", "swingjs.api.DOMNode"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.jSlider = null;
5 this.min = 0;
6 this.max = 0;
7 this.val = 0;
8 this.orientation = null;
9 this.jqSlider = null;
10 this.z0 = -2147483648;
11 Clazz.instantialize (this, arguments);
12 }, swingjs.plaf, "JSSliderUI", swingjs.plaf.JSComponentUI, [java.beans.PropertyChangeListener, javax.swing.event.ChangeListener]);
13 Clazz.makeConstructor (c$, 
14 function () {
15 Clazz.superConstructor (this, swingjs.plaf.JSSliderUI, []);
16 this.needPreferred = true;
17 this.setDoc ();
18 });
19 Clazz.overrideMethod (c$, "getDOMObject", 
20 function () {
21 var js = this.jSlider = this.c;
22 var isNew = (this.domNode == null);
23 if (isNew) {
24 this.domNode = this.wrap ("div", this.id + "_wrap", [this.jqSlider = swingjs.api.DOMNode.createElement ("div", this.id)]);
25 swingjs.api.DOMNode.setAttr (this.domNode, "className", "swingjs");
26 this.orientation = (js.getOrientation () == 1 ? "vertical" : "horizontal");
27 this.min = js.getMinimum ();
28 this.max = js.getMaximum ();
29 this.val = js.getValue ();
30 {
31 var me = this;
32 me.$(me.jqSlider).slider({
33 orientation: me.orientation,
34 range: false,
35 min: me.min,
36 max: me.max,
37 value: me.val,
38 change: function( event, handle ) {
39 me.jqueryCallback(event, handle);
40 },
41 slide: function( event, handle ) {
42 me.jqueryCallback(event, handle);
43 }
44 });
45 }}this.setZ (isNew);
46 return this.domNode;
47 });
48 Clazz.defineMethod (c$, "setZ", 
49  function (isNew) {
50 var z = swingjs.JSToolkit.getZIndex (this, null);
51 if (z == this.z0) return;
52 this.z0 = z;
53 System.out.println ("JSSliderUI setting z to " + z);
54 var sliderTrack = null;
55 var sliderHandle = null;
56 {
57 sliderTrack = this.domNode.firstChild;
58 sliderHandle = sliderTrack.firstChild;
59 sliderTrack.style["z-index"] = z++;
60 sliderHandle.style["z-index"] = z++;
61 }if (isNew) {
62 this.$ (sliderHandle).addClass ("swingjs-ui");
63 this.$ (sliderTrack).addClass ("swingjs-ui");
64 }}, "~B");
65 Clazz.defineMethod (c$, "jqueryCallback", 
66 function (event, ui) {
67 var value = 0;
68 {
69 value = ui.value;
70 }this.jSlider.setValue (this.val = value);
71 }, "~O,swingjs.api.DOMNode");
72 Clazz.overrideMethod (c$, "setHTMLSize", 
73 function (obj, addCSS) {
74 return (this.orientation === "horizontal" ?  new java.awt.Dimension (100, 20) :  new java.awt.Dimension (20, 100));
75 }, "swingjs.api.DOMNode,~B");
76 Clazz.overrideMethod (c$, "installJSUI", 
77 function () {
78 this.jSlider.addChangeListener (this);
79 this.jSlider.addPropertyChangeListener (this);
80 });
81 Clazz.overrideMethod (c$, "uninstallJSUI", 
82 function () {
83 this.jSlider.removeChangeListener (this);
84 this.jSlider.removePropertyChangeListener (this);
85 });
86 Clazz.overrideMethod (c$, "propertyChange", 
87 function (e) {
88 var prop = e.getPropertyName ();
89 System.out.println (this.id + " propertyChange " + prop);
90 if (prop === "ancestor") this.setZ (false);
91 }, "java.beans.PropertyChangeEvent");
92 Clazz.overrideMethod (c$, "stateChanged", 
93 function (e) {
94 var v;
95 if ((v = this.jSlider.getMinimum ()) != this.min) this.setSliderAttr ("min", this.min = v);
96 if ((v = this.jSlider.getMaximum ()) != this.max) this.setSliderAttr ("max", this.max = v);
97 if ((v = this.jSlider.getValue ()) != this.val) this.setSliderAttr ("value", this.val = v);
98 this.setZ (false);
99 }, "javax.swing.event.ChangeEvent");
100 Clazz.defineMethod (c$, "setSliderAttr", 
101  function (key, val) {
102 System.out.println (this.id + " setting " + key + " = " + val);
103 {
104 var a = {};
105 a[key]= val;
106 this.$(this.jqSlider).slider(a);
107 }}, "~S,~N");
108 {
109 swingjs.JSToolkit.getJavaResource ("swingjs/jquery/jquery-ui-slider.css", true);
110 swingjs.JSToolkit.getJavaResource ("swingjs/jquery/jquery-ui-slider.js", true);
111 }});