Exemplo n.º 1
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;
            }
        }
        private void createReactionLink(ReactionLinkType type, ReactionNode reactionNode, IMoleculeNode moleculeNode)
        {
            var reactionLink = new ReactionLink();

            reactionLink.Initialize(type, reactionNode, moleculeNode);
            reactionLink.SetColorFrom(DiagramOptions.DiagramColors);
        }
Exemplo n.º 3
0
        public void RemoveReactionNode(ReactionNode reactionNode)
        {
            var removeCommand = _context.Resolve <RemoveCommandFor <IMoBiReactionBuildingBlock, IReactionBuilder> >();

            removeCommand.Parent = _model;
            removeCommand.Child  = _context.Get <IReactionBuilder>(reactionNode.Id);
            removeCommand.Execute();
        }
Exemplo n.º 4
0
        private MoleculeNode moleculeNodeFor(string id, ReactionNode reactionNode, PointF distance)
        {
            var location     = reactionNode.Location.Plus(distance);
            var moleculeNode = DiagramModel.GetNode <MoleculeNode>(id);

            if (moleculeNode == null)
            {
                moleculeNode = DiagramModel.CreateNode <MoleculeNode>(id, location, DiagramModel);
                moleculeNode.SetColorFrom(DiagramOptions.DiagramColors);
            }
            return(moleculeNode);
        }
Exemplo n.º 5
0
        protected override void Context()
        {
            base.Context();
            _reactionBuildingBlock = new MoBiReactionBuildingBlock
            {
                DiagramModel   = new DiagramModel(),
                DiagramManager = new MoBiReactionDiagramManager()
            };

            _moBiReactionDiagramManager = _reactionBuildingBlock.DiagramManager.DowncastTo <IReactionDiagramManager <IMoBiReactionBuildingBlock> >();

            _moBiReactionDiagramManager.InitializeWith(_reactionBuildingBlock, A.Fake <IDiagramOptions>());

            _molecule = new MoleculeBuilder().WithId("moleculeId").WithName("moleculeName");
            _reaction = new ReactionBuilder().WithId("reactionId");
            _reaction.AddEduct(new ReactionPartnerBuilder(_molecule.Name, 1.0));
            _reactionBuildingBlock.Add(_reaction);
            _moBiReactionDiagramManager.AddObjectBase(_reaction);
            _moBiReactionDiagramManager.AddMolecule(_reaction, "moleculeName");
            _moleculeNode           = _moBiReactionDiagramManager.GetMoleculeNodes("moleculeName").FirstOrDefault();
            _reactionNode           = _moBiReactionDiagramManager.PkModel.DiagramModel.GetAllChildren <ReactionNode>().FirstOrDefault();
            _interactionTask        = A.Fake <IInteractionTasksForChildren <IMoBiReactionBuildingBlock, IReactionBuilder> >();
            _activeSubjectRetriever = A.Fake <IActiveSubjectRetriever>();

            var reactionLink = new ReactionLink();

            reactionLink.Initialize(ReactionLinkType.Educt, _reactionNode, _moleculeNode);

            sut.Edit(_reactionBuildingBlock);

            var removeReactionCommand = new RemoveCommandFor <IMoBiReactionBuildingBlock, IReactionBuilder>(_interactionTask, _moBiContext, _activeSubjectRetriever);

            A.CallTo(() => _moBiContext.Get <IReactionBuilder>(_reaction.Id)).Returns(_reaction);
            A.CallTo(() => _moBiContext.Resolve <RemoveCommandFor <IMoBiReactionBuildingBlock, IReactionBuilder> >()).Returns(removeReactionCommand);
            A.CallTo(() => _activeSubjectRetriever.Active <IBuildingBlock>()).Returns(_reactionBuildingBlock);
            A.CallTo(() => _interactionTask.Remove(_reaction, _reactionBuildingBlock, _reactionBuildingBlock, A <bool> ._)).Invokes(x => _reactionBuildingBlock.Remove(_reaction));
        }