- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例子: http://jsfiddle.net/yeehawjared/bawv0790/
我正在构建一个可以打开网页的应用程序,加载大型数据树结构的 JSON。 TreeModel.js 解析这个很好,一切都很好。
随着时间的推移,浏览器以更小的数据树的形式接收更新。我正在尝试将 additionalData
与 masterTree
结合起来。我想不出一种方法可以同时遍历两者并进行逐个节点的比较。如果可以的话,聚合 node.model.x
属性并添加不存在的子项会很容易。
在下面的代码中,我遍历了额外的数据 - 但我不知道如何有效地将新节点组合到 masterTree
。有人可以用伪代码帮助我的方法或指出正确的方向吗?持续更新我的 masterTree
的最佳方式是什么?
非常感谢。
var tree = new TreeModel();
var masterTree = tree.parse(data1);
var additionalData = tree.parse(data2);
additionalData.walk(function (node) {
// compare additionalData to the masterTree
if (node.model.id == masterTree.model.id) {
console.debug('match, combine the attributes')
} else {
// add the additional node to the materTree
}
});
最佳答案
看看这个 fiddle 的例子:http://jsfiddle.net/bawv0790/1/
重要的功能是mergeNodes
。它是一个递归函数,接收 2 个节点 n1 和 n2。首先,它根据 n2 更新 n1 的大小,如果 n2 个 child 缺失,则将它们添加到 n1,如果存在,则合并它们。
function mergeNodes(n1, n2) {
var n1HasN2Child, i, n2Child;
// Update the sizes
updateSize(n1, n2);
// Check which n2 children are present in n1
n1HasN2Child = n2.children.map(hasChild(n1));
// Iterate over n2 children
for (i = 0; i < n1HasN2Child.length; i++) {
n2Child = n2.children[i];
if (n1HasN2Child[i]) {
// n1 already has this n2 child, so lets merge them
n1Child = n1.first({strategy: 'breadth'}, idEq(n2Child));
mergeNodes(n1Child, n2Child);
} else {
// n1 does not have this n2 child, so add it
n1.addChild(n2Child);
}
}
}
如果对 child 进行排序,检查 n1 中有哪些 n2 个 child 可以大大改进。
关于javascript - 使用 treemodel.js 合并两棵树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308342/
我正在为机器人编写一个java插件,其中涉及使用动态JTree。当使用插件的程序关闭然后重新打开时,任何变量和对象都需要存储在 robotsDataModel 中。但是,我无法在程序数据模型中存储 J
我正在尝试实现自己的 TreeModel 以便在 TreeView 中使用。 我已经对 Gtk::TreeModel 进行了子类化,目前正在尝试用我自己的实现覆盖虚拟方法。 但我对它的基础知识有疑问。
我想建立一个TreeModel来自一些List包含源数据的 s。现在,有一个名为 DynamicUtilTreeNode 的实用程序类可以用来从数组、 vector 和哈希表构建树,但是……不能从列表
这里我有一个ManagePageSource,它使用zk的mvvm模式为TreeView提供模型。 ManagePageSource 有一个内部类 Node 来保存 treeNode 数据。 Node
我有一个自定义的 GenericTreeModel,它工作得很好。现在我希望用户能够使用拖放重新排列节点,所以我将一个节点移动到数据模型中的新父节点。然而,TreeModel 希望使用 row_has
我想要 2 个 TreeModel:第二个 TreeModel 的根是第一个 TreeModel 的节点(因此,第二个 TreeModel 是第一个 TreeModel 的子树)。 我认为我可以通过克
当我第一次看到 javax.swing.tree.TreeModel 时,我认为编写所有方法的工作量相当大。然后我找到了 DefaultTreeModel 并认为它可以很容易地通过适配器模式用于文件树
目前,我正在开发一个多线程应用程序。我使用TreeView来显示每个线程的状态,每个线程一行。 主要有两类: 包含TreeView的主要GUI类 类,用于处理线程 将Gtk::TreeModel::i
作为法国人,我的英语不好,抱歉。 我将使用 python 和 pygtk 运行的应用程序升级为适用于 Gtk3 的 python 和 pyobject。很难找到关于 pyGobject 的完整文档,我
我使用自定义模型来填充TreeView并尝试使用 for ix in self.dataView.selectedIndexes(): text = ix.da
我有一系列线程定期检索 RSS 提要,并希望使用 PropertyChangeSupport 刷新自定义 JTree。但是,它使用实现 TreeModel 的自定义类,我不确定如何触发自动更改。这是可
我正在开发一个世界模拟,其中世界表示为: public class World { Turtle turtle; // .. basic constructors, getters,
我真的必须自己实现深度克隆吗?或者是否有任何库方法可以获取 JTree 或其 TreeModel 的深度克隆? 最佳答案 正如@SteveKuo所说,为什么需要克隆TreeModel? TreeMod
我有以下模型: public class CategoryModel { public String id; public String name; public String
我有一个对象层次结构,我想使用 JTree 和 TreeModel 显示它。层次结构的每个级别都是一个不同的类。 我见过的所有 JTree 和 TreeModel 示例在树的整个层次结构中都有一个公共
场景:客户端登录,创建自己的 TableModel 和 TreeModel,并能够在稍后访问它。 TableModel 和 TreeModel,由 Java 类对象和字符串组成。 我如何才能将其存储在
例子: http://jsfiddle.net/yeehawjared/bawv0790/ 我正在构建一个可以打开网页的应用程序,加载大型数据树结构的 JSON。 TreeModel.js 解析这个很
我有一个使用 DefaultTreeModel 的 Jtree,每个单独的节点都包含一个包含各种字符串字段的 UserObject。 我想通过递归遍历找到并选择一个节点,直到它找到具有匹配其中一个字段
我有一个自定义的 JTree 和一个自定义的 JModel;当我给它一个新模型时,我希望 JTree 能够“自动扩展”。目前,它只是将所有节点折叠到根。 这是一个例子: private class C
我需要克隆一棵我用 TreeModel.js 制作的树.我真正需要做的是复制它,对其进行更改并检查节点数量是否减少。如果是这样,恢复到原来的树。这是我到目前为止所做的复制它的一个小例子,这是不正确的:
我是一名优秀的程序员,十分优秀!