@@ -96,7 +96,7 @@ public DOMNode updateDOMNode() {
9696 boolean isHoriz = (slider .getOrientation () == SwingConstants .HORIZONTAL );
9797 boolean isVerticalScrollBar = (isScrollBar && !isHoriz );
9898 boolean isInverted = isVerticalScrollBar || !isScrollBar && slider .getInverted ();
99- boolean isChanged = false ;
99+ boolean isChanged = sliderDisposed ;
100100 if (isHoriz != this .isHoriz || isVerticalScrollBar != this .isVerticalScrollBar
101101 || isInverted != this .isInverted ) {
102102 this .isHoriz = isHoriz ;
@@ -107,8 +107,6 @@ public DOMNode updateDOMNode() {
107107 boolean isNew = (domNode == null );
108108 if (isNew ) {
109109 domNode = wrap ("div" , id + "_wrap" , jqSlider = DOMNode .createElement ("div" , id ));
110- $ (domNode ).addClass ("swingjs" ); // ??
111- $ (domNode ).addClass ("ui-j2sslider-wrap" ); // ??
112110 setJQuerySliderAndEvents ();
113111 setTainted ();
114112 } else if (isChanged ) {
@@ -126,6 +124,7 @@ public DOMNode updateDOMNode() {
126124 }
127125
128126 private String foreColor = null ;
127+ private boolean sliderDisposed ;
129128 @ Override
130129 public void setForeground (Color c ) {
131130 if (!paintTicks && !paintLabels )
@@ -188,11 +187,17 @@ protected void setBackgroundImpl(Color color) {
188187 }
189188
190189 private void disposeSlider () {
191- Object slider = $ (jqSlider );
192- /**
193- * @j2sNative slider.j2sslider("destroy");
194- *
195- */
190+ if (sliderInitialized ()) {
191+ Object slider = $ (jqSlider );
192+ /**
193+ *
194+ * @j2sNative
195+ *
196+ *
197+ * slider.j2sslider("destroy");
198+ *
199+ */
200+ }
196201 DOMNode .dispose (jqSlider );
197202 }
198203
@@ -209,8 +214,15 @@ private void setSliderFields() {
209214 jScrollBar = (JScrollBar ) jc ;
210215 }
211216
212- private void setJQuerySliderAndEvents () {
217+ @ Override
218+ public void dispose () {
219+ sliderDisposed = true ;
220+ super .dispose ();
221+ }
213222
223+ void setJQuerySliderAndEvents () {
224+ $ (domNode ).addClass ("swingjs" );
225+ $ (domNode ).addClass ("ui-j2sslider-wrap" ); // for mouse-down event in jquery-ui-j2sslider.js
214226 Object slider = $ (jqSlider );
215227 /**
216228 * @j2sNative
@@ -306,6 +318,7 @@ private void setup(boolean isNew) {
306318 setDataComponent (domNode );
307319 setDataComponent (sliderHandle );
308320 }
321+ sliderDisposed = false ;
309322 }
310323
311324 /**
@@ -314,13 +327,15 @@ private void setup(boolean isNew) {
314327 * @param val
315328 */
316329 protected void setSliderAttr (String key , float val ) {
330+ if (!sliderInitialized ())
317331 noSnapping = true ;
318332 String id = null ;
319333 try {
320334 Object jsslider = $ (jqSlider );
321335 /**
322336 * @j2sNative
323- * id = this.jqSlider.id;
337+ *
338+ * id = this.jqSlider.id;
324339 * jsslider.j2sslider("option",key,val);
325340 */
326341 } catch (Throwable t ) {
@@ -330,6 +345,10 @@ protected void setSliderAttr(String key, float val) {
330345 noSnapping = isScrollBar ;
331346 }
332347
348+ private boolean sliderInitialized () {
349+ return ($data (jqSlider , "ui-j2sslider" ) != null );
350+ }
351+
333352 public void setSlider () {
334353 setSliderAttr ("min" , min );
335354 // hack is for list to not show bottom line
0 commit comments