Пример #1
0
        private bool anyLinkedNodes(MoleculeNode moleculeNode)
        {
            var moleculeNodes = reactionDiagramManager.GetMoleculeNodes(moleculeNode.Name);
            var reactionNodes = getLinkedReactionsForMoleculeNode(moleculeNode);

            return(reactionNodes.Any() && moleculeNodes.Count() == 1);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        private void createTransportLink(IBaseLink neighborLink, MoleculeNode moleculeNode)
        {
            var transportLink = new TransportLink();

            transportLink.Initialize(neighborLink as NeighborLink, moleculeNode);
            transportLink.SetColorFrom(DiagramOptions.DiagramColors);
        }
Пример #4
0
        private void createObserverLink(ObserverNode observerNode, MoleculeNode moleculeNode)
        {
            var observerLink = new ObserverLink();

            observerLink.Initialize(observerNode, moleculeNode);
            observerLink.SetColorFrom(DiagramOptions.DiagramColors);
            observerLink.IsVisible = DiagramOptions.ObserverLinksVisible;
        }
Пример #5
0
        public void RemoveMoleculeNode(MoleculeNode moleculeNode)
        {
            if (anyLinkedNodes(moleculeNode))
            {
                promptForRemoveLinks();
                return;
            }

            AddCommand(new RemoveMoleculeFromReactionBuildingBlockCommand(_model, moleculeNode.Id).Run(_context));
        }
Пример #6
0
        private bool moleculeNodeWillBeUnlinkedAfterDelete(MoleculeNode moleculeNode, IEnumerable <GoObject> itemsBeingDeleted)
        {
            var linkedReactions = getLinkedReactionsForMoleculeNode(moleculeNode);

            return(linkedReactions.All(itemsBeingDeleted.Contains));
        }
Пример #7
0
 private IEnumerable <ReactionNode> getLinkedReactionsForMoleculeNode(MoleculeNode moleculeNode)
 {
     return(moleculeNode.GetLinkedNodes <ReactionNode>());
 }
Пример #8
0
        private bool anyLinkedNodes(MoleculeNode moleculeNode)
        {
            var reactionNodes = getLinkedReactionsForMoleculeNode(moleculeNode);

            return(reactionNodes.Any());
        }
Пример #9
0
        private void createReactionLink(ReactionLinkType type, ReactionNode reactionNode, MoleculeNode moleculeNode)
        {
            var reactionLink = new ReactionLink();

            reactionLink.Initialize(type, reactionNode, moleculeNode);
            reactionLink.SetColorFrom(DiagramOptions.DiagramColors);
        }