Vaadin BeanItemContainer,是否设置为只读?

Vaadin BeanItemContainer,是否设置为只读?,vaadin,vaadin7,Vaadin,Vaadin7,瓦丁7.6.2 我已经创建了一个静态BeanItemContainer,并希望将其设置为只读。这可以直接或间接执行吗?您可以将属性设置为只读。因此,您可以遍历属性并将BeanItemContainer中的所有属性设置为只读。BeanItemContainer上没有用于此目的的方法,因此您必须手动执行此操作 请注意,或组件可以是。正如Dragan Radevic在下面指出的,默认情况下网格不允许编辑,但您可以通过调用grid.setEditorEnabled(true)来改变其行为。或者,如果您正

瓦丁7.6.2


我已经创建了一个静态BeanItemContainer,并希望将其设置为只读。这可以直接或间接执行吗?

您可以将属性设置为只读。因此,您可以遍历属性并将BeanItemContainer中的所有属性设置为只读。BeanItemContainer上没有用于此目的的方法,因此您必须手动执行此操作


请注意,或组件可以是。

正如Dragan Radevic在下面指出的,默认情况下网格不允许编辑,但您可以通过调用
grid.setEditorEnabled(true)来改变其行为。或者,如果您正在实现自己的容器,则可以在实现
isReadOnly()
方法时定义哪些是可编辑的。此外,bean容器将隐式禁用对没有setter的bean属性的编辑。然而,在这一点上,你的问题太模糊了。请澄清您试图实现的目标…我关心的是一个公共或受保护的静态BeanItemContainer,其他人可以在其中调用add()或remove()(以及各种变体)。我尝试创建一个扩展BeanItemContainer的类,并将其称为BeanItemContainerReadOnly,在这里我只是重载了Add和Remove方法,并在调用它们时抛出,但它似乎运行得不太顺利。扩展容器有望起到作用。你的情况有什么问题。您能解释一下吗?可能解决方案是从scracth创建您自己的容器。有关此主题的有趣讨论,您可以在以下链接中找到: