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

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

Issue 8966029: Report errors and warnings for hiding elements, issue 572. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 // Recalculate the spreadsheet. The caller is responsible for marking as dirt y any cells 369 // Recalculate the spreadsheet. The caller is responsible for marking as dirt y any cells
370 // that require actual recalculation. Code that causes the table to be resized is responsible 370 // that require actual recalculation. Code that causes the table to be resized is responsible
371 // for updating the DOM table size before this method is called. 371 // for updating the DOM table size before this method is called.
372 int recalculate() { 372 int recalculate() {
373 int start = _currentTimeMllis(); 373 int start = _currentTimeMllis();
374 _spreadsheet.beginRecalc(); 374 _spreadsheet.beginRecalc();
375 375
376 _setTableWidth(_getVisibleTableWidth()); 376 _setTableWidth(_getVisibleTableWidth());
377 _tableSizeChanged(); 377 _tableSizeChanged();
378 378
379 int num = _table.redraw(_selectionManager, _rows, _columns, 379 int renderedCells = _table.redraw(_selectionManager, _rows, _columns,
380 _rowShift, _columnShift, _cellDisplay); 380 _rowShift, _columnShift, _cellDisplay);
381 381
382 // Cell sizes may change so update the selection marquee 382 // Cell sizes may change so update the selection marquee
383 _selectionManager.updateSelection(); 383 _selectionManager.updateSelection();
384 384
385 int calculated = _spreadsheet.endRecalc(); 385 int calculated = _spreadsheet.endRecalc();
386 int end = _currentTimeMllis(); 386 int end = _currentTimeMllis();
387 387
388 int t = end - start; 388 int t = end - start;
389 double s = _spreadsheet.calculated * 1000.0 / t; 389 double s = _spreadsheet.calculated * 1000.0 / t;
390 print("Recalculated ${calculated}, rendered ${num} cells in ${t} msec (${s} cells/sec)"); 390 print("Recalculated ${calculated}, rendered ${renderedCells} cells in ${t} m sec (${s} cells/sec)");
391 391
392 return calculated; 392 return calculated;
393 } 393 }
394 394
395 // Recalculate the entire spreadsheet 395 // Recalculate the entire spreadsheet
396 void recalculateAll() { 396 void recalculateAll() {
397 _spreadsheet.markAllDirty(); 397 _spreadsheet.markAllDirty();
398 recalculate(); 398 recalculate();
399 } 399 }
400 400
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 674
675 int mouseStartX = e.x; 675 int mouseStartX = e.x;
676 int mouseStartY = e.y; 676 int mouseStartY = e.y;
677 677
678 _spreadsheetElement.rect.then((ElementRect elementRect) { 678 _spreadsheetElement.rect.then((ElementRect elementRect) {
679 ClientRect rect = elementRect.bounding; 679 ClientRect rect = elementRect.bounding;
680 int startX = rect.left; 680 int startX = rect.left;
681 int startY = rect.top; 681 int startY = rect.top;
682 _window.document.body.style.setProperty("cursor", "move"); 682 _window.document.body.style.setProperty("cursor", "move");
683 683
684 _setDragFunction((MouseEvent e) { 684 _setDragFunction((MouseEvent e_) {
685 int x = startX + e.x - mouseStartX; 685 int x = startX + e_.x - mouseStartX;
686 int y = startY + e.y - mouseStartY; 686 int y = startY + e_.y - mouseStartY;
687 687
688 x = Math.max(x, CssStyles.OBJECTBAR_WIDTH); 688 x = Math.max(x, CssStyles.OBJECTBAR_WIDTH);
689 y = Math.max(y, CssStyles.SANDBAR_HEIGHT); 689 y = Math.max(y, CssStyles.SANDBAR_HEIGHT);
690 // Move the spreadsheet container 690 // Move the spreadsheet container
691 _spreadsheetElement.style.setProperty("left", HtmlUtils.toPx(x)); 691 _spreadsheetElement.style.setProperty("left", HtmlUtils.toPx(x));
692 _spreadsheetElement.style.setProperty("top", HtmlUtils.toPx(y)); 692 _spreadsheetElement.style.setProperty("top", HtmlUtils.toPx(y));
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 = new Element.tag("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();
714 714
715 int mouseStartX = e.x; 715 int mouseStartX = e.x;
716 int mouseStartY = e.y; 716 int mouseStartY = e.y;
717 int startX = HtmlUtils.fromPx(_resizeDragger.style.getPropertyValue("left" )); 717 int startX = HtmlUtils.fromPx(_resizeDragger.style.getPropertyValue("left" ));
718 int startY = HtmlUtils.fromPx(_resizeDragger.style.getPropertyValue("top") ); 718 int startY = HtmlUtils.fromPx(_resizeDragger.style.getPropertyValue("top") );
719 _window.document.body.style.setProperty("cursor", "move"); 719 _window.document.body.style.setProperty("cursor", "move");
720 720
721 _setDragFunction((MouseEvent e) { 721 _setDragFunction((MouseEvent e_) {
722 int x = startX + e.x - mouseStartX; 722 int x = startX + e_.x - mouseStartX;
723 int y = startY + e.y - mouseStartY; 723 int y = startY + e_.y - mouseStartY;
724 724
725 // Move the drag handle 725 // Move the drag handle
726 _resizeDragger.style.setProperty("left", HtmlUtils.toPx(x)); 726 _resizeDragger.style.setProperty("left", HtmlUtils.toPx(x));
727 _resizeDragger.style.setProperty("top", HtmlUtils.toPx(y)); 727 _resizeDragger.style.setProperty("top", HtmlUtils.toPx(y));
728 728
729 int column = _getMaxRowOrColumn(x, COL); 729 int column = _getMaxRowOrColumn(x, COL);
730 int row = _getMaxRowOrColumn(y, ROW) + 1; 730 int row = _getMaxRowOrColumn(y, ROW) + 1;
731 if (column == -1 || row == -1) { 731 if (column == -1 || row == -1) {
732 return; 732 return;
733 } 733 }
(...skipping 13 matching lines...) Expand all
747 } 747 }
748 _removeTableRowHtml(_rows); 748 _removeTableRowHtml(_rows);
749 _rows--; 749 _rows--;
750 } 750 }
751 while (row > _rows + _rowShift) { 751 while (row > _rows + _rowShift) {
752 _spreadsheet.insertRow(_rows, _spreadsheet.getDefaultRowHeight(_rows)) ; 752 _spreadsheet.insertRow(_rows, _spreadsheet.getDefaultRowHeight(_rows)) ;
753 } 753 }
754 _spreadsheet.refresh(); 754 _spreadsheet.refresh();
755 }); 755 });
756 756
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 = new Element.tag("div"); 767 DivElement columnDraggerElement = new Element.tag("div");
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after
1543 ClientRect boundingRect = rect.bounding; 1543 ClientRect boundingRect = rect.bounding;
1544 int scrollOffsetX = -boundingRect.left; 1544 int scrollOffsetX = -boundingRect.left;
1545 int scrollOffsetY = -boundingRect.top; 1545 int scrollOffsetY = -boundingRect.top;
1546 _contextMenu.show(e.x + scrollOffsetX, e.y + scrollOffsetY); 1546 _contextMenu.show(e.x + scrollOffsetX, e.y + scrollOffsetY);
1547 }); 1547 });
1548 return; 1548 return;
1549 } 1549 }
1550 1550
1551 _setDragFunction(mouseMove); 1551 _setDragFunction(mouseMove);
1552 1552
1553 _setUndragFunction((MouseEvent e) { 1553 _setUndragFunction((MouseEvent e_) {
1554 dragRowColumn(true); 1554 dragRowColumn(true);
1555 _table.setDefaultCursor(); 1555 _table.setDefaultCursor();
1556 draggingSelection = false; 1556 draggingSelection = false;
1557 draggingRowColumn[COL] = -1; 1557 draggingRowColumn[COL] = -1;
1558 setDrag(COL, false); 1558 setDrag(COL, false);
1559 draggingRowColumn[ROW] = -1; 1559 draggingRowColumn[ROW] = -1;
1560 setDrag(ROW, false); 1560 setDrag(ROW, false);
1561 // Finalize the selection 1561 // Finalize the selection
1562 _selectionManager.selectionChanged(); 1562 _selectionManager.selectionChanged();
1563 // Check to see if the selection we just finalized is a request 1563 // Check to see if the selection we just finalized is a request
(...skipping 30 matching lines...) Expand all
1594 return; 1594 return;
1595 } 1595 }
1596 1596
1597 // Click on cell during formula editing 1597 // Click on cell during formula editing
1598 if (_formulaEditing) { 1598 if (_formulaEditing) {
1599 _formulaCellSelecting = true; 1599 _formulaCellSelecting = true;
1600 _formulaCellSelectingRememberSelectionRange(); 1600 _formulaCellSelectingRememberSelectionRange();
1601 // disable text selection, because browser inverts selection once we dra g over input 1601 // disable text selection, because browser inverts selection once we dra g over input
1602 _formulaInput.style.setProperty("-webkit-user-select", "none"); 1602 _formulaInput.style.setProperty("-webkit-user-select", "none");
1603 // listen for drag operation 1603 // listen for drag operation
1604 _setDragFunction((MouseEvent e) { 1604 _setDragFunction((MouseEvent e_) {
1605 Element target = e.target; 1605 Element target_ = e_.target;
1606 CellLocation location = _getCellLocation(target); 1606 CellLocation location_ = _getCellLocation(target_);
1607 if (location == null) { 1607 if (location_ == null) {
1608 return; 1608 return;
1609 } 1609 }
1610 _formulaCellSelectingInsertReference(null, location.rowCol); 1610 _formulaCellSelectingInsertReference(null, location_.rowCol);
1611 }); 1611 });
1612 _setUndragFunction((MouseEvent e) { 1612 _setUndragFunction((MouseEvent e_) {
1613 _formulaInput.style.removeProperty("-webkit-user-select"); 1613 _formulaInput.style.removeProperty("-webkit-user-select");
1614 _formulaCellSelectingSelectText(); 1614 _formulaCellSelectingSelectText();
1615 }); 1615 });
1616 // set "click" location 1616 // set "click" location
1617 _formulaCellSelectingInsertReference(location.rowCol, null); 1617 _formulaCellSelectingInsertReference(location.rowCol, null);
1618 return; 1618 return;
1619 } 1619 }
1620 1620
1621 // Begin selection 1621 // Begin selection
1622 draggingSelection = true; 1622 draggingSelection = true;
(...skipping 98 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

Powered by Google App Engine
This is Rietveld 408576698