Changeset 2887


Ignore:
Timestamp:
17/09/07 12:48:14 (12 years ago)
Author:
spascoe
Message:

Changes in Constraints tab are reflected in the visualisation.

I've changed the way the lower tabs work so that events are all dealt
with in Javascript. This was necessary because VisMapBox?
was loosing references to the form objects during AJAX tab reload.

--This line, and those below, will be ignored--

M ows_server/ows_server/public/js/VisMapBox.js
A ows_server/ows_server/public/js/tabber.js
A ows_server/ows_server/public/layout/tabber.css
M ows_server/ows_server/templates/visualise.kid

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

Legend:

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

    r2886 r2887  
    244244        var domain = {'TIME': this.granuleDescription[granuleId][featureId]['domain']['time'][0]}; 
    245245         
    246  
    247         if (console) { 
    248             console.log('VisControl: updateVisLayer('+this.granuleDescription[granuleId]['wmsURI']+', '+featureId+', '+domain['TIME']+')'); 
    249         } 
    250246        this.visApp.updateVisLayer(this.granuleDescription[granuleId]['wmsURI'], featureId, domain['TIME']); 
    251247    } 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/visualise.kid

    r2883 r2887  
    4343      } 
    4444 
     45      var tabberOptions = {onLoad: initVisMapBox}; 
     46 
    4547    </script> 
    4648         
     
    5456        status[c.visible]='current' 
    5557        ?> 
    56         <div class="InPageTabs"> 
     58        <div class="tabber"> 
    5759            <!-- This provides the tabs --> 
    58             <div class="InPageHdr"> 
    59                 <ul> 
    60                     <li py:for="hh in headers" class="${status[hh]}"> 
    61                         ${XML(h.link_to_remote(hh,dict(update=c.inpageid, 
    62                         url=h.url_for(controller="visualise", 
    63                         action="tabChange",dataset=c.viewedDataset,view=hh))))} 
    64                     </li> 
    65                 </ul> 
    66             </div> 
    67             <div class="InPageContent"> 
    68                 <!-- This is the Dataset tab content --> 
    69                 <div id="${headers[0]}" class="${status[headers[0]]}"> 
    70                     <?python url=h.url_for( 
    71                     controller="visualise",action="tabChange",dataset=c.viewedDataset,view=c.visible)?> 
    72                     <form action="$url" id="dsList" onchange="control.updateVisApp()"> 
    73                         <ul> 
    74                             <li py:for="uri in c.selections"> 
    75                                 <?python selStatus=False  
    76                             if uri==c.viewedDataset: selStatus=True 
    77                             ?> 
    78                                 ${XML(h.radio_button(name="dataset",value=uri,checked=selStatus))}$uri</li> 
    79                         </ul> 
    80                         ${XML(h.submit_to_remote("submit","update",url=url,update=c.inpageid))} 
    81                         (This button temporary) 
    82                     </form> 
    83                     <!--${XML(h.observe_form("dsList",url=url,update=c.inpageid))}--> 
    84                 </div> 
    85                 <!-- Now we have the variables tab content --> 
    86                 <div id="${headers[1]}" class="${status[headers[1]]}"> 
    87                     <?python 
    88                     url=h.url_for(controller="visualise",action="featureChange",view=c.visible) 
    89                     features=c.selections[c.viewedDataset].getFeatureList() 
    90                     nfeatures=len(features) 
    91                     ii=0 
    92                     localkeys={} 
    93                     print c.selected 
    94                     for u,f in c.selected: 
    95                         if u==c.viewedDataset: localkeys[f]=(u,f) 
    96                     ?> 
    97                     <h4> $c.viewedDataset</h4> 
    98                     <form action="$url" id="fList" onchange="control.updateVisApp()"> 
    99                         <ul> 
    100                             <li py:for="featureID in features"> 
    101                                 <?python  
    102                                 selStatus=False 
    103                                 if featureID in localkeys: 
    104                                     selStatus=True 
    105                                     feature=c.selected[localkeys[featureID]] 
    106                                 else: feature=c.selections[c.viewedDataset].getFeature(featureID) 
    107                                 name=feature.description.CONTENT 
    108                                 ftype=feature.featureType 
    109                                 checkname='Feature%s'%ii 
    110                                 ii+=1 
    111                                 ?> 
    112                                 ${XML(h.check_box(name=checkname,value=featureID,checked=selStatus))}$name 
    113                                 ($ftype)</li> 
    114                         </ul> 
    115                         ${XML(h.submit_to_remote("submit","update",url=url,update=c.inpageid))} 
    116                         (This button temporary) 
    117                     </form> 
    118                     <!--${XML(h.observe_form("fList",url=url,update=c.inpageid))}--> 
    119                 </div> 
    120                 <div id="${headers[2]}" class="${status[headers[2]]}"> 
    121                     <!-- Provides the constraints tab --> 
    122                     <ul> 
    123                         <li py:for="u,f in c.selected">$u <ul> 
    124                                 <li> $f : ${c.selected[(u,f)].featureType}<br /> 
    125                                     ${','.join(c.selected[(u,f)].getAxisLabels())}</li> 
    126                             </ul> 
    127                         </li> 
    128                         <li py:if="len(c.selected)==0">There are no features 
    129                             selected, hence no constraints!</li> 
    130                     </ul> 
    131                     <div py:if="c.wmsAvailable"> 
    132                         <?python 
    133                         try: 
    134                             #use the first one for now 
    135                             for u,f in c.selected: 
    136                                 i=c.selected[(u,f)] 
    137                                 break 
    138                             taxis=i.getDomain()[i.getTimeAxis()] 
    139                             tstep=taxis[0] 
    140                         except Exception,e: 
    141                             tstep='Error: [%s] '%str(e) 
    142                         ?> 
    143                         <table> 
    144                             <tr><td> 
    145                                 <form action="" name="visForm" id="visForm" ><table><tr> 
    146                                     <td>Northerly Latitude:</td> 
    147                                     <td colspan="2" align="center"> 
    148                                         <input size="7" value="${c.bbox[0]}" name="bboxN"/> 
    149                                     </td></tr> 
    150                                     <tr><td>Longitudinal Extent:</td> 
    151                                     <td align="center"><input size="8" value="${c.bbox[1]}" name="bboxW"/></td> 
    152                                     <td align="center"><input size="8" value="${c.bbox[2]}" name="bboxE"/></td></tr> 
    153                                     <tr><td> Southerly Latitude:</td> 
    154                                     <td colspan="2" align="center"> 
    155                                     <input size="7" value="${c.bbox[3]}" name="bboxS"/> 
    156                                     </td></tr> 
    157                                     <tr><td colspan="3">(Units: degrees, north and east positive)</td></tr> 
    158                                 </table></form> 
    159                             </td><td> 
    160                                 <p> Select Time </p> 
    161                                 <p> This version simply uses the first timestep:<br/> $tstep </p> 
    162                             </td><td> 
    163                                 <p> Select Layer </p> 
    164                                 <p> Layers are not yet handled </p> 
    165                             </td></tr> 
    166                         </table> 
    167                     </div> 
    168                 </div> 
    169             </div> 
    170             <!--inpagecontent --> 
    171         </div> 
    172         <!-- inpagetabs --> 
     60            <!-- This is the Dataset tab content --> 
     61            <div id="${headers[0]}" class="tabbertab"> 
     62              <h3>${headers[0]}</h3> 
     63              <form id="dsList"> 
     64              <ul> 
     65                <li py:for="uri in c.selections"> 
     66                  <?python selStatus=False  
     67                    if uri==c.viewedDataset: selStatus=True 
     68                  ?> 
     69                ${XML(h.radio_button(name="dataset",value=uri,checked=selStatus, onchange="control.updateVisApp()"))}$uri</li> 
     70              </ul> 
     71              </form> 
     72            </div> 
     73            <!-- Now we have the variables tab content --> 
     74            <div id="${headers[1]}" class="tabbertab"> 
     75              <h3>${headers[1]}</h3> 
     76              <?python 
     77                features=c.selections[c.viewedDataset].getFeatureList() 
     78                ii=0 
     79                localkeys={} 
     80                print c.selected 
     81                for u,f in c.selected: 
     82                    if u==c.viewedDataset: localkeys[f]=(u,f) 
     83              ?> 
     84              <h4> $c.viewedDataset</h4> 
     85              <form id="fList" onchange="control.updateVisApp()"> 
     86                <ul> 
     87                  <li py:for="featureID in features"> 
     88                    <?python  
     89                      selStatus=False 
     90                      if featureID in localkeys: 
     91                          selStatus=True 
     92                          feature=c.selected[localkeys[featureID]] 
     93                      else: feature=c.selections[c.viewedDataset].getFeature(featureID) 
     94                      name=feature.description.CONTENT 
     95                      ftype=feature.featureType 
     96                      checkname='Feature%s'%ii 
     97                      ii+=1 
     98                    ?> 
     99                    ${XML(h.check_box(name=checkname,value=featureID,checked=selStatus, onchange="control.updateVisApp()"))}$name 
     100                  ($ftype)</li> 
     101                </ul> 
     102              </form> 
     103            </div> 
     104            <div id="${headers[2]}" class="tabbertab"> 
     105              <!-- Provides the constraints tab --> 
     106              <h3>${headers[2]}</h3> 
     107              <ul> 
     108                <li py:for="u,f in c.selected">$u <ul> 
     109                <li> $f : ${c.selected[(u,f)].featureType}<br /> 
     110                ${','.join(c.selected[(u,f)].getAxisLabels())}</li> 
     111              </ul> 
     112                </li> 
     113                <li py:if="len(c.selected)==0">There are no features 
     114                selected, hence no constraints!</li> 
     115              </ul> 
     116              <div py:if="c.wmsAvailable"> 
     117                <?python 
     118                  try: 
     119                      #use the first one for now 
     120                      for u,f in c.selected: 
     121                          i=c.selected[(u,f)] 
     122                          break 
     123                      taxis=i.getDomain()[i.getTimeAxis()] 
     124                      tstep=taxis[0] 
     125                  except Exception,e: 
     126                      tstep='Error: [%s] '%str(e) 
     127                ?> 
     128                <table> 
     129                  <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> 
     149                  </tr> 
     150                </table> 
     151              </div> 
     152            </div> 
     153        </div> 
     154         
    173155    </div> 
    174156    <!-- usertalk --> 
     
    178160      <replace py:replace="pagehead()" /> 
    179161 
     162      <link type="text/css" rel="stylesheet" href="/layout/tabber.css"/> 
    180163      <script src="/js/OpenLayers.js"/> 
    181164      <script src="/js/openlayers-x.js"/> 
    182165      <script src="/js/VisMapBox.js"/> 
     166      <!--! granuleMetadata sets tabberOptions so include it first --> 
    183167      <replace py:replace="granuleMetadata(c.selections)"/> 
     168      <script src="/js/tabber.js"/> 
    184169 
    185170    </head> 
    186171 
    187     <body py:if="c.fullpage" onload="initVisMapBox()"> 
     172    <body py:if="c.fullpage"> 
    188173        <div id="entirepage"> 
    189174            <div py:replace="header()" /> 
Note: See TracChangeset for help on using the changeset viewer.