Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Eclipse Layout Kernel » [ELK] Does ELK support this feature an edge out goes and in comes to the same port?
[ELK] Does ELK support this feature an edge out goes and in comes to the same port? [message #1795178] Tue, 18 September 2018 01:56 Go to next message
lee lucky is currently offline lee luckyFriend
Messages: 26
Registered: October 2017
Junior Member
Hi,
I am using layered algorithm to layout my diagram, and in my diagram, I have this kind of edge whose source port and target port is the same one. I met this exception:
 org.eclipse.elk.core.UnsupportedConfigurationException: Node '0' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges.
	at org.eclipse.elk.alg.layered.crn.intermediate.LayerConstraintProcessor.throwUpUnlessNoIncoming(LayerConstraintProcessor.java:245)
	at org.eclipse.elk.alg.layered.crn.intermediate.LayerConstraintProcessor.process(LayerConstraintProcessor.java:98)
	at org.eclipse.elk.alg.layered.crn.KlayLayered.hierarchicalLayout(KlayLayered.java:229)
	at org.eclipse.elk.alg.layered.crn.KlayLayered.doCompoundLayout(KlayLayered.java:179)
	at org.eclipse.elk.alg.layered.crn.LayeredLayoutProvider.layout(LayeredLayoutProvider.java:58)
	at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layoutRecursively(RecursiveGraphLayoutEngine.java:185)
	at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layout(RecursiveGraphLayoutEngine.java:62)
	at org.eclipse.sirius.diagram.elk.ElkDiagramLayoutConnector.layout(ElkDiagramLayoutConnector.java:1285)
	at org.eclipse.sirius.diagram.elk.ELKLayoutNodeProvider.layoutEditParts(ELKLayoutNodeProvider.java:70)
	at org.eclipse.sirius.diagram.ui.tools.internal.layout.provider.ArrangeSelectionLayoutProvider.lauchPrimaryArrangeAll(ArrangeSelectionLayoutProvider.java:255)
	at org.eclipse.sirius.diagram.ui.tools.internal.layout.provider.ArrangeSelectionLayoutProvider.layoutEditParts(ArrangeSelectionLayoutProvider.java:171)
	at org.eclipse.sirius.diagram.ui.tools.api.layout.provider.AbstractLayoutProvider.getCommandFromDiagramLayoutProvider(AbstractLayoutProvider.java:174)
	at org.eclipse.sirius.diagram.ui.tools.api.layout.provider.AbstractLayoutProvider.layoutEditParts(AbstractLayoutProvider.java:123)
	at org.eclipse.gmf.runtime.diagram.ui.services.layout.AbstractLayoutEditPartProvider.layoutLayoutNodes(AbstractLayoutEditPartProvider.java:69)
	at org.eclipse.gmf.runtime.diagram.ui.internal.services.layout.LayoutNodesOperation.execute(LayoutNodesOperation.java:74)
	at org.eclipse.gmf.runtime.common.core.service.ExecutionStrategy$1.execute(ExecutionStrategy.java:70)
	at org.eclipse.gmf.runtime.common.core.service.Service.execute(Service.java:651)
	at org.eclipse.gmf.runtime.diagram.ui.services.layout.LayoutService.execute(LayoutService.java:66)
	at org.eclipse.gmf.runtime.diagram.ui.services.layout.LayoutService.layoutLayoutNodes(LayoutService.java:299)
	at org.eclipse.gmf.runtime.diagram.ui.commands.ArrangeCommand.getCommandForExecution(ArrangeCommand.java:124)
	at org.eclipse.gmf.runtime.diagram.ui.commands.ArrangeCommand.doExecuteWithResult(ArrangeCommand.java:93)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:247)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.gmf.runtime.common.core.command.CompositeCommand.doExecuteWithResult(CompositeCommand.java:403)
	at org.eclipse.gmf.runtime.common.core.command.AbstractCommand.execute(AbstractCommand.java:134)
	at org.eclipse.gmf.runtime.common.core.command.CompositeCommand.doExecuteWithResult(CompositeCommand.java:403)
	at org.eclipse.gmf.runtime.common.core.command.AbstractCommand.execute(AbstractCommand.java:134)
	at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:126)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:488)
	... 39 more

I have a question, doesn't ELK support this kind of edge?
Hope for ypur reply, and thanks in advance.
Re: [ELK] Does ELK support this feature an edge out goes and in comes to the same port? [message #1795192 is a reply to message #1795178] Tue, 18 September 2018 08:11 Go to previous message
Christoph Daniel Schulze is currently offline Christoph Daniel SchulzeFriend
Messages: 98
Registered: September 2015
Member
Hi,

ELK Layered probably won't mind, but the results won't be satisfactory. Routing such an edge would require special handling, which we don't currently have (feel free to open a feature request at our GitHub page).

I can think of two possible reasons for your particular error message. First, youu're setting the layer constraint option on one of your nodes, but don't make sure that edge connections fit the setting you're using (FIRST and FIRST_SEPARATE require that no edge enters the node the option is set on). Second, and more likely, you're routing an edge from a port to the same port on a node that itself contains further nodes.

The former case is simply not supported. The second case probably shouldn't raise the error, but would require said feature request to be implemented for proper support.

Cheers,
Chris
Previous Topic:'UnsupportedConfigurationException' after closing alg.layered.
Next Topic:Simple Java Application
Goto Forum:
  


Current Time: Mon Apr 19 04:37:11 GMT 2021

Powered by FUDForum. Page generated in 0.02114 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top