【问题标题】:Two-way syncing of data model with BeanNode presentation objects数据模型与 BeanNode 表示对象的双向同步
【发布时间】:2018-01-08 21:13:07
【问题描述】:

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

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

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

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

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

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

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

如何防止回显,更改通知不断在两个数据结构之间来回弹跳?

Netbeans 似乎是关于如何将应用程序放在一起的约定。这个数据建模问题有约定吗?

【问题讨论】:

    标签: java netbeans netbeans-platform


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      相关资源
      最近更新 更多