Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A AF3
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 229
    • Issues 229
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • af3
  • AF3
  • Issues
  • #3893
Closed
Open
Created Dec 05, 2020 by Dummy AF3-Dev@dummy-af3-dev

Automatic layout is slow with JavaFX-based editor

Executing “automatic layout” can become slow for larger graphs when a JavaFX-based diagram editor is open. For a graph with 69 nodes and 73 edges, automatic layouts takes about 5 seconds.

The issue seems to be the handling of layout changes. EObjectBasedRectangularResizableContentControllerBase implements getModelChangeProvider to return a LayoutModelElementModelChangeProvider to react on layout changes. MVCBundleBase attaches itself as a listener to this provider and when the layout of the element changes, it calls MVCBundleBase.changed:

    @Override
    public void changed(Object element) {
        viewer.updateFromModel();
    }

In updateFromModel, the viewer goes through the whole model and refreshes all visuals. Since this call to changed is triggered often during automatic layout, layout becomes very slow.

(from redmine: issue id 3893, created on 2019-12-09, closed on 2020-04-06)

  • Uploads:
    • profile
    • specific-changed-implementations.patch
    • specific-changed-implementations-version2.patch
    • test.af3_23 Project with large component diagram for testing purposes
Assignee
Assign to
Time tracking