Community
Participate
Working Groups
With scenario of Bug 452558 FilterListener is called twice, even in manual refresh. We could avoid that by having FilterListener execute its TriggerCommand only in manual refresh and in auto-refresh have it executed directly by the diagram refresh. We see in RefreshDiagramOnOpeningCommand that the same work of FilterListener is done, i.e. call of : CompositeFilterApplicationBuilder builder = new CompositeFilterApplicationBuilder(diag); builder.computeCompositeFilterApplications();
The issue is that CompositeFilterApplicationBuilder is in diagram.ui plugin and has dependencies to NodeQuery which is dependant to draw2d. A refactoring of this query is needed to be ui independant.
Is this issue about performance, or does it cause an actual bug to invoke the FilterListener? If this is a performance issue, please tag it as such and provide measurable data, see https://wiki.eclipse.org/Sirius/Bugzilla. Without some actual explanation of why this is a problem and how bad it is, we have no way to prioritize the issue.
This is about performance, using Test2.zip attachement of Bug 452558 with initial scenario we have these times : FilteredElementsUpdateCommand execution : 4ms DDiagramSynchronizer.refresh execution : 153ms FilteredElementsUpdateCommand execution : 4ms The cost of FilteredElementsUpdateCommand execution is minor but it should be executed only once at the end of diagram refresh execution.