Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

HTML
<table id="magics">
	
</table>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
	var show = function(val, def)
{   
    console.log("show" + val) 
    console.log(def.name) 
    if ( def[val] == undefined)  return;
    last = "#"+def.name;
    $.each(def[val], function(i, param) {
        console.log("add" + param.name) 
        id = "#"+param.name
        if ( $(id).length ) {
            $(id).show();
        }
        else {
            var $param = $('<tr>').attr('id', param.name);
             $param.insertAfter(last);
             last = id;
                $param.append($('<td>').text(param.name),
                $('<td>').text(param.documentation));
       
        $param.append(factory[param.type](param));
        $param.append($('<td>').text(param.default));
        }
        
   });
  
}
var hide = function(val, def)
{   
   
   if ( def[val] == undefined)  return; 
   $.each(def[val], function(i, param) {
    
    var id = "#"+param.name;
    $(id).hide();
   });
}
var click = function(event)
{
   var value = event.handleObj.data.value
   var def = event.handleObj.data.def
   
   
   $.each(def["values"], function(i, val) {
     if ( val == value ) 
        show(val, def);
    else 
        hide(val, def);
   });
   
 
   
  
}
var toggle = function(def) 
{
    $option = $('<td>').attr({'id': def.name});
    
    $.each(def.values, function(i, value) { 
        
        var id = def.name + "_" + value;
        
        var $toggle = $('<input>').attr({'id': id,
               'type': "radio", 
                'name': def.name,
                'checked' : (value == def.default),
                'value': def.value}).click({ value: value, def : def}, click); 
        var $label = $('<label>').attr({'for': value,
               }).text(value);
        
        $option.append($toggle);
        $option.append($label);    
                       
    });
   
    return $option;
}
var colour = function(def) 
{
    
    var id = def.name;
    $option = $('<td>').attr({'id': def.name}).text("colour");   
    return $option;
}
var style = function(def) 
{
    
    var id = def.name;
    $option = $('<td>').attr({'id': def.name}).text("solid/dash");   
    return $option;
}
var any = function(def) 
{
    var id = def.name;
    $option = $('<td>').attr({'id': def.name}).text("any");   
    return $option;
}
 var factory = {
        "toggle" : toggle,
        "Colour" : colour,
        "LineStyle" : style,
        "bool" : toggle,
        "float" : any,
        "int" : any,
        "string" : any,
        "stringarray" : any
    };
var $action;    

var json = 

$.getJSON("file:///tmp/cgs/perforce/dev/magics/tools/coast.json",
  function(data) {
   
    
     $.each(data.magics, function(i, action) {
        
        $action = $('<table>').attr('id', "contour_action");
        $("#magics").append($action);
        var $param = $('<tr>').attr('id', "contour_title");
        $param.append($('<th>').attr({'width':150}).text(action.action));
        $param.append($('<th>').attr({'width':350}).text(""));
        $param.append($('<th>').attr({'width':200}).text(""));
        $param.append($('<th>').attr({'width':100}).text("default"));
        
        $action.append($param);
        $param = $('<tr>').attr('id', "contour_title");
        $param.append($('<td>').attr({'colspan':4}).text(action.documentation));
        $action.append($param);
       
         $.each(action.parameters, function(i, param) {
            
            console.info(param.name)
            var $param = $('<tr>').attr('id', param.name);
            $action.append($param);
            $param.append($('<td>').text(param.name),
                $('<td>').text(param.documentation));
            
            var creator = factory[param.type]
          
            $param.append(creator(param));
           
            $param.append($('<td>').text(param.default));
            
             show(param.default, param);            
       
         });
     return false; });
  return false;});


</script>
 

...