@@ -366,6 +366,28 @@ void GraphicsView::addComponentToClass(Component *pComponent)
366366 }
367367 pMainWindow->getOMCProxy ()->addComponent (pComponent->getName (), className, mpModelWidget->getLibraryTreeItem ()->getNameStructure (),
368368 pComponent->getPlacementAnnotation ());
369+ // get uses annotation of the class
370+ QString packageName = StringHandler::getFirstWordBeforeDot (pComponent->getLibraryTreeItem ()->getNameStructure ());
371+ LibraryTreeItem *pPackageLibraryTreeItem = pMainWindow->getLibraryWidget ()->getLibraryTreeModel ()->findLibraryTreeItem (packageName);
372+ if (pPackageLibraryTreeItem) {
373+ QList<QList<QString > > usesAnnotation = pMainWindow->getOMCProxy ()->getUses (mpModelWidget->getLibraryTreeItem ()->getNameStructure ());
374+ QStringList newUsesAnnotation;
375+ for (int i = 0 ; i < usesAnnotation.size () ; i++) {
376+ for (int j = 0 ; j < usesAnnotation.at (i).size () ; j++) {
377+ if (usesAnnotation.at (i).at (0 ).compare (packageName) == 0 ) {
378+ return ; // if the package is already in uses annotation of class then simply return without doing anything.
379+ } else {
380+ newUsesAnnotation.append (QString (" %1(version=\" %2\" )" ).arg (usesAnnotation.at (i).at (0 )).arg (usesAnnotation.at (i).at (1 )));
381+ }
382+ }
383+ }
384+ // if the package has version only then add the uses annotation
385+ if (!pPackageLibraryTreeItem->mClassInformation .version .isEmpty ()) {
386+ newUsesAnnotation.append (QString (" %1(version=\" %2\" )" ).arg (packageName).arg (pPackageLibraryTreeItem->mClassInformation .version ));
387+ QString usesAnnotationString = QString (" annotate=$annotation(uses(%1))" ).arg (newUsesAnnotation.join (" ," ));
388+ pMainWindow->getOMCProxy ()->addClassAnnotation (mpModelWidget->getLibraryTreeItem ()->getNameStructure (), usesAnnotationString);
389+ }
390+ }
369391 } else if (mpModelWidget->getLibraryTreeItem ()->getLibraryType ()== LibraryTreeItem::TLM) {
370392 TLMEditor *pTLMEditor = dynamic_cast <TLMEditor*>(mpModelWidget->getEditor ());
371393 QFileInfo fileInfo (pComponent->getLibraryTreeItem ()->getFileName ());
@@ -3806,10 +3828,8 @@ void ModelWidgetContainer::addModelWidget(ModelWidget *pModelWidget, bool checkP
38063828 return ;
38073829 }
38083830 // get the preferred view to display
3809- mpMainWindow->getOMCProxy ()->sendCommand (QString (" getNamedAnnotation(" ).append (pModelWidget->getLibraryTreeItem ()->getNameStructure ()).append (" , preferredView)" ));
3810- QStringList preferredViewList = StringHandler::unparseStrings (mpMainWindow->getOMCProxy ()->getResult ());
3811- if (!preferredViewList.isEmpty ()) {
3812- QString preferredView = preferredViewList.at (0 );
3831+ QString preferredView = pModelWidget->getLibraryTreeItem ()->mClassInformation .preferredView ;
3832+ if (preferredView.isEmpty ()) {
38133833 if (preferredView.compare (" info" ) == 0 ) {
38143834 pModelWidget->showDocumentationView ();
38153835 loadPreviousViewType (pModelWidget);
0 commit comments