使用BeanNode表示对象双向同步数据模型

时间:2018-01-08 21:13:08

标签: java netbeans netbeans-platform

我有兴趣将应用程序移植到netbeans平台,但我很难理解如何保持节点与它们最新包装的对象之间的连接。

现有应用程序的主要组件是数据模型,它是pojo / javabean对象的分层组。一些对象是用于分组的容器,其他对象是叶节点类型。该模型通常具有数百个对象,最深的嵌套深度约为5-6个对象。

我理解如何获取我的数据模型并实例化BeanNode对象树:创建将遍历数据模型并创建可比较的BeanNode树的ChildFactory类。到现在为止还挺好。一旦我有了Node结构,我就可以添加一个资源管理器来显示数据,然后添加动作来修改节点(添加/删除/移动)。

对节点的更改必须传播回数据模型。该模型还可以通过应用程序中与netbeans平台无关的事件进行更改,并且这些更改必须传播到Node层次结构。

是否有可用于管理节点树和数据模型之间同步的标准习惯用法或Netbean功能?

到目前为止,我的想法是: 为了使节点与数据模型保持同步,我必须让节点监听数据模型的变化,数据模型将触发变更事件。每个Node对象都将侦听正在包装的bean的更改,并做出相应的反应。

要让数据模型跟上节点表示的变化,我可以在实现添加/删除/移动/等操作的actionPerformed方法中调用数据模型上的方法。

如何防止回显,更改通知在两个数据结构之间来回反复?

Netbeans似乎完全是关于如何将应用程序放在一起的约定。是否存在此数据建模问题的约定?

1 个答案:

答案 0 :(得分:0)

"对节点的更改必须传播回数据模型。该模型还可以通过应用程序中与netbeans平台无关的事件进行更改,并且这些更改必须传播到Node层次结构。"

如果更改传播回您的数据模型,您只需在创建时将数据模型传递给节点,并对同一实例进行所有更改。

直接对需要传播到注释的数据模型所做的更改将要求您重新创建将ChildrenFactory传递给您的元素列表或使用LookupListener的节点。