Use isc namespace to eliminate the possibility of JS name collisions
<!-- Isomorphic SmartClient Copyright(c) 1998 and beyond Isomorphic Software, Inc. "SmartClient" is a trademark of Isomorphic Software, Inc. All rights reserved. Open Source License SmartClient source code, located under the source/ directory, and the resulting assembled modules in isomorphic/system/modules/, as well as JavaScript and CSS files under the isomorphic/skins directory are licensed under the terms of the GNU Lesser General Public License, version 3. The text of the LGPLv3 license is available online at http://www.gnu.org/licenses/lgpl-3.0.html If your project precludes the use of this license, or if you'd like to support SmartClient LGPL, we encourage you to buy a commercial license. Icon Experience Collection Selected 16x16 icons within the isomorphic/skins directory are part of the Icon Experience collection (http://www.iconexperience.com) and may be freely used with any SmartClient components without charge, but may not be used as part of screen designs separate from SmartClient components without a purchase of a license from Icon Experience. We are working to replace these icons as soon as possible. All other media found under the isomorphic/skins directory may be used under the LGPLv3. Commercial Licenses A number of commercial licenses are available for purchase. Please see http://smartclient.com/license. Warranty Disclaimer This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. Copyright 2001 and beyond Isomorphic Software, Inc. Last revised July 20, 2008. --> <!-- The following code is revised from SmartClient demo code(SmartClient_70rc2_LGPL.zip).--> <HTML><HEAD> <SCRIPT> var isc_useSimpleNames = false; var isomorphicDir = "isomorphic/"; </SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT> <SCRIPT SRC=isomorphic/skins/standard/load_skin.js></SCRIPT> <SCRIPT> /*----------> SimpleSlider_9.js <----------*/ // Step 9 // * use "isc" namespace to eliminate the possibility of JS name collisions isc.ClassFactory.defineClass("SimpleSlider", isc.Canvas); isc.SimpleSlider.addClassProperties({ VERTICAL_SRC_PREFIX:"v", HORIZONTAL_SRC_PREFIX:"h", DOWN:"down", UP:"", ON:"", OFF:"off", EVENTNAME:"sliderMove" }); isc.SimpleSlider.addProperties({ length:200, vertical:true, thumbThickWidth:23, thumbThinWidth:17, trackWidth:7, trackCapSize:6, skinImgDir:"examples/custom_components/SimpleSlider/images/SimpleSlider/", thumbSrc:"thumb.gif", trackSrc:"track.gif", value:0, sliderTarget:null, initWidget : function () { this.Super("initWidget", arguments); var width, height; if (this.vertical) { width = Math.max(this.thumbThickWidth, this.trackWidth); height = this.length; } else { width = this.length; height = Math.max(this.thumbThickWidth, this.trackWidth); } this.setWidth(width); this.setHeight(height); this._usableLength = this.length-this.thumbThinWidth; this._track = this.addChild(this._createTrack()); this._thumb = this.addChild(this._createThumb()); this.setValue(this.value); this.setDisabled(this.disabled); }, _createTrack : function () { return isc.StretchImg.create({ autoDraw:false, left:(this.vertical ? Math.floor((this.getWidth() - this.trackWidth)/2) : 0), top:(this.vertical ? 0 : Math.floor((this.getHeight() - this.trackWidth)/2)), width:(this.vertical ? this.trackWidth : this.getWidth()), height:(this.vertical ? this.getHeight() : this.trackWidth), vertical:this.vertical, capSize:this.trackCapSize, src:"[SKIN]" + (this.vertical ? "v" : "h") + this.trackSrc, skinImgDir:this.skinImgDir }); }, _createThumb : function () { return isc.Img.create({ autoDraw:false, left:(this.vertical ? Math.floor((this.getWidth() - this.thumbThickWidth)/2) : 0), top:(this.vertical ? 0 : Math.floor((this.getHeight() - this.thumbThickWidth)/2)), width:(this.vertical ? this.thumbThickWidth : this.thumbThinWidth), height:(this.vertical ? this.thumbThinWidth : this.thumbThickWidth), src:"[SKIN]" + (this.vertical ? "v" : "h") + this.thumbSrc, skinImgDir:this.skinImgDir, canDrag:true, dragAppearance:isc.EventHandler.NONE, cursor:isc.Canvas.HAND, dragMove:"this.parentElement._thumbMove(); return false", dragStart:isc.EventHandler.stopBubbling, dragStop:"this.setState(isc.SimpleSlider.UP); return false", mouseDown:"this.setState(isc.SimpleSlider.DOWN)", mouseUp:"this.setState(isc.SimpleSlider.UP); return false" }); }, _thumbMove : function () { var thumbPosition; if (this.vertical) { thumbPosition = isc.EventHandler.getY() - this.getPageTop(); thumbPosition = Math.max(0, Math.min(this._usableLength, thumbPosition)); if (thumbPosition == this._thumb.getTop()) return; this._thumb.setTop(thumbPosition); } else { thumbPosition = isc.EventHandler.getX() - this.getPageLeft(); thumbPosition = Math.max(0, Math.min(this._usableLength, thumbPosition)); if (thumbPosition == this._thumb.getLeft()) return; this._thumb.setLeft(thumbPosition); } this.value = thumbPosition/this._usableLength; this.valueChanged(); if (this.sliderTarget) isc.EventHandler.handleEvent(this.sliderTarget, isc.SimpleSlider.EVENTNAME, this); }, setValue : function (newValue) { if (!isc.isA.Number(newValue)) return; this.value = Math.max(0, Math.min(newValue, 1)); var thumbPosition = this.value * this._usableLength; if (this.vertical) this._thumb.setTop(thumbPosition); else this._thumb.setLeft(thumbPosition); this.valueChanged(); if (this.sliderTarget) isc.EventHandler.handleEvent(this.sliderTarget, isc.SimpleSlider.EVENTNAME, this); }, getValue : function () { return this.value; }, valueChanged : function () { }, setDisabled : function (disabled) { this.Super("setDisabled",arguments); if (!disabled) { this._track.setState(isc.SimpleSlider.ON); this._thumb.setState(isc.SimpleSlider.UP); this._thumb.setCursor(isc.Canvas.HAND); } else { this._track.setState(isc.SimpleSlider.OFF); this._thumb.setState(isc.SimpleSlider.OFF); this._thumb.setCursor(isc.Canvas.DEFAULT); } } }); </SCRIPT> </HEAD><BODY BGCOLOR='powderblue'> <SCRIPT> // override default skin directory to pick up local slider images isc.Page.setSkinDir(""); //-------------------------------------------------- // display area for targeted sliderMove events //-------------------------------------------------- isc.Label.create({ ID:"display", left:150, top:50, height:20, sliderMove:function(event,slider){ this.setContents("sliderMove event<br>" + slider.getID() + ": " + slider.value); } }); //-------------------------------------------------- // global handler for sliderMove events //-------------------------------------------------- isc.Label.create({ ID:"globalDisplay", left:300, top:50, height:20 }); isc.Page.setEvent( "sliderMove", "globalDisplay.setContents('Global handler<br>' + eventInfo.ID + ': ' + eventInfo.value);" ); //-------------------------------------------------- // sliders //-------------------------------------------------- isc.SimpleSlider.create({ ID:"vSlider", left:100, top:100, value:0.3, sliderTarget:display }); isc.SimpleSlider.create({ ID:"hSlider", left:300, top:180, vertical:false, value:0.5, sliderTarget:display }); //-------------------------------------------------- // display areas for observed slider values //-------------------------------------------------- isc.Label.create({ ID:"vSliderObserver", left:20, top:320, height:20 }); vSliderObserver.observe(vSlider, "valueChanged", "observer.setContents(observed.value)"); isc.Label.create({ ID:"hSliderObserver", left:300, top:320, height:20 }); hSliderObserver.observe(hSlider, "valueChanged", "observer.setContents(observed.value)"); //-------------------------------------------------- // buttons to enable/disable sliders //-------------------------------------------------- isc.Button.create({ left:70, top:20, width:120, title:"Enable sliders", click:"vSlider.enable();hSlider.enable()" }); isc.Button.create({ left:220, top:20, width:120, title:"Disable sliders", click:"vSlider.disable();hSlider.disable()" }); </SCRIPT> </BODY> </HTML>