-package swingjs.plaf;\r
-\r
-\r
-import javax.swing.SwingConstants;\r
-\r
-import jsjava.awt.Dimension;\r
-import jsjava.beans.PropertyChangeEvent;\r
-import jsjava.beans.PropertyChangeListener;\r
-import jsjavax.swing.JSlider;\r
-import jsjavax.swing.event.ChangeEvent;\r
-import jsjavax.swing.event.ChangeListener;\r
-import swingjs.J2SRequireImport;\r
-import swingjs.JSToolkit;\r
-import swingjs.api.DOMNode;\r
-\r
-@J2SRequireImport(swingjs.jquery.JQueryUI.class)\r
-public class JSSliderUI extends JSComponentUI implements PropertyChangeListener, ChangeListener {\r
-\r
- private JSlider jSlider;\r
- private int min, max, val;\r
- private String orientation;\r
- \r
- protected DOMNode jqSlider;\r
- private int z0 = Integer.MIN_VALUE;\r
-\r
- public JSSliderUI() {\r
- needPreferred = true;\r
- setDoc();\r
- }\r
-\r
- static { \r
- JSToolkit.getJavaResource("swingjs/jquery/jquery-ui-slider.css");\r
- JSToolkit.getJavaResource("swingjs/jquery/jquery-ui-slider.js");\r
- }\r
- @Override\r
- public DOMNode getDOMObject() {\r
- JSlider js = jSlider = (JSlider) c;\r
- boolean isNew = (domNode == null);\r
- if (isNew) {\r
- domNode = wrap("div", id + "_wrap", jqSlider = DOMNode.createElement("div", id));\r
- DOMNode.setAttr(domNode, "className", "swingjs");\r
- orientation = (js.getOrientation() == SwingConstants.VERTICAL ? "vertical" : "horizontal");\r
- min = js.getMinimum();\r
- max = js.getMaximum();\r
- val = js.getValue();\r
- \r
-\r
- /** \r
- * @j2sNative\r
- *\r
- var me = this;\r
- me.$(me.jqSlider).slider({\r
- orientation: me.orientation,\r
- range: false,\r
- min: me.min,\r
- max: me.max,\r
- value: me.val,\r
- change: function( event, handle ) {\r
- me.jqueryCallback(event, handle);\r
- },\r
- slide: function( event, handle ) {\r
- me.jqueryCallback(event, handle);\r
- }\r
- });\r
- \r
- */\r
- {}\r
- \r
- }\r
- setZ(isNew);\r
- return domNode;\r
- }\r
-\r
- /**\r
- * \r
- * @param isNew\r
- */\r
- private void setZ(boolean isNew) {\r
- int z = JSToolkit.getZIndex(this, null);\r
- if (z == z0)\r
- return;\r
- z0 = z;\r
- System.out.println("JSSliderUI setting z to " + z);\r
- DOMNode sliderTrack = null;\r
- DOMNode sliderHandle = null;\r
- /**\r
- * @j2sNative\r
- * \r
- * sliderTrack = this.domNode.firstChild;\r
- * sliderHandle = sliderTrack.firstChild;\r
- * sliderTrack.style["z-index"] = z++;\r
- * sliderHandle.style["z-index"] = z++;\r
- */\r
- {}\r
- // mark the handle and track with the "swingjs-ui" class\r
- // so as to ignore all mouse/touch events from Jmol._jsSetMouse();\r
- if (isNew) {\r
- $(sliderHandle).addClass("swingjs-ui");\r
- $(sliderTrack).addClass("swingjs-ui");\r
- }\r
- }\r
-\r
- /**\r
- * called from JavaScript via the hook added in getDOMObject \r
- * \r
- * @param event\r
- * @param ui\r
- */\r
- public void jqueryCallback(Object event, DOMNode ui) {\r
- // from JavaScript\r
- int value = 0;\r
- \r
- /**\r
- * @j2sNative\r
- * \r
- * value = ui.value;\r
- * \r
- */\r
- {}\r
- \r
- jSlider.setValue(val = value);\r
- }\r
- \r
- protected Dimension setHTMLSize(DOMNode obj, boolean addCSS) {\r
- return (orientation == "horizontal" ? new Dimension(100, 20) : new Dimension(20, 100));\r
- }\r
-\r
- @Override\r
- protected void installJSUI() {\r
- jSlider.addChangeListener(this);\r
- jSlider.addPropertyChangeListener(this);\r
- }\r
-\r
- @Override\r
- protected void uninstallJSUI() {\r
- jSlider.removeChangeListener(this);\r
- jSlider.removePropertyChangeListener(this);\r
- }\r
-\r
- @Override\r
- public void propertyChange(PropertyChangeEvent e) {\r
- String prop = e.getPropertyName();\r
- System.out.println(id + " propertyChange " + prop);\r
- if (prop == "ancestor")\r
- setZ(false);\r
- }\r
-\r
- @Override\r
- public void stateChanged(ChangeEvent e) {\r
- // from Java\r
- int v;\r
- if ((v = jSlider.getMinimum()) != min)\r
- setSliderAttr("min", min = v);\r
- if ((v = jSlider.getMaximum()) != max)\r
- setSliderAttr("max", max = v); \r
- if ((v = jSlider.getValue()) != val)\r
- setSliderAttr("value", val = v); \r
- setZ(false);\r
- }\r
-\r
- private void setSliderAttr(String key, int val) {\r
- System.out.println(id + " setting " + key + " = " + val);\r
- /**\r
- * @j2sNative\r
- * \r
- * var a = {};\r
- * a[key]= val;\r
- * this.$(this.jqSlider).slider(a);\r
- */\r
- {}\r
- }\r
-\r
-}\r
+package swingjs.plaf;
+
+
+import javax.swing.SwingConstants;
+
+import jsjava.awt.Dimension;
+import jsjava.beans.PropertyChangeEvent;
+import jsjava.beans.PropertyChangeListener;
+import jsjavax.swing.JSlider;
+import jsjavax.swing.event.ChangeEvent;
+import jsjavax.swing.event.ChangeListener;
+import swingjs.J2SRequireImport;
+import swingjs.JSToolkit;
+import swingjs.api.DOMNode;
+
+@J2SRequireImport(swingjs.jquery.JQueryUI.class)
+public class JSSliderUI extends JSComponentUI implements PropertyChangeListener, ChangeListener {
+
+ private JSlider jSlider;
+ private int min, max, val;
+ private String orientation;
+
+ protected DOMNode jqSlider;
+ private int z0 = Integer.MIN_VALUE;
+
+ public JSSliderUI() {
+ needPreferred = true;
+ setDoc();
+ }
+
+ static {
+ JSToolkit.getJavaResource("swingjs/jquery/jquery-ui-slider.css");
+ JSToolkit.getJavaResource("swingjs/jquery/jquery-ui-slider.js");
+ }
+ @Override
+ public DOMNode getDOMObject() {
+ JSlider js = jSlider = (JSlider) c;
+ boolean isNew = (domNode == null);
+ if (isNew) {
+ domNode = wrap("div", id + "_wrap", jqSlider = DOMNode.createElement("div", id));
+ DOMNode.setAttr(domNode, "className", "swingjs");
+ orientation = (js.getOrientation() == SwingConstants.VERTICAL ? "vertical" : "horizontal");
+ min = js.getMinimum();
+ max = js.getMaximum();
+ val = js.getValue();
+
+
+ /**
+ * @j2sNative
+ *
+ var me = this;
+ me.$(me.jqSlider).slider({
+ orientation: me.orientation,
+ range: false,
+ min: me.min,
+ max: me.max,
+ value: me.val,
+ change: function( event, handle ) {
+ me.jqueryCallback(event, handle);
+ },
+ slide: function( event, handle ) {
+ me.jqueryCallback(event, handle);
+ }
+ });
+
+ */
+ {}
+
+ }
+ setZ(isNew);
+ return domNode;
+ }
+
+ /**
+ *
+ * @param isNew
+ */
+ private void setZ(boolean isNew) {
+ int z = JSToolkit.getZIndex(this, null);
+ if (z == z0)
+ return;
+ z0 = z;
+ System.out.println("JSSliderUI setting z to " + z);
+ DOMNode sliderTrack = null;
+ DOMNode sliderHandle = null;
+ /**
+ * @j2sNative
+ *
+ * sliderTrack = this.domNode.firstChild;
+ * sliderHandle = sliderTrack.firstChild;
+ * sliderTrack.style["z-index"] = z++;
+ * sliderHandle.style["z-index"] = z++;
+ */
+ {}
+ // mark the handle and track with the "swingjs-ui" class
+ // so as to ignore all mouse/touch events from Jmol._jsSetMouse();
+ if (isNew) {
+ $(sliderHandle).addClass("swingjs-ui");
+ $(sliderTrack).addClass("swingjs-ui");
+ }
+ }
+
+ /**
+ * called from JavaScript via the hook added in getDOMObject
+ *
+ * @param event
+ * @param ui
+ */
+ public void jqueryCallback(Object event, DOMNode ui) {
+ // from JavaScript
+ int value = 0;
+
+ /**
+ * @j2sNative
+ *
+ * value = ui.value;
+ *
+ */
+ {}
+
+ jSlider.setValue(val = value);
+ }
+
+ protected Dimension setHTMLSize(DOMNode obj, boolean addCSS) {
+ return (orientation == "horizontal" ? new Dimension(100, 20) : new Dimension(20, 100));
+ }
+
+ @Override
+ protected void installJSUI() {
+ jSlider.addChangeListener(this);
+ jSlider.addPropertyChangeListener(this);
+ }
+
+ @Override
+ protected void uninstallJSUI() {
+ jSlider.removeChangeListener(this);
+ jSlider.removePropertyChangeListener(this);
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent e) {
+ String prop = e.getPropertyName();
+ System.out.println(id + " propertyChange " + prop);
+ if (prop == "ancestor")
+ setZ(false);
+ }
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ // from Java
+ int v;
+ if ((v = jSlider.getMinimum()) != min)
+ setSliderAttr("min", min = v);
+ if ((v = jSlider.getMaximum()) != max)
+ setSliderAttr("max", max = v);
+ if ((v = jSlider.getValue()) != val)
+ setSliderAttr("value", val = v);
+ setZ(false);
+ }
+
+ private void setSliderAttr(String key, int val) {
+ System.out.println(id + " setting " + key + " = " + val);
+ /**
+ * @j2sNative
+ *
+ * var a = {};
+ * a[key]= val;
+ * this.$(this.jqSlider).slider(a);
+ */
+ {}
+ }
+
+}