private bool anyLinkedNodes(MoleculeNode moleculeNode) { var moleculeNodes = reactionDiagramManager.GetMoleculeNodes(moleculeNode.Name); var reactionNodes = getLinkedReactionsForMoleculeNode(moleculeNode); return(reactionNodes.Any() && moleculeNodes.Count() == 1); }
private void getLinkProperties( IBaseNode node1, IBaseNode node2, object portObject1, object portObject2, out ReactionNode reactionNode, out MoleculeNode moleculeNode, out ReactionLinkType reactionLinkType) { var rNode1 = node1 as ReactionNode; var rNode2 = node2 as ReactionNode; if (rNode1 == null && rNode2 == null) { throw new MoBiException(AppConstants.Exceptions.ReactionNodeMissingInLink); } var mNode1 = node1 as MoleculeNode; var mNode2 = node2 as MoleculeNode; if (mNode1 == null && mNode2 == null) { throw new MoBiException(AppConstants.Exceptions.MoleculeNodeMissingInLink); } if (rNode1 != null) { reactionNode = rNode1; moleculeNode = mNode2; reactionLinkType = (ReactionLinkType)portObject1; } else { reactionNode = rNode2; moleculeNode = mNode1; reactionLinkType = (ReactionLinkType)portObject2; } }
private void createTransportLink(IBaseLink neighborLink, MoleculeNode moleculeNode) { var transportLink = new TransportLink(); transportLink.Initialize(neighborLink as NeighborLink, moleculeNode); transportLink.SetColorFrom(DiagramOptions.DiagramColors); }
private void createObserverLink(ObserverNode observerNode, MoleculeNode moleculeNode) { var observerLink = new ObserverLink(); observerLink.Initialize(observerNode, moleculeNode); observerLink.SetColorFrom(DiagramOptions.DiagramColors); observerLink.IsVisible = DiagramOptions.ObserverLinksVisible; }
public void RemoveMoleculeNode(MoleculeNode moleculeNode) { if (anyLinkedNodes(moleculeNode)) { promptForRemoveLinks(); return; } AddCommand(new RemoveMoleculeFromReactionBuildingBlockCommand(_model, moleculeNode.Id).Run(_context)); }
private bool moleculeNodeWillBeUnlinkedAfterDelete(MoleculeNode moleculeNode, IEnumerable <GoObject> itemsBeingDeleted) { var linkedReactions = getLinkedReactionsForMoleculeNode(moleculeNode); return(linkedReactions.All(itemsBeingDeleted.Contains)); }
private IEnumerable <ReactionNode> getLinkedReactionsForMoleculeNode(MoleculeNode moleculeNode) { return(moleculeNode.GetLinkedNodes <ReactionNode>()); }
private bool anyLinkedNodes(MoleculeNode moleculeNode) { var reactionNodes = getLinkedReactionsForMoleculeNode(moleculeNode); return(reactionNodes.Any()); }
private void createReactionLink(ReactionLinkType type, ReactionNode reactionNode, MoleculeNode moleculeNode) { var reactionLink = new ReactionLink(); reactionLink.Initialize(type, reactionNode, moleculeNode); reactionLink.SetColorFrom(DiagramOptions.DiagramColors); }