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

иконки


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

Есть 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 пользователей

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




  • Сообщения

    • Eng.Destructor
      Сделал так: Добавил новый формат fs2 25 0 4 0 3t #No decimal, absolute, 3 поменял  result = newfs (25, thddepth$) # изменил 16 на 25 result = newfs (25, thdfirst$) # изменил 16 на 25 result = newfs (25, thdlast$) # изменил 16 на 25 result = newfs (25, thdfinish$) # изменил 16 на 25 Спасибо за наводку
    • arsenev
    • teqn1c
      Есть динозавр stratos plus на io mb -  В нем всего 256 КБ памяти  есть ли возможность через режим rtm подгружать программу с ПК через rs 232 ? В шкафу ещё есть разъем под карту но с нее получается только считать и опять таки сохранить на память станка. Соединение ПК-станок настроил ,есть возможность отправлять на него через альфакам программы ,но они сохраняются в память станка. В альфакам есть непрерывная отправка - она отправляет - но в режиме rtm ничего не происходит 
    • Metal_Cutter
      @arsenev В FC такого нет.
    • Bot
      HCL CAMWorks 2024, новая версия программного обеспечения CAM, полностью интегрированного с SOLIDWORKS и Solid Edge включает в себя передовые технологии, позволяющие сократить время программирования, уменьшить время цикла обработки и увеличить срок службы инструмента. Смотреть полностью
    • Александр1979
      Руководство для дусь взял здесь: https://www.cnczone.com/forums/daewoo-doosan/413426-every-doosan-service-manual-currently-auto-updated.html
    • ss_162
      Может есть у кого оригинальные резцы на продажу? Нужен резец SFCC 50 - это маркировка D`Andrea, или Искаровский, он такой же, только маркировка у него другая.
    • Aveovar
      Подскажи, как ты сделал несколько экранов с разных ракурсов
    • Kaktusito
      Всем доброго времени суток! Только начал заниматься редактированием постпроцессоров и сразу же столкнулся с проблемой. Суть в том что я нашел по форумам постпроцессоры с SolidCAM 2015 года, ибо у меня в версии 2022 года их почти нет, а мне нужен был более менее адекватный пост под токарку.  Закинул все файлы Gpptool 2015 года в свою папку, выбрал подходящий мне станок и начал генерировать УП.  Как вы поняли ничего мне не сгенерировало. Пишет ошибку "please change the name "Bore" in the VMID. This name is reserved for use in the GPP"  Сделал то что просит ошибка и был уверен что это не поможет, так оно и вышло. По итогу начало долбить другие ошибки. Очень еще не понятно с файлами которые я кидал в папку Gpptool потому что вместо стандартных двух у меня их аж 4 штуки.: gpp с циклами, gpp обычный, PRP и vmid. Хотя я знаю что в версиях вроде после 2017 уже идет по 2 файла. Что я только не пробовал кидал только 2 файла, кидал все 4, кидал содержимое файла с циклами в основной gpp, шёл по пути ошибок и исправлял что меня просили. В общем ничего не помогает  От безисходности пишу сюда, вы моя последняя надежда понять что происходит и почему ничего не работает. Заранее благодарю за ответы!
    • Krusnik
×
×
  • Создать...