Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: client/samples/total/src/SpreadsheetPresenter.dart

Issue 8835006: New version of dart:html (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix typos Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 typedef void EditCellRangeFunction(CellRange range); 5 typedef void EditCellRangeFunction(CellRange range);
6 6
7 /** 7 /**
8 * Spreadsheet widget. 8 * Spreadsheet widget.
9 */ 9 */
10 class SpreadsheetPresenter implements SpreadsheetListener, SelectionListener { 10 class SpreadsheetPresenter implements SpreadsheetListener, SelectionListener {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 SpreadsheetPresenter(this._spreadsheet, this._window, this._rowShift, this._co lumnShift, 122 SpreadsheetPresenter(this._spreadsheet, this._window, this._rowShift, this._co lumnShift,
123 this._rows, this._columns) { 123 this._rows, this._columns) {
124 Document doc = _window.document; 124 Document doc = _window.document;
125 125
126 // Must do this first 126 // Must do this first
127 _popupHandler = new PopupHandler(doc); 127 _popupHandler = new PopupHandler(doc);
128 128
129 // Create UI elements under a common parent 129 // Create UI elements under a common parent
130 Element parent = doc.query("#spreadsheets"); 130 Element parent = doc.query("#spreadsheets");
131 131
132 _spreadsheetElement = doc.createElement("div"); 132 _spreadsheetElement = new Element.tag("div");
133 _spreadsheetElement.id = "spreadsheet-${_spreadsheet.name}"; 133 _spreadsheetElement.id = "spreadsheet-${_spreadsheet.name}";
134 _spreadsheetElement.attributes["class"] = "spreadsheetContainer"; 134 _spreadsheetElement.attributes["class"] = "spreadsheetContainer";
135 _spreadsheetElement.style.setProperty("z-index", "${_zIndex++}"); 135 _spreadsheetElement.style.setProperty("z-index", "${_zIndex++}");
136 parent.nodes.add(_spreadsheetElement); 136 parent.nodes.add(_spreadsheetElement);
137 137
138 _tableScrollContainer = doc.createElement("div"); 138 _tableScrollContainer = new Element.tag("div");
139 _tableScrollContainer.id = "tableScrollContainer-${_spreadsheet.name}"; 139 _tableScrollContainer.id = "tableScrollContainer-${_spreadsheet.name}";
140 _tableScrollContainer.attributes["class"] = "tableScrollContainer"; 140 _tableScrollContainer.attributes["class"] = "tableScrollContainer";
141 _spreadsheetElement.nodes.add(_tableScrollContainer); 141 _spreadsheetElement.nodes.add(_tableScrollContainer);
142 142
143 _createTable(doc); 143 _createTable(doc);
144 _createMoveDragger(doc); 144 _createMoveDragger(doc);
145 _createResizeDragger(doc); 145 _createResizeDragger(doc);
146 146
147 _createSpreadsheetLayout(doc); 147 _createSpreadsheetLayout(doc);
148 _createFormulaInput(doc); 148 _createFormulaInput(doc);
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 _selectionManager.setOrigin(_rowShift, _columnShift); 549 _selectionManager.setOrigin(_rowShift, _columnShift);
550 } else { 550 } else {
551 _selectionManager.updateSelection(); 551 _selectionManager.updateSelection();
552 _redrawHeaders(); 552 _redrawHeaders();
553 } 553 }
554 } 554 }
555 555
556 // Create the cell display dropdown. 556 // Create the cell display dropdown.
557 SelectElement _createCellDisplay(Document doc, String parentId, List<String> v alues) { 557 SelectElement _createCellDisplay(Document doc, String parentId, List<String> v alues) {
558 Element parent = doc.query('#$parentId'); 558 Element parent = doc.query('#$parentId');
559 SelectElement element = doc.createElement("select"); 559 SelectElement element = new Element.tag("select");
560 StringBuffer sb = new StringBuffer(); 560 StringBuffer sb = new StringBuffer();
561 values.forEach((String value) { 561 values.forEach((String value) {
562 sb.add("<option>"); 562 sb.add("<option>");
563 sb.add(value); 563 sb.add(value);
564 sb.add("</option>"); 564 sb.add("</option>");
565 }); 565 });
566 element.innerHTML = sb.toString(); 566 element.innerHTML = sb.toString();
567 element.on.change.add( 567 element.on.change.add(
568 (Event e) { 568 (Event e) {
569 _cellDisplay = element.selectedIndex; 569 _cellDisplay = element.selectedIndex;
570 _table.resetTableContents(_rows, _columns); 570 _table.resetTableContents(_rows, _columns);
571 recalculateViewport(); 571 recalculateViewport();
572 }); 572 });
573 parent.nodes.add(element); 573 parent.nodes.add(element);
574 return element; 574 return element;
575 } 575 }
576 576
577 void _createCellDisplaySelector(Document doc) { 577 void _createCellDisplaySelector(Document doc) {
578 _cellDisplayElement = _createCellDisplay(doc, "debugbar", 578 _cellDisplayElement = _createCellDisplay(doc, "debugbar",
579 ["Show Values","Show Contents","Show Paste Contents","Show Styles","Show Datatypes", 579 ["Show Values","Show Contents","Show Paste Contents","Show Styles","Show Datatypes",
580 "Show Dependencies","Show Forward Dependencies"]); 580 "Show Dependencies","Show Forward Dependencies"]);
581 } 581 }
582 582
583 void _createFormulaInput(Document doc) { 583 void _createFormulaInput(Document doc) {
584 _formulaDiv = doc.createElement("div"); 584 _formulaDiv = new Element.tag("div");
585 _formulaDiv.id = "formulaDiv-${_spreadsheet.name}"; 585 _formulaDiv.id = "formulaDiv-${_spreadsheet.name}";
586 _formulaDiv.attributes["class"] = "formulaDiv fadeOut"; 586 _formulaDiv.attributes["class"] = "formulaDiv fadeOut";
587 _spreadsheetElement.nodes.add(_formulaDiv); 587 _spreadsheetElement.nodes.add(_formulaDiv);
588 588
589 _formulaInput = doc.createElement("input"); 589 _formulaInput = new Element.tag("input");
590 _formulaInput.id = "formulaInput-${_spreadsheet.name}"; 590 _formulaInput.id = "formulaInput-${_spreadsheet.name}";
591 _formulaInput.attributes["class"] = "formulaInput"; 591 _formulaInput.attributes["class"] = "formulaInput";
592 _formulaDiv.nodes.add(_formulaInput); 592 _formulaDiv.nodes.add(_formulaInput);
593 593
594 _formulaInputMeasure = doc.createElement("div"); 594 _formulaInputMeasure = new Element.tag("div");
595 _formulaInputMeasure.id = "formulaInputMeasure-${_spreadsheet.name}"; 595 _formulaInputMeasure.id = "formulaInputMeasure-${_spreadsheet.name}";
596 _formulaInputMeasure.attributes["class"] = "formulaInputMeasure"; 596 _formulaInputMeasure.attributes["class"] = "formulaInputMeasure";
597 _spreadsheetElement.nodes.add(_formulaInputMeasure); 597 _spreadsheetElement.nodes.add(_formulaInputMeasure);
598 598
599 _formulaInput.on.click.add((MouseEvent e) { 599 _formulaInput.on.click.add((MouseEvent e) {
600 _formulaEditing = true; 600 _formulaEditing = true;
601 _hideFormulaCellSelecting(); 601 _hideFormulaCellSelecting();
602 }); 602 });
603 603
604 _formulaInput.on.keyDown.add((KeyboardEvent e) { 604 _formulaInput.on.keyDown.add((KeyboardEvent e) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 // Clear the cell contents 654 // Clear the cell contents
655 location.markDirty(); 655 location.markDirty();
656 _selectionManager.selectionChanged(); 656 _selectionManager.selectionChanged();
657 print("Error parsing formula '${value}': ${exception}"); 657 print("Error parsing formula '${value}': ${exception}");
658 } 658 }
659 } 659 }
660 }); 660 });
661 } 661 }
662 662
663 void _createMoveDragger(Document doc) { 663 void _createMoveDragger(Document doc) {
664 _moveDragger = doc.createElement("div"); 664 _moveDragger = new Element.tag("div");
665 _moveDragger.id = "moveDragger-${_spreadsheet.name}"; 665 _moveDragger.id = "moveDragger-${_spreadsheet.name}";
666 _moveDragger.attributes["class"] = "moveDragger"; 666 _moveDragger.attributes["class"] = "moveDragger";
667 _moveDragger.style.setProperty("left", HtmlUtils.toPx(3)); 667 _moveDragger.style.setProperty("left", HtmlUtils.toPx(3));
668 _moveDragger.style.setProperty("top", HtmlUtils.toPx(3)); 668 _moveDragger.style.setProperty("top", HtmlUtils.toPx(3));
669 _spreadsheetElement.nodes.add(_moveDragger); 669 _spreadsheetElement.nodes.add(_moveDragger);
670 670
671 _moveDragger.on.mouseDown.add((MouseEvent e) { 671 _moveDragger.on.mouseDown.add((MouseEvent e) {
672 _moveToTop(); 672 _moveToTop();
673 _hideInnerMenu(true); 673 _hideInnerMenu(true);
674 674
(...skipping 18 matching lines...) Expand all
693 }); 693 });
694 }); 694 });
695 695
696 _setUndragFunction((MouseEvent e) { 696 _setUndragFunction((MouseEvent e) {
697 _window.document.body.style.setProperty("cursor", "auto"); 697 _window.document.body.style.setProperty("cursor", "auto");
698 }); 698 });
699 }); 699 });
700 } 700 }
701 701
702 void _createResizeDragger(Document doc) { 702 void _createResizeDragger(Document doc) {
703 _resizeDragger = doc.createElement("div"); 703 _resizeDragger = new Element.tag("div");
704 _resizeDragger.id = "resizeDragger-${_spreadsheet.name}"; 704 _resizeDragger.id = "resizeDragger-${_spreadsheet.name}";
705 _resizeDragger.attributes["class"] = "resizeDragger"; 705 _resizeDragger.attributes["class"] = "resizeDragger";
706 _spreadsheetElement.nodes.add(_resizeDragger); 706 _spreadsheetElement.nodes.add(_resizeDragger);
707 707
708 _resizeDragger.on.mouseDown.add((MouseEvent e) { 708 _resizeDragger.on.mouseDown.add((MouseEvent e) {
709 _moveToTop(); 709 _moveToTop();
710 710
711 // Hide popups 711 // Hide popups
712 _hideFormula(); 712 _hideFormula();
713 _popupHandler.deactivatePopup(); 713 _popupHandler.deactivatePopup();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 _setUndragFunction((MouseEvent e) { 757 _setUndragFunction((MouseEvent e) {
758 _window.document.body.style.setProperty("cursor", "auto"); 758 _window.document.body.style.setProperty("cursor", "auto");
759 }); 759 });
760 }); 760 });
761 761
762 _refreshResizeDragger(); 762 _refreshResizeDragger();
763 } 763 }
764 764
765 // Initialize the HTML elements used to indicate dragging 765 // Initialize the HTML elements used to indicate dragging
766 void _createSpreadsheetLayout(Document doc) { 766 void _createSpreadsheetLayout(Document doc) {
767 DivElement columnDraggerElement = doc.createElement("div"); 767 DivElement columnDraggerElement = new Element.tag("div");
768 columnDraggerElement.id = "columnDragger-${_spreadsheet.name}"; 768 columnDraggerElement.id = "columnDragger-${_spreadsheet.name}";
769 columnDraggerElement.attributes["class"] = "columnDragger rowColDragger"; 769 columnDraggerElement.attributes["class"] = "columnDragger rowColDragger";
770 770
771 DivElement rowDraggerElement = doc.createElement("div"); 771 DivElement rowDraggerElement = new Element.tag("div");
772 rowDraggerElement.id = "rowDragger-${_spreadsheet.name}"; 772 rowDraggerElement.id = "rowDragger-${_spreadsheet.name}";
773 rowDraggerElement.attributes["class"] = "rowDragger rowColDragger"; 773 rowDraggerElement.attributes["class"] = "rowDragger rowColDragger";
774 774
775 _spreadsheetElement.nodes.add(columnDraggerElement); 775 _spreadsheetElement.nodes.add(columnDraggerElement);
776 _spreadsheetElement.nodes.add(rowDraggerElement); 776 _spreadsheetElement.nodes.add(rowDraggerElement);
777 777
778 _dragIndicators = new List<DivElement>(2); 778 _dragIndicators = new List<DivElement>(2);
779 _dragIndicators[COL] = columnDraggerElement; 779 _dragIndicators[COL] = columnDraggerElement;
780 _dragIndicators[ROW] = rowDraggerElement; 780 _dragIndicators[ROW] = rowDraggerElement;
781 } 781 }
782 782
783 void _createTable(Document doc) { 783 void _createTable(Document doc) {
784 // Create the table 784 // Create the table
785 _table = new HtmlTable(_spreadsheet, _spreadsheetElement); 785 _table = new HtmlTable(_spreadsheet, _spreadsheetElement);
786 786
787 _setTableWidth(_spreadsheet.getColumnEnd(_columns)); 787 _setTableWidth(_spreadsheet.getColumnEnd(_columns));
788 for (int r = 0; r <= _rows; r++) { 788 for (int r = 0; r <= _rows; r++) {
789 _addTableRowHtml(r); 789 _addTableRowHtml(r);
790 } 790 }
791 791
792 // Create two divs -- the outer one has "overflow:scroll" and has the same w idth and height 792 // Create two divs -- the outer one has "overflow:scroll" and has the same w idth and height
793 // as the visible scpreadsheet area. The inner one has the same width and h eight as the 793 // as the visible scpreadsheet area. The inner one has the same width and h eight as the
794 // entire active spreadsheet area. When the outer div is scrolled, the view port is shifted 794 // entire active spreadsheet area. When the outer div is scrolled, the view port is shifted
795 // to match the scroll coordinates. 795 // to match the scroll coordinates.
796 796
797 // Inner div 797 // Inner div
798 _tableScrollDiv = doc.createElement("div"); 798 _tableScrollDiv = new Element.tag("div");
799 _tableScrollDiv.id = "tableScrollDiv-${_spreadsheet.name}"; 799 _tableScrollDiv.id = "tableScrollDiv-${_spreadsheet.name}";
800 _tableScrollDiv.attributes["class"] = "tableScrollDiv"; 800 _tableScrollDiv.attributes["class"] = "tableScrollDiv";
801 _tableScrollContainer.style.setProperty("left", "0px"); 801 _tableScrollContainer.style.setProperty("left", "0px");
802 _tableScrollContainer.style.setProperty("top", "0px"); 802 _tableScrollContainer.style.setProperty("top", "0px");
803 _tableScrollContainer.nodes.add(_tableScrollDiv); 803 _tableScrollContainer.nodes.add(_tableScrollDiv);
804 _tableSizeChanged(); 804 _tableSizeChanged();
805 805
806 _tableScrollContainer.on.scroll.add((e) { 806 _tableScrollContainer.on.scroll.add((e) {
807 if (_scrolledByKeyboard) { 807 if (_scrolledByKeyboard) {
808 _scrolledByKeyboard = false; 808 _scrolledByKeyboard = false;
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
1721 _spreadsheet.execute(command); 1721 _spreadsheet.execute(command);
1722 } else { 1722 } else {
1723 if (rowOrCol == COL) { 1723 if (rowOrCol == COL) {
1724 _spreadsheet.setColumnWidth(index, size); 1724 _spreadsheet.setColumnWidth(index, size);
1725 } else { 1725 } else {
1726 _spreadsheet.setRowHeight(index, size); 1726 _spreadsheet.setRowHeight(index, size);
1727 } 1727 }
1728 } 1728 }
1729 } 1729 }
1730 } 1730 }
OLDNEW
« no previous file with comments | « client/samples/total/src/SelectionManager.dart ('k') | client/samples/total/src/ValuePicker.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698