Example #1
0
 void WeightedGraph_OnAddEdge(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.AlreadyExist)
     {
         (e.Edge as WeightedArc).Weight += currentWeigth;
     }
 }
 void Tree_OnEdgeAdded(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         this.ArcWrappers.Remove(this.ArcWrappers.Last());
         this.ArcWrappers.Add(new NamedArcWrapper(this, e.Edge as NamedArc));
     }
 }
Example #3
0
 void SimpleGraph_OnAddEdge(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         object u = e.Edge.Vertices[0].Value, v = e.Edge.Vertices[1].Value;
         if (this[u, v] != null || u == v)
             e.Status = ModificationStatus.Error;
     }
 }
Example #4
0
 void BiGraph_OnAddEdge(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         Arc arc = e.Edge as Arc;
         if ((firstPart.Exists(v => v.Value.Equals(arc.Head.Value)) && firstPart.Exists(v => v.Value.Equals(arc.Tail.Value)))
                 || (secondPart.Exists(v => v.Value.Equals(arc.Head.Value)) && secondPart.Exists(v => v.Value.Equals(arc.Tail.Value))))
         {
             e.Status = ModificationStatus.Error;
         }
     }
 }
 void sGraph_OnEdgeAdded(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         WFArcWrapper last = this.ArcWrappers.Last() as WFArcWrapper;
         this.ArcWrappers.Add(new RelationArcWrapper(this, e.Edge as RelationArc) { Points = last.Points });
         this.ArcWrappers.Remove(last);
     }
 }
Example #6
0
        void DirectedGraph_OnRemoveEdge(object sender, EdgesModifiedEventArgs e)
        {
            DirectedGraph graph = sender as DirectedGraph;
            Arc arc = e.Edge as Arc;

            if (e.Status == ModificationStatus.Successful)
            {
                arc = graph.GetEdge(edge => (edge as Arc).Head.Value == e.v && (edge as Arc).Tail.Value == e.u) as Arc;
                if (arc == null)
                    e.Status = ModificationStatus.NotExist;
            }
        }
Example #7
0
 void DirectedGraph_OnAddEdge(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         if (this[e.u, e.v] != null)
         {
             e.Status = ModificationStatus.AlreadyExist;
             e.Edge = this[e.u, e.v];
         }
     }
 }
Example #8
0
 void graph_OnEdgeRemoved(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         ArcWrappers.RemoveAll(a => a.EqualsEdges(e.Edge));
     }
 }
Example #9
0
 void graph_OnEdgeAdded(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         ArcWrappers.Add(new WFArcWrapper(this, e.Edge) { Points = currentPoints });
     }
 }
 private void Graph_OnEdgeAdded(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         WFArcWrapper last = this.ArcWrappers.Last() as WFArcWrapper;
         this.ArcWrappers.Add(new ColouredArcWrapper(this, e.Edge as ColouredArc) { Points = this.currentPoints });
         this.ArcWrappers.Remove(last);
     }
 }
Example #11
0
 void graph_OnAddEdge(object sender, EdgesModifiedEventArgs e)
 {
     if (e.Status == ModificationStatus.Successful)
     {
         // block loops
         if (e.u.Equals(e.v))
         {
             e.Status = ModificationStatus.AlreadyExist;
             return;
         }
         // invalid id
         if (this.GetRelationDefinition(this._currentArcId) == null)
         {
             e.Status = ModificationStatus.InvalidParameters;
             return;
         }
     }
 }
Example #12
0
        public void RemoveEdge(object u, object v)
        {
            IEdge edge = edges.Find(e =>
                                (e.Vertices[0].Value.Equals(u) && e.Vertices[1].Value.Equals(v)) ||
                                (e.Vertices[1].Value.Equals(u) && e.Vertices[0].Value.Equals(v)));

            ModificationStatus status = edge != null ? ModificationStatus.Successful : ModificationStatus.NotExist;
            EdgesModifiedEventArgs eArgs = new EdgesModifiedEventArgs(status, edge, u, v);

            if (OnRemoveEdge!= null)
                OnRemoveEdge(this, eArgs);

            if (eArgs.Status == ModificationStatus.Successful)
                edges.Remove(eArgs.Edge as Edge);

            if (OnEdgeRemoved != null)
                OnEdgeRemoved(this, eArgs);
        }
Example #13
0
        public void AddEdge(object u, object v)
        {
            ModificationStatus status = ModificationStatus.Successful;

            if (!(vertices.Exists(vert => vert.Value.Equals(v)) && vertices.Exists(vert => vert.Value.Equals(u))))
                status = ModificationStatus.InvalidParameters;

            IEdge edge = this.CreateEdge(u, v);
            EdgesModifiedEventArgs e = new EdgesModifiedEventArgs(status, edge, u, v);

            if (OnAddEdge != null)
                OnAddEdge(this, e);

            if (e.Status == ModificationStatus.Successful)
                edges.Add(e.Edge);

            if (OnEdgeAdded != null)
                OnEdgeAdded(this, e);
        }