Changeset 1844


Ignore:
Timestamp:
Aug 19, 2010, 11:08:48 PM (11 years ago)
Author:
kopal
Message:
  • changed deleting of input data from executionEngine to PropertyChangedOnPlugin event (for flow control)
Location:
trunk/CrypPlugins/WorkspaceManager
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Execution/ExecutionEngine.cs

    r1836 r1844  
    407407
    408408            //6. Clear all used inputs
    409             clearInputs();
     409            //clearInputs();
    410410
    411411            //7. Send execute messages to possible executable next plugins
    412             runNextPlugins();
     412            //runNextPlugins();
    413413        }
    414414
     
    447447                    connectorModel.Data = null;
    448448                    connectorModel.HasData = false;
     449                    connectorModel.GuiNeedsUpdate = true;
     450
    449451                    foreach (ConnectionModel connectionModel in connectorModel.InputConnections)
    450452                    {
  • trunk/CrypPlugins/WorkspaceManager/Model/ConnectorModel.cs

    r1809 r1844  
    200200        public void PropertyChangedOnPlugin(Object sender, PropertyChangedEventArgs propertyChangedEventArgs)
    201201        {
     202            if (!this.PluginModel.WorkspaceModel.WorkspaceManagerEditor.isExecuting())
     203            {
     204                return;
     205            }
     206
    202207            if (sender == this.PluginModel.Plugin &&
    203208                propertyChangedEventArgs.PropertyName.Equals(PropertyName) &&
     
    219224                }
    220225
     226                Data Data = new Data();
     227                Data.value = data;
     228                this.Data = Data;
     229
    221230                foreach (ConnectionModel connectionModel in this.OutputConnections)
    222231                {
    223                     Data Data = new Data();
     232                    Data = new Data();
    224233                    Data.value = data;
    225234                    connectionModel.To.Data = Data;
     
    236245                    msg.PluginModel = connectionModel.To.PluginModel;
    237246                    connectionModel.To.PluginModel.PluginProtocol.BroadcastMessage(msg);
     247                }
     248            }
     249            else if (sender == this.PluginModel.Plugin &&
     250               propertyChangedEventArgs.PropertyName.Equals(PropertyName) &&
     251               !Outgoing)
     252            {
     253                this.Data = null;
     254                this.hasData = false;
     255                this.GuiNeedsUpdate = true;
     256
     257                foreach (ConnectionModel connectionModel in this.InputConnections)
     258                {
     259                    connectionModel.Active = false;
     260                    connectionModel.GuiNeedsUpdate = true;
     261                }
     262
     263                foreach (ConnectionModel connectionModel in this.InputConnections)
     264                {
     265                    if (!connectionModel.From.PluginModel.Startable ||
     266                        (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
     267                    {
     268                        MessageExecution message_exec = new MessageExecution();
     269                        message_exec.PluginModel = connectionModel.From.PluginModel;
     270                        connectionModel.From.PluginModel.PluginProtocol.BroadcastMessageReliably(message_exec);
     271                    }
    238272                }
    239273            }
Note: See TracChangeset for help on using the changeset viewer.