- Timestamp:
- 01/02/17 14:06:38 (8 years ago)
- Location:
- branches/HeuristicLab.DatastreamAnalysis
- Files:
-
- 6 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/DatastreamAnalysisOptimizerView.Designer.cs
r14488 r14536 30 30 this.datastreamViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 31 31 this.resultsTab = new System.Windows.Forms.TabPage(); 32 this.resultsViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 32 this.resultsView = new HeuristicLab.Optimization.Views.ResultCollectionView(); 33 this.runsTab = new System.Windows.Forms.TabPage(); 34 this.runsView = new HeuristicLab.Optimization.Views.RunCollectionView(); 33 35 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 34 36 this.tabControl.SuspendLayout(); … … 36 38 this.datastreamTab.SuspendLayout(); 37 39 this.resultsTab.SuspendLayout(); 40 this.runsTab.SuspendLayout(); 38 41 this.SuspendLayout(); 39 42 // … … 85 88 this.tabControl.Controls.Add(this.datastreamTab); 86 89 this.tabControl.Controls.Add(this.resultsTab); 90 this.tabControl.Controls.Add(this.runsTab); 87 91 this.tabControl.Location = new System.Drawing.Point(3, 26); 88 92 this.tabControl.Name = "tabControl"; … … 103 107 this.ensemblesTab.UseVisualStyleBackColor = true; 104 108 this.ensemblesTab.DragDrop += new System.Windows.Forms.DragEventHandler(this.ensemblesTab_DragDrop); 105 this.ensemblesTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.ensemblesTab_DragEnter); 109 this.ensemblesTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.ensemblesTab_DragEnterOver); 110 this.ensemblesTab.DragOver += new System.Windows.Forms.DragEventHandler(this.ensemblesTab_DragEnterOver); 106 111 // 107 112 // ensemblesViewHost … … 133 138 this.datastreamTab.UseVisualStyleBackColor = true; 134 139 this.datastreamTab.DragDrop += new System.Windows.Forms.DragEventHandler(this.datastreamTab_DragDrop); 135 this.datastreamTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.datastreamTab_DragEnter); 140 this.datastreamTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.datastreamTab_DragEnterOver); 141 this.datastreamTab.DragOver += new System.Windows.Forms.DragEventHandler(this.datastreamTab_DragEnterOver); 136 142 // 137 143 // datastreamViewHost … … 151 157 // resultsTab 152 158 // 153 this.resultsTab.Controls.Add(this.resultsView Host);159 this.resultsTab.Controls.Add(this.resultsView); 154 160 this.resultsTab.Location = new System.Drawing.Point(4, 22); 155 161 this.resultsTab.Name = "resultsTab"; … … 161 167 // resultsViewHost 162 168 // 163 this.resultsViewHost.Caption = "View"; 164 this.resultsViewHost.Content = null; 165 this.resultsViewHost.Dock = System.Windows.Forms.DockStyle.Fill; 166 this.resultsViewHost.Enabled = false; 167 this.resultsViewHost.Location = new System.Drawing.Point(0, 0); 168 this.resultsViewHost.Name = "resultsViewHost"; 169 this.resultsViewHost.ReadOnly = false; 170 this.resultsViewHost.Size = new System.Drawing.Size(950, 554); 171 this.resultsViewHost.TabIndex = 0; 172 this.resultsViewHost.ViewsLabelVisible = true; 173 this.resultsViewHost.ViewType = null; 169 this.resultsView.Caption = "View"; 170 this.resultsView.Content = null; 171 this.resultsView.Dock = System.Windows.Forms.DockStyle.Fill; 172 this.resultsView.Enabled = false; 173 this.resultsView.Location = new System.Drawing.Point(0, 0); 174 this.resultsView.Name = "resultsViewHost"; 175 this.resultsView.ReadOnly = false; 176 this.resultsView.Size = new System.Drawing.Size(950, 554); 177 this.resultsView.TabIndex = 0; 178 // 179 // runsTab 180 // 181 //this.runsTabPage.Controls.Add(this.storeAlgorithmInEachRunCheckBox); 182 this.runsTab.Controls.Add(this.runsView); 183 this.runsTab.Location = new System.Drawing.Point(4, 22); 184 this.runsTab.Name = "runsTabPage"; 185 this.runsTab.Padding = new System.Windows.Forms.Padding(3); 186 this.runsTab.Size = new System.Drawing.Size(950, 554); 187 this.runsTab.TabIndex = 3; 188 this.runsTab.Text = "Runs"; 189 this.runsTab.UseVisualStyleBackColor = true; 190 // 191 // runsView 192 // 193 this.runsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 194 | System.Windows.Forms.AnchorStyles.Left) 195 | System.Windows.Forms.AnchorStyles.Right))); 196 this.runsView.Caption = "RunCollection View"; 197 this.runsView.Content = null; 198 this.runsView.Location = new System.Drawing.Point(0, 0); 199 this.runsView.Name = "runsView"; 200 this.runsView.ReadOnly = false; 201 this.runsView.Size = new System.Drawing.Size(950, 554); 202 this.runsView.TabIndex = 0; 174 203 // 175 204 // DatastreamAnalysisOptimizerView … … 206 235 private System.Windows.Forms.TabPage ensemblesTab; 207 236 private System.Windows.Forms.TabPage datastreamTab; 208 private System.Windows.Forms.TabPage resultsTab; 237 protected System.Windows.Forms.TabPage resultsTab; 238 protected System.Windows.Forms.TabPage runsTab; 209 239 private MainForm.WindowsForms.ViewHost ensemblesViewHost; 210 240 private MainForm.WindowsForms.ViewHost datastreamViewHost; 211 private MainForm.WindowsForms.ViewHost resultsViewHost; 241 protected HeuristicLab.Optimization.Views.ResultCollectionView resultsView; 242 protected HeuristicLab.Optimization.Views.RunCollectionView runsView; 212 243 } 213 244 } -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/DatastreamAnalysisOptimizerView.cs
r14488 r14536 1 1 #region License Information 2 2 3 /* HeuristicLab 3 4 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 18 19 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 20 */ 21 20 22 #endregion 21 23 22 24 using System; 25 using System.Collections.Generic; 26 using System.Linq; 23 27 using System.Windows.Forms; 28 using HeuristicLab.Core; 24 29 using HeuristicLab.MainForm; 25 30 using HeuristicLab.Optimization; … … 37 42 38 43 public new DatastreamAnalysisOptimizer Content { 39 get { return (DatastreamAnalysisOptimizer) base.Content; }44 get { return (DatastreamAnalysisOptimizer) base.Content; } 40 45 set { base.Content = value; } 46 } 47 48 //protected override void Dispose(bool disposing) { 49 // if (disposing) { 50 // if (components != null) components.Dispose(); 51 // } 52 // base.Dispose(disposing); 53 //} 54 55 protected override void OnInitialized(EventArgs e) { 56 // set order of tab pages according to z order. 57 // NOTE: this is required due to a bug in the VS designer. 58 List<Control> tabPages = new List<Control>(); 59 for (int i = 0; i < tabControl.Controls.Count; i++) { 60 tabPages.Add(tabControl.Controls[i]); 61 } 62 tabControl.Controls.Clear(); 63 foreach(Control control in tabPages) 64 tabControl.Controls.Add(control); 65 66 base.OnInitialized(e); 41 67 } 42 68 43 69 protected override void OnContentChanged() { 44 70 base.OnContentChanged(); 45 if (Content == null) 46 return; 47 48 // TODO 71 if (Content == null) { 72 ensemblesViewHost.Content = null; 73 datastreamViewHost.Content = null; 74 resultsView.Content = null; 75 runsView.Content = null; 76 } else { 77 ensemblesViewHost.Content = Content.Ensembles; 78 datastreamViewHost.Content = Content.Datastream; 79 resultsView.Content = Content.Results.AsReadOnly(); 80 runsView.Content = Content.Runs; 81 } 82 } 83 84 protected override void SetEnabledStateOfControls() { 85 base.SetEnabledStateOfControls(); 86 resultsView.Enabled = Content != null; 87 runsView.Enabled = Content != null; 88 } 89 90 protected override void OnClosed(FormClosedEventArgs e) { 91 if ((Content != null) && (Content.ExecutionState == ExecutionState.Started)) { 92 //The content must be stopped if no other view showing the content is available 93 var optimizers = 94 MainFormManager.MainForm.Views.OfType<IContentView>() 95 .Where(v => v != this) 96 .Select(v => v.Content) 97 .OfType<IOptimizer>(); 98 if (!optimizers.Contains(Content)) { 99 var nestedOptimizers = optimizers.SelectMany(opt => opt.NestedOptimizers); 100 if (!nestedOptimizers.Contains(Content)) Content.Stop(); 101 } 102 } 103 base.OnClosed(e); 49 104 } 50 105 … … 52 107 base.RegisterContentEvents(); 53 108 54 // TODO 109 Content.EnsemblesChanged += new EventHandler(Content_EnsemblesChanged); 110 Content.DatastreamChanged += new EventHandler(Content_DatastreamChanged); 55 111 } 56 112 57 113 protected override void DeregisterContentEvents() { 114 Content.EnsemblesChanged -= new EventHandler(Content_EnsemblesChanged); 115 Content.DatastreamChanged -= new EventHandler(Content_DatastreamChanged); 116 58 117 base.DeregisterContentEvents(); 59 118 } 60 119 120 #region 121 protected override void Content_Prepared(object sender, EventArgs e) { 122 if (InvokeRequired) 123 Invoke(new EventHandler(Content_Prepared), sender, e); 124 else { 125 base.Content_Prepared(sender,e); 126 resultsView.Content = Content.Results.AsReadOnly(); 127 } 128 } 129 130 protected void Content_EnsemblesChanged(object sender, EventArgs e) { 131 if (InvokeRequired) 132 Invoke(new EventHandler(Content_EnsemblesChanged), sender, e); 133 else { 134 ensemblesViewHost.Content = Content.Ensembles; 135 } 136 } 137 138 protected void Content_DatastreamChanged(object sender, EventArgs e) { 139 if (InvokeRequired) 140 Invoke(new EventHandler(Content_DatastreamChanged), sender, e); 141 else { 142 if (datastreamViewHost.Content != null && Content.Datastream != null && 143 datastreamViewHost.Content.GetType() != Content.Datastream.GetType()) 144 datastreamViewHost.ViewType = null; 145 datastreamViewHost.Content = Content.Datastream; 146 } 147 } 148 #endregion 149 61 150 #region event handlers 62 63 151 private void ensemblesTab_DragDrop(object sender, DragEventArgs e) { 64 152 if (e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat)) { 65 153 try { 66 // TODO 154 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 155 if (data is IRegressionEnsembleModel) { 156 data = (IRegressionEnsembleModel) data; 157 Content.Ensembles.Add((RegressionEnsembleModel) data); 158 } 67 159 } 68 160 catch (Exception ex) { … … 72 164 } 73 165 74 private void ensemblesTab_DragEnter (object sender, DragEventArgs e) {166 private void ensemblesTab_DragEnterOver(object sender, DragEventArgs e) { 75 167 e.Effect = DragDropEffects.None; 76 if ( !e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat))168 if (ReadOnly || !e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat)) 77 169 return; 78 170 79 171 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 80 172 81 // TODO: check if data is taggedEnsembles-data 82 if(data is IRegressionEnsembleModel) 83 e.Effect = DragDropEffects.Copy; 173 if (data is IRegressionEnsembleModel) { 174 if ((e.KeyState & 32) == 32) e.Effect = DragDropEffects.Link; // ALT key 175 else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move; // SHIFT key 176 else if (e.AllowedEffect.HasFlag(DragDropEffects.Copy)) e.Effect = DragDropEffects.Copy; 177 else if (e.AllowedEffect.HasFlag(DragDropEffects.Move)) e.Effect = DragDropEffects.Move; 178 else if (e.AllowedEffect.HasFlag(DragDropEffects.Link)) e.Effect = DragDropEffects.Link; 179 } 84 180 } 85 181 … … 87 183 if (e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat)) { 88 184 try { 89 // TODO 185 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 186 if (data is IValueParameter) data = ((IValueParameter) data).Value; 187 if (data is IRegressionProblemData) 188 Content.Datastream.ProblemData = (RegressionProblemData) data; 90 189 } 91 190 catch (Exception ex) { … … 95 194 } 96 195 97 private void datastreamTab_DragEnter (object sender, DragEventArgs e) {196 private void datastreamTab_DragEnterOver(object sender, DragEventArgs e) { 98 197 e.Effect = DragDropEffects.None; 99 if (!e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat)) 198 199 if (ReadOnly || !e.Data.GetDataPresent(HeuristicLab.Common.Constants.DragDropDataFormat)) 100 200 return; 101 201 102 202 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 103 if (data is IRegressionProblemData) 104 e.Effect = DragDropEffects.Copy; 203 if (data is IValueParameter) data = ((IValueParameter) data).Value; 204 if (data is IRegressionProblemData) { 205 if ((e.KeyState & 32) == 32) e.Effect = DragDropEffects.Link; // ALT key 206 else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move; // SHIFT key 207 else if (e.AllowedEffect.HasFlag(DragDropEffects.Copy)) e.Effect = DragDropEffects.Copy; 208 else if (e.AllowedEffect.HasFlag(DragDropEffects.Move)) e.Effect = DragDropEffects.Move; 209 else if (e.AllowedEffect.HasFlag(DragDropEffects.Link)) e.Effect = DragDropEffects.Link; 210 } 105 211 } 106 212 -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/HeuristicLab.DatastreamAnalysis.Views.csproj
r14491 r14536 58 58 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath> 59 59 </Reference> 60 <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 61 <SpecificVersion>False</SpecificVersion> 62 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath> 63 </Reference> 60 64 <Reference Include="HeuristicLab.MainForm-3.3"> 61 65 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath> … … 116 120 </ProjectReference> 117 121 </ItemGroup> 122 <ItemGroup> 123 <EmbeddedResource Include="RegressionEnsembleModelView.resx"> 124 <DependentUpon>RegressionEnsembleModelView.cs</DependentUpon> 125 </EmbeddedResource> 126 </ItemGroup> 118 127 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 119 128 <PropertyGroup> -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/Plugin.cs
r14491 r14536 23 23 24 24 namespace HeuristicLab.DatastreamAnalysis.Views { 25 [Plugin("HeuristicLab.DatastreamAnalysis.Views", "3.4.14.144 88")]25 [Plugin("HeuristicLab.DatastreamAnalysis.Views", "3.4.14.14491")] 26 26 [PluginFile("HeuristicLab.DatastreamAnalysis.Views-3.4.dll", PluginFileType.Assembly)] 27 27 [PluginDependency("HeuristicLab.Collections", "3.3")] -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/Properties/AssemblyInfo.cs
r14491 r14536 54 54 // [assembly: AssemblyVersion("1.0.*")] 55 55 [assembly: AssemblyVersion("3.4.0.0")] 56 [assembly: AssemblyFileVersion("3.4.14.144 88")]56 [assembly: AssemblyFileVersion("3.4.14.14491")] -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/RegressionEnsembleModelView.Designer.cs
r14488 r14536 19 19 */ 20 20 #endregion 21 22 using HeuristicLab.Core.Views; 23 using HeuristicLab.Problems.DataAnalysis; 24 21 25 namespace HeuristicLab.DatastreamAnalysis.Views { 22 26 partial class RegressionEnsembleModelView { … … 44 48 /// </summary> 45 49 private void InitializeComponent() { 50 this.modelsView = new HeuristicLab.DatastreamAnalysis.Views.RegressionEnsembleModelView.ModelsView(); 51 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 46 52 this.SuspendLayout(); 47 53 // 54 // nameTextBox 55 // 56 this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 57 this.errorProvider.SetIconPadding(this.nameTextBox, 2); 58 this.nameTextBox.Size = new System.Drawing.Size(468, 20); 59 // 60 // infoLabel 61 // 62 this.infoLabel.Location = new System.Drawing.Point(532, 3); 63 // 64 // modelsView 65 // 66 this.modelsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 67 | System.Windows.Forms.AnchorStyles.Left) 68 | System.Windows.Forms.AnchorStyles.Right))); 69 this.modelsView.Caption = "Models View"; 70 this.modelsView.Content = null; 71 this.modelsView.Location = new System.Drawing.Point(6, 35); 72 this.modelsView.Name = "modelsView"; 73 this.modelsView.ReadOnly = false; 74 this.modelsView.ShowDetails = true; 75 this.modelsView.Size = new System.Drawing.Size(532, 383); 76 this.modelsView.TabIndex = 1; 48 77 // 49 78 // RegressionEnsembleModelView 50 79 // 51 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);52 80 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; 81 this.Controls.Add(this.modelsView); 53 82 this.Name = "RegressionEnsembleModelView"; 83 this.Size = new System.Drawing.Size(551, 425); 84 this.Controls.SetChildIndex(this.modelsView, 0); 85 this.Controls.SetChildIndex(this.nameLabel, 0); 86 this.Controls.SetChildIndex(this.nameTextBox, 0); 87 this.Controls.SetChildIndex(this.infoLabel, 0); 88 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 54 89 this.ResumeLayout(false); 90 this.PerformLayout(); 91 55 92 } 56 93 57 94 #endregion 95 96 private ModelsView modelsView; 58 97 } 59 98 } -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis.Views/3.4/RegressionEnsembleModelView.cs
r14491 r14536 34 34 [Content(typeof(RegressionEnsembleModel), true)] 35 35 internal sealed partial class RegressionEnsembleModelView : NamedItemView { 36 private ModelsViewview;37 private ItemCollection<IRegressionModel> models ;36 //private ItemCollectionView<IRegressionModel> view; 37 private ItemCollection<IRegressionModel> models = new ItemCollection<IRegressionModel>(); 38 38 39 39 public RegressionEnsembleModelView() { 40 40 InitializeComponent(); 41 view = new ModelsView(); 42 view.Dock = DockStyle.Fill; 43 Controls.Add(view); 41 models = new ItemCollection<IRegressionModel>(); 42 43 models.ItemsAdded += Models_ItemsAdded; 44 models.ItemsRemoved += Models_ItemsRemoved; 45 models.CollectionReset += Models_CollectionReset; 46 44 47 } 45 48 … … 49 52 } 50 53 51 52 54 53 55 protected override void OnContentChanged() { 54 56 base.OnContentChanged(); 55 57 if (Content != null) { 56 models = new ItemCollection<IRegressionModel>(Content.Models); 57 view.Content = models; 58 models.ItemsAdded -= Models_ItemsAdded; 59 models.ItemsRemoved -= Models_ItemsRemoved; 60 models.CollectionReset -= Models_CollectionReset; 61 62 models.Clear(); 63 models.AddRange(Content.Models); 64 modelsView.Content = models; 65 66 models.ItemsAdded += Models_ItemsAdded; 67 models.ItemsRemoved += Models_ItemsRemoved; 68 models.CollectionReset += Models_CollectionReset; 58 69 } else { 59 view.Content = null;70 modelsView.Content = null; 60 71 } 61 72 } 62 73 74 private void Models_CollectionReset(object sender, Collections.CollectionItemsChangedEventArgs<IRegressionModel> e) { 75 Content = null; 76 } 77 78 private void Models_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<IRegressionModel> e) { 79 Content.AddRange(e.Items); 80 } 81 82 private void Models_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<IRegressionModel> e) { 83 Content.RemoveRange(e.Items); 84 } 85 63 86 private class ModelsView : ItemCollectionView<IRegressionModel> { 64 protected override void SetEnabledStateOfControls() { 65 base.SetEnabledStateOfControls(); 66 addButton.Enabled = false; 67 removeButton.Enabled = Content != null && !Content.IsReadOnly && !Locked && !ReadOnly && itemsListView.SelectedItems.Count > 0; 68 itemsListView.Enabled = Content != null && !Locked; 69 detailsGroupBox.Enabled = Content != null && itemsListView.SelectedItems.Count == 1; 70 sortAscendingButton.Enabled = false; 71 sortDescendingButton.Enabled = false; 87 public ModelsView() : base() { 72 88 } 89 } 73 90 74 protected override void SortItemsListView(SortOrder sortOrder) { } 91 //private class ModelsView : ItemCollectionView<IRegressionModel> { 92 // protected override void SetEnabledStateOfControls() { 93 // base.SetEnabledStateOfControls(); 94 // addButton.Enabled = false; 95 // removeButton.Enabled = Content != null && !Content.IsReadOnly && !Locked && !ReadOnly && itemsListView.SelectedItems.Count > 0; 96 // itemsListView.Enabled = Content != null && !Locked; 97 // detailsGroupBox.Enabled = Content != null && itemsListView.SelectedItems.Count == 1; 98 // sortAscendingButton.Enabled = false; 99 // sortDescendingButton.Enabled = false; 100 // } 101 102 // protected override void SortItemsListView(SortOrder sortOrder) { } 75 103 76 104 77 protected override void itemsListView_DragEnter(object sender, DragEventArgs e) {78 validDragOperation = false;79 if (ReadOnly || Locked) return;80 if (Content.IsReadOnly) return;105 // protected override void itemsListView_DragEnter(object sender, DragEventArgs e) { 106 // validDragOperation = false; 107 // if (ReadOnly || Locked) return; 108 // if (Content.IsReadOnly) return; 81 109 82 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 83 validDragOperation = dropData.GetObjectGraphObjects().OfType<IRegressionModel>().Any(); 84 } 85 protected override void itemsListView_DragDrop(object sender, DragEventArgs e) { 86 if (e.Effect != DragDropEffects.None) { 87 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 88 var solutions = dropData.GetObjectGraphObjects().OfType<IRegressionModel>(); 89 if (e.Effect.HasFlag(DragDropEffects.Copy)) { 90 Cloner cloner = new Cloner(); 91 solutions = solutions.Select(s => cloner.Clone(s)); 92 } 93 var solutionCollection = Content as ItemCollection<IRegressionModel>; 94 if (solutionCollection != null) { 95 solutionCollection.AddRange(solutions); 96 } else { 97 foreach (var solution in solutions) 98 Content.Add(solution); 99 } 100 } 101 } 102 protected override void itemsListView_KeyDown(object sender, KeyEventArgs e) { 103 var solutionCollection = Content as ItemCollection<IRegressionModel>; 104 if (e.KeyCode == Keys.Delete && solutionCollection != null) { 105 if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) { 106 solutionCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(x => (IRegressionModel)x.Tag)); 107 } 108 } else { 109 base.itemsListView_KeyDown(sender, e); 110 } 111 } 112 protected override void removeButton_Click(object sender, EventArgs e) { 113 var solutionCollection = Content as ItemCollection<IRegressionModel>; 114 if (itemsListView.SelectedItems.Count > 0 && solutionCollection != null) { 115 solutionCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(x => (IRegressionModel)x.Tag)); 116 itemsListView.SelectedItems.Clear(); 117 } else { 118 base.removeButton_Click(sender, e); 119 } 120 } 121 122 123 } 110 // var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 111 // validDragOperation = dropData.GetObjectGraphObjects().OfType<IRegressionModel>().Any(); 112 // } 113 // protected override void itemsListView_DragDrop(object sender, DragEventArgs e) { 114 // if (e.Effect != DragDropEffects.None) { 115 // var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 116 // var solutions = dropData.GetObjectGraphObjects().OfType<IRegressionModel>(); 117 // if (e.Effect.HasFlag(DragDropEffects.Copy)) { 118 // Cloner cloner = new Cloner(); 119 // solutions = solutions.Select(s => cloner.Clone(s)); 120 // } 121 // var solutionCollection = Content as ItemCollection<IRegressionModel>; 122 // if (solutionCollection != null) { 123 // solutionCollection.AddRange(solutions); 124 // } else { 125 // foreach (var solution in solutions) 126 // Content.Add(solution); 127 // } 128 // } 129 // } 130 // protected override void itemsListView_KeyDown(object sender, KeyEventArgs e) { 131 // var solutionCollection = Content as ItemCollection<IRegressionModel>; 132 // if (e.KeyCode == Keys.Delete && solutionCollection != null) { 133 // if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) { 134 // solutionCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(x => (IRegressionModel)x.Tag)); 135 // } 136 // } else { 137 // base.itemsListView_KeyDown(sender, e); 138 // } 139 // } 140 // protected override void removeButton_Click(object sender, EventArgs e) { 141 // var solutionCollection = Content as ItemCollection<IRegressionModel>; 142 // if (itemsListView.SelectedItems.Count > 0 && solutionCollection != null) { 143 // solutionCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(x => (IRegressionModel)x.Tag)); 144 // itemsListView.SelectedItems.Clear(); 145 // } else { 146 // base.removeButton_Click(sender, e); 147 // } 148 // } 149 //} 124 150 125 151 } -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis/3.4/DatastreamAnalysisOptimizer.cs
r14488 r14536 1 1 #region License Information 2 2 3 /* HeuristicLab 3 4 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 18 19 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 20 */ 21 20 22 #endregion 21 23 22 24 using System; 23 25 using System.Collections.Generic; 26 using System.Diagnostics; 24 27 using System.Drawing; 25 28 using System.Linq; 29 using System.Threading; 30 using System.Threading.Tasks; 31 using HeuristicLab.Analysis; 32 using HeuristicLab.Collections; 26 33 using HeuristicLab.Common; 27 34 using HeuristicLab.Core; 35 using HeuristicLab.Data; 28 36 using HeuristicLab.Optimization; 29 37 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 31 39 32 40 namespace HeuristicLab.DatastreamAnalysis { 33 internal enum DatastreamAnalysisOptimizerAction { None, Prepare, Start, Stop, Pause } 41 internal enum DatastreamAnalysisOptimizerAction { 42 None, 43 Prepare, 44 Start, 45 Stop, 46 Pause 47 } 34 48 35 49 [StorableClass] 36 [Item("DatastreamAnalysis Optimizer", "The main loop for evaluating ensemble models against a incoming datastream of time series fashion.")] 37 [Creatable("Algorithms")] 38 public class DatastreamAnalysisOptimizer : NamedItem, IOptimizer, IStorableContent { 39 40 // TODO: introduce members -> ensembles, datastream 41 42 43 // VAR 1: datastream = problem data 44 [Storable] 45 private IRegressionProblemData problemData; 46 47 public IRegressionProblemData ProblemData { 48 get { return problemData; } 50 [Item("DatastreamAnalysis Optimizer", 51 "The main loop for evaluating ensemble models against a incoming datastream of time series fashion.")] 52 [Creatable(CreatableAttribute.Categories.Algorithms)] 53 public class DatastreamAnalysisOptimizer : Executable, IOptimizer, IStorableContent { 54 #region properties 55 public string Filename { get; set; } 56 57 private DatastreamAnalysisOptimizerAction daoAction; 58 59 public IEnumerable<IOptimizer> NestedOptimizers { get; } 60 61 62 [Storable] 63 protected ILog log; 64 public ILog Log { 65 get { return log; } 66 } 67 68 [Storable] 69 private ResultCollection results; 70 71 public ResultCollection Results { 72 get { return results; } 73 } 74 75 private CancellationTokenSource cancellationTokenSource; 76 private bool stopPending; 77 private DateTime lastUpdateTime; 78 79 [Storable] 80 protected int runsCounter; 81 82 [Storable] 83 private RunCollection runs; 84 85 public RunCollection Runs 86 { 87 get { return runs; } 88 protected set 89 { 90 if (value == null) throw new ArgumentNullException(); 91 if (runs != value) { 92 if (runs != null) DeregisterRunsEvents(); 93 runs = value; 94 if (runs != null) RegisterRunsEvents(); 95 } 96 } 97 } 98 99 100 [Storable] 101 private IItemList<RegressionEnsembleModel> ensembles; 102 103 public IItemList<RegressionEnsembleModel> Ensembles { 104 get { return ensembles; } 49 105 set { 50 if (value == null || value == problemData)106 if (value == null || value == ensembles) 51 107 return; 52 108 53 problemData = value; 54 } 55 } 56 57 // VAR 2: datastream = external source (webservice, AMQP-Queue, etc.) 58 // TODO 109 ensembles = value; 110 } 111 } 112 113 114 // VAR 1: datastream ~= problem data, VAR 2 (TODO): datastream = external source e.g. webservice, AMQP-Queue, etc. 115 [Storable] 116 private Datastream datastream; 117 118 public Datastream Datastream { 119 get { return datastream; } 120 set { 121 if (value == null || value == datastream) 122 return; 123 124 datastream = value; 125 } 126 } 127 128 #endregion properties 129 130 #region ResultsProperties 131 private double ResultsBestQuality 132 { 133 get { return ((DoubleValue)Results["Best Quality"].Value).Value; } 134 set { ((DoubleValue)Results["Best Quality"].Value).Value = value; } 135 } 136 private DataTable ResultsQualities 137 { 138 get { return ((DataTable)Results["Qualities"].Value); } 139 } 140 #endregion 141 142 #region constructors, cloner,... 59 143 60 144 public DatastreamAnalysisOptimizer() { 61 Name = "Datastream Analysis"; 145 name = "Datastream Analysis"; 146 log = new Log(); 147 results = new ResultCollection(); 148 ensembles = new ItemList<RegressionEnsembleModel>(); 149 datastream = new Datastream(); 150 runsCounter = 0; 151 runs = new RunCollection(); 152 Initialize(); 62 153 } 63 154 64 155 [StorableConstructor] 65 protected DatastreamAnalysisOptimizer(bool deserializing) : base(deserializing) { } 156 protected DatastreamAnalysisOptimizer(bool deserializing) : base(deserializing) { 157 } 66 158 67 159 [StorableHook(HookType.AfterDeserialization)] … … 71 163 72 164 protected DatastreamAnalysisOptimizer(DatastreamAnalysisOptimizer original, Cloner cloner) : base(original, cloner) { 73 // TODO: clone members (ensembles, datastream) 74 this.ProblemData = (IRegressionProblemData)original.ProblemData.Clone(cloner); 165 name = original.name; 166 log = cloner.Clone(original.log); 167 results = cloner.Clone(original.results); 168 ensembles = (ItemList<RegressionEnsembleModel>) original.Ensembles.Clone(cloner); 169 datastream = (Datastream) original.Datastream.Clone(cloner); 170 runsCounter = original.runsCounter; 171 runs = cloner.Clone(original.runs); 172 Initialize(); 75 173 } 76 174 77 175 public override IDeepCloneable Clone(Cloner cloner) { 78 return new DatastreamAnalysisOptimizer(this, cloner); 79 } 80 81 82 // TODO: introduce EventHandler for EnsemblesChanged, DatastreamChanged 83 84 public EventHandler ProblemDataChanged; 85 private void OnProblemDataChanged() { 86 var changed = ProblemDataChanged; 176 return new DatastreamAnalysisOptimizer(this, cloner); 177 } 178 179 private void Initialize() { 180 if (runs != null) RegisterRunsEvents(); 181 } 182 #endregion 183 184 #region control actions 185 186 public override void Prepare() { 187 if (ensembles == null || datastream == null) return; 188 Prepare(true); 189 } 190 191 public void Prepare(bool clearRuns) { 192 if (ensembles == null || datastream == null) return; 193 base.Prepare(); 194 if (clearRuns) results.Clear(); 195 OnPrepared(); 196 } 197 198 public override void Start() { 199 if (ensembles == null || datastream == null) return; 200 base.Start(); 201 cancellationTokenSource = new CancellationTokenSource(); 202 stopPending = false; 203 204 Task task = Task.Factory.StartNew(Run, cancellationTokenSource.Token, cancellationTokenSource.Token); 205 task.ContinueWith(t => { 206 try { 207 t.Wait(); 208 } 209 catch (AggregateException ex) { 210 try { 211 ex.Flatten().Handle(x => x is OperationCanceledException); 212 } catch (AggregateException remaining) { 213 if(remaining.InnerExceptions.Count == 1) OnExceptionOccurred(remaining.InnerExceptions[0]); 214 else OnExceptionOccurred(remaining); 215 } 216 } 217 cancellationTokenSource.Dispose(); 218 cancellationTokenSource = null; 219 220 // handle stop/pause 221 if(stopPending) { } 222 if(!Datastream.SlidingWindowMovementPossible) OnStopped(); 223 else OnPaused(); 224 }); 225 226 } 227 228 public override void Pause() { 229 if (ensembles == null || datastream == null) return; 230 base.Pause(); 231 cancellationTokenSource.Cancel(); 232 } 233 234 public override void Stop() { 235 if (ensembles == null || datastream == null) return; 236 base.Stop(); 237 if (ExecutionState == ExecutionState.Paused) { 238 OnStopped(); 239 } else { 240 stopPending = true; 241 cancellationTokenSource.Cancel(); 242 } 243 } 244 245 protected override void OnPrepared() { 246 Log.LogMessage("Datastream analysis prepared"); 247 base.OnPrepared(); 248 } 249 250 protected override void OnStarted() { 251 Log.LogMessage("Datastream analysis started"); 252 base.OnStarted(); 253 } 254 255 protected override void OnPaused() { 256 Log.LogMessage("Datastream analysis paused"); 257 base.OnPaused(); 258 } 259 260 protected override void OnStopped() { 261 Log.LogMessage("Datastream analysis stopped"); 262 base.OnStopped(); 263 } 264 265 #endregion 266 267 268 private void Run(object state) { 269 CancellationToken cancellationToken = (CancellationToken) state; 270 OnStarted(); 271 lastUpdateTime = DateTime.UtcNow; 272 System.Timers.Timer timer = new System.Timers.Timer(250); 273 timer.AutoReset = true; 274 timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); 275 timer.Start(); 276 277 try { 278 Run(cancellationToken); 279 } 280 finally { 281 timer.Elapsed -= new System.Timers.ElapsedEventHandler(timer_Elapsed); 282 timer.Stop(); 283 ExecutionTime += DateTime.UtcNow - lastUpdateTime; 284 } 285 286 cancellationToken.ThrowIfCancellationRequested(); 287 } 288 289 protected void Run(CancellationToken cancellationToken) { 290 291 // setup results 292 var slidingWindowMovements = new IntValue(0); 293 Results.Add(new Result("Sliding Window Movements", slidingWindowMovements)); 294 295 var qtable = new DataTable("Qualities"); 296 qtable.Rows.Add(new DataRow("R²")); 297 qtable.Rows.Add(new DataRow("Pearson")); 298 Results.Add(new Result("Qualities", qtable)); 299 300 var curLoss = new DoubleValue(); 301 Results.Add(new Result("R²", curLoss)); 302 Results.Add(new Result("Best Quality", curLoss)); 303 304 305 // init algorithm 306 var problemData = Datastream.ProblemData; 307 var targetVarName = problemData.TargetVariable; 308 var activeVariables = problemData.AllowedInputVariables; 309 Random rnd = new Random(); 310 311 try { 312 while (Datastream.SlidingWindowMovementPossible) { 313 cancellationToken.ThrowIfCancellationRequested(); 314 315 Task.Delay(Datastream.SlidingWindowMovementInterval.Value); 316 317 Datastream.MoveSlidingWindow(); 318 319 // TODO do the window evaluation 320 321 // TODO: collect results and display them 322 323 curLoss.Value = rnd.Next(100); 324 qtable.Rows["R²"].Values.Add(curLoss.Value); 325 qtable.Rows["Pearson"].Values.Add(curLoss.Value % 10); 326 327 slidingWindowMovements.Value++; 328 } 329 330 // TODO: collect runs (c.f. goal seeking) 331 } 332 catch (Exception ex) { 333 if (ex is ArgumentOutOfRangeException) throw ex; 334 if (ex is OperationCanceledException) throw ex; 335 } 336 finally { 337 // reset everything 338 //Prepare(true); 339 } 340 } 341 342 private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { 343 System.Timers.Timer timer = (System.Timers.Timer)sender; 344 timer.Enabled = false; 345 DateTime now = DateTime.UtcNow; 346 ExecutionTime += now - lastUpdateTime; 347 lastUpdateTime = now; 348 timer.Enabled = true; 349 } 350 351 public void CollectResultValues(IDictionary<string, IItem> values) { 352 values.Add("Execution Time", new TimeSpanValue(ExecutionTime)); 353 Results.CollectResultValues(values); 354 } 355 356 #region events 357 358 public EventHandler EnsemblesChanged; 359 public EventHandler DatastreamChanged; 360 361 protected virtual void DeregisterRunsEvents() { 362 runs.CollectionReset -= new CollectionItemsChangedEventHandler<IRun>(Runs_CollectionReset); 363 } 364 365 protected virtual void RegisterRunsEvents() { 366 runs.CollectionReset += new CollectionItemsChangedEventHandler<IRun>(Runs_CollectionReset); 367 } 368 369 protected virtual void Runs_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) { 370 runsCounter = runs.Count; 371 } 372 373 #region event handling 374 375 private void OnEnsemblesChanged() { 376 var changed = EnsemblesChanged; 87 377 if (changed != null) 88 378 changed(this, EventArgs.Empty); 89 379 } 90 380 91 92 public void Prepare() { 93 Prepare(false); 94 } 95 96 public void Start() { 97 if ((ExecutionState != ExecutionState.Prepared) && (ExecutionState != ExecutionState.Paused)) 98 throw new InvalidOperationException(string.Format("Start not allowed in execution state \"{0}\".", ExecutionState)); 99 } 100 101 public void Pause() { 102 if (ExecutionState != ExecutionState.Started) 103 throw new InvalidOperationException(string.Format("Pause not allowed in execution state \"{0}\".", ExecutionState)); 104 } 105 106 public void Stop() { 107 if ((ExecutionState != ExecutionState.Started) && (ExecutionState != ExecutionState.Paused)) 108 throw new InvalidOperationException(string.Format("Stop not allowed in execution state \"{0}\".", ExecutionState)); 109 } 110 111 public void Prepare(bool clearRuns) { 112 if ((ExecutionState != ExecutionState.Prepared) && (ExecutionState != ExecutionState.Paused) && (ExecutionState != ExecutionState.Stopped)) 113 throw new InvalidOperationException(string.Format("Prepare not allowed in execution state \"{0}\".", ExecutionState)); 114 } 115 116 117 [Storable] 118 private TimeSpan executionTime; 119 public TimeSpan ExecutionTime { 120 get { return executionTime; } 121 private set { 122 executionTime = value; 123 OnExecutionTimeChanged(); 124 } 125 } 126 127 public RunCollection Runs { 128 get { 129 return new RunCollection(); 130 } 131 } 132 133 public IEnumerable<IOptimizer> NestedOptimizers { get; } 134 public string Filename { get; set; } 135 136 public new static Image StaticItemImage 137 { 138 get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; } 139 } 140 141 public override Image ItemImage { 142 get { 143 if (ExecutionState == ExecutionState.Prepared) 144 return HeuristicLab.Common.Resources.VSImageLibrary.BatchRunPrepared; 145 else if (ExecutionState == ExecutionState.Started) 146 return HeuristicLab.Common.Resources.VSImageLibrary.BatchRunStarted; 147 else if (ExecutionState == ExecutionState.Paused) return HeuristicLab.Common.Resources.VSImageLibrary.BatchRunPaused; 148 else if (ExecutionState == ExecutionState.Stopped) 149 return HeuristicLab.Common.Resources.VSImageLibrary.BatchRunStopped; 150 else return base.ItemImage; 151 } 152 } 153 154 #region Events 155 156 public ExecutionState ExecutionState { get; private set; } 157 public event EventHandler ExecutionStateChanged; 158 public event EventHandler ExecutionTimeChanged; 159 public event EventHandler Prepared; 160 public event EventHandler Started; 161 public event EventHandler Paused; 162 public event EventHandler Stopped; 163 public event EventHandler<EventArgs<Exception>> ExceptionOccurred; 164 165 166 #region event firing 167 168 protected override void OnNameChanged() { 169 base.OnNameChanged(); 170 } 171 172 private void OnExecutionStateChanged() { 173 EventHandler handler = ExecutionStateChanged; 381 private void OnDatastreamChanged() { 382 var changed = DatastreamChanged; 383 if (changed != null) 384 changed(this, EventArgs.Empty); 385 } 386 387 #endregion 388 389 #endregion 390 391 #region nameditem 392 393 [Storable] protected string name; 394 395 /// <inheritdoc/> 396 /// <remarks>Calls <see cref="OnNameChanging"/> and also <see cref="OnNameChanged"/> 397 /// eventually in the setter.</remarks> 398 public string Name { 399 get { return name; } 400 set { 401 if (!CanChangeName) throw new NotSupportedException("Name cannot be changed."); 402 if (!(name.Equals(value) || (value == null) && (name == string.Empty))) { 403 CancelEventArgs<string> e = value == null 404 ? new CancelEventArgs<string>(string.Empty) 405 : new CancelEventArgs<string>(value); 406 OnNameChanging(e); 407 if (!e.Cancel) { 408 name = value == null ? string.Empty : value; 409 OnNameChanged(); 410 } 411 } 412 } 413 } 414 415 public virtual bool CanChangeName { 416 get { return true; } 417 } 418 419 [Storable] protected string description; 420 421 public string Description { 422 get { return description; } 423 set { 424 if (!CanChangeDescription) throw new NotSupportedException("Description cannot be changed."); 425 if (!(description.Equals(value) || (value == null) && (description == string.Empty))) { 426 description = value == null ? string.Empty : value; 427 OnDescriptionChanged(); 428 } 429 } 430 } 431 432 public virtual bool CanChangeDescription { 433 get { return true; } 434 } 435 436 /// <summary> 437 /// Gets the string representation of the current instance in the format: <c>Name: [null|Value]</c>. 438 /// </summary> 439 /// <returns>The current instance as a string.</returns> 440 public override string ToString() { 441 return Name; 442 } 443 444 /// <inheritdoc/> 445 public event EventHandler<CancelEventArgs<string>> NameChanging; 446 447 /// <summary> 448 /// Fires a new <c>NameChanging</c> event. 449 /// </summary> 450 /// <param name="e">The event arguments of the changing.</param> 451 protected virtual void OnNameChanging(CancelEventArgs<string> e) { 452 var handler = NameChanging; 453 if (handler != null) handler(this, e); 454 } 455 456 /// <inheritdoc/> 457 public event EventHandler NameChanged; 458 459 /// <summary> 460 /// Fires a new <c>NameChanged</c> event. 461 /// </summary> 462 /// <remarks>Calls <see cref="ItemBase.OnChanged"/>.</remarks> 463 protected virtual void OnNameChanged() { 464 var handler = NameChanged; 174 465 if (handler != null) handler(this, EventArgs.Empty); 175 } 176 177 private void OnExecutionTimeChanged() { 178 EventHandler handler = ExecutionTimeChanged; 466 OnToStringChanged(); 467 } 468 469 /// <inheritdoc/> 470 public event EventHandler DescriptionChanged; 471 472 /// <summary> 473 /// Fires a new <c>DescriptionChanged</c> event. 474 /// </summary> 475 /// <remarks>Calls <see cref="ItemBase.OnChanged"/>.</remarks> 476 protected virtual void OnDescriptionChanged() { 477 var handler = DescriptionChanged; 179 478 if (handler != null) handler(this, EventArgs.Empty); 180 479 } 181 480 182 private void OnPrepared() { 183 ExecutionState = ExecutionState.Prepared; 184 EventHandler handler = Prepared; 185 if (handler != null) handler(this, EventArgs.Empty); 186 } 187 188 private void OnStarted() { 189 ExecutionState = ExecutionState.Started; 190 EventHandler handler = Started; 191 if (handler != null) handler(this, EventArgs.Empty); 192 } 193 194 private void OnPaused() { 195 ExecutionState = ExecutionState.Paused; 196 EventHandler handler = Paused; 197 if (handler != null) handler(this, EventArgs.Empty); 198 } 199 200 private void OnStopped() { 201 ExecutionState = ExecutionState.Stopped; 202 EventHandler handler = Stopped; 203 if (handler != null) handler(this, EventArgs.Empty); 204 } 205 206 private void OnExceptionOccurred(Exception exception) { 207 EventHandler<EventArgs<Exception>> handler = ExceptionOccurred; 208 if (handler != null) handler(this, new EventArgs<Exception>(exception)); 209 } 210 211 #endregion 212 213 214 #endregion 215 481 #endregion nameditem 216 482 } 217 483 } -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis/3.4/HeuristicLab.DatastreamAnalysis.csproj
r14491 r14536 102 102 </ItemGroup> 103 103 <ItemGroup> 104 <Compile Include="AnalysisBase.cs" /> 105 <Compile Include="Datastream.cs" /> 104 106 <Compile Include="DatastreamAnalysisOptimizer.cs" /> 107 <Compile Include="DatastreamAnalysisUtil.cs" /> 108 <Compile Include="IAnalysisBase.cs" /> 109 <Compile Include="IDatastream.cs" /> 105 110 <Compile Include="Plugin.cs" /> 106 111 <Compile Include="Properties\AssemblyInfo.cs" /> -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis/3.4/HeuristicLab.DatastreamAnalysis.csproj.user
r14488 r14536 4 4 <StartAction>Program</StartAction> 5 5 <StartProgram>C:\dev\workspaces\hl-core\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram> 6 <StartArguments>/hidestarter /start:Optimizer</StartArguments> 6 7 </PropertyGroup> 7 8 <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"> 8 9 <StartAction>Program</StartAction> 9 10 <StartProgram>C:\dev\workspaces\hl-core\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram> 11 <StartArguments>/hidestarter /start:Optimizer</StartArguments> 10 12 </PropertyGroup> 11 13 </Project> -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis/3.4/Plugin.cs
r14491 r14536 23 23 24 24 namespace HeuristicLab.DatastreamAnalysis { 25 [Plugin("HeuristicLab.DatastreamAnalysis", "3.4.14.144 88")]25 [Plugin("HeuristicLab.DatastreamAnalysis", "3.4.14.14491")] 26 26 [PluginFile("HeuristicLab.DatastreamAnalysis-3.4.dll", PluginFileType.Assembly)] 27 27 [PluginDependency("HeuristicLab.Collections", "3.3")] -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.DatastreamAnalysis/3.4/Properties/AssemblyInfo.cs
r14491 r14536 54 54 // [assembly: AssemblyVersion("1.0.*")] 55 55 [assembly: AssemblyVersion("3.4.0.0")] 56 [assembly: AssemblyFileVersion("3.4.14.144 88")]56 [assembly: AssemblyFileVersion("3.4.14.14491")] -
branches/HeuristicLab.DatastreamAnalysis/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleModel.cs
r14491 r14536 82 82 [StorableHook(HookType.AfterDeserialization)] 83 83 private void AfterDeserialization() { 84 85 foreach (var model in Models) { 86 this.models.Add(model); 87 } 88 84 89 // BackwardsCompatibility 3.3.14 85 90 #region Backwards compatible code, remove with 3.4
Note: See TracChangeset
for help on using the changeset viewer.