示例#1
0
        public CompendiumTransclusionRelationship(IRelationship relationship, CompendiumViewRelationship viewRelationship, INode toNode, INode fromNode, INode transclusionNode, INode mapNode)
            : this()
        {
            _toNode = toNode;
            IDescriptor toDescriptor = new CompendiumRelationshipDescriptor(toNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumToDescriptor>());

            _descriptors.Add(toDescriptor);
            _toNode.AddDescriptor(toDescriptor);

            _fromNode = fromNode;
            IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(fromNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumFromDescriptor>());

            _descriptors.Add(fromDescriptor);
            _fromNode.AddDescriptor(fromDescriptor);

            _transclusionNode = transclusionNode;
            IDescriptor transclusionNodeDescriptor = new CompendiumRelationshipDescriptor(transclusionNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumTransclusionNodeDescriptor>());

            _descriptors.Add(transclusionNodeDescriptor);
            _transclusionNode.AddDescriptor(transclusionNodeDescriptor);

            _mapNode = mapNode;
            IDescriptor mapDescriptor = new CompendiumRelationshipDescriptor(mapNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumTransclusionMapDescriptor>());

            _descriptors.Add(mapDescriptor);
            _mapNode.AddDescriptor(mapDescriptor);

            this.Id           = relationship.Id;
            this.Created      = relationship.Created;
            this.CreatedBy    = relationship.CreatedBy;
            this.LastModified = relationship.LastModified;
            this.Name         = relationship.Name;
            this.XPosition    = viewRelationship.XPosition;
            this.YPosition    = viewRelationship.YPosition;
        }
 public static void CreateMapRelationship(INode mapNode, INode childNode)
 {
     if (childNode != null && mapNode != null)
     {
         foreach (IDescriptor descriptor in childNode.Descriptors)
         {
             if (descriptor.Relationship is CompendiumMapRelationship)
             {
                 foreach (IDescriptor altDesc in descriptor.Relationship.Descriptors)
                 {
                     if (altDesc.DescriptorType is CompendiumToDescriptor)
                     {
                         if (altDesc.Node.Id == mapNode.Id)
                         {
                             return;
                         }
                     }
                 }
             }
         }
         CompendiumMapRelationship mapRelationship = new CompendiumMapRelationship();
         mapRelationship.Id = mapNode.Id + childNode.Id;
         IDescriptor toDescriptor = new CompendiumRelationshipDescriptor(mapNode, mapRelationship, IoCContainer.GetInjectionInstance().GetInstance<CompendiumToDescriptor>());
         IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(childNode, mapRelationship, IoCContainer.GetInjectionInstance().GetInstance<CompendiumFromDescriptor>());
         mapRelationship.Descriptors = new IDescriptor[] { fromDescriptor, toDescriptor };
         childNode.AddDescriptor(fromDescriptor);
         mapNode.AddDescriptor(toDescriptor);
     }
 }
示例#3
0
 public static void CreateMapRelationship(INode mapNode, INode childNode)
 {
     if (childNode != null && mapNode != null)
     {
         foreach (IDescriptor descriptor in childNode.Descriptors)
         {
             if (descriptor.Relationship is CompendiumMapRelationship)
             {
                 foreach (IDescriptor altDesc in descriptor.Relationship.Descriptors)
                 {
                     if (altDesc.DescriptorType is CompendiumToDescriptor)
                     {
                         if (altDesc.Node.Id == mapNode.Id)
                         {
                             return;
                         }
                     }
                 }
             }
         }
         CompendiumMapRelationship mapRelationship = new CompendiumMapRelationship();
         mapRelationship.Id = mapNode.Id + childNode.Id;
         IDescriptor toDescriptor   = new CompendiumRelationshipDescriptor(mapNode, mapRelationship, IoCContainer.GetInjectionInstance().GetInstance <CompendiumToDescriptor>());
         IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(childNode, mapRelationship, IoCContainer.GetInjectionInstance().GetInstance <CompendiumFromDescriptor>());
         mapRelationship.Descriptors = new IDescriptor[] { fromDescriptor, toDescriptor };
         childNode.AddDescriptor(fromDescriptor);
         mapNode.AddDescriptor(toDescriptor);
     }
 }
        public CompendiumTransclusionRelationship(IRelationship relationship, CompendiumViewRelationship viewRelationship, INode toNode, INode fromNode, INode transclusionNode, INode mapNode)
            : this()
        {
            _toNode = toNode;
            IDescriptor toDescriptor = new CompendiumRelationshipDescriptor(toNode, this, IoCContainer.GetInjectionInstance().GetInstance<CompendiumToDescriptor>());
            _descriptors.Add(toDescriptor);
            _toNode.AddDescriptor(toDescriptor);

            _fromNode = fromNode;
            IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(fromNode, this, IoCContainer.GetInjectionInstance().GetInstance<CompendiumFromDescriptor>());
            _descriptors.Add(fromDescriptor);
            _fromNode.AddDescriptor(fromDescriptor);

            _transclusionNode = transclusionNode;
            IDescriptor transclusionNodeDescriptor = new CompendiumRelationshipDescriptor(transclusionNode, this, IoCContainer.GetInjectionInstance().GetInstance<CompendiumTransclusionNodeDescriptor>());
            _descriptors.Add(transclusionNodeDescriptor);
            _transclusionNode.AddDescriptor(transclusionNodeDescriptor);

            _mapNode = mapNode;
            IDescriptor mapDescriptor = new CompendiumRelationshipDescriptor(mapNode, this, IoCContainer.GetInjectionInstance().GetInstance<CompendiumTransclusionMapDescriptor>());
            _descriptors.Add(mapDescriptor);
            _mapNode.AddDescriptor(mapDescriptor);

            this.Id = relationship.Id;
            this.Created = relationship.Created;
            this.CreatedBy = relationship.CreatedBy;
            this.LastModified = relationship.LastModified;
            this.Name = relationship.Name;
            this.XPosition = viewRelationship.XPosition;
            this.YPosition = viewRelationship.YPosition;
        }
示例#5
0
        public void BuildRelationships(Dictionary <string, INode> nodeList)
        {
            if (nodeList.ContainsKey(_from) && nodeList.ContainsKey(_to))
            {
                INode fromNode = nodeList[_from];

                IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(fromNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumFromDescriptor>());

                _descriptors.Add(fromDescriptor);
                fromNode.AddDescriptor(fromDescriptor);

                INode toNode = nodeList[_to];

                IDescriptor toDescriptor = new CompendiumRelationshipDescriptor(toNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumToDescriptor>());

                _descriptors.Add(toDescriptor);
                toNode.AddDescriptor(toDescriptor);
            }
        }
        public void ConsumeLinkXml(Dictionary <string, INode> nodeList, XmlReader xml)
        {
            if (xml != null && xml.NodeType == XmlNodeType.Element && xml.Name == "link")
            {
                #region Attribute Values
                #region Id
                if (xml.MoveToAttribute("id"))
                {
                    Id = xml.Value;
                }
                #endregion

                #region NodeType - Not Currently Used

                /*
                 * if (xml.MoveToAttribute("type"))
                 * {
                 *  switch (xml.Value)
                 *  {
                 *      case ConNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<ConNode>();
                 *          break;
                 *
                 *      case DecisionNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<DecisionNode>();
                 *          break;
                 *
                 *      case IdeaNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<IdeaNode>();
                 *          break;
                 *
                 *      case MapNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<MapNode>();
                 *          break;
                 *
                 *      case ProNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<ProNode>();
                 *          break;
                 *
                 *      case QuestionNodeTypeId:
                 *          _nodeType = IoCContainer.GetInjectionInstance().GetInstance<QuestionNode>();
                 *          break;
                 *
                 *      default:
                 *          break;
                 *  }
                 * }
                 */
                #endregion

                #region CreatedBy
                if (xml.MoveToAttribute("author"))
                {
                    CreatedBy = xml.Value;
                }
                #endregion

                #region Created
                if (xml.MoveToAttribute("created"))
                {
                    string createdMillisecondsXmlValue = xml.Value;
                    long   createdMilliseconds;

                    if (long.TryParse(createdMillisecondsXmlValue, out createdMilliseconds))
                    {
                        Created = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                        Created = Created.AddMilliseconds(createdMilliseconds);
                    }
                }
                #endregion

                #region LastModified
                if (xml.MoveToAttribute("lastModified"))
                {
                    string lastModifiedMillisecondsXmlValue = xml.Value;
                    long   lastModifiedMilliseconds;

                    if (long.TryParse(lastModifiedMillisecondsXmlValue, out lastModifiedMilliseconds))
                    {
                        LastModified = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                        LastModified = LastModified.AddMilliseconds(lastModifiedMilliseconds);
                    }
                }
                #endregion

                #region Name
                if (xml.MoveToAttribute("label"))
                {
                    Name = xml.Value;
                }
                #endregion

                #region LastModifiedBy - Not Currently Used

                /*
                 * if (xml.MoveToAttribute("lastModificationAuthor"))
                 * {
                 *  LastModifiedBy = xml.Value;
                 * }
                 */
                #endregion
                #endregion

                if (xml.MoveToAttribute("from"))
                {
                    string from = xml.Value;

                    INode fromNode = nodeList[from];

                    IDescriptor fromDescriptor = new CompendiumRelationshipDescriptor(fromNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumFromDescriptor>());

                    _descriptors.Add(fromDescriptor);
                    fromNode.AddDescriptor(fromDescriptor);
                }

                if (xml.MoveToAttribute("to"))
                {
                    string to = xml.Value;

                    INode toNode = nodeList[to];

                    IDescriptor toDescriptor = new CompendiumRelationshipDescriptor(toNode, this, IoCContainer.GetInjectionInstance().GetInstance <CompendiumFromDescriptor>());

                    _descriptors.Add(toDescriptor);
                    toNode.AddDescriptor(toDescriptor);
                }

                while (xml.Read())
                {
                    if (xml.NodeType == XmlNodeType.Element)
                    {
                    }
                    else if (xml.NodeType == XmlNodeType.EndElement && xml.Name == "link")
                    {
                        break;
                    }
                }
            }
        }