From f5e186e156cb9a007f4262f5c65f3ddd9558eef0 Mon Sep 17 00:00:00 2001 From: Patrick Oladimeji Date: Sat, 24 May 2014 13:16:01 -0700 Subject: [PATCH 1/3] treelist layout plugin --- treelist/README.md | 0 treelist/treelist.js | 89 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 treelist/README.md create mode 100644 treelist/treelist.js diff --git a/treelist/README.md b/treelist/README.md new file mode 100644 index 0000000..e69de29 diff --git a/treelist/treelist.js b/treelist/treelist.js new file mode 100644 index 0000000..a32d32c --- /dev/null +++ b/treelist/treelist.js @@ -0,0 +1,89 @@ +/** + * Implements a simple layout for rendering trees in a list style view as seen in file system browsers + * @author Patrick Oladimeji + * @date 5/24/14 12:21:50 PM + */ +/*jshint unused: true, undef: true*/ +/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ +/*global d3*/ +(function (d3) { + d3.layout.treelist = function () { + "use strict"; + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + nodeHeight = 20, + childIndent = 20, + size; + + var treelist = function (d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0]; + + function visit(f, t, index, parent) { + if (t) { + f(t, index, parent); + } + var children = t.children; + if (children && children.length) { + children.forEach(function (child, ci) { + visit(f, child, ci, t); + }); + } + } + + /** + visit all nodes in the tree and set the x, y positions + */ + function layout(node) { + //all children of the same parent are rendered on the same x level + //y increases every time a child is added to the list + var x = 0, y = 0; + visit(function (n, index, parent) { + x = parent ? parent.x + childIndent : 0; + y = y + nodeHeight; + n.y = y; + n.x = x; + + }, node); + //update size after visiting + size = [x, y]; + } + + layout(root); + return nodes; + }; + + treelist.size = function () { + return size; + }; + + treelist.nodeHeight = function (d) { + if (arguments.length) { + nodeHeight = d; + return treelist; + } + return nodeHeight; + }; + + treelist.childIndent = function (d) { + if (arguments.length) { + childIndent = d; + return treelist; + } + return childIndent; + }; + + d3.rebind(treelist, hierarchy, "sort", "children", "value"); + treelist.nodes = treelist; + treelist.links = function (nodes) { + return d3.merge(nodes.map(function (parent) { + return (parent.children || []).map(function (child) { + return {source: parent, target: child}; + }); + })); + }; + + return treelist; + }; + +}(d3)); + From d3d118feb6e6854b817d363a5a5901253dfc22d6 Mon Sep 17 00:00:00 2001 From: Patrick Oladimeji Date: Sat, 24 May 2014 16:19:03 -0700 Subject: [PATCH 2/3] added demo and updated read me file --- treelist/README.md | 1 + treelist/demo/flare.json | 380 +++++++++++++++++++++++++++++++++++++++ treelist/demo/index.html | 36 ++++ treelist/demo/index.js | 77 ++++++++ treelist/treelist.js | 22 +-- 5 files changed, 497 insertions(+), 19 deletions(-) create mode 100644 treelist/demo/flare.json create mode 100644 treelist/demo/index.html create mode 100644 treelist/demo/index.js diff --git a/treelist/README.md b/treelist/README.md index e69de29..ac50ce5 100644 --- a/treelist/README.md +++ b/treelist/README.md @@ -0,0 +1 @@ +This plugin adds a treelayout for displaying a tree in a file system type list view. See the demo directory for how to use or visit [http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7](http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7) to the a treelist rendering of the flare.json data used in many d3 tree layout examples. \ No newline at end of file diff --git a/treelist/demo/flare.json b/treelist/demo/flare.json new file mode 100644 index 0000000..a05a948 --- /dev/null +++ b/treelist/demo/flare.json @@ -0,0 +1,380 @@ +{ + "name": "flare", + "children": [ + { + "name": "analytics", + "children": [ + { + "name": "cluster", + "children": [ + {"name": "AgglomerativeCluster", "size": 3938}, + {"name": "CommunityStructure", "size": 3812}, + {"name": "HierarchicalCluster", "size": 6714}, + {"name": "MergeEdge", "size": 743} + ] + }, + { + "name": "graph", + "children": [ + {"name": "BetweennessCentrality", "size": 3534}, + {"name": "LinkDistance", "size": 5731}, + {"name": "MaxFlowMinCut", "size": 7840}, + {"name": "ShortestPaths", "size": 5914}, + {"name": "SpanningTree", "size": 3416} + ] + }, + { + "name": "optimization", + "children": [ + {"name": "AspectRatioBanker", "size": 7074} + ] + } + ] + }, + { + "name": "animate", + "children": [ + {"name": "Easing", "size": 17010}, + {"name": "FunctionSequence", "size": 5842}, + { + "name": "interpolate", + "children": [ + {"name": "ArrayInterpolator", "size": 1983}, + {"name": "ColorInterpolator", "size": 2047}, + {"name": "DateInterpolator", "size": 1375}, + {"name": "Interpolator", "size": 8746}, + {"name": "MatrixInterpolator", "size": 2202}, + {"name": "NumberInterpolator", "size": 1382}, + {"name": "ObjectInterpolator", "size": 1629}, + {"name": "PointInterpolator", "size": 1675}, + {"name": "RectangleInterpolator", "size": 2042} + ] + }, + {"name": "ISchedulable", "size": 1041}, + {"name": "Parallel", "size": 5176}, + {"name": "Pause", "size": 449}, + {"name": "Scheduler", "size": 5593}, + {"name": "Sequence", "size": 5534}, + {"name": "Transition", "size": 9201}, + {"name": "Transitioner", "size": 19975}, + {"name": "TransitionEvent", "size": 1116}, + {"name": "Tween", "size": 6006} + ] + }, + { + "name": "data", + "children": [ + { + "name": "converters", + "children": [ + {"name": "Converters", "size": 721}, + {"name": "DelimitedTextConverter", "size": 4294}, + {"name": "GraphMLConverter", "size": 9800}, + {"name": "IDataConverter", "size": 1314}, + {"name": "JSONConverter", "size": 2220} + ] + }, + {"name": "DataField", "size": 1759}, + {"name": "DataSchema", "size": 2165}, + {"name": "DataSet", "size": 586}, + {"name": "DataSource", "size": 3331}, + {"name": "DataTable", "size": 772}, + {"name": "DataUtil", "size": 3322} + ] + }, + { + "name": "display", + "children": [ + {"name": "DirtySprite", "size": 8833}, + {"name": "LineSprite", "size": 1732}, + {"name": "RectSprite", "size": 3623}, + {"name": "TextSprite", "size": 10066} + ] + }, + { + "name": "flex", + "children": [ + {"name": "FlareVis", "size": 4116} + ] + }, + { + "name": "physics", + "children": [ + {"name": "DragForce", "size": 1082}, + {"name": "GravityForce", "size": 1336}, + {"name": "IForce", "size": 319}, + {"name": "NBodyForce", "size": 10498}, + {"name": "Particle", "size": 2822}, + {"name": "Simulation", "size": 9983}, + {"name": "Spring", "size": 2213}, + {"name": "SpringForce", "size": 1681} + ] + }, + { + "name": "query", + "children": [ + {"name": "AggregateExpression", "size": 1616}, + {"name": "And", "size": 1027}, + {"name": "Arithmetic", "size": 3891}, + {"name": "Average", "size": 891}, + {"name": "BinaryExpression", "size": 2893}, + {"name": "Comparison", "size": 5103}, + {"name": "CompositeExpression", "size": 3677}, + {"name": "Count", "size": 781}, + {"name": "DateUtil", "size": 4141}, + {"name": "Distinct", "size": 933}, + {"name": "Expression", "size": 5130}, + {"name": "ExpressionIterator", "size": 3617}, + {"name": "Fn", "size": 3240}, + {"name": "If", "size": 2732}, + {"name": "IsA", "size": 2039}, + {"name": "Literal", "size": 1214}, + {"name": "Match", "size": 3748}, + {"name": "Maximum", "size": 843}, + { + "name": "methods", + "children": [ + {"name": "add", "size": 593}, + {"name": "and", "size": 330}, + {"name": "average", "size": 287}, + {"name": "count", "size": 277}, + {"name": "distinct", "size": 292}, + {"name": "div", "size": 595}, + {"name": "eq", "size": 594}, + {"name": "fn", "size": 460}, + {"name": "gt", "size": 603}, + {"name": "gte", "size": 625}, + {"name": "iff", "size": 748}, + {"name": "isa", "size": 461}, + {"name": "lt", "size": 597}, + {"name": "lte", "size": 619}, + {"name": "max", "size": 283}, + {"name": "min", "size": 283}, + {"name": "mod", "size": 591}, + {"name": "mul", "size": 603}, + {"name": "neq", "size": 599}, + {"name": "not", "size": 386}, + {"name": "or", "size": 323}, + {"name": "orderby", "size": 307}, + {"name": "range", "size": 772}, + {"name": "select", "size": 296}, + {"name": "stddev", "size": 363}, + {"name": "sub", "size": 600}, + {"name": "sum", "size": 280}, + {"name": "update", "size": 307}, + {"name": "variance", "size": 335}, + {"name": "where", "size": 299}, + {"name": "xor", "size": 354}, + {"name": "_", "size": 264} + ] + }, + {"name": "Minimum", "size": 843}, + {"name": "Not", "size": 1554}, + {"name": "Or", "size": 970}, + {"name": "Query", "size": 13896}, + {"name": "Range", "size": 1594}, + {"name": "StringUtil", "size": 4130}, + {"name": "Sum", "size": 791}, + {"name": "Variable", "size": 1124}, + {"name": "Variance", "size": 1876}, + {"name": "Xor", "size": 1101} + ] + }, + { + "name": "scale", + "children": [ + {"name": "IScaleMap", "size": 2105}, + {"name": "LinearScale", "size": 1316}, + {"name": "LogScale", "size": 3151}, + {"name": "OrdinalScale", "size": 3770}, + {"name": "QuantileScale", "size": 2435}, + {"name": "QuantitativeScale", "size": 4839}, + {"name": "RootScale", "size": 1756}, + {"name": "Scale", "size": 4268}, + {"name": "ScaleType", "size": 1821}, + {"name": "TimeScale", "size": 5833} + ] + }, + { + "name": "util", + "children": [ + {"name": "Arrays", "size": 8258}, + {"name": "Colors", "size": 10001}, + {"name": "Dates", "size": 8217}, + {"name": "Displays", "size": 12555}, + {"name": "Filter", "size": 2324}, + {"name": "Geometry", "size": 10993}, + { + "name": "heap", + "children": [ + {"name": "FibonacciHeap", "size": 9354}, + {"name": "HeapNode", "size": 1233} + ] + }, + {"name": "IEvaluable", "size": 335}, + {"name": "IPredicate", "size": 383}, + {"name": "IValueProxy", "size": 874}, + { + "name": "math", + "children": [ + {"name": "DenseMatrix", "size": 3165}, + {"name": "IMatrix", "size": 2815}, + {"name": "SparseMatrix", "size": 3366} + ] + }, + {"name": "Maths", "size": 17705}, + {"name": "Orientation", "size": 1486}, + { + "name": "palette", + "children": [ + {"name": "ColorPalette", "size": 6367}, + {"name": "Palette", "size": 1229}, + {"name": "ShapePalette", "size": 2059}, + {"name": "SizePalette", "size": 2291} + ] + }, + {"name": "Property", "size": 5559}, + {"name": "Shapes", "size": 19118}, + {"name": "Sort", "size": 6887}, + {"name": "Stats", "size": 6557}, + {"name": "Strings", "size": 22026} + ] + }, + { + "name": "vis", + "children": [ + { + "name": "axis", + "children": [ + {"name": "Axes", "size": 1302}, + {"name": "Axis", "size": 24593}, + {"name": "AxisGridLine", "size": 652}, + {"name": "AxisLabel", "size": 636}, + {"name": "CartesianAxes", "size": 6703} + ] + }, + { + "name": "controls", + "children": [ + {"name": "AnchorControl", "size": 2138}, + {"name": "ClickControl", "size": 3824}, + {"name": "Control", "size": 1353}, + {"name": "ControlList", "size": 4665}, + {"name": "DragControl", "size": 2649}, + {"name": "ExpandControl", "size": 2832}, + {"name": "HoverControl", "size": 4896}, + {"name": "IControl", "size": 763}, + {"name": "PanZoomControl", "size": 5222}, + {"name": "SelectionControl", "size": 7862}, + {"name": "TooltipControl", "size": 8435} + ] + }, + { + "name": "data", + "children": [ + {"name": "Data", "size": 20544}, + {"name": "DataList", "size": 19788}, + {"name": "DataSprite", "size": 10349}, + {"name": "EdgeSprite", "size": 3301}, + {"name": "NodeSprite", "size": 19382}, + { + "name": "render", + "children": [ + {"name": "ArrowType", "size": 698}, + {"name": "EdgeRenderer", "size": 5569}, + {"name": "IRenderer", "size": 353}, + {"name": "ShapeRenderer", "size": 2247} + ] + }, + {"name": "ScaleBinding", "size": 11275}, + {"name": "Tree", "size": 7147}, + {"name": "TreeBuilder", "size": 9930} + ] + }, + { + "name": "events", + "children": [ + {"name": "DataEvent", "size": 2313}, + {"name": "SelectionEvent", "size": 1880}, + {"name": "TooltipEvent", "size": 1701}, + {"name": "VisualizationEvent", "size": 1117} + ] + }, + { + "name": "legend", + "children": [ + {"name": "Legend", "size": 20859}, + {"name": "LegendItem", "size": 4614}, + {"name": "LegendRange", "size": 10530} + ] + }, + { + "name": "operator", + "children": [ + { + "name": "distortion", + "children": [ + {"name": "BifocalDistortion", "size": 4461}, + {"name": "Distortion", "size": 6314}, + {"name": "FisheyeDistortion", "size": 3444} + ] + }, + { + "name": "encoder", + "children": [ + {"name": "ColorEncoder", "size": 3179}, + {"name": "Encoder", "size": 4060}, + {"name": "PropertyEncoder", "size": 4138}, + {"name": "ShapeEncoder", "size": 1690}, + {"name": "SizeEncoder", "size": 1830} + ] + }, + { + "name": "filter", + "children": [ + {"name": "FisheyeTreeFilter", "size": 5219}, + {"name": "GraphDistanceFilter", "size": 3165}, + {"name": "VisibilityFilter", "size": 3509} + ] + }, + {"name": "IOperator", "size": 1286}, + { + "name": "label", + "children": [ + {"name": "Labeler", "size": 9956}, + {"name": "RadialLabeler", "size": 3899}, + {"name": "StackedAreaLabeler", "size": 3202} + ] + }, + { + "name": "layout", + "children": [ + {"name": "AxisLayout", "size": 6725}, + {"name": "BundledEdgeRouter", "size": 3727}, + {"name": "CircleLayout", "size": 9317}, + {"name": "CirclePackingLayout", "size": 12003}, + {"name": "DendrogramLayout", "size": 4853}, + {"name": "ForceDirectedLayout", "size": 8411}, + {"name": "IcicleTreeLayout", "size": 4864}, + {"name": "IndentedTreeLayout", "size": 3174}, + {"name": "Layout", "size": 7881}, + {"name": "NodeLinkTreeLayout", "size": 12870}, + {"name": "PieLayout", "size": 2728}, + {"name": "RadialTreeLayout", "size": 12348}, + {"name": "RandomLayout", "size": 870}, + {"name": "StackedAreaLayout", "size": 9121}, + {"name": "TreeMapLayout", "size": 9191} + ] + }, + {"name": "Operator", "size": 2490}, + {"name": "OperatorList", "size": 5248}, + {"name": "OperatorSequence", "size": 4190}, + {"name": "OperatorSwitch", "size": 2581}, + {"name": "SortOperator", "size": 2023} + ] + }, + {"name": "Visualization", "size": 16540} + ] + } + ] +} \ No newline at end of file diff --git a/treelist/demo/index.html b/treelist/demo/index.html new file mode 100644 index 0000000..3f057ae --- /dev/null +++ b/treelist/demo/index.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/treelist/demo/index.js b/treelist/demo/index.js new file mode 100644 index 0000000..ed8bf7c --- /dev/null +++ b/treelist/demo/index.js @@ -0,0 +1,77 @@ +/** + * + * @author Patrick Oladimeji + * @date 5/24/14 13:32:40 PM + */ +/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ +/*global d3*/ +var id = 0; +d3.json("flare.json", function (err, data) { + var tree = d3.layout.treelist() + .childIndent(10) + .nodeHeight(30); + + + var ul = d3.select("body").append("ul").classed("treelist", "true"); + + function render(data, parent) { + var nodes = tree.nodes(data), + duration = 250; + function toggleChildren(d) { + if (d.children) { + d._children = d.children; + d.children = null; + } else if (d._children) { + d.children = d._children; + d._children = null; + } + } + + var nodeEls = ul.selectAll("li.node").data(nodes, function (d) { + d.id = d.id || ++id; + return d.id; + }); + //entered nodes + var entered = nodeEls.enter().append("li").classed("node", true) + .style("top", parent.y +"px") + .style("opacity", 0) + .style("height", tree.nodeHeight() + "px") + .on("click", function (d) { + toggleChildren(d); + render(data, d); + }) + .on("mouseover", function (d) { + d3.select(this).classed("selected", true); + }) + .on("mouseout", function (d) { + d3.selectAll(".selected").classed("selected", false); + }); + //add arrows if it is a folder + entered.append("span").attr("class", function (d) { + var icon = d.children ? " glyphicon-chevron-down" : d._children ? "glyphicon-chevron-right" : ""; + return "caret glyphicon " + icon; + }); + //add icons for folder for file + entered.append("span").attr("class", function (d) { + var icon = d.children || d._children ? "glyphicon-folder-close" : "glyphicon-file"; + return "glyphicon " + icon; + }); + //add text + entered.append("span").attr("class", "filename") + .html(function (d) { return d.name; }); + //update caret direction + nodeEls.select("span.caret").attr("class", function (d) { + var icon = d.children ? " glyphicon-chevron-down" : d._children ? "glyphicon-chevron-right" : ""; + return "caret glyphicon " + icon; + }); + //update position with transition + nodeEls.transition().duration(duration) + .style("top", function (d) { return (d.y - tree.nodeHeight()) + "px";}) + .style("left", function (d) { return d.x + "px"; }) + .style("opacity", 1); + nodeEls.exit().remove(); + } + + render(data, data); + +}); \ No newline at end of file diff --git a/treelist/treelist.js b/treelist/treelist.js index a32d32c..7d61f13 100644 --- a/treelist/treelist.js +++ b/treelist/treelist.js @@ -11,9 +11,8 @@ "use strict"; var hierarchy = d3.layout.hierarchy().sort(null).value(null), nodeHeight = 20, - childIndent = 20, - size; - + childIndent = 20; + var treelist = function (d, i) { var nodes = hierarchy.call(this, d, i), root = nodes[0]; @@ -29,7 +28,6 @@ }); } } - /** visit all nodes in the tree and set the x, y positions */ @@ -44,18 +42,12 @@ n.x = x; }, node); - //update size after visiting - size = [x, y]; } layout(root); return nodes; }; - - treelist.size = function () { - return size; - }; - + treelist.nodeHeight = function (d) { if (arguments.length) { nodeHeight = d; @@ -72,15 +64,7 @@ return childIndent; }; - d3.rebind(treelist, hierarchy, "sort", "children", "value"); treelist.nodes = treelist; - treelist.links = function (nodes) { - return d3.merge(nodes.map(function (parent) { - return (parent.children || []).map(function (child) { - return {source: parent, target: child}; - }); - })); - }; return treelist; }; From 7311f8d658c8ce29591a783ac4198c2ff38a8acd Mon Sep 17 00:00:00 2001 From: Patrick Oladimeji Date: Sat, 24 May 2014 16:39:37 -0700 Subject: [PATCH 3/3] added thumbnail and updated read me to include screenshot --- treelist/README.md | 4 +++- treelist/thumbnail.png | Bin 0 -> 61095 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 treelist/thumbnail.png diff --git a/treelist/README.md b/treelist/README.md index ac50ce5..2bfb033 100644 --- a/treelist/README.md +++ b/treelist/README.md @@ -1 +1,3 @@ -This plugin adds a treelayout for displaying a tree in a file system type list view. See the demo directory for how to use or visit [http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7](http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7) to the a treelist rendering of the flare.json data used in many d3 tree layout examples. \ No newline at end of file +This plugin adds a treelayout for displaying a tree in a file system type list view. See the demo directory for how to use or visit [http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7](http://bl.ocks.org/thehogfather/0e48ec486abbd5be17d7) to the a treelist rendering of the flare.json data used in many d3 tree layout examples. + +![Screenshot](thumbnail.png?raw=true) \ No newline at end of file diff --git a/treelist/thumbnail.png b/treelist/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..704f36530cfdd8df0e4e110e1235997f9133309f GIT binary patch literal 61095 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 c4?w%esQTv