2017-07-24 6 views
1

J'ai compris que dans graphviz si je mets compound à true je suis capable de connecter un composant avec un sous-graphique au lieu de son premier élément.Attention: cmd -> barbar: tête pas à l'intérieur cluster cluster cluster_0

mon code est le suivant:

compound=true; 
cmd[shape=component,label="foo"]; 
barbar[label="bar"]; 
msg[label="msg"]; 


subgraph cluster_0 { 
     style=filled; 
     color=lightgrey; 
     node [style=filled,color=white]; 
     msg; 
     label = "Instance.alertInstanceBingoChange()"; 
    } 

cmd->barbar->msg[lhead=cluster_0]; 

result

comme vous pouvez le voir fournit le résultat exact que je voulais, en plus de cet avertissement que barbar: head not inside head cluster cluster_0

comment puis-je résoudre ce problème?

Répondre

1

Vous êtes très proche. Le changement que vous devez faire est simple. Il suffit de séparer la dernière déclaration en deux:

digraph test { 
compound=true; 
cmd[shape=component,label="foo"]; 
barbar[label="bar"]; 
msg[label="msg"]; 

subgraph cluster_0 { 
     style=filled; 
     color=lightgrey; 
     node [style=filled,color=white]; 
     msg; 
     label = "Instance.alertInstanceBingoChange()"; 
    } 

cmd->barbar; 
barbar->msg[lhead=cluster_0]; 
} 

Maintenant, je ne sais pas pourquoi cela fait la différence, mais il est juste l'une des particularités du DOT. La syntaxe ci-dessus ne produit aucun avertissement. J'espère que cela vous aide :)