Jump to content

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


Recommended Posts

alexeytur

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

 

173d4e174880b5e2449e3c18b9355596.jpgAAAPxYl.jpg

 

BKn0kG0.jpg

Link to post
Share on other sites


UnPinned posts
butulec
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 это сам объект статуса, надеюсь он у вас есть)

  • Нравится 1
Link to post
Share on other sites
alexeytur
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(), но код продолжает выполняться сразу за этой функцией.

Link to post
Share on other sites
butulec

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

Link to post
Share on other sites
alexeytur
11 минут назад, butulec сказал:

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

 

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

Link to post
Share on other sites
alexeytur

Вставил код

 

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

 

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

 

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

Link to post
Share on other sites
lexx174

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

Link to post
Share on other sites
alexeytur
1 минуту назад, lexx174 сказал:

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

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

Link to post
Share on other sites
lexx174

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

Link to post
Share on other sites
alexeytur
Только что, lexx174 сказал:

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

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

Link to post
Share on other sites
lexx174

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

 

OpenCommand(AIFDesktop pAIFDesktop, Window pWindow, InterfaceAIFComponent pInterfaceAIFComponent)

Link to post
Share on other sites
alexeytur
1 час назад, lexx174 сказал:

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

 

OpenCommand(AIFDesktop pAIFDesktop, Window pWindow, InterfaceAIFComponent pInterfaceAIFComponent)

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

Link to post
Share on other sites
butulec

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

 

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

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

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

Link to post
Share on other sites
alexeytur
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() выполнение сразу продолжается и не поймаешь момент закрытия этого диалога.

Link to post
Share on other sites
lexx174

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

Link to post
Share on other sites
alexeytur
2 часа назад, lexx174 сказал:

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

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

Link to post
Share on other sites
alexeytur
16 минут назад, lexx174 сказал:

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

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

Link to post
Share on other sites
alexeytur
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.

Link to post
Share on other sites
lexx174

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

у вас com.teamcenter.rac.commands

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

Link to post
Share on other sites
alexeytur
22 часа назад, lexx174 сказал:

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

у вас com.teamcenter.rac.commands

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

 

Спасибо, посмотрю

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Xugack
      Посмотрел модель, много деталь (фаски, скругления, вырезы...), еще болты, подшипники. Чтобы все это описать сеткой нужно прилично места. В целом расчетная модель это не модель реального изделия, нужны упрощения, разбитие на узлы и т.д. Подход - все красиво замоделить, а потом давай считать редко когда дает результат. Места на диске наверное хватит, а 16 оперативы, не сказал бы что это много для таких задач, тем более если считать модель как есть
    • 140466
      Ну это очевидное объяснение , но как-то даже для нота перебор. У меня 16 гигов оперативки. Довольно сносно. 30 гигов на диске. Сколько ж ему надо, если этого мало? 
    • Xugack
      Может у вас просто ПК не тянет расчет. Места на диске не хватает, или оперативки
    • 140466
      Объясните мне тупому, что я делаю не так?  Нужно посчитать на прочность не шибко сложную сборку (https://drive.google.com/file/d/1-zYd7bTwjAmUhW_0yLA3NmiQfzqoqoTb/view?usp=sharing) С трудом и матюгами сделать сетку удалось. Однако посчитать на прочность никак не получается. Вроде как что-то надо сделать с отверстия под болты (пока пытаюсь сделать mat bonded и обойтись без болтов, но отверстия под них оставил). Очевидно, что такая сборка должна считаться, но мне выдаёт, что закончилась физическая память. 
    • 12val12
      https://drive.google.com/file/d/1bSIqExNcY4YJwXe1raH1XqbokU7JEM1U/view?usp=sharing
    • karachun
    • 12val12
      https://drive.google.com/file/d/1bSIqExNcY4YJwXe1raH1XqbokU7JEM1U/view?usp=sharing в архиве  1.6 мб   вроде уже открыл
    • 12val12
      @karachun https://drive.google.com/file/d/1Di1l_vpka5U15pTDgHOl8s7PXJ2283n_/view?usp=sharing   файл больше 21мб
    • Ветерок
      котики https://vk.com/golf_stream_spb?w=wall3958979_2090%2Fall
    • karachun
      @12val12 Скиньте файл. Мало ли что вы там накрутили.
×
×
  • Create New...