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

Unified Diff: netlog_viewer/view.js

Issue 2162963002: [polymer] Merge of master into polymer10-migration (Closed) Base URL: git@github.com:catapult-project/catapult.git@polymer10-migration
Patch Set: Merge polymer10-migration int polymer10-merge Created 4 years, 5 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « netlog_viewer/util.js ('k') | perf_insights/perf_insights/mappers/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: netlog_viewer/view.js
diff --git a/netlog_viewer/view.js b/netlog_viewer/view.js
new file mode 100644
index 0000000000000000000000000000000000000000..7cb2e879361ff62da3d5f3072d22f559be7cb558
--- /dev/null
+++ b/netlog_viewer/view.js
@@ -0,0 +1,326 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * Base class to represent a "view". A view is an absolutely positioned box on
+ * the page.
+ */
+var View = (function() {
+ 'use strict';
+
+ /**
+ * @constructor
+ */
+ function View() {
+ this.isVisible_ = true;
+ }
+
+ View.prototype = {
+ /**
+ * Called to reposition the view on the page. Measurements are in pixels.
+ */
+ setGeometry: function(left, top, width, height) {
+ this.left_ = left;
+ this.top_ = top;
+ this.width_ = width;
+ this.height_ = height;
+ },
+
+ /**
+ * Called to show/hide the view.
+ */
+ show: function(isVisible) {
+ this.isVisible_ = isVisible;
+ },
+
+ isVisible: function() {
+ return this.isVisible_;
+ },
+
+ /**
+ * Method of the observer class.
+ *
+ * Called to check if an observer needs the data it is
+ * observing to be actively updated.
+ */
+ isActive: function() {
+ return this.isVisible();
+ },
+
+ getLeft: function() {
+ return this.left_;
+ },
+
+ getTop: function() {
+ return this.top_;
+ },
+
+ getWidth: function() {
+ return this.width_;
+ },
+
+ getHeight: function() {
+ return this.height_;
+ },
+
+ getRight: function() {
+ return this.getLeft() + this.getWidth();
+ },
+
+ getBottom: function() {
+ return this.getTop() + this.getHeight();
+ },
+
+ setParameters: function(params) {},
+
+ /**
+ * Called when loading a log file, after clearing all events, but before
+ * loading the new ones. |polledData| contains the data from all
+ * PollableData helpers. |tabData| contains the data for the particular
+ * tab. |logDump| is the entire log dump, which includes the other two
+ * values. It's included separately so most views don't have to depend on
+ * its specifics.
+ */
+ onLoadLogStart: function(polledData, tabData, logDump) {
+ },
+
+ /**
+ * Called as the final step of loading a log file. Arguments are the same
+ * as onLoadLogStart. Returns true to indicate the tab should be shown,
+ * false otherwise.
+ */
+ onLoadLogFinish: function(polledData, tabData, logDump) {
+ return false;
+ }
+ };
+
+ return View;
+})();
+
+//-----------------------------------------------------------------------------
+
+/**
+ * DivView is an implementation of View that wraps a DIV.
+ */
+var DivView = (function() {
+ 'use strict';
+
+ // We inherit from View.
+ var superClass = View;
+
+ /**
+ * @constructor
+ */
+ function DivView(divId) {
+ // Call superclass's constructor.
+ superClass.call(this);
+
+ this.node_ = $(divId);
+ if (!this.node_)
+ throw new Error('Element ' + divId + ' not found');
+
+ // Initialize the default values to those of the DIV.
+ this.width_ = this.node_.offsetWidth;
+ this.height_ = this.node_.offsetHeight;
+ this.isVisible_ = this.node_.style.display != 'none';
+ }
+
+ DivView.prototype = {
+ // Inherit the superclass's methods.
+ __proto__: superClass.prototype,
+
+ setGeometry: function(left, top, width, height) {
+ superClass.prototype.setGeometry.call(this, left, top, width, height);
+
+ this.node_.style.position = 'absolute';
+ setNodePosition(this.node_, left, top, width, height);
+ },
+
+ show: function(isVisible) {
+ superClass.prototype.show.call(this, isVisible);
+ setNodeDisplay(this.node_, isVisible);
+ },
+
+ /**
+ * Returns the wrapped DIV
+ */
+ getNode: function() {
+ return this.node_;
+ }
+ };
+
+ return DivView;
+})();
+
+
+//-----------------------------------------------------------------------------
+
+/**
+ * Implementation of View that sizes its child to fit the entire window.
+ *
+ * @param {!View} childView The child view.
+ */
+var WindowView = (function() {
+ 'use strict';
+
+ // We inherit from View.
+ var superClass = View;
+
+ /**
+ * @constructor
+ */
+ function WindowView(childView) {
+ // Call superclass's constructor.
+ superClass.call(this);
+
+ this.childView_ = childView;
+ window.addEventListener('resize', this.resetGeometry.bind(this), true);
+ }
+
+ WindowView.prototype = {
+ // Inherit the superclass's methods.
+ __proto__: superClass.prototype,
+
+ setGeometry: function(left, top, width, height) {
+ superClass.prototype.setGeometry.call(this, left, top, width, height);
+ this.childView_.setGeometry(left, top, width, height);
+ },
+
+ show: function() {
+ superClass.prototype.show.call(this, isVisible);
+ this.childView_.show(isVisible);
+ },
+
+ resetGeometry: function() {
+ this.setGeometry(0, 0, document.documentElement.clientWidth,
+ document.documentElement.clientHeight);
+ }
+ };
+
+ return WindowView;
+})();
+
+/**
+ * View that positions two views vertically. The top view should be
+ * fixed-height, and the bottom view will fill the remainder of the space.
+ *
+ * +-----------------------------------+
+ * | topView |
+ * +-----------------------------------+
+ * | |
+ * | |
+ * | |
+ * | bottomView |
+ * | |
+ * | |
+ * | |
+ * | |
+ * +-----------------------------------+
+ */
+var VerticalSplitView = (function() {
+ 'use strict';
+
+ // We inherit from View.
+ var superClass = View;
+
+ /**
+ * @param {!View} topView The top view.
+ * @param {!View} bottomView The bottom view.
+ * @constructor
+ */
+ function VerticalSplitView(topView, bottomView) {
+ // Call superclass's constructor.
+ superClass.call(this);
+
+ this.topView_ = topView;
+ this.bottomView_ = bottomView;
+ }
+
+ VerticalSplitView.prototype = {
+ // Inherit the superclass's methods.
+ __proto__: superClass.prototype,
+
+ setGeometry: function(left, top, width, height) {
+ superClass.prototype.setGeometry.call(this, left, top, width, height);
+
+ var fixedHeight = this.topView_.getHeight();
+ this.topView_.setGeometry(left, top, width, fixedHeight);
+
+ this.bottomView_.setGeometry(
+ left, top + fixedHeight, width, height - fixedHeight);
+ },
+
+ show: function(isVisible) {
+ superClass.prototype.show.call(this, isVisible);
+
+ this.topView_.show(isVisible);
+ this.bottomView_.show(isVisible);
+ }
+ };
+
+ return VerticalSplitView;
+})();
+
+/**
+ * View that positions two views horizontally. The left view should be
+ * fixed-width, and the right view will fill the remainder of the space.
+ *
+ * +----------+--------------------------+
+ * | | |
+ * | | |
+ * | | |
+ * | leftView | rightView |
+ * | | |
+ * | | |
+ * | | |
+ * | | |
+ * | | |
+ * | | |
+ * | | |
+ * +----------+--------------------------+
+ */
+var HorizontalSplitView = (function() {
+ 'use strict';
+
+ // We inherit from View.
+ var superClass = View;
+
+ /**
+ * @param {!View} leftView The left view.
+ * @param {!View} rightView The right view.
+ * @constructor
+ */
+ function HorizontalSplitView(leftView, rightView) {
+ // Call superclass's constructor.
+ superClass.call(this);
+
+ this.leftView_ = leftView;
+ this.rightView_ = rightView;
+ }
+
+ HorizontalSplitView.prototype = {
+ // Inherit the superclass's methods.
+ __proto__: superClass.prototype,
+
+ setGeometry: function(left, top, width, height) {
+ superClass.prototype.setGeometry.call(this, left, top, width, height);
+
+ var fixedWidth = this.leftView_.getWidth();
+ this.leftView_.setGeometry(left, top, fixedWidth, height);
+
+ this.rightView_.setGeometry(
+ left + fixedWidth, top, width - fixedWidth, height);
+ },
+
+ show: function(isVisible) {
+ superClass.prototype.show.call(this, isVisible);
+
+ this.leftView_.show(isVisible);
+ this.rightView_.show(isVisible);
+ }
+ };
+
+ return HorizontalSplitView;
+})();
+
« no previous file with comments | « netlog_viewer/util.js ('k') | perf_insights/perf_insights/mappers/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698