Модальная рамка в IBM Rational Rhapsody
В настоящее время я создаю плагин для IBM Rational Rhapsody. Знание инструмента не является действительно необходимым для этого обсуждения, но я хотел упомянуть его на всякий случай. По сути, я написал код Java в Eclipse и пропустил его через Jar для импорта в Rhapsody.
Плагин может требовать взаимодействия с пользователем для запуска: например, плагин может создавать элемент модели, но не знает, в какой пакет его вставить, поэтому он запрашивает у пользователя инструкции. Для этого я создал класс JDialog, который вызывает метод setModal(true); это, как вы, возможно, знаете, гарантирует, что поток, который создает диалог, останавливается, пока пользователь не предоставит ввод. На Eclipse это все работает отлично, но когда Jar работает на Rhapsody, он не делает то, что я ожидаю. Помимо остановки работы плагина до тех пор, пока не будет введен ввод, он также останавливает приложение Rhapsody и приводит к невозможности использования модели UML. Чтобы быть более понятным, чтобы пользователи знали, куда вставить свои входные данные, они должны иметь возможность использовать и анализировать модель UML. Я пытаюсь добиться того, чтобы мой диалог останавливал работу только плагина, а не всей модели.
Я не написал ни одной строки кода, так как это концептуальный вопрос: как сделать плагин, который является внешним по отношению к инструменту, перемещающемуся по потоку, позволяя использовать инструмент во время работы плагина?
Я надеюсь, что мой вопрос ясен, мне было трудно объяснить проблему.
Спасибо всем за помощь, Джордано
1 ответ
Плагины Rhapsody запускаются в том же процессе, что и приложение Rhapsody, поэтому вы можете попробовать использовать вспомогательный модуль вместо плагина. Помощники Rhapsody работают в отдельном процессе. Вы можете добавить помощника под инструменты -> настроить -> помощники. Оттуда вы можете вызвать приложение Swing и использовать Rhapsody API для запроса / изменения модели.