Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / swingjs / plaf / JSSliderUI.java
index e6a882c..9e9ec7e 100644 (file)
-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);
+                */
+               {}
+       }
+
+}