]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/grid/tests/test_edit_dijit.html
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / grid / tests / test_edit_dijit.html
diff --git a/static/dojo-release-1.1.1/dojox/grid/tests/test_edit_dijit.html b/static/dojo-release-1.1.1/dojox/grid/tests/test_edit_dijit.html
new file mode 100644 (file)
index 0000000..484c7e5
--- /dev/null
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+       <title>Test dojox.Grid Editing</title>
+       <style type="text/css">
+               @import "../_grid/tundraGrid.css";
+               @import "../../../dojo/resources/dojo.css";
+               @import "../../../dijit/themes/tundra/tundra.css";
+               @import "../../../dijit/themes/tundra/tundra_rtl.css";
+               @import "../../../dijit/tests/css/dijitTests.css";
+               #controls button {
+                       margin-left: 10px;
+               }
+               #grid {
+                       width: 850px;
+                       height: 350px;
+                       border: 1px solid silver;
+               }
+               </style>
+       <script type="text/javascript" src="../../../dojo/dojo.js" 
+               djConfig="isDebug: true, parseOnLoad: true"></script>
+       <script type="text/javascript" src="../../../dijit/tests/_testCommon.js"></script>
+       <script type="text/javascript">
+               dojo.require("dojox.grid.Grid");
+               dojo.require("dojo.parser");
+
+               // ==========================================================================
+               // Create a data model
+               // ==========================================================================
+               
+               s = (new Date()).getTime();
+               
+               data = [ 
+                       [ "normal", false, "new", 'But are not followed by two hexadecimal', 29.91, 10, false, s],
+                       [ "important", false, "new", 'Because a % sign always indicates', 9.33, -5, false, s ],
+                       [ "important", false, "read", 'Signs can be selectively', 19.34, 0, true, s ],
+                       [ "note", false, "read", 'However the reserved characters', 15.63, 0, true, s ],
+                       [ "normal", false, "replied", 'It is therefore necessary', 24.22, 5.50, true, s ],
+                       [ "important", false, "replied", 'To problems of corruption by', 9.12, -3, true, s ],
+                       [ "note", false, "replied", 'Which would simply be awkward in', 12.15, -4, false, s ]
+               ];
+               var rows = 100;
+               for(var i=0, l=data.length; i<rows; i++){
+                       data.push(data[i%l].slice(0));
+               }
+               model = new dojox.grid.data.Table(null, data);
+               // ==========================================================================
+               // Tie some UI to the data model
+               // ==========================================================================
+               model.observer(this);
+               modelChange = function(){
+                       dojo.byId("rowCount").innerHTML = 'Row count: ' + model.count; 
+               }
+               /*
+               modelInsertion = modelDatumChange = function(a1, a2, a3){
+                       console.debug(a1, a2, a3);
+               }
+               */
+               // ==========================================================================
+               // Custom formatters
+               // ==========================================================================
+               formatCurrency = function(inDatum){
+                       return isNaN(inDatum) ? '...' : dojo.currency.format(inDatum, this.constraint);
+               }
+               formatDate = function(inDatum){
+                       return dojo.date.locale.format(new Date(inDatum), this.constraint);
+               }
+               // ==========================================================================
+               // Grid structure
+               // ==========================================================================
+               statusCell = {
+                       field: 2, name: 'Status', 
+                       styles: 'text-align: center;', 
+                       editor: dojox.grid.editors.Select, 
+                       options: [ "new", "read", "replied" ]
+               };
+
+               gridLayout = [{
+                       type: 'dojox.GridRowView', width: '20px'
+               },{
+                       defaultCell: { width: 8, editor: dojox.grid.editors.Input, styles: 'text-align: right;'  },
+                       rows: [[
+                               { name: 'Id', 
+                                       get: function(inRowIndex) { return inRowIndex+1;}, 
+                                       editor: dojox.grid.editors.Dijit,
+                                       editorClass: "dijit.form.NumberSpinner" },
+                               { name: 'Date', width: 10, field: 7, 
+                                       editor: dojox.grid.editors.DateTextBox, 
+                                       formatter: formatDate, 
+                                       constraint: {formatLength: 'long', selector: "date"}},
+                               { name: 'Priority', styles: 'text-align: center;', field: 0, 
+                                       editor: dojox.grid.editors.ComboBox, 
+                                       options: ["normal", "note", "important"], width: 10},
+                               { name: 'Mark', width: 3, styles: 'text-align: center;', 
+                                       editor: dojox.grid.editors.CheckBox},
+                               statusCell,
+                               { name: 'Message', styles: '', width: '100%', 
+                                       editor: dojox.grid.editors.Editor, editorToolbar: true },
+                               { name: 'Amount', formatter: formatCurrency, constraint: {currency: 'EUR'}, 
+                                       editor: dojox.grid.editors.Dijit, editorClass: "dijit.form.CurrencyTextBox" },
+                               { name: 'Amount', field: 4, formatter: formatCurrency, constraint: {currency: 'EUR'}, 
+                                       editor: dojox.grid.editors.Dijit, editorClass: "dijit.form.HorizontalSlider", width: 10}
+                       ]]
+               }];
+               // ==========================================================================
+               // UI Action
+               // ==========================================================================
+               addRow = function(){
+                       grid.addRow([
+                               "normal", false, "new", 
+                               'Now is the time for all good men to come to the aid of their party.', 
+                               99.99, 9.99, false 
+                       ]);
+               }
+       </script>
+</head>
+<body>
+       <h1>dojox.Grid Basic Editing test</h1>
+       <br />
+       <div id="controls">
+               <button onclick="grid.refresh()">Refresh</button>
+               <button onclick="grid.edit.focusEditor()">Focus Editor</button>
+               <button onclick="grid.focus.next()">Next Focus</button>
+               <button onclick="addRow()">Add Row</button>
+               <button onclick="grid.removeSelectedRows()">Remove</button>
+               <button onclick="grid.edit.apply()">Apply</button>
+               <button onclick="grid.edit.cancel()">Cancel</button>
+               <button onclick="grid.singleClickEdit = !grid.singleClickEdit">Toggle singleClickEdit</button>
+       </div>
+       <br />
+       <div id="grid" jsId="grid" dojoType="dojox.Grid" model="model" structure="gridLayout"></div>
+       <br />
+       <div id="rowCount"></div>
+</body>
+</html>