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

иконки


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

Есть 2 айтема одинакового типа, но с разными свойствами. Можно ли каким-то образом сделать для них разные иконки не в зависимости от типа айтема, а в зависимости от какого-либо свойства?

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


В TC 9.1 в справке наталкивался на пример, когда можно над иконкой отображать другие картинки. В том конкретном случае вроде бы отображался карандашик.

Вобщем, ответ - можно видоизменять иконку. Но в каком разделе справки - не помню. То ли про BMID, то ли про кастомизацию

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

В TC 9.1 в справке наталкивался на пример, когда можно над иконкой отображать другие картинки. В том конкретном случае вроде бы отображался карандашик.

Вобщем, ответ - можно видоизменять иконку. Но в каком разделе справки - не помню. То ли про BMID, то ли про кастомизацию

Только с 9-ой версии? У нас 8.

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

В восьмой версии иконки менялись только в клиенте (если память не изменяет). Там была жесткая привязка иконки и объекта, причем иконку нужно было распространить на все компы. В 9 версии иконки объектов добавляются через BMIDE. Но опять же - жесткая привязка, только копировать клиентам не надо, само работает.

Так что ответ на ваш вопрос - 98% вероятности, что не получится. Можно в качестве эксперимента пробовать переписывать отображение дерева объектов в приложении "Мой Teamcenter", но это уже жуткое извращение :)

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

Добрый день!

Попробуйте использовать точку расширения com.teamcenter.rac.common.tcLabelProviderDelegates.

Каждый элемент labelProviderDelegate в plugin.xml может содержать элемент propertyDelegate, typeDelegate или noSelectionDelegate.

Нужно проделать следующее:

1. Создать свой проект-плагин в Eclipse.

2. Добавить dependency от com.teamcenter.rac.common

3. добавить расширение labelProviderDelegate для точки расширения com.teamcenter.rac.common.tcLabelProviderDelegates в plugin.xml собственного плагина.

4. Для propertyDelegate или typeDelegate указать в обязательном свойстве class класс, реализующий расширение (он должен быть подклассом DefaultLabelProviderDelegate)

5. Установить priority в значение 110 или больше.

Информация, приведенная выше, была получена в рамках тренинга от Сименс.

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

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

Информация, приведенная выше, была получена в рамках тренинга от Сименс.

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

ну как то более или менее получилось.

для начала просто попробовать изменить хоть что то в зависимости от значения какого- либо свойства.

после выполнения пункта 3(выше указанного) следует пункт 4 и в файл plugin.xml будетдобавлено к примеру так:

<extension point="com.teamcenter.rac.common.tcLabelProviderDelegates">

		<labelProviderDelegate>

			<propertyDelegate 

				class="com.mycom.LabelDelegate" 

				priority="110" propertyName="object_string">

			</propertyDelegate>

	   </labelProviderDelegate>

	</extension>

далее класс com.mycom.LabelDelegate

import org.eclipse.jface.resource.JFaceResources;

import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.Font;

import org.eclipse.swt.graphics.FontData;

import org.eclipse.swt.graphics.Image;

import org.eclipse.swt.widgets.Display;

import org.eclipse.ui.views.properties.IPropertySource;



import com.teamcenter.rac.kernel.TCComponent;

import com.teamcenter.rac.kernel.TCComponentDataset;

import com.teamcenter.rac.providers.delegates.DefaultLabelProviderDelegate;

import com.teamcenter.rac.util.AdapterUtil;



public class LabelDelegate extends DefaultLabelProviderDelegate {

	

	private  Font m_boldFont;

	private static final String[] PROPERTIES = { "object_string" };



	public LabelDelegate(){

		Font localFont = JFaceResources.getDefaultFont();

		FontData[] arrayOfFontData = localFont.getFontData();

		this.m_boldFont = new Font(Display.getDefault(), new FontData(arrayOfFontData[0].getName(), 14, SWT.ITALIC | SWT.BOLD));

	}



	public void setComponent(TCComponent paramTCComponent)

	  {

		if ((this.m_propertySource == null) || (!paramTCComponent.equals(AdapterUtil.getAdapter(this.m_propertySource, TCComponent.class))))

		  this.m_propertySource = ((IPropertySource)AdapterUtil.getAdapter(paramTCComponent, IPropertySource.class));

	  }

	

	public void dispose()

	  {

		if (this.m_boldFont != null)

		  this.m_boldFont.dispose();

	  }

	 public Font getFont(Object paramObject)

	  {

		String str = getProperty();

		if (("object_string".equals(str)))

		{

		  TCComponent localTCComponent = getTCComponent(paramObject);

		  if (((localTCComponent instanceof TCComponentDataset)) && (localTCComponent.getType().equals("Text")) )

			return this.m_boldFont;

		}

		return null;

	  }

	 protected boolean isPrimaryColumn()

	  {

		return true;

	  }

	 public Image getImage(Object paramObject)

	  {

		if (isPrimaryColumn())

		{

		  TCComponent localTCComponent = getTCComponent(paramObject);

		  if (localTCComponent != null)

			return getComponentImage(localTCComponent);

		}

		return null;

	  }



}

то есть по коду получается если видимым попадается набор данных типа Техт, то изменим его шрифт по умолчанию на тот что мы хотим, к примеру m_boldFont

ну и получим вот такую картинку в навигаторе

Изображение

пример конечно примитивный, но можно придумать накпример как хотел топикстартер..... допустим если свойство Масса у детали имеет значение больше какого то числа то меняется иконка детали, смешно конечно, но мало ли кому то нужно)))

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
    • gudstartup
      все что я написал в цитате выше по теме полная фигня в связи с вновь приобретённой информацией. можно менять любые компоненты в пределах серии чпу если только не меняете по или записываете oprminf но  всегда могут быть нюансы  @mrVladimir все должно получиться извините за то что выдал непроверенную информацию за мнение типа знающего эксперта оказывается я 
    • malvi.dp
      Какое у детали имя файла и как формируете Обозначение и Наименование? Вы каждое исполнение сохраняете в новый чертеж? Или это групповой чертеж? Если групповой-то имя конфигурации в нем быть не должно. Стоит ли галочка "Исполнение" "Из конфигурации"? На сколько мне не изменяет память макрос сохраняет файл чертежа с тем же именем что и файл модели в папке модели. В спецификации все правильно отображается, даже если знаков исполнений больше трех  
    • gudstartup
      и главная деталь чтобы на системе была remote option system а именно файл oprminf.000 c сертификатами и были ли проблемы с ними после замены компонентов.
    • boomeeeer
      с него родимого
    • Grundick
    • eljer0n
      Большое спасибо! Посмотрю. Но, судя по всему, даже если удастся заставить его сохранять чертеж с трехзначным исполнением, видимо, в той же спецификации правильного отображения не добиться. У Леона с товарищем был об этом разговор, что солид вроде как не воспринимает исполнения дальше двузначного. Хотя, может и я неправильно понял. Вернусь к этому вопросу чуть позже. Еще раз спасибо за совет.
×
×
  • Создать...