Changeset 20359


Ignore:
Timestamp:
03/25/16 17:55:49 (9 years ago)
Author:
dlcheng
Message:

CHG (javascript): slider refactoring. Now conforms to options syntax. Accepts height and width arguments. Requires named arguments for value, callback, and name. Preventing variable hoisting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/plot/slider.js

    r19936 r20359  
    1 function slider(initialvalue,functionvalue,slidername){
     1function slider(){
    22       
    33        //Convert arguments to options
    44        var args = Array.prototype.slice.call(arguments);
    5         var  options = new pairoptions(args.slice(3,args.length));
     5        var  options = new pairoptions(args.slice());
    66
    77        //Recover option values:
    8         min=options.getfieldvalue('min',.6*initialvalue);
    9         max=options.getfieldvalue('max',1.4*initialvalue);
    10         sliderheight=options.getfieldvalue('sliderheight',32);
    11         message=options.getfieldvalue('message','');
    12         startmessage=options.getfieldvalue('startmessage',message);
    13         middlemessage=options.getfieldvalue('middlemessage',message);
    14         endmessage=options.getfieldvalue('endmessage',message);
    15         color=options.getfieldvalue('color','#bbbbbb');
    16         precision=options.getfieldvalue('precision',3);
    17         step=options.getfieldvalue('step',1);
    18         slidersdiv=options.getfieldvalue('slidersdiv','slidersdiv');
     8        var value = options.getfieldvalue('value',0);
     9        var callback = options.getfieldvalue('callback',function(){});
     10        var name = options.getfieldvalue('name','');
     11        var min = options.getfieldvalue('min',0.6*value);
     12        var max = options.getfieldvalue('max',1.4*value);
     13        var width = options.getfieldvalue('width','auto');
     14        var height = options.getfieldvalue('height',32);
     15        var message = options.getfieldvalue('message','');
     16        var startmessage = options.getfieldvalue('startmessage',message);
     17        var middlemessage = options.getfieldvalue('middlemessage',message);
     18        var endmessage = options.getfieldvalue('endmessage',message);
     19        var color = options.getfieldvalue('color','#bbbbbb');
     20        var precision = options.getfieldvalue('precision',3);
     21        var step = options.getfieldvalue('step',1);
     22        var slidersdiv = options.getfieldvalue('slidersdiv','slidersdiv');
    1923
    20         $('<div id="slider'+slidername+'"></div>').appendTo('#'+slidersdiv);
    21         $('<div id="info'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
    22         var info=$('#info'+slidername);
    23         $('#slider'+slidername).slider({
     24        $('#'+slidersdiv).css({width:width});
     25        $('<div class="slider'+name+'"></div>').appendTo('#'+slidersdiv);
     26        $('<div class="info'+name+'">'+startmessage[0]+value.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
     27        var info=$('.info'+name);
     28        $('.slider'+name).slider({
    2429                range:'min',
    25                 value:initialvalue,
     30                value:value,
    2631                min:min,
    2732                max:max,
    2833                step:step,
    2934                slide:function(event,ui){
    30                         moveSlide(event,ui,info,middlemessage);
     35                        moveSlide(event,ui,info,middlemessage,precision);
    3136                },
    3237                stop:function(event,ui){
    33                         stopSlide(event,ui,info,functionvalue,middlemessage,endmessage);
     38                        stopSlide(event,ui,info,callback,middlemessage,endmessage,precision);
    3439                },
    3540        });
    3641        $('.ui-slider').css({
    37                 width:'90%',
    38                 height:sliderheight,
     42                width:'auto',
     43                height:height,
    3944                background:color,
    40                 margin:'8px 12px'
     45                margin:'8px'
    4146        });
    4247        $('.ui-slider-handle').css({
    4348                background:color,
    44                 height:sliderheight*1.3
     49                height:parseInt(height)+8
    4550        });
    4651        $('.ui-slider-range').css({
     
    5055}
    5156
    52 function moveSlide(event,ui,info,middlemessage){
     57function moveSlide(event,ui,info,middlemessage,precision){
    5358        var val=ui.value;
    5459        info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
    5560}
    5661
    57 function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage){
     62function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage,precision){
    5863        var val=ui.value;
    5964        info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
Note: See TracChangeset for help on using the changeset viewer.