diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2 |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html')
-rw-r--r-- | includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html b/includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html new file mode 100644 index 0000000..46554e3 --- /dev/null +++ b/includes/js/dojox/grid/tests/test_dojo_data_model_multiStores.html @@ -0,0 +1,291 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <title>dojox.Grid with Dojo.Data via binding. Multiple Store implementations.</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> + <style type="text/css"> + @import "../../../dijit/themes/tundra/tundra.css"; + @import "../../../dojo/resources/dojo.css"; + @import "../../../dijit/tests/css/dijitTests.css"; + @import "../_grid/tundraGrid.css"; + + #grid, #grid2, #grid3, #grid4, #grid5, #grid6{ + width: 65em; + height: 25em; + padding: 1px; + } + </style> + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true, debugAtAllCosts: false, parseOnLoad: true"></script> + <script type="text/javascript"> + dojo.require("dojox.grid.Grid"); + dojo.require("dojo.data.ItemFileReadStore"); + dojo.require("dojox.data.CsvStore"); + dojo.require("dojox.data.XmlStore"); + dojo.require("dojox.data.FlickrStore"); + dojo.require("dojox.data.OpmlStore"); + dojo.require("dojox.data.HtmlStore"); + dojo.require("dojo.parser"); + </script> + + <script type="text/javascript"> + function getRow(inRowIndex){ + return ' ' + inRowIndex; + } + + var formatHref = function(attribute, rowIndex) { + model = dataModel4; + if(!model) + return "?"; + var value = model.getRow(rowIndex); + if(value && value[attribute]) + return "<a href=\"" + value[attribute] + "\" target=\"_blank\">Image Link</a>"; + return ""; + } + + var layoutMovies = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { field: "Title", width: 'auto' }, + { field: "Year", width: 5 }, + { field: "Producer", width: 20 } + ]]} + ]; + + var layoutCountries = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { field: 0, width: 'auto' }, + { width: 8 } + ]]} + ]; + + var layoutBooks = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { field: "title", width: 'auto' }, + { field: "isbn", width: '8' } + ]]} + ]; + + //Lay out the Flickr data so one column is a URL. This makes use of the + //get function of a cell. + var layoutFlickrData = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { name: "Title", field: "title", width: 'auto' }, + { name: "Image URL", field: "imageUrl", width: '15', get: dojo.partial(formatHref, "imageUrl")} + ]]} + ]; + + var layoutOpmlData = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { name: 'Name', field: 'text', width: 'auto'}, + { name: 'Type', field: 'type', width: '8' } + ]]} + ]; + + var layoutHtmlTable = [ + // view 0 + { type: 'dojox.GridRowView', width: '20px' }, + // view 1 + { cells: [[{ name: "Row", get: getRow, width: 5}]], noscroll: true}, + // view 2 + { cells: [[ + { name: 'Column 1', field: 'Column 1', width: 'auto'}, + { name: 'Column 2', field: 'Column 2', width: 'auto'}, + { name: 'Column 3', field: 'Column 3', width: 'auto'}, + { name: 'Column 4', field: 'Column 4', width: 'auto'} + ]]} + ]; + </script> +</head> +<body class="tundra"> + <h1>dojox.Grid using Dojo.Data stores via simple binding with multiple store implementations.</h1> + <p> + This page demonstrates the Grid can display data accessed by dojo.data implementing Datastores. + Each of the datastores used stores data in a different format, and as this test and demonstration + page shows, the logic for rendering the data is virtually identical. You define your source store, + you define the model for accessing the data, which is ij this case the dojox.grid.data.DojoData model + and then you define the layout, which maps the data attribute names to columns in the grid. You can + even perform cusomization of what is displayed, as demonstrated in the dojox.data.FlickrStore layout. + The image url is displayed as a clickable link that opens a new page. + </p> + <p> + The choice of stores used were ones that did not require back end services to function for sake of + simplicity. There is no reason that dojox.data.QueryReadStore could not be used with grid as well, + it just requires a back end service to send it the query results. + </p> + <p><b>Stores used:</b></p> + <ul> + <li>dojo.data.ItemFileReadStore</li> + <li>dojox.data.CvsStore</li> + <li>dojox.data.XmlStore</li> + <li>dojox.data.FlickrStore</li> + <li>dojox.data.OpmlStore</li> + <li>dojox.data.HtmlTableStore</li> + </ul> + + <h2>dojo.data.ItemFileReadStore:</h2> + <i>Displays a list of countries through ItemFileReadStore format.</i> + <span dojoType="dojo.data.ItemFileReadStore" + jsId="jsonStore" url="../../../dijit/tests/_data/countries.json"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel" + rowsPerPage="20" + store="jsonStore" + query="{ name : '*' }"> + </span> + <div id="grid" dojoType="dojox.Grid" elasticView="2" + model="dataModel" structure="layoutCountries"> + </div> + + + <h2>dojox.data.CsvStore:</h2> + <i>Displays a list of movies that were stored in CSV format.</i> + <span dojoType="dojox.data.CsvStore" + jsId="csvStore" url="support/movies.csv"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel2" + store="csvStore" + rowsPerPage="5" + query="{ Title: '*' }" + clientSort="true"> + </span> + <div id="grid2" dojoType="dojox.Grid" elasticView="2" + model="dataModel2" structure="layoutMovies"> + + </div> + + <h2>dojox.data.XmlStore:</h2> + <i>Displays a list of books that were stored in XML format.</i> + <span dojoType="dojox.data.XmlStore" + jsId="xmlStore" url="support/books.xml"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel3" + rowsPerPage="5" + store="xmlStore" + query="{ title : '*' }"> + </span> + <div id="grid3" dojoType="dojox.Grid" elasticView="2" + model="dataModel3" structure="layoutBooks"> + </div> + + + <h2>dojox.data.FlickrStore:</h2> + <i>Displays Flickr imformation on 3DNY (Dojo Developer Days, New York) from the flickr public photo feed, accessed via the FlickrStore dojo.data implementation.</i> + <span dojoType="dojox.data.FlickrStore" + jsId="flickrStore"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel4" + rowsPerPage="5" + store="flickrStore" + query="{ tags : '3dny' }"> + </span> + <div id="grid4" dojoType="dojox.Grid" elasticView="2" + model="dataModel4" structure="layoutFlickrData"> + </div> + + + <h2>dojox.data.OpmlStore:</h2> + <i>Scans an Opml based document for all items of type 'country'</i> + <span dojoType="dojox.data.OpmlStore" + jsId="opmlStore" url="support/geography.xml"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel5" + rowsPerPage="5" + store="opmlStore" + query="{ type : 'country' }" + queryOptions="{deep: true}" + sortFields="[ { attribute : 'text' } ]"> + </span> + <div id="grid5" dojoType="dojox.Grid" elasticView="2" + model="dataModel5" structure="layoutOpmlData"> + </div> + + + <h2>dojox.data.HtmlStore:</h2> + <i>Loads the grid from an HTML Table.</i> + <span dojoType="dojox.data.HtmlStore" + jsId="htmlStore" dataId="tableExample"> + </span> + <span dojoType="dojox.grid.data.DojoData" + jsId="dataModel6" + rowsPerPage="5" + store="htmlStore" + query="{}"> + </span> + <div id="grid6" dojoType="dojox.Grid" elasticView="2" + model="dataModel6" structure="layoutHtmlTable"> + </div> + + <!-- + Inline data table to be displayed bu the grid! + This is accessed via the dojox.data.HtmlTableStore + --> + <table id="tableExample" style="display: none;"> + <thead> + <tr> + <th>Column 1</th> + <th>Column 2</th> + <th>Column 3</th> + <th>Column 4</th> + </tr> + </thead> + <tbody> + <tr> + <td>This</td> + <td>is</td> + <td></td> + <td>empty in column 3</td> + </tr> + <tr> + <td>This</td> + <td>is</td> + <td>a</td> + <td>value</td> + </tr> + <tr> + <td>Who?</td> + <td>What?</td> + <td>When?</td> + <td>Where?</td> + </tr> + <tr> + <td>She</td> + <td>sells</td> + <td>sea</td> + <td>shells</td> + </tr> + </tbody> + </table> +</body> +</html> + + |