You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dl...@apache.org on 2017/11/02 03:21:14 UTC
[03/50] [abbrv] incubator-edgent git commit: - Re added the original
d3.legend.js version (however in a subdirectory) to get things working again.
- Re added the original d3.legend.js version (however in a subdirectory) to get things working again.
Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/20a9eef9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/20a9eef9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/20a9eef9
Branch: refs/heads/develop
Commit: 20a9eef9d4600c949e978e08ba9d746acf259b5c
Parents: 3be8c49
Author: Christofer Dutz <ch...@c-ware.de>
Authored: Tue Oct 24 08:47:30 2017 +0200
Committer: Christofer Dutz <ch...@c-ware.de>
Committed: Tue Oct 24 08:47:30 2017 +0200
----------------------------------------------------------------------
console/servlets/pom.xml | 23 ++-
.../main/webapp/js/ext/d3.legend/d3.legend.js | 191 +++++++++++++++++++
2 files changed, 212 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/20a9eef9/console/servlets/pom.xml
----------------------------------------------------------------------
diff --git a/console/servlets/pom.xml b/console/servlets/pom.xml
index db097fa..3ceeaec 100644
--- a/console/servlets/pom.xml
+++ b/console/servlets/pom.xml
@@ -47,6 +47,25 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>license-check</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <excludes combine.children="append">
+ <!-- TODO: Still got one unlicensed file in there ... -->
+ <exclude>src/main/webapp/js/ext/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<configuration>
@@ -112,7 +131,7 @@
</executions>
</plugin>
<!-- Download JavaScript form GitHub -->
- <plugin>
+ <!--plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.2.1</version>
@@ -130,7 +149,7 @@
</configuration>
</execution>
</executions>
- </plugin>
+ </plugin-->
<plugin>
<!-- Included to enable "mvn tomcat:run" and have a running
console server without using the server jar.
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/20a9eef9/console/servlets/src/main/webapp/js/ext/d3.legend/d3.legend.js
----------------------------------------------------------------------
diff --git a/console/servlets/src/main/webapp/js/ext/d3.legend/d3.legend.js b/console/servlets/src/main/webapp/js/ext/d3.legend/d3.legend.js
new file mode 100644
index 0000000..b225804
--- /dev/null
+++ b/console/servlets/src/main/webapp/js/ext/d3.legend/d3.legend.js
@@ -0,0 +1,191 @@
+// d3.legend.js
+// (C) 2012 ziggy.jonsson.nyc@gmail.com
+// MIT licence
+
+(function() {
+ d3.legend = function(g, chartSvg, pItems, legendTitle) {
+ g.each(function() {
+ var g= d3.select(this);
+ var items = {};
+ var svg = !chartSvg ? d3.select(g.property("nearestViewportElement")) : chartSvg;
+ var isTupleFlowLegend = false;
+ var isRect = function(d) {
+ var k = d.key.toUpperCase();
+ return k.startsWith("COUNTEROP")
+ || k.startsWith("STREAMSCOPE");
+ };
+
+ var legendPadding = g.attr("data-style-padding") || 5,
+ lTitleItems = g.selectAll(".legend-title-items").data([true]),
+ lb = g.selectAll(".legend-box").data([true]),
+ li = g.selectAll(".legend-items").data([true])
+
+ lTitleItems.enter().append("g").classed("legend-title-items", true)
+ lb.enter().append("rect").classed("legend-box",true)
+ liG = li.enter().append("g").classed("legend-items",true)
+
+ if (pItems) {
+ pItems.forEach(function(p){
+ if (p.idx !== undefined) {
+ items[p.name] = {color: p.fill, idx: p.idx};
+ isTupleFlowLegend = true;
+ } else {
+ items[p.name] = {color: p.fill};
+ isTupleFlowLegend = false;
+ }
+ });
+ } else {
+ svg.selectAll("[data-legend]").each(function() {
+ var self = d3.select(this);
+ items[self.attr("data-legend")] = {
+ pos : self.attr("data-legend-pos") || this.getBBox().y,
+ color : self.attr("data-legend-color") != undefined ? self.attr("data-legend-color") : self.style("fill") != 'none' ? self.style("fill") : self.style("stroke")
+ }
+ });
+ }
+
+ if (isTupleFlowLegend)
+ items = d3.entries(items).sort(
+ function(a,b) {
+ if (a.value.idx < b.value.idx) {
+ return -1;
+ } else if (a.value.idx > b.value.idx) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+ else {
+ items = d3.entries(items).sort(
+ function(a,b) {
+ // rect before circle - graphic positioning code below
+ var ra = isRect(a);
+ var rb = isRect(b);
+ if (ra && !rb) {
+ return -1;
+ } else if (!ra && rb) {
+ return 1;
+ }
+ if (a.key < b.key) {
+ return -1;
+ } else if (a.key > b.key) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+ }
+
+ li.selectAll("text")
+ .data(items,function(d) {
+ return d.key}
+ )
+ .call(function(d) { d.enter().append("text")})
+ .call(function(d) { d.exit().remove()})
+ .attr("y",function(d,i) { return i+"em"})
+ .attr("x","1.5em")
+ .text(function(d) {
+ return d.key;
+ })
+
+ var legendOpacity = 0.7;
+ if (legendTitle && legendTitle === "Stream tags") {
+ legendOpacity = 1.0;
+ li.selectAll("rect")
+ .data(items,function(d) {
+ return d.key}
+ )
+ .call(function(d) { d.enter().append("rect")})
+ .call(function(d) { d.exit().remove()})
+ .attr("y", function(d,i) {
+ return i-0.75+ "em"})
+ .attr("width", 10)
+ .attr("height", 8)
+ .style("fill",function(d) {
+ return d.value.color === "#c7c7c7" ? "#008080" : d.value.color;
+ })
+ .style("stroke", "none")
+ .style("fill-opacity", legendOpacity);
+ } else if (legendTitle && legendTitle === "Oplet kind" || legendTitle === "Tuple count"){
+ liG.selectAll("g")
+ .data(items, function(d) {
+ return d.key;
+ })
+ .enter()
+ .append(function(d) {
+ if (isRect(d)) {
+ return document.createElementNS(d3.ns.prefix.svg, 'rect');
+ } else {
+ return document.createElementNS(d3.ns.prefix.svg, 'circle');
+ }
+ });
+
+ // rects before circles
+ var count = 0;
+ li.selectAll("rect")
+ .attr("x", -3)
+ .attr("y", function(d,i) {
+ count++;
+ return i-0.75+ "em"})
+ .attr("width", legendTitle === "Oplet kind" ? 8 : 10)
+ .attr("height", 8)
+ .style("fill",function(d) {
+ return d.value.color
+ })
+ .style("stroke", "none")
+ .style("fill-opacity", legendOpacity);
+
+ li.selectAll("circle")
+ .attr("cy",function(d,i) {
+ return (i+count)-0.25+"em"})
+ .attr("cx",0)
+ .attr("r","0.4em")
+ .style("fill",function(d) {
+ return d.value.color
+ })
+ .style("fill-opacity", legendOpacity);
+
+ } else {
+ li.selectAll("circle")
+ .data(items,function(d) {
+ return d.key}
+ )
+ .call(function(d) { d.enter().append("circle")})
+ .call(function(d) { d.exit().remove()})
+ .attr("cy",function(d,i) { return i-0.25+"em"})
+ .attr("cx",0)
+ .attr("r","0.4em")
+ .style("fill",function(d) {
+ return d.value.color
+ })
+ .style("fill-opacity", legendOpacity);
+ }
+ // Reposition and resize the box
+ var lbbox = li[0][0].getBBox();
+ lb.attr("x",(lbbox.x-legendPadding))
+ .attr("y",(lbbox.y-legendPadding))
+ .attr("height",(lbbox.height+2*legendPadding))
+ .attr("width",((lbbox.width+12) + 2*legendPadding));
+
+ lTitleItems.attr("x", 0)
+ .attr("y", (lbbox.y - legendPadding - 15))
+ .attr("height",15)
+ .attr("width",(lbbox.width+2*legendPadding));
+ if (legendTitle) {
+ lTitleItems.selectAll("text")
+ .data([""],function(d) {
+ return legendTitle;
+ })
+ .call(function(d) { d.enter().append("text")})
+ .call(function(d) { d.exit().remove()})
+ .attr("y",function(d,i) { return "-2em"})
+ .attr("x",(lbbox.x-legendPadding))
+ .text(function(d) {
+ return legendTitle;
+ });
+ }
+
+ })
+ return g
+ }
+})()