summaryrefslogtreecommitdiffstats
path: root/examples/example-spreadsheet.html
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-spreadsheet.html')
-rw-r--r--examples/example-spreadsheet.html330
1 files changed, 165 insertions, 165 deletions
diff --git a/examples/example-spreadsheet.html b/examples/example-spreadsheet.html
index 01f51a0..d1054b2 100644
--- a/examples/example-spreadsheet.html
+++ b/examples/example-spreadsheet.html
@@ -1,169 +1,169 @@
<!DOCTYPE HTML>
<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <title>SlickGrid example 3: Editing</title>
- <link rel="stylesheet" href="../slick.grid.css" type="text/css" media="screen" charset="utf-8" />
- <link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css" media="screen" charset="utf-8" />
- <link rel="stylesheet" href="examples.css" type="text/css" media="screen" charset="utf-8" />
- <style>
- .slick-cell.copied {
- background: blue;
- background: rgba(0,0,255,0.2);
- -webkit-transition: 0.5s background;
- }
- </style>
- </head>
- <body>
- <div style="position:relative">
- <div style="width:600px;">
- <div id="myGrid" style="width:100%;height:500px;"></div>
- </div>
-
- <div class="options-panel">
- <h2>Demonstrates:</h2>
- <ul>
- <li>Select a range of cells with a mouse</li>
- <li>Use Ctrl-C and Ctrl-V keyboard shortcuts to cut and paste cells</li>
- <li>Use Esc to cancel a copy and paste operation</li>
- <li>Edit the cell and select a cell range to paste the range</li>
- </ul>
- </div>
- </div>
-
- <script src="../lib/firebugx.js"></script>
-
- <script src="../lib/jquery-1.7.min.js"></script>
- <script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
- <script src="../lib/jquery.event.drag-2.0.min.js"></script>
-
- <script src="../slick.core.js"></script>
- <script src="../plugins/slick.autotooltips.js"></script>
- <script src="../plugins/slick.cellrangedecorator.js"></script>
- <script src="../plugins/slick.cellrangeselector.js"></script>
- <script src="../plugins/slick.cellcopymanager.js"></script>
- <script src="../plugins/slick.cellselectionmodel.js"></script>
- <script src="../slick.editors.js"></script>
- <script src="../slick.grid.js"></script>
-
- <script>
- var grid;
- var data = [];
- var options = {
- editable: true,
- enableAddRow: true,
- enableCellNavigation: true,
- asyncEditorLoading: false,
- autoEdit: false
- };
-
- var columns = [{
- id: "selector",
- name: "",
- field: "num",
- width: 30
- }];
-
- for (var i = 0; i < 26; i++) {
- columns.push({
- id: i,
- name: String.fromCharCode("A".charCodeAt(0) + i),
- field: i,
- width: 60,
- editor: FormulaEditor
- });
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>SlickGrid example 3: Editing</title>
+ <link rel="stylesheet" href="../slick.grid.css" type="text/css" />
+ <link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css" />
+ <link rel="stylesheet" href="examples.css" type="text/css" />
+ <style>
+ .slick-cell.copied {
+ background: blue;
+ background: rgba(0, 0, 255, 0.2);
+ -webkit-transition: 0.5s background;
+ }
+ </style>
+</head>
+<body>
+<div style="position:relative">
+ <div style="width:600px;">
+ <div id="myGrid" style="width:100%;height:500px;"></div>
+ </div>
+
+ <div class="options-panel">
+ <h2>Demonstrates:</h2>
+ <ul>
+ <li>Select a range of cells with a mouse</li>
+ <li>Use Ctrl-C and Ctrl-V keyboard shortcuts to cut and paste cells</li>
+ <li>Use Esc to cancel a copy and paste operation</li>
+ <li>Edit the cell and select a cell range to paste the range</li>
+ </ul>
+ </div>
+</div>
+
+<script src="../lib/firebugx.js"></script>
+
+<script src="../lib/jquery-1.7.min.js"></script>
+<script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
+<script src="../lib/jquery.event.drag-2.0.min.js"></script>
+
+<script src="../slick.core.js"></script>
+<script src="../plugins/slick.autotooltips.js"></script>
+<script src="../plugins/slick.cellrangedecorator.js"></script>
+<script src="../plugins/slick.cellrangeselector.js"></script>
+<script src="../plugins/slick.cellcopymanager.js"></script>
+<script src="../plugins/slick.cellselectionmodel.js"></script>
+<script src="../slick.editors.js"></script>
+<script src="../slick.grid.js"></script>
+
+<script>
+ var grid;
+ var data = [];
+ var options = {
+ editable:true,
+ enableAddRow:true,
+ enableCellNavigation:true,
+ asyncEditorLoading:false,
+ autoEdit:false
+ };
+
+ var columns = [
+ {
+ id:"selector",
+ name:"",
+ field:"num",
+ width:30
+ }
+ ];
+
+ for (var i = 0; i < 26; i++) {
+ columns.push({
+ id:i,
+ name:String.fromCharCode("A".charCodeAt(0) + i),
+ field:i,
+ width:60,
+ editor:FormulaEditor
+ });
+ }
+
+ /***
+ * A proof-of-concept cell editor with Excel-like range selection and insertion.
+ */
+ function FormulaEditor(args) {
+ var _self = this;
+ var _editor = new TextCellEditor(args);
+ var _selector;
+
+ $.extend(this, _editor);
+
+ function init() {
+ // register a plugin to select a range and append it to the textbox
+ // since events are fired in reverse order (most recently added are executed first),
+ // this will override other plugins like moverows or selection model and will
+ // not require the grid to not be in the edit mode
+ _selector = new Slick.CellRangeSelector();
+ _selector.onCellRangeSelected.subscribe(_self.handleCellRangeSelected);
+ args.grid.registerPlugin(_selector);
+ }
+
+ this.destroy = function () {
+ _selector.onCellRangeSelected.unsubscribe(_self.handleCellRangeSelected);
+ grid.unregisterPlugin(_selector);
+ _editor.destroy();
+ };
+
+ this.handleCellRangeSelected = function (e, args) {
+ _editor.setValue(
+ _editor.getValue() +
+ grid.getColumns()[args.range.fromCell].name +
+ args.range.fromRow +
+ ":" +
+ grid.getColumns()[args.range.toCell].name +
+ args.range.toRow
+ );
+ };
+
+
+ init();
+ }
+
+
+ $(function () {
+ for (var i = 0; i < 100; i++) {
+ var d = (data[i] = {});
+ d["num"] = i;
+ }
+
+ grid = new Slick.Grid("#myGrid", data, columns, options);
+
+ grid.setSelectionModel(new Slick.CellSelectionModel());
+ grid.registerPlugin(new Slick.AutoTooltips());
+
+ // set keyboard focus on the grid
+ grid.getCanvasNode().focus();
+
+ var copyManager = new Slick.CellCopyManager();
+ grid.registerPlugin(copyManager);
+
+ copyManager.onPasteCells.subscribe(function (e, args) {
+ if (args.from.length !== 1 || args.to.length !== 1) {
+ throw "This implementation only supports single range copy and paste operations";
+ }
+
+ var from = args.from[0];
+ var to = args.to[0];
+ var val;
+ for (var i = 0; i <= from.toRow - from.fromRow; i++) {
+ for (var j = 0; j <= from.toCell - from.fromCell; j++) {
+ if (i <= to.toRow - to.fromRow && j <= to.toCell - to.fromCell) {
+ val = data[from.fromRow + i][columns[from.fromCell + j].field];
+ data[to.fromRow + i][columns[to.fromCell + j].field] = val;
+ grid.invalidateRow(to.fromRow + i);
+ }
}
-
- /***
- * A proof-of-concept cell editor with Excel-like range selection and insertion.
- */
- function FormulaEditor(args) {
- var _self = this;
- var _editor = new TextCellEditor(args);
- var _selector;
-
- $.extend(this, _editor);
-
- function init() {
- // register a plugin to select a range and append it to the textbox
- // since events are fired in reverse order (most recently added are executed first),
- // this will override other plugins like moverows or selection model and will
- // not require the grid to not be in the edit mode
- _selector = new Slick.CellRangeSelector();
- _selector.onCellRangeSelected.subscribe(_self.handleCellRangeSelected);
- args.grid.registerPlugin(_selector);
- }
-
- this.destroy = function() {
- _selector.onCellRangeSelected.unsubscribe(_self.handleCellRangeSelected);
- grid.unregisterPlugin(_selector);
- _editor.destroy();
- };
-
- this.handleCellRangeSelected = function(e, args) {
- _editor.setValue(
- _editor.getValue() +
- grid.getColumns()[args.range.fromCell].name +
- args.range.fromRow +
- ":" +
- grid.getColumns()[args.range.toCell].name +
- args.range.toRow
- );
- };
-
-
- init();
- }
-
-
-
- $(function()
- {
- for (var i=0; i<100; i++) {
- var d = (data[i] = {});
- d["num"] = i;
- }
-
- grid = new Slick.Grid("#myGrid", data, columns, options);
-
- grid.setSelectionModel(new Slick.CellSelectionModel());
- grid.registerPlugin(new Slick.AutoTooltips());
-
- // set keyboard focus on the grid
- grid.getCanvasNode().focus();
-
- var copyManager = new Slick.CellCopyManager();
- grid.registerPlugin(copyManager);
-
- copyManager.onPasteCells.subscribe(function(e,args) {
- if (args.from.length !== 1 || args.to.length !== 1) {
- throw "This implementation only supports single range copy and paste operations";
- }
-
- var from = args.from[0];
- var to = args.to[0];
- var val;
- for (var i = 0; i <= from.toRow - from.fromRow; i++) {
- for (var j = 0; j <= from.toCell - from.fromCell; j++) {
- if (i <= to.toRow - to.fromRow && j <= to.toCell - to.fromCell) {
- val = data[from.fromRow + i][columns[from.fromCell + j].field];
- data[to.fromRow + i][columns[to.fromCell + j].field] = val;
- grid.invalidateRow(to.fromRow + i);
- }
- }
- }
- grid.render();
- });
-
- grid.onAddNewRow.subscribe(function(e, args) {
- var item = args.item;
- var column = args.column;
- grid.invalidateRow(data.length);
- data.push(item);
- grid.updateRowCount();
- grid.render();
- });
- })
- </script>
- </body>
+ }
+ grid.render();
+ });
+
+ grid.onAddNewRow.subscribe(function (e, args) {
+ var item = args.item;
+ var column = args.column;
+ grid.invalidateRow(data.length);
+ data.push(item);
+ grid.updateRowCount();
+ grid.render();
+ });
+ })
+</script>
+</body>
</html>