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

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


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

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

 

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

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

  • Сообщения

    • Killerchik
      Если нужно что-то поменять, выкладывайте фото экрана станка, я думаю можно будет дистанционно Вам объяснить, как отредактировать.
    • bubl leg
      Всем доброго! Вопрос следующий: мне тут по одному из прошлых вопросов сильно помогли: как измерить длину кривой - показали инструмент, который я в упор не видел:-D А вот сейчас у меня возникла потребность наоборот: уменьшить длину произвольной кривой, меняя цифры в настройках. Возможно такое? Скажем, есть у меня хитрая кривая в виде произвольной загогулины. И чтобы не вручную менять её размеры по ХУ, постоянно снова и снова замеряя получившуюся длину и подгоняя таким образом длину под свои потребности, а чтобы вот так: увидеть длину в настройках - вбить туда новую цифру и длина кривой будет соответственно уменьшена. При этом (вероятно) урежется сама кривая и будет показан только её сегмент - ничего страшного, мне именно это и надо. Буду благодарен любому совету!
    • Mixon513
      Всем спасибо что тыкнули пальцем. Действительно производитель перепутал данные вывода.
    • Mixon513
      Спасибо, в понедельник попробую. 
    • Guhl
      И всё-таки поучаствовали )))
    • Viktor2004
      Я изначально не участвовал в этой теме потому что во первых это не влияет на работоспособность станка, а во вторых, задача это элементарно решается на горячем станке, где видно в режиме онлайн в каких регистрах хранится номера стаканов, в каких номера инструментов и из каких регистров идет отображение на индикатор. Любой сервисник который находится у станка решит эту задачу за десять минут. А тут копаться в ладдере в котором ничего не отображается можно сутками, перенося в уме свои догадки что там могло бы быть.
    • Killerchik
      @Mixon513 Вы можете например на станке открыть ладдэр, поискать поиском R65 или Р0225 и посмотреть логику формирования этого значения.
    • rasta89
      Всем привет. Проводил в LS-Dyna расчет на усталость по SN. Получил результаты Damage и Life:   Но вот Expected Fatigue cycles = 0. Кто-нибудь может объяснить подробно почему? Может быть что-то упустил в картах, куда обратить внимание? Спасибо.  
    • Guhl
      Это надо сидеть и разбираться с логикой, которая в ладдере прописана разработчиками. Возможно, что править надо. Комментарии там на английском, вам повезло. В Яндексе задавать вопросы бесполезно на этот счет
    • Mixon513
      Подскажите где нужно менять параметры. Или как задать вопрос яндексу?
×
×
  • Создать...