Mega Code Archive

 
Categories / JavaScript DHTML / Smartclient
 

Add value setter and getter methods and use setter to init value

<!-- 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 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_4.js    <----------*/ // Step 4 //  * add value setter and getter methods //  * use setter to init value ClassFactory.defineClass("SimpleSlider", Canvas); SimpleSlider.addProperties({   length:200,   vertical:true,      thumbThickWidth:30,   thumbThinWidth:10,   trackWidth:4,                    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);     },               _createTrack : function () {         return Canvas.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,             backgroundColor:"#666666",             overflow:Canvas.HIDDEN         });     },               _createThumb : function () {         return Canvas.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),             canDrag:true,             dragAppearance:EventHandler.NONE,             dragMove:"this.parentElement._thumbMove(); return false",             dragStart:EventHandler.stopBubbling,             backgroundColor:"#AAAAAA"         });     },               _thumbMove : function () {         var thumbPosition;                  if (this.vertical) {             thumbPosition = 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 = 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;                  if (this.sliderTarget) EventHandler.handleEvent(this.sliderTarget, "sliderMove", this);     },               setValue : function (newValue) {         this.value = newValue;                  var thumbPosition = this.value * this._usableLength;         if (this.vertical)             this._thumb.setTop(thumbPosition);         else             this._thumb.setLeft(thumbPosition);                  if (this.sliderTarget) EventHandler.handleEvent(this.sliderTarget, "sliderMove", this);     },               getValue : function () {         return this.value;     }           });      </SCRIPT> </HEAD><BODY BGCOLOR='powderblue'> <SCRIPT> //-------------------------------------------------- //  display area for targeted sliderMove events //-------------------------------------------------- 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 //-------------------------------------------------- Label.create({     ID:"globalDisplay",     left:300,     top:50,     height:20 }); Page.setEvent(     "sliderMove",      "globalDisplay.setContents('Global handler<br>' + eventInfo.ID + ': ' + eventInfo.value);" ); //-------------------------------------------------- //  sliders //-------------------------------------------------- SimpleSlider.create({   ID:"vSlider",   left:100,   top:100,   value:0.3,   sliderTarget:display }); SimpleSlider.create({   ID:"hSlider",   left:300,   top:180,   vertical:false,   value:0.5,   sliderTarget:display }); </SCRIPT> </BODY> </HTML>