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

Unified Diff: charted/lib/layout/src/hierarchy_layout.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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 | « charted/lib/layout/layout.dart ('k') | charted/lib/layout/src/pie_layout.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: charted/lib/layout/src/hierarchy_layout.dart
diff --git a/charted/lib/layout/src/hierarchy_layout.dart b/charted/lib/layout/src/hierarchy_layout.dart
deleted file mode 100644
index 81cbcbc959bd51148cfdf9121ab4e8eee74dbf9e..0000000000000000000000000000000000000000
--- a/charted/lib/layout/src/hierarchy_layout.dart
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2015 Google Inc. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file or at
- * https://developers.google.com/open-source/licenses/bsd
- */
-part of charted.layout;
-
-typedef int SortFunction(HierarchyNode a, HierarchyNode b);
-typedef List ChildrenAccessor(HierarchyNode node);
-typedef num ValueAccessor(HierarchyNode node);
-
-/**
- * The hierarchy layout is an abstract layout that is not used directly, but
- * instead allows code sharing between multiple hierarchical layouts such as:
- * Cluster, Pack, Partition, Tree, and Treemap layout.
- */
-abstract class HierarchyLayout<T extends HierarchyNode> {
- static const ROOT_ROW_INDEX = -1;
- SortFunction sortFunction = hierarchySort;
- ChildrenAccessor childrenAccessor = hierarchyChildren;
- ValueAccessor valueAccessor = hierarchyValue;
-
- /// Returns the list of HierarchyNode constructed from the given data and
- /// parentColumn and valueColumn which is used to construct the hierarchy.
- /// The returned list of nodes contains the hierarchy with root being the
- /// first element its children in depth first order.
- List<T> layout(List rows, int parentColumn, int labelColumn,
- int valueColumn) {
- List<HierarchyNode> nodeList = [];
- for (var row in rows) {
- nodeList.add(createNode(row[labelColumn], row[valueColumn], 0));
- }
-
- for (var i = 0; i < rows.length; i++) {
- int parentRow = rows[i][parentColumn];
- if (parentRow == ROOT_ROW_INDEX) continue;
- var currentNode = nodeList[i];
- var parentNode = nodeList[parentRow];
- (parentNode.children.isEmpty) ? parentNode.children = [currentNode] :
- parentNode.children.add(currentNode);
- currentNode.parent = parentNode;
- currentNode.depth = parentNode.depth + 1;
- for (var child in currentNode.children) {
- child.depth += 1;
- }
- }
-
- // Reorder the list so that root is the first element and the list contains
- // the hierarchy of nodes in depth first order.
- var hierarchyNodeList = [];
- var root = nodeList.where((e) => e.depth == 0).elementAt(0);
- var children = [root];
- while (children.length > 0) {
- var node = children.removeLast();
- children.addAll(node.children);
- hierarchyNodeList.add(node);
- }
-
- return hierarchyNodeList;
- }
-
- T createNode(label, value, depth);
-
- /// Default accessor method for getting the list of children of the node.
- static List hierarchyChildren(HierarchyNode node) => node.children;
-
- /// Default accessor method for getting the value of the node.
- static num hierarchyValue(HierarchyNode node) => node.value;
-
- /// Default sorting method for comparing node a and b.
- static int hierarchySort(HierarchyNode a, HierarchyNode b) =>
- b.value - a.value;
-
-}
-
-abstract class HierarchyNode {
- /// The parent node, or null for the root.
- HierarchyNode parent = null;
-
- /// The list of children nodes, or null for leaf nodes.
- List children = [];
-
- /// The label to show for each block of hierarchy
- String label = '';
-
- /// The node value, as returned by the value accessor.
- dynamic value;
-
- /// The depth of the node, starting at 0 for the root.
- int depth = 0;
-}
« no previous file with comments | « charted/lib/layout/layout.dart ('k') | charted/lib/layout/src/pie_layout.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698