Changeset 2888


Ignore:
Timestamp:
17/09/07 16:08:58 (12 years ago)
Author:
spascoe
Message:

Selecting time domain is mainly working.

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/VisMapBox.js

    r2887 r2888  
    224224 
    225225*/ 
    226 VisControl = function(visApp, granuleDescription, granuleFormId, variableFormId, constraintFormId) { 
     226VisControl = function(visApp, granuleDescription, granuleFormId, variableFormId, 
     227                     domainFormId) { 
    227228    this.visApp = visApp; 
    228229    this.granuleDescription = granuleDescription; 
    229230    this.granuleFormId = granuleFormId; 
    230231    this.variableFormId = variableFormId; 
    231     this.constraintFormId = constraintFormId; 
     232    this.domainFormId = domainFormId; 
    232233}; 
    233234VisControl.prototype = { 
    234     updateVisApp: function() { 
    235         var granuleId = $(this.granuleFormId).dataset.value; 
    236         var featureId = null; 
     235    getSelectedFeatureId: function() { 
    237236        var variableForm = $(this.variableFormId); 
    238237        for (var i=0; i<variableForm.length; i++) { 
    239238            if (variableForm[i].checked) { 
    240                 featureId = variableForm[i].value; 
    241             } 
    242         } 
    243         //!TODO add time dimension 
    244         var domain = {'TIME': this.granuleDescription[granuleId][featureId]['domain']['time'][0]}; 
    245          
    246         this.visApp.updateVisLayer(this.granuleDescription[granuleId]['wmsURI'], featureId, domain['TIME']); 
    247     } 
     239                return variableForm[i].value; 
     240            } 
     241        } 
     242    }, 
     243    updateVisApp: function() { 
     244        var granuleId = $(this.granuleFormId).dataset.value; 
     245        var featureId = this.getSelectedFeatureId(); 
     246        var domain = {'TIME': $(this.domainFormId)['time'].value}; 
     247        this.visApp.updateVisLayer(this.granuleDescription[granuleId]['wmsURI'], featureId, 
     248                                   domain['TIME']); 
     249    }, 
     250    /** Change the domain fields in this.constraintsFormId to reflect the current variable selection */ 
     251    populateDomainOptions: function() { 
     252        // First clear all domain options: !TODO 
     253 
     254        // Iterate over domain fields 
     255        var granuleId = $(this.granuleFormId).dataset.value; 
     256        var featureId = this.getSelectedFeatureId(); 
     257        var domainForm = $(this.domainFormId); 
     258        for (var i=0; i<domainForm.length; i++) { 
     259            var k = domainForm[i].name; 
     260            var v = this.granuleDescription[granuleId][featureId]['domain'][k]; 
     261            for (var j=0; j<v.length; j++) { 
     262                var e = document.createElement('option'); 
     263                e.name = k; e.value = v[j]; e.appendChild(document.createTextNode(v[j])); 
     264                domainForm[i].appendChild(e); 
     265            } 
     266        }  
     267    }        
     268     
    248269}; 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/visualise.kid

    r2887 r2888  
     1<?python 
     2import sets 
     3?> 
    14<html py:extends="'ndgPage.kid'" xmlns="http://www.w3.org/1999/xhtml" 
    25    xmlns:py="http://purl.org/kid/ns#"> 
     
    3740 
    3841      function initVisMapBox() { 
    39         app = new VisApp('visMap', 'visForm', 600, 10); 
    40         control = new VisControl(app, granules, 'dsList', 'fList', 'visForm'); 
     42        app = new VisApp('visMap', 'navForm', 600, 10); 
     43        control = new VisControl(app, granules, 'dsList', 'fList', 'domainForm'); 
    4144        // Update the vis 
     45        control.populateDomainOptions(); 
    4246        control.updateVisApp(); 
    4347      } 
     
    128132                <table> 
    129133                  <tr><td> 
    130                     <form action="" name="visForm" id="visForm" onchange="control.updateVisApp()"> 
    131                     <table><tr> 
    132                       <td>Northerly Latitude:</td> 
    133                       <td colspan="2" align="center"> 
    134                         <input size="7" value="${c.bbox[0]}" name="bboxN" onchange="control.updateVisApp()"/> 
    135                       </td></tr> 
    136                       <tr><td>Longitudinal Extent:</td> 
    137                       <td align="center"><input size="8" value="${c.bbox[1]}" name="bboxW" onchange="control.updateVisApp()"/></td> 
    138                       <td align="center"><input size="8" value="${c.bbox[2]}" name="bboxE" onchange="control.updateVisApp()"/></td></tr> 
    139                       <tr><td> Southerly Latitude:</td> 
    140                       <td colspan="2" align="center"> 
    141                         <input size="7" value="${c.bbox[3]}" name="bboxS" onchange="control.updateVisApp()"/> 
    142                       </td></tr> 
    143                       <tr><td colspan="3">(Units: degrees, north and east positive)</td></tr> 
    144                     </table></form> 
    145                     </td><td> 
    146                     <p> Select Time </p> 
    147                     <p> This version simply uses the first timestep:<br/> $tstep </p> 
    148                   </td> 
     134                    <form action="" name="navForm" id="navForm"  
     135                          onchange="control.updateVisApp()"> 
     136                      <table><tr> 
     137                        <td>Northerly Latitude:</td> 
     138                        <td colspan="2" align="center"> 
     139                          <input size="7" value="${c.bbox[0]}" name="bboxN" 
     140                                 onchange="control.updateVisApp()"/> 
     141                        </td></tr> 
     142                        <tr><td>Longitudinal Extent:</td> 
     143                        <td align="center"> 
     144                          <input size="8" value="${c.bbox[1]}" name="bboxW" 
     145                                 onchange="control.updateVisApp()"/> 
     146                        </td> 
     147                        <td align="center"> 
     148                          <input size="8" value="${c.bbox[2]}" name="bboxE"  
     149                                 onchange="control.updateVisApp()"/> 
     150                        </td></tr> 
     151                        <tr><td> Southerly Latitude:</td> 
     152                        <td colspan="2" align="center"> 
     153                          <input size="7" value="${c.bbox[3]}" name="bboxS" onchange="control.updateVisApp()"/> 
     154                        </td></tr> 
     155                        <tr><td colspan="3">(Units: degrees, north and east positive)</td></tr> 
     156                      </table> 
     157                    </form> 
     158                    </td> 
     159                    <td> 
     160                      <!--! The domain dialogue is populated by control.updateVisApp() --> 
     161                      <?python 
     162                        domainKeys = sets.Set() 
     163                        granule = c.selections[c.viewedDataset] 
     164                        for featureId in granule.getFeatureList(): 
     165                            feature = granule.getFeature(featureId) 
     166                            domainKeys.union_update(feature.getDomain().keys()) 
     167                            domainKeys.difference_update(['latitude', 'longitude']) 
     168                      ?> 
     169                      <form action="" name="domainForm" id="domainForm" 
     170                            onchange="control.updateVisApp()"> 
     171                        <ul> 
     172                          <li py:for="k in domainKeys"> 
     173                            ${k}: <select name="${k}"></select> 
     174                          </li> 
     175                        </ul> 
     176                      </form> 
     177                    </td> 
    149178                  </tr> 
    150179                </table> 
Note: See TracChangeset for help on using the changeset viewer.