Exemple #1
0
    private void OnNodeEvent(System.Object sender, EventArgs e)
    {
        GraphEventArgs graphEvent = (GraphEventArgs)e;

        //Debug.Log(this.id + ": " + graphEvent.ToString());

        //Debug.Log(sender.ToString() + " --> " + this.id + ": received --> " + graphEvent.ToString());

        if (graphEvent.LastSender == (Edge)this)
        {
            //Debug.Log("Edge PingPong-BREAK! " + this.id);
            return;
        }

        GraphEventArgs newGraphEventArgs;

        // Filter PingPong
        if (graphEvent.TimeToLive > 0)
        {
            switch (graphEvent.GraphEvent)
            {
            case GraphEventType.NodeChanged:
                // Recalculate Values
                RefreshEdge();

                if ((Node)sender == this.from)
                {
                    //Debug.Log(this.id + " Edge: NodeChanged (sender" + ((Node)sender).ToString() + ")  --> fire EdgeFromChanged");
                    newGraphEventArgs = graphEvent.nextLevelArgs(sender, GraphEventType.EdgeFromChanged, this.id + ".FromChanged");
                }
                else
                {
                    //Debug.Log(this.id + " Edge: NodeChanged (sender" + ((Node)sender).ToString() + ")  --> fire EdgeToChanged");
                    newGraphEventArgs = graphEvent.nextLevelArgs(sender, GraphEventType.EdgeToChanged, this.id + ".ToChanged");
                }

                _change(this, newGraphEventArgs);
                break;

            case GraphEventType.NodeDeleted:
                //Debug.Log(this.id + " Edge: NodeDeleted (sender" + ((Node)sender).ToString() + ")  --> Delete()  -- > fire EdgeDeleted");
                Delete();
                _change(this, graphEvent.nextLevelArgs(sender, GraphEventType.EdgeDeleted, this.id + ".EdgeDeleted"));
                break;

            case GraphEventType.EdgeChanged:
                //Debug.Log(this.id + " Edge: EdgeChanged (sender" + ((Node)sender).ToString() + ")  --> Do Nothing");
                //_change(this, graphEvent.nextLevelArgs(sender, GraphEventType.EdgeDeleted, this.id + ".EdgeDeleted"));
                break;

            default:
                //Debug.Log("Default???");
                break;
            }
        }
    }
Exemple #2
0
    private void OnEdgeEvent(System.Object sender, EventArgs e)
    {
        GraphEventArgs graphEventArgs = (GraphEventArgs)e;

        // Catch PingPong
        if (graphEventArgs.LastSender == this)
        {
            return;
        }

        if (graphEventArgs.TimeToLive > 0)
        {
            GraphEventArgs args;

            // Just to make sure
            RefreshEdges();

            switch (graphEventArgs.GraphEvent)
            {
            case GraphEventType.NodeChanged:
                //Debug.Log(this.id + "NodeChanged\n" + graphEventArgs.ToString());
                args = graphEventArgs.nextLevelArgs(sender, GraphEventType.NodeChanged, this.id + ".NodeChanged");
                _changeGraphLayer(this, args);
                break;

            case GraphEventType.NodeDeleted:
                //Debug.Log(this.id + ": NodeDeleted\n" + graphEventArgs.ToString());
                break;

            case GraphEventType.EdgeFromChanged:
                //Debug.Log(this.id + ": EdgeFromChanged\n" + graphEventArgs.ToString());
                args = graphEventArgs.nextLevelArgs(sender, GraphEventType.NodeChanged, this.id + ".NodeChanged");
                _changeGraphLayer(this, args);
                break;

            case GraphEventType.EdgeToChanged:
                //Debug.Log(this.id + ": EdgeToChanged\n" + graphEventArgs.ToString());
                args = graphEventArgs.nextLevelArgs(sender, GraphEventType.NodeChanged, this.id + ".NodeChanged");
                _changeGraphLayer(this, args);
                break;

            case GraphEventType.EdgeDeleted:
                //Debug.Log(this.id + ": EdgeDeletedChanged\n" + graphEventArgs.ToString());
                args = graphEventArgs.nextLevelArgs(sender, GraphEventType.EdgeDeleted, this.id + ".EdgeDeleted");
                _changeGraphLayer(this, args);
                break;

            default:
                break;
            }
        }
    }