需要在D3中过滤后重新计算分区布局?

时间:2013-12-23 22:38:15

标签: filter d3.js partition

我正在使用Zoomable Icicle布局示例来查看文件夹层次结构。

我目前使用过滤功能如下:

var data = partition.nodes(root).filter(
        function (d) {
            return d.parent == null ? d.children && d.dateAccessed > formattedD : d.children && d.dateAccessed > formattedD && d.parent.dateAccessed > formattedD;
        });

根据文件夹的dateAccessed是否在特定日期之后,过滤掉是否需要显示/不显示文件夹(包含其所有子文件夹)。

然后我使用此数据变量的示例代码来绘制分区。

rect = rect
               .data(data)
              .enter().append("rect")
              .attr("x", function (d) { console.log(!d.children); return x(d.x); })
              .attr("y", function (d) { return y(d.y); })
              .attr("width", function (d) { return x(d.dx); })
              .attr("height", function (d) { return y(d.dy); })
              .attr("fill", function (d) {
                  return (type == "Documents") ? '#9370DB' : (type == "Pictures") ? '#87CEFA' : (type == "Music") ? '#6B8E23' : (type == "Videos") ? '#F0E68C' : "#000000";
              })
              .on("click", clicked);

我需要布局来重新计算放置文件夹的位置,因为它当前保留了已过滤文件夹的空间(请参阅附图)。 (请原谅图像中文件夹的分解,就是在阅读时的情况。)

image

非常感谢。

0 个答案:

没有答案