Представление «Только для чтения» для редактора Eclipse - PullRequest
4 голосов
/ 05 марта 2012

Я создаю редактор с древовидным представлением в текстовом редакторе.У меня есть представление свойств, прикрепленное к нему, так что при выборе каждого элемента дерева отображаются свойства элемента.Для этого каждый элемент дерева является классом, который реализует IPropertySource.Таким образом, значения свойств получаются путем переопределения методов (таких как getPropertyDescriptors, getPropertyValue, setPropertyValue и т. Д.) Класса IPropertySource.Значения свойств отображаются правильно.Однако я требую, чтобы значения в представлении свойств были доступны только для чтения.В настоящее время имена не редактируются.Но при выборе одной из строк представления свойства значение этого свойства можно редактировать.Как сделать все значения свойств в представлении свойств доступными только для чтения (недоступны для редактирования)?

Спасибо!

1 Ответ

4 голосов
/ 05 марта 2012

Если вы используете стандартную страницу свойств из Eclipse, то от реализации IPropertyDescriptor, возвращаемой IPropertySource.getPropertyDescriptors, зависит, будет ли ваше свойство редактироваться в представлении.

Если вы посмотрите на JavaDoc IPropertyDescriptor, вы увидите следующее:

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 должно сработать.

...