我正在创建一个在文本编辑器中具有树视图的编辑器。我附加了一个属性视图,以便在选择每个树项时,显示项的属性。为此,每个树项都是一个实现IPropertySource的类。因此,通过覆盖IPropertySource类的方法(如getPropertyDescriptors,getPropertyValue,setPropertyValue等)来获取属性值。 属性值正确显示。但是,我要求属性视图中的值是只读的。目前,这些名称是不可编辑的。但是在选择属性视图的其中一行时,该属性的值是可编辑的。如何使属性视图的所有属性值都为只读(不可编辑)?
谢谢!
答案 0 :(得分:4)
如果您使用的是Eclipse的标准属性表页面,则它取决于IPropertyDescriptor
返回的IPropertySource.getPropertyDescriptors
实现是否以及如何在视图中编辑您的属性。
如果您查看IPropertyDescriptor
的JavaDoc,可以看到以下内容:
Clients may implement this interface to provide specialized property
descriptors; however, there are standard implementations declared in this
package that take care of the most common cases:
* PropertyDescriptor - read-only property
* TextPropertyDescriptor - edits with a TextCellEditor
* CheckboxPropertyDescriptor - edits with a CheckboxCellEditor
* ComboBoxPropertyDescriptor - edits with a ComboBoxCellEditor
* ColorPropertyDescriptor - edits with a ColorCellEditor
因此,对于您的情况,返回PropertyDescriptor
应该可以解决问题。