Перейти к публикации

popup menu


Рекомендованные сообщения

Как сделать, чтобы мой пункт popup menu был активным/неактивным в зависимости от каких-то условий?

Ссылка на сообщение
Поделиться на других сайтах


Как сделать, чтобы мой пункт popup menu был активным/неактивным в зависимости от каких-то условий?

поиграйтесь с тегом visibleWhen
Ссылка на сообщение
Поделиться на других сайтах

да играюсь.

вот например у TCComponent есть свойство object_type и я хочу только для определенного типа показывать меню. В plugin.xml:

<visibleWhen>

<iterate ifEmpty="false">

<adapt type="com.teamcenter.rac.kernel.TCComponent">

<and>

<test property="com.teamcenter.rac.kernel.TCComponent.object_type"

value="ItemRevision" />

</and>

</adapt>

</iterate>

</visibleWhen>

Меню теперь вообще не появляется. Наверное свойство не так называется, а вот где это посмотреть?

Ссылка на сообщение
Поделиться на других сайтах

<test property="com.teamcenter.rac.kernel.TCComponent.object_type"

value="ItemRevision" />

нет такого propertyTester в com.teamcenter.rac.common.testers . среди созданных и подключенных в этом plugin.xml есть подходящий <propertyTester class="com.teamcenter.rac.common.testers.TCComponentTypeClassTester" id="com.teamcenter.rac.kernel.TCComponentTypeClassTester" namespace="com.teamcenter.rac.kernel.TCComponent" properties="typeClass,resolvedType,underlyingComponentTypeClass" type="com.teamcenter.rac.kernel.TCComponent"/>

поэтому в вашем плагин.хмл следует проверять

<test property="com.teamcenter.rac.kernel.TCComponent.typeClass"

value="ItemRevision" />

или если попробовать другой тестер

<propertyTester class="com.teamcenter.rac.common.testers.TCComponentTypeTester" id="com.teamcenter.rac.kernel.TCComponent.TypeTester" namespace="com.teamcenter.rac.kernel.TCComponent" properties="type" type="com.teamcenter.rac.kernel.TCComponent"/>

то следует попробовать так

<test property="com.teamcenter.rac.kernel.TCComponent.type"

value="ItemRevision" />

то есть смысл в том что если таргетом будет TCComponent с типом ItemRevision то выдается true и как бы условие visibleWhen или activeWhen, смотря что задали , должно отработать

Ссылка на сообщение
Поделиться на других сайтах

поэтому в вашем плагин.хмл следует проверять

<test property="com.teamcenter.rac.kernel.TCComponent.typeClass"

value="ItemRevision" />

не подходит. Тогда срабатывает на ВСЕ типы ревизий атема. таким образом можно отделить только от айтемов, папок и т.д., а именно сам тип ревизии он не проверяет.

Вот тестер нашла TCComponentPropertyValueTester, как раз им скорее можно проверить свойство объекта, а как узнать, что ему передавать в качестве test property?

Изменено пользователем Geksa
Ссылка на сообщение
Поделиться на других сайтах

или если попробовать другой тестер

<propertyTester class="com.teamcenter.rac.common.testers.TCComponentTypeTester" id="com.teamcenter.rac.kernel.TCComponent.TypeTester" namespace="com.teamcenter.rac.kernel.TCComponent" properties="type" type="com.teamcenter.rac.kernel.TCComponent"/>

то следует попробовать так

<test property="com.teamcenter.rac.kernel.TCComponent.type"

value="юзер_тип_Revision" />

а так пробовали?

вот такая вставка работает 100%

<extension

		point="org.eclipse.ui.handlers">

		<handler

			commandId="com.teamcenter.rac.open"

			class="com.mycom.handlers.MyHandler">

				<activeWhen>

				<iterate

					ifEmpty="false">

					<and>

					<adapt

							type="com.teamcenter.rac.kernel.TCComponent">

							<test 

								property="com.teamcenter.rac.kernel.TCComponent.type"

								value="Text">

							</test>

					</adapt>

					</and>

				</iterate>

			</activeWhen>

		</handler>

	</extension>

переопределяет команду открыть в ТС своим классом и только для наборов данных с типом Текст.

анализируйте и делайте выводы.....

Изменено пользователем Wise_Owl
Ссылка на сообщение
Поделиться на других сайтах

Да,с этим тестером работает. Спасибо. А если проверять какое-то свойство объекта?

Ссылка на сообщение
Поделиться на других сайтах

можно попробовать этим

<propertyTester class="com.teamcenter.rac.common.testers.TCComponentPropertyValueTester" id="com.teamcenter.rac.kernel.TCComponentPropertyValueTester" namespace="com.teamcenter.rac.kernel.TCComponent" properties="property" type="com.teamcenter.rac.kernel.TCComponent"/>

Вот тестер нашла TCComponentPropertyValueTester, как раз им скорее можно проверить свойство объекта, а как узнать, что ему передавать в качестве test property?

сопоставьте к примеру вот эту запись реристрации тестера

<propertyTester class="com.teamcenter.rac.common.testers.AIFClipboardEmptyTester" id="com.teamcenter.rac.aif.AIFClipboard.AIFClipboardEmptyTester" namespace="com.teamcenter.rac.aif.AIFClipboard" properties="isEmpty" type="com.teamcenter.rac.kernel.TCComponent"/>

с куском хмл, который проверяет условие не пустого буфера

<iterate ifEmpty="false">

					<adapt type="com.teamcenter.rac.kernel.TCComponent">

						<test property="com.teamcenter.rac.aif.AIFClipboard.isEmpty" value="false"/>

					</adapt>

				</iterate>
анализируйте, делайте выводы.....учитесь Изменено пользователем Wise_Owl
Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Как можно сделать LOVPopupButton на форме неактивной? устанавливаю setEnabled(false), но кнопка всё равно активна.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...