2016-09-29 3 views
1

Пожалуйста, ознакомьтесь с терпением, я старался изо всех сил, чтобы объяснить ситуацию, если нет, пожалуйста, комментарии -Как оцениваются свойства в eclipse?

У меня есть два плагина сказать A, B. В обоих плагинах я определил выражение «и» для команды. Одним из условий в выражении «и» является проверка свойства, допустим, myprop. A не зависит от B и B не зависит от A.

Существует тестер свойств, определенный в третьем плагине, который позволяет говорить C. A, B оба зависят от C.

И в четвертом плагине D определена точка расширения для org.eclipse.core.expressions.propertyTesters и список свойств, подлежащих тестированию тестером, определенным в плагине C.

A, B зависит от плагина D тоже.

Я вижу странное поведение в затмении - только когда перспектива, определенная плагином B, активна, вызывается тестер свойств для myprop. Итак, когда RCP запускается, если плагин B еще не активен, тестер свойств не тестирует свойство myprop и возвращает неожиданное значение, когда я нахожусь в перспективе плагина A.

Позже, когда я поднимаю перспективу плагина B, тестер свойств myprop и плагин A затем начинают работать должным образом.

Вопрос: Почему для тестера свойств необходим плагин B для активных? Как свойства, оцененные каркасом eclipse, есть порядок? или на самом деле я должен спросить: когда и как запускается тестер свойств для определенного свойства? Есть ли какая-либо документация об этом?

ответ

1

Возможно, вам нужно указать forcePluginActivation="true" на элементе вашего выражения, поскольку это звучит так, как плагин, содержащий тестер свойств, ничего не активировал.

+0

минут, прежде чем я понял, вы ответили на него. Да, мне нужно было указать «forcePluginActivation =« true », чтобы он работал. Но я приму свой ответ. У меня есть один вопрос. Используется ли 'forcePluginActivation' для плагина' D', где мой класс тестера свойств определен или плагин 'C', где определена точка расширения, в которой указан список проверяемых свойств? Я думаю, что это должно было быть применено к 'C', потому что тестер свойств попал для других свойств. – SomeDude

+0

Это будет плагин, содержащий класс тестера, который активирован. –

+0

На самом деле это не то, что я нашел, когда я установил точку останова в классе тестера, прежде чем я определил 'forcePluginActivation' как' true', точка останова была удалена, что говорит о том, что плагин, содержащий класс тестера, уже активирован, t знать о свойстве, которое плагин 'D' указывает в расширении' propertyTester'. – SomeDude

Смежные вопросы