Java NetBeans平台-如何在属性开始/结束编辑时获取回调

Java NetBeans平台-如何在属性开始/结束编辑时获取回调,java,netbeans,properties,netbeans-platform,Java,Netbeans,Properties,Netbeans Platform,在我的域中,有一些对象通过一个单独的进程不断更新,我想要一个PropertySheetView来显示不断变化的属性。当前实现的设置使基础域模型对象是不可变的,因此,当它发生更改时,将发布一个具有相应ID的新对象。此时,包装对象的我的节点已订阅,获取具有匹配ID的更新对象,并重新创建工作表(通过createSheet())并调用带有更新信息的设置表。这在始终显示域模型对象的最新版本时效果很好 但是,某些属性不是只读的,而是可以设置的。我想在编辑属性时,锁定图纸,防止其在行或图纸的基础上被更新/覆盖

在我的域中,有一些对象通过一个单独的进程不断更新,我想要一个PropertySheetView来显示不断变化的属性。当前实现的设置使基础域模型对象是不可变的,因此,当它发生更改时,将发布一个具有相应ID的新对象。此时,包装对象的我的节点已订阅,获取具有匹配ID的更新对象,并重新创建工作表(通过createSheet())并调用带有更新信息的设置表。这在始终显示域模型对象的最新版本时效果很好

但是,某些属性不是只读的,而是可以设置的。我想在编辑属性时,锁定图纸,防止其在行或图纸的基础上被更新/覆盖。为了做到这一点,我需要监听编辑开始和结束调用,以便知道何时可以安全地再次更新工作表

这对我的申请至关重要;现在,在工作表刷新和编辑消失之前,您无法输入新值

如果重要的话,我使用的是自定义PropertyEditorSupport,但是默认的InplaceEditor

我在NetBeans源代码中做了很多搜索,没有看到任何公开的API设置来监听这些东西

(org.openide.explorer.propertysheet)公开了addCellEditorListener方法,但是A)我不知道如何在SheetCellEditor实例上获得句柄,B)SheetCellEditor公开的方法被EditingCanceld和editingStopped-没有开始编辑的回调!看起来很傻。SheetTable和BaseTable也会公开这个属性,因为它们扩展了JTable,但我也不知道如何获得它们的句柄

我注意到该接口需要方法(),如果可以编辑单元格,该方法应该返回true,因此编辑开始。但是,这是由SheetCellEditor实现的,它不是一个公共类,我不知道如何获取对它的引用


谢谢您的帮助。

我能想到的最佳解决方案如下:

创建自定义特性编辑器。使该编辑器实现InplaceEditor。返回作为文本字段的StringInplaceEditor。将焦点侦听器附加到该文本字段。当焦点位于文本字段中时,将对其进行编辑。否则就不是了