Community
Participate
Working Groups
We currently have several half-broken APIs for querying/selecting/deselecting viewpoints in a session. I count at least: * org.eclipse.sirius.business.api.session.ViewpointSelector * org.eclipse.sirius.business.internal.movida.ViewpointSelection (Movida-specific, so not actually used, but mentioned because the design tried to fix some of the issues of the existing APIs at the time, so maybe some ideas can be reused). * org.eclipse.sirius.ui.tools.internal.viewpoint.ViewpointHelper (not API, but used internally). * org.eclipse.sirius.ui.business.api.viewpoint.ViewpointSelectionCallback * org.eclipse.sirius.ui.business.api.session.UserSession * org.eclipse.sirius.ui.business.internal.commands.ChangeViewpointSelectionCommand * org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.getSelectedViewpoints() and getSelectedViewpointsSpecificToGeneric() I'm probably missing a few. Some of these call the others, some do their own things. I wouldn't be surprised if some code (our own or clients') directly manipulate DAnalysis.selectedViews. The goal here is to have a single, well defined and well documented (and tested) API for querying/selecting/deselecting viewpoints in a session. It may be a completely new class or one of the already existing ones (maybe after some modifications). All the others should be either removed (if we're confident they're not used much in the wild), or @deprecated and rewritten to call the recommended API (instead of doing their own thing).