Community
Participate
Working Groups
Created attachment 244546 [details] Navigation tool only available on diagrams In the specifier tree view, it is possible to create a navigation tool on a change context. But then it is only possible to reference a diagram, we should be able to reference any kind of representation.
Indeed, the navigation model operation, i.e. org.eclipse.sirius.diagram.description.tool.Navigation inheriting of org.eclipse.sirius.viewpoint.description.tool.ContainerModelOperation is diagram dialect specific but as inheriting of the viewpoint metamodel can be reused on other dialect which can use model operations like tree/table. We have the same issue with CreateView/DeleteView model operations, but these lasts make non sense in other dialects than diagram. Navigation model operation make sense in all dialects then could be moved in the viewpoint metamodel. NavigationTask could be moved from org.eclipse.sirius.diagram to org.eclipse.sirius and be generalized.
A beginning of fix is available here : https://git.eclipse.org/r/#/c/29093/ .
+1 on the principle (I have not looked at the current patch in detail). Don't forget that the specifier documentation would also need to be updated.
Related to this (but maybe out of scope), we have redundancies at the tools level (as opposed to the model operaitons level), with: - RepresentationCreationDescription and RepresentationNavigationDescription in viewpoint.ecore, both abstract - DiagramCreationDescription and DiagramNavigationDescription in diagram.ecore, which inherit from the two above - TableCreationDescription and TableNavigationDescription in table.ecore, same - TreeCreationDescription and TreeNavigationDescription in tree.ecore, same It looks like we could do with a single concrete RepresentationNavigationDescription, with a mode = { CREATE_ALWAYS, CREATE_IF_NOT_EXISTS, CREATE_NEVER } which would work for all dialects (using the generic DialectServices API), existing and yet to be created.
There are issues on src-gen/ code regeneration, for Edit part, for example in org.eclipse.sirius.ui plugin too many classes are changed, all provider even these not related to Navigation get more interface than before, i.e. what is on the HEAD. For example AbstractToolDescriptionItemProvider before extends only of DocumentedElementItemProvider without implementing directly interfaces, now after regeneration it implements "IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource" It is very annoying to regenerate the code.
I have tried regenerate with Luna.