Commit 4fef9d23 authored by Tiziano Munaro's avatar Tiziano Munaro

[State Automation] Do not allow connections to occupied ports

Issue-Ref: 3935
Issue-Url: https://af3-developer.fortiss.org/issues/3935Signed-off-by: Tiziano Munaro's avatarTiziano Munaro <munaro@fortiss.org>
parent fce67749
BehaviorComponentCompositor.java a1dbd75cfce361b709249b0d851f080cf63d243c GREEN
ConnectorConnectionCompositor.java 35a2c38859ddf2f6ee358e15f6eda42e47df702b GREEN
ConnectorConnectionCompositor.java aa5842f6de9a764cbd5e1b90fc56427560e062a0 YELLOW
ConnectorStateConnectionCompositor.java a0fb18af7ded52cbcb18be83cf1d9960028ceac2 GREEN
StateAutomatonCompositor.java 42625f27b7e2d5de0df39c56618173ff057ea7a5 GREEN
StateCompositor.java 299d369552fb940a1297d64606c3c0c1698e57a8 GREEN
......
......@@ -23,6 +23,7 @@ import org.fortiss.tooling.base.compose.ConnectorConnectionCompositorBase;
import org.fortiss.tooling.base.model.base.ConnectionSegmentBase;
import org.fortiss.tooling.base.model.base.ConnectorBase;
import org.fortiss.tooling.base.model.element.IConnection;
import org.fortiss.tooling.kernel.extension.data.IConnectionCompositionContext;
/**
* Compositor for connecting exit and entry connectors on state automata editor.
......@@ -32,6 +33,21 @@ import org.fortiss.tooling.base.model.element.IConnection;
public class ConnectorConnectionCompositor
extends ConnectorConnectionCompositorBase<State, ConnectorBase, ConnectorBase> {
/** {@inheritDoc} */
@Override
public boolean canConnect(ConnectorBase source, ConnectorBase target, State parent,
IConnectionCompositionContext context) {
// Do not allow connections from and to already occupied ports. Since a link can be drawn
// from an entry not to an exit node as well, both end points have to be checked for both
// incoming and outgoing links.
boolean freeSource = source.getOutgoing().isEmpty() && source.getIncoming().isEmpty();
boolean freeTarget = target.getIncoming().isEmpty() && target.getOutgoing().isEmpty();
if(freeSource && freeTarget) {
return super.canConnect(source, target, parent, context);
}
return false;
}
/** {@inheritDoc} */
@Override
protected ConnectionSegmentBase createConnection() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment