UMLModeler.closeModel(modelObj) не закрывает файл EMX в редакторе RSA 6.0.1

Я работаю над проектом, в котором мы используем RSA 6.0.1.

Я должен выполнить некоторый набор задач программно. Я открыл файл emx, используя UMLModeler.openModel(absoluteModelPath); Затем выполните некоторое редактирование и сохраните его с помощью UMLModeler.getEditingDomain(). Run( new ResourceSetModifyOperation("Операция обновления") {}, монитор); Затем я обновил проект через sourceProject.refreshLocal(IProject.DEPTH_INFINITE,monitor); до сих пор все идет хорошо и, наконец, когда я закрываю модель через UMLModeler.closeModel(objUMLModel); Он запускает этот код, но не закрывает файл EMX в редакторе.

Здесь нет ошибок, нет исключений. Может кто-нибудь, пожалуйста, предложите мне, что я могу сделать, чтобы закрыть этот файл emx.

1 ответ

Во-первых, я бы обновился до 7.5.4, поскольку концепция модели исчезла, фактически используемый вами метод устарел.

Из документации API: closeModel(Модель модели) устарела. Начиная с 7.5, вместо этого используйте метод closeModelResource(Element)

Использование новых методов может решить ваши проблемы. Кроме того, вы пытаетесь обновить рабочее пространство? Либо вручную, щелкнув правой кнопкой мыши на проекте и выбрав "Обновить", либо сделав это с кодом.

Наконец, наиболее вероятная проблема заключается в том, что у модели есть несколько "ручек". Закрытие вашего не закрывает дескриптор редактора или проводника проекта. Я не работаю на IBM, поэтому я не могу знать это наверняка. Вы можете проверить это, открыв его в проводнике проекта, открыв его с помощью своего кода, затем вручную закройте в проводнике и только затем попытайтесь выполнить транзакцию на модели и затем закрыть ее. Как выглядит проводник, когда закрывается?

Или опубликуйте более подробную информацию, и, возможно, я смогу написать собственный пример. Сначала я попробую отладку, а также опубликую это на сайте разработчиков IBM. Они, вероятно, скажут вам обновить хотя.:)

Другие вопросы по тегам