Changeset 1627


Ignore:
Timestamp:
Jun 13, 2010, 7:54:08 PM (11 years ago)
Author:
kopal
Message:

Added

  • UpdateGuiInterval (interval for updating the gui elements during execution)
  • CheckInterval (interval for checking plugins being executable)
Location:
trunk/CrypPlugins/WorkspaceManager
Files:
4 edited

Legend:

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

    r1620 r1627  
    4242        private Scheduler[] schedulers;
    4343        private WorkspaceModel workspaceModel;
    44      
     44
     45        public long CheckInterval { get; set; }
     46        public long GuiUpdateInterval { get; set; }
     47
    4548        /// <summary>
    4649        /// Creates a new ExecutionEngine
     
    179182    {
    180183        private WorkspaceModel workspaceModel;
    181         private ExecutionEngine executionEngine;
     184        private ExecutionEngine executionEngine;     
    182185
    183186        /// <summary>
     
    190193        {
    191194            this.workspaceModel = workspaceModel;
    192             this.executionEngine = executionEngine;
     195            this.executionEngine = executionEngine;           
    193196        }
    194197
     
    202205            while (this.executionEngine.IsRunning)
    203206            {
    204                 yield return Timeout(1000, HandleUpdateGui);
     207                yield return Timeout(this.executionEngine.GuiUpdateInterval, HandleUpdateGui);
    205208            }
    206209        }
     
    251254        private WorkspaceModel workspaceModel;
    252255        private ExecutionEngine executionEngine;
    253 
     256     
    254257        /// <summary>
    255258        /// Create a new protocol. Each protocol requires a scheduler which provides
     
    273276            while (this.executionEngine.IsRunning)
    274277            {
    275                 yield return Timeout(1, HandleCheckExecutable);
     278                yield return Timeout(this.executionEngine.CheckInterval, HandleCheckExecutable);
    276279            }
    277280        }
     
    289292            }
    290293        }
     294       
    291295    }
    292296
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r1621 r1627  
    5656        public WorkSpaceEditorView(WorkspaceModel WorkspaceModel)
    5757        {
     58            this.MouseLeftButtonDown += new MouseButtonEventHandler(WorkSpaceEditorView_OnMouseLeftButtonDown);
    5859            this.MouseLeave += new MouseEventHandler(WorkSpaceEditorView_MouseLeave);
    5960            this.Loaded += new RoutedEventHandler(WorkSpaceEditorView_Loaded);
     
    157158        #region Controls
    158159
     160        void WorkSpaceEditorView_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
     161        {
     162            if (!e.Handled)
     163            {
     164                PluginChangedEventArgs args = new PluginChangedEventArgs(this.model.WorkspaceManagerEditor, "WorkspaceManager", DisplayPluginMode.Normal);
     165                this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     166            }
     167        }
     168
    159169        void shape_OnConnectorMouseLeftButtonDown(object sender, ConnectorViewEventArgs e)
    160170        {
     
    189199            this.selectedPluginContainer = null;
    190200            this.State = EditorState.READY;
    191         }
     201        }     
    192202
    193203        void WorkSpaceEditorView_MouseMove(object sender, MouseEventArgs e)
     
    220230            PluginChangedEventArgs args = new PluginChangedEventArgs(this.selectedPluginContainer.Model.Plugin, this.selectedPluginContainer.Model.Name, DisplayPluginMode.Normal);
    221231            this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     232            e.Handled = true;
    222233        }
    223234
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.cs

    r1620 r1627  
    357357                }
    358358                , null);
    359                 ExecutionEngine.Execute(WorkspaceModel);
     359
     360                try
     361                {
     362                    ExecutionEngine.CheckInterval = long.Parse(((WorkspaceManagerSettings)this.Settings).CheckInterval);
     363                }
     364                catch (Exception ex)
     365                {
     366                    GuiLogMessage("Could not set CheckInterval: " + ex.Message, NotificationLevel.Warning);
     367                    ExecutionEngine.CheckInterval = 10;
     368                }
     369
     370                try
     371                {
     372                    ExecutionEngine.GuiUpdateInterval = long.Parse(((WorkspaceManagerSettings)this.Settings).GuiUpdateInterval);
     373                }
     374                catch (Exception ex)
     375                {
     376                    GuiLogMessage("Could not set GuiUpdateInterval: " + ex.Message, NotificationLevel.Warning);
     377                    ExecutionEngine.GuiUpdateInterval = 100;
     378                }
     379                ExecutionEngine.Execute(WorkspaceModel);               
    360380            }
    361381            catch (Exception ex)
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManagerSettings.cs

    r1617 r1627  
    44using System.Text;
    55using Cryptool.PluginBase;
     6using System.ComponentModel;
    67
    78namespace WorkspaceManager
     
    1011    {
    1112        #region ISettings Members
     13        private bool hasChanges = false;
    1214
    1315        public bool HasChanges
     
    1517            get
    1618            {
    17                 return false;
     19                return hasChanges;
    1820            }
    1921            set
    2022            {
    21                
     23                hasChanges = value;
     24            }
     25        }
     26
     27        private String guiUpdateInterval = "100";
     28        [TaskPane("GuiUpdateInterval", "The interval the gui should be updated in miliseconds.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
     29        public String GuiUpdateInterval
     30        {
     31            get
     32            {
     33                return guiUpdateInterval;
     34            }
     35            set
     36            {
     37                guiUpdateInterval = value;
     38                OnPropertyChanged("GuiUpdateInterval");
     39            }
     40        }
     41
     42        private String checkInterval = "10";
     43        [TaskPane("CheckInterval", "The interval the plugins should be checked for being executable.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
     44        public String CheckInterval
     45        {
     46            get
     47            {
     48                return checkInterval;
     49            }
     50            set
     51            {
     52                checkInterval = value;
     53                OnPropertyChanged("CheckInterval");
    2254            }
    2355        }
     
    2860
    2961        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     62       
     63        private void OnPropertyChanged(string p)
     64        {
     65            if (PropertyChanged != null)
     66                PropertyChanged(this, new PropertyChangedEventArgs(p));
     67        }
    3068
    3169        #endregion
Note: See TracChangeset for help on using the changeset viewer.