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); }
public void RemoveReactionNode(ReactionNode reactionNode) { var removeCommand = _context.Resolve <RemoveCommandFor <IMoBiReactionBuildingBlock, IReactionBuilder> >(); removeCommand.Parent = _model; removeCommand.Child = _context.Get <IReactionBuilder>(reactionNode.Id); removeCommand.Execute(); }
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); }
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)); }