示例#1
0
 public DiagramConnector(ConnectorType type,
                         DiagramConnectorNode startConnector, DiagramConnectorNode endConnector)
 {
     this.type  = type;
     this.start = startConnector;
     this.end   = endConnector;
 }
 public ChildDiagramConnector(DiagramConnectorNode startConnector, 
     DiagramConnectorNode endConnector)
     : base(startConnector, endConnector)
 {
     // Get the pen that is used to draw the connection line.
     this.ResourcePen = (Pen)Application.Current.TryFindResource("ChildConnectionPen");
 }
示例#3
0
        public ChildDiagramConnector(DiagramConnectorNode startConnector,
                                     DiagramConnectorNode endConnector) : base(startConnector, endConnector)
        {
            // Get the pen that is used to draw the connection line.

            ChildRelationship rel = this.StartNode.Node.Person.GetParentChildRelationship(this.EndNode.Node.Person);

            if (rel != null)
            {
                if (rel.ParentChildModifier == ParentChildModifier.Adopted || rel.ParentChildModifier == ParentChildModifier.Foster)
                {
                    if (rel.ParentChildModifier == ParentChildModifier.Adopted)
                    {
                        this.ResourcePen = (Pen)Application.Current.TryFindResource("AdoptedChildConnectionPen");
                    }
                    if (rel.ParentChildModifier == ParentChildModifier.Foster)
                    {
                        this.ResourcePen = (Pen)Application.Current.TryFindResource("FosteredChildConnectionPen");
                    }
                }
                else
                {
                    if ((this.StartNode.Node.Type == NodeType.Related && this.EndNode.Node.Type == NodeType.Related ||
                         this.StartNode.Node.Type == NodeType.Related && this.EndNode.Node.Type == NodeType.Primary ||
                         this.StartNode.Node.Type == NodeType.Primary && this.EndNode.Node.Type == NodeType.Related) && Diagram.showBloodlines)
                    {
                        this.ResourcePen = (Pen)Application.Current.TryFindResource("ChildPrimaryConnectionPen");
                    }
                    else
                    {
                        this.ResourcePen = (Pen)Application.Current.TryFindResource("ChildConnectionPen");
                    }
                }
            }
        }
示例#4
0
 public DiagramConnector(ConnectorType type,
                         DiagramNode startNode, DiagramGroup startGroup, DiagramRow startRow,
                         DiagramNode endNode, DiagramGroup endGroup, DiagramRow endRow)
 {
     this.type  = type;
     this.start = new DiagramConnectorNode(startNode, startGroup, startRow);
     this.end   = new DiagramConnectorNode(endNode, endGroup, endRow);
 }
        /// <summary>
        /// Return the bounds (relative to the diagram) for the specified person.
        /// </summary>
        public Rect GetNodeBounds(Person person)
        {
            Rect bounds = Rect.Empty;

            if (person != null && personLookup.ContainsKey(person))
            {
                DiagramConnectorNode connector = personLookup[person];
                bounds = new Rect(connector.TopLeft.X, connector.TopLeft.Y,
                                  connector.Node.ActualWidth, connector.Node.ActualHeight);
            }

            return(bounds);
        }
示例#6
0
        public MarriedDiagramConnector(bool isMarried,
                                       DiagramConnectorNode startConnector, DiagramConnectorNode endConnector) :
            base(startConnector, endConnector)
        {
            // Store if currently married or former.
            married = isMarried;

            // Get resources used to draw text.
            connectionTextSize  = (double)Application.Current.TryFindResource("ConnectionTextSize");
            connectionTextColor = (Color)Application.Current.TryFindResource("ConnectionTextColor");
            connectionTextFont  = (FontFamily)Application.Current.TryFindResource("ConnectionTextFont");

            // Get resourced used to draw the connection line.
            this.ResourcePen = (Pen)Application.Current.TryFindResource(
                married ? "MarriedConnectionPen" : "FormerConnectionPen");
        }
        /// <summary>
        /// Add the spouses to the specified row and group.
        /// </summary>
        private void AddSpouseNodes(Person person, DiagramRow row,
                                    DiagramGroup group, Collection <Person> spouses,
                                    NodeType nodeType, double scale, bool married)
        {
            foreach (Person spouse in spouses)
            {
                if (!personLookup.ContainsKey(spouse))
                {
                    // Spouse node.
                    DiagramNode node = CreateNode(spouse, nodeType, true, scale);
                    group.Add(node);

                    // Add connection.
                    DiagramConnectorNode connectorNode = new DiagramConnectorNode(node, group, row);
                    personLookup.Add(node.Person, connectorNode);
                    connections.Add(new MarriedDiagramConnector(married, personLookup[person], connectorNode));
                }
            }
        }
        /// <summary>
        /// Add the spouses to the specified row and group.
        /// </summary>
        private void AddSpouseNodes(Person person, DiagramRow row,
            DiagramGroup group, Collection<Person> spouses,
            NodeType nodeType, double scale, bool married)
        {
            foreach (Person spouse in spouses)
            {
                if (!personLookup.ContainsKey(spouse))
                {
                    // Spouse node.
                    DiagramNode node = CreateNode(spouse, nodeType, true, scale);
                    group.Add(node);

                    // Add connection.
                    DiagramConnectorNode connectorNode = new DiagramConnectorNode(node, group, row);
                    personLookup.Add(node.Person, connectorNode);
                    connections.Add(new MarriedDiagramConnector(married, personLookup[person], connectorNode));
                }
            }
        }
 /// <summary>
 /// Consturctor that specifies the two nodes that are connected.
 /// </summary>
 protected DiagramConnector(DiagramConnectorNode startConnector, 
     DiagramConnectorNode endConnector)
 {
     this.start = startConnector;
     this.end = endConnector;
 }
        public MarriedDiagramConnector(bool isMarried,
            DiagramConnectorNode startConnector, DiagramConnectorNode endConnector)
            : base(startConnector, endConnector)
        {
            // Store if curretnly married or former.
            married = isMarried;

            // Get resources used to draw text.
            connectionTextSize = (double)Application.Current.TryFindResource("ConnectionTextSize");
            connectionTextColor = (Color)Application.Current.TryFindResource("ConnectionTextColor");
            connectionTextFont = (FontFamily)Application.Current.TryFindResource("ConnectionTextFont");

            // Get resourced used to draw the connection line.
            this.ResourcePen = (Pen)Application.Current.TryFindResource(
                married ? "MarriedConnectionPen" : "FormerConnectionPen");
        }
示例#11
0
 /// <summary>
 /// Consturctor that specifies the two nodes that are connected.
 /// </summary>
 protected DiagramConnector(DiagramConnectorNode startConnector,
                            DiagramConnectorNode endConnector)
 {
     this.start = startConnector;
     this.end   = endConnector;
 }
示例#12
0
 public DiagramConnector(ConnectorType type,
     DiagramNode startNode, DiagramGroup startGroup, DiagramRow startRow,
     DiagramNode endNode, DiagramGroup endGroup, DiagramRow endRow)
 {
     this.type = type;
     this.start = new DiagramConnectorNode(startNode, startGroup, startRow);
     this.end = new DiagramConnectorNode(endNode, endGroup, endRow);
 }
示例#13
0
 public DiagramConnector(ConnectorType type,
     DiagramConnectorNode startConnector, DiagramConnectorNode endConnector)
 {
     this.type = type;
     this.start = startConnector;
     this.end = endConnector;
 }
示例#14
0
 public ChildDiagramConnector(DiagramConnectorNode startConnector,
                              DiagramConnectorNode endConnector) : base(startConnector, endConnector)
 {
     // Get the pen that is used to draw the connection line.
     this.ResourcePen = (Pen)Application.Current.TryFindResource("ChildConnectionPen");
 }