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

Как открыть диалог редактирования применяемости статуса?


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

Добрый день, как можно открыть диалог редактирования применяемости статуса из кода плагина ТС?

 

173d4e174880b5e2449e3c18b9355596.jpgAAAPxYl.jpg

 

BKn0kG0.jpg

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


UnPinned posts
4 часа назад, alexeytur сказал:

Добрый день, как можно открыть диалог редактирования применяемости статуса из кода плагина ТС?

 

173d4e174880b5e2449e3c18b9355596.jpgAAAPxYl.jpg

 

BKn0kG0.jpg

 AbstractAIFUIApplication localAbstractAIFUIApplication = AIFUtility.getCurrentApplication();
              try
              {
                OpenCommand localOpenCommand = (OpenCommand)AifrcpPlugin.getSessionService().getDefaultSession().getOpenCommand(new Object[] { localAbstractAIFUIApplication.getDesktop(), comp });
                localOpenCommand.executeModeless();
              }
              catch (Exception localException)
              {
              
              }

 

Где comp это сам объект статуса, надеюсь он у вас есть)

Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, butulec сказал:

 AbstractAIFUIApplication localAbstractAIFUIApplication = AIFUtility.getCurrentApplication();
              try
              {
                OpenCommand localOpenCommand = (OpenCommand)AifrcpPlugin.getSessionService().getDefaultSession().getOpenCommand(new Object[] { localAbstractAIFUIApplication.getDesktop(), comp });
                localOpenCommand.executeModeless();
              }
              catch (Exception localException)
              {
              
              }

 

Где comp это сам объект статуса, надеюсь он у вас есть)

 

 

Спасибо, а как заставить этот диалог висеть модально? Вызываю executeModal(), но код продолжает выполняться сразу за этой функцией.

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

Попробуйте основной код пустить по другому потоку, и остановите его пока работаете со статусами, ну как вариант)

Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, butulec сказал:

Попробуйте основной код пустить по другому потоку, и остановите его пока работаете со статусами, ну как вариант)

 

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

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

Вставил код

 

AbstractAIFUIApplication localAbstractAIFUIApplication = AIFUtility.getCurrentApplication();
              try
              {
                OpenCommand localOpenCommand = (OpenCommand)AifrcpPlugin.getSessionService().getDefaultSession().getOpenCommand(new Object[] { localAbstractAIFUIApplication.getDesktop(), comp });
                localOpenCommand.executeModal();
              }
              catch (Exception localException)
              {
              
              }

 

в главную процедуру хэндлера и все равно, диалог стартует не модально.

 

Может, это можно как-нибудь сделать?

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, lexx174 сказал:

а через интерфейс диалог всегда модально открывается?

Да, относительно главного окна тимцентра он открывается модально. Но мой плагин создает диалог на основе SWT-шного Dialog, на нем есть кнопка и по нажатии на нее я хотел открывать стандартный диалог редактирования статуса, а он открывается не модально.

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

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

Ссылка на сообщение
Поделиться на других сайтах
Только что, lexx174 сказал:

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

Также немодально открывается.

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

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

 

OpenCommand(AIFDesktop pAIFDesktop, Window pWindow, InterfaceAIFComponent pInterfaceAIFComponent)

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, lexx174 сказал:

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

 

OpenCommand(AIFDesktop pAIFDesktop, Window pWindow, InterfaceAIFComponent pInterfaceAIFComponent)

Спасибо, попробую.

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

Открывается он модально, то есть нельзя "пощелкать" по другим окнам пока не закроется окно с редактированием статуса

 

AbstractAIFUIApplication localAbstractAIFUIApplication = AIFUtility.getCurrentApplication();
              try
              {
                OpenCommand localOpenCommand = (OpenCommand)AifrcpPlugin.getSessionService().getDefaultSession().getOpenCommand(new Object[] { localAbstractAIFUIApplication.getDesktop(), comp });
                localOpenCommand.executeModal();
              }
              catch (Exception localException)
              {
              
              }

это стандартная классическая штука

Я думаю тут вопрос в том, чтобы приостановить выполнение кода, который идет, и продолжить его выполнение когда закроется эта стандартная форма редактирования статуса (если я правильно понял :D)

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, butulec сказал:

Открывается он модально, то есть нельзя "пощелкать" по другим окнам пока не закроется окно с редактированием статуса

 


AbstractAIFUIApplication localAbstractAIFUIApplication = AIFUtility.getCurrentApplication();
              try
              {
                OpenCommand localOpenCommand = (OpenCommand)AifrcpPlugin.getSessionService().getDefaultSession().getOpenCommand(new Object[] { localAbstractAIFUIApplication.getDesktop(), comp });
                localOpenCommand.executeModal();
              }
              catch (Exception localException)
              {
              
              }

это стандартная классическая штука

Я думаю тут вопрос в том, чтобы приостановить выполнение кода, который идет, и продолжить его выполнение когда закроется эта стандартная форма редактирования статуса (если я правильно понял :D)

Да так, открывается он как-бы модально, но после executeModal() выполнение сразу продолжается и не поймаешь момент закрытия этого диалога.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, lexx174 сказал:

ваш диалог как открывается?напрямую в хэндлере или через operation или другой поток?

Мой из хэндлера

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, lexx174 сказал:

можете конструктор диалога вашего показать?

Показать не смогу, ибо сейчас в отпуске.  Но насколько помню, конструктор был тривиальный. А диалог редактирования статуса вызывался из обработчика Selection объекта SWT Button, на этом диалоге.

Ссылка на сообщение
Поделиться на других сайтах
29.07.2021 в 22:24, lexx174 сказал:

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

 

OpenCommand(AIFDesktop pAIFDesktop, Window pWindow, InterfaceAIFComponent pInterfaceAIFComponent)

 

Скажите, где взять объект Window?

Передаю туда результат HandlerUtil.getActiveWorkbenchWindowChecked(event), выдает ошибку "java.lang.NoSuchMethodException: Unable to find the constructor for Class specification name [com.teamcenter.rac.commands.open.OpenCommand]"

 

30.07.2021 в 19:01, lexx174 сказал:

можете конструктор диалога вашего показать?

	    public TUDialog(Shell parentShell) {
	        super(parentShell);
	    }

	    @Override
	    protected void configureShell(Shell newShell)
	    {
	        super.configureShell(newShell);
	        newShell.setText("Создать межцеховое ТУ");
	        newShell.setSize(500,900);
	        final Image image = Activator.getDefault().getImageRegistry().get("icons/TU.png");
	        newShell.setImage(image);

	    }

Вот конструктор и метод configureShell.

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

OpenCommand лежит в двух разных пакетах. Попробуйте другой пакет подключить

у вас com.teamcenter.rac.commands

а есть еще типа com.teamcenter.rac.aif.....

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Denis_12
      Речь об эскизе, при создании 3D эскиза для сварной конструкции, при простановке размеров в эскизе они меняются при приближении и отдалении чертежа (прокрутка колесом).
    • Ветерок
      Опять у вас всё в кучу. Речь про размеры в эскизе модели или про размеры на чертеже? Что вы "отдаляете"?
    • Denis_12
      Вот это помогло! Большое спасибо))) А я то все пытался через сборку это реализовать)  А Вы случайно не знаете как размеры в эскизе зафиксировать? Я имею ввиду при отдалении чертежа размеры стрелок и шрифтов увеличивается и происходит наслоение размеров друг на друга
    • ID_Hacker
      Для этого есть отдельная зона промышленной подсети. Если не лезть в настройки системной подсети ничего не завалится.   Сеть то грохнуть могли как на NCU так и на PCU50 и подходы к решению проблемы будут разные.
    • Artas28
      Добрый день! Есть какие ни будь рекомендации, на какую длину  нужно зажимать хвостовик в  термопатроне? Есть фреза д6, L50. Могу ли я зажать её за 15мм, или это будет мало? Или нужно зажимать  как минимум за  3 диаметра?
    • Ветерок
      Не понял что это за процедура такая "перенос в 2D".   Наверное, скрывать объекты на том или ином виде надо на соответствующем виде чертежа, а не в сборке. Или создать в сборке соответствующую конфигурацию и отображать на чертеже её.
    • Viktor2004
    • Denis_12
      Доброго времени суток! Ребят, ни как не могу решить проблему авто-обновления чертежного вида 3D сборки, к примеру скрываешь все кроме основания каркаса сборки, переносишь это в 2D (чертежный вид) указываешь размеры и т.п. (ставишь галочки "исключить из авто-обновления") после чего начинаешь в 3D сборке показывать дополнительно стойки (для создания нового вида), и вот в ранее созданном виде даже с отключенным авто-обновлением они тоже начинают проявляться. Как решить эту проблему? Нужно зафиксировать вид, чтобы он не обновлялся без моего участия. SolidWorks 2022 года.
    • Зинаида
      Возможно Вы смотрите не в той перспективе. Проверьте в перспективе "Мой Teamcenter" стоя на ревизии объекта. Возможно Вы смотрите не в той перспективе. Проверьте в перспективе "Мой Teamcenter" стоя на ревизии объекта.
    • alek77
      Да, спасибо, я уже из интереса ее нашел. Еще раз повторю, чтобы не выхватить, сам я такими методами указния размеров не пользуюсь, это самая вредная практика из всех, что встречал. В свое время имел много проблем в автокаде, корректируя чужие чертежи. Но там и отртогональные линии под углом в 0,001 градуса были в норме, и миллион линий одна поверх другой, и незамкнутые отрезки и много всего, от чего волосы дыбом. В солиде, думал, не столкнусь с таким, наивный. Поэтому искал и нашел макрос который косяки размеров подсвечивает. Он вполне рабочий, но не стабильный. В чем причина не разбирался, так как со своей задачей он справляется. Причем отрабатывает и галочки, и замену текста в размере. Хорошо, что @malvi.dp нашел время и что-то корректирует, спасибо отдельное ему за это. Макрос достаточно полезный при работе с чужими документами. И если удастся сохранить все начальные функции этого макроса против изощренных методов вредительства - будет офигенно.
×
×
  • Создать...