eclipse / elk

Eclipse Layout Kernel - Automatic layout for Java applications.
https://www.eclipse.org/elk/
Other
248 stars 83 forks source link

[Question] Libavoid: Track Progress of Route calculation using the Monitor #1061

Open maxmrzk opened 1 month ago

maxmrzk commented 1 month ago

Question When requesting a layout with the Libavoid algorithm, I would like to keep track of the current progress which is made. Im using the ProgressMonitorAdapter from core.service as a wrapper class for my Eclipse Progress Monitor. But I noticed that in the LibavoidServerCommunicator class only subtasks are started and finished using the ELK Progress Monitor, without calling the .worked method. Therefore I am only able to see which sub task is currently peformed, but not how much progress is made. I cannot log progress myself, as the executing thread is waiting for the return of the layout method.

Is there a way to add functionality, so that Feedback in percentage of the current progress State is returned to the user? Or is this not possible as the Libavoid Process will return all Routes at once?

Example Calculating a graph with 10 Routes, total Monitor work = 10, after each Route is calculated -> monitor.worked(1) Progress visible for the user: Routing completed 10%

Usage This would be extremely helpful for the user if layouting large diagrams.

Please feel free to me if im using or understanding your monitors wrong.

soerendomroes commented 1 month ago

Libavoid is not directly implemented in ELK. Rather, we call it via standard I/O. Hence, I think we might just not get updated everytime libavoid calculates something.

Maybe you can read up an libavoid https://www.adaptagrams.org/documentation/libavoid.html how it handles the routes and whether it logs its progress.