- Timestamp:
- 07/08/14 19:03:36 (10 years ago)
- Location:
- stable
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 10173-10176,10540-10541,10543,10545,11031
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Views
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Views merged: 10173-10176,10540-10541
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/ClassificationEnsembleSolutionView.cs
r9456 r11144 37 37 } 38 38 39 protected override void SetEnabledStateOfControls() { 40 base.SetEnabledStateOfControls(); 41 //loading of problemdata is currently not support for ensemble solutions 42 loadProblemDataButton.Enabled = false; 43 loadProblemDataButton.Visible = false; 44 } 45 39 46 protected override void OnContentChanged() { 40 47 base.OnContentChanged(); … … 47 54 var droppedData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 48 55 if (droppedData is IValueParameter) droppedData = ((IValueParameter)droppedData).Value; 56 else if (droppedData is IClassificationProblem) droppedData = ((IClassificationProblem)droppedData).ProblemData; 49 57 50 58 ClassificationEnsembleProblemData ensembleProblemData = droppedData as ClassificationEnsembleProblemData; -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/ClassificationSolutionView.cs
r9456 r11144 43 43 44 44 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 45 if (dropData is ClassificationProblemData) validDragOperation = true; 45 if (dropData is IClassificationProblemData) validDragOperation = true; 46 else if (dropData is IClassificationProblem) validDragOperation = true; 46 47 else if (dropData is IValueParameter) { 47 48 var param = (IValueParameter)dropData; -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/ClusteringSolutionView.cs
r9456 r11144 43 43 44 44 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 45 if (dropData is ClusteringProblemData) validDragOperation = true; 45 if (dropData is IClusteringProblemData) validDragOperation = true; 46 else if (dropData is IClusteringProblem) validDragOperation = true; 46 47 else if (dropData is IValueParameter) { 47 48 var param = (IValueParameter)dropData; -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.Designer.cs
r9999 r11144 19 19 */ 20 20 #endregion 21 21 22 namespace HeuristicLab.Problems.DataAnalysis.Views { 22 23 partial class DataAnalysisSolutionView { … … 44 45 /// </summary> 45 46 private void InitializeComponent() { 46 this.exportButton = new System.Windows.Forms.Button(); 47 this.exportFileDialog = new System.Windows.Forms.SaveFileDialog(); 47 this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel(); 48 this.loadProblemDataButton = new System.Windows.Forms.Button(); 49 this.loadProblemDataFileDialog = new System.Windows.Forms.OpenFileDialog(); 48 50 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); 49 51 this.splitContainer.Panel1.SuspendLayout(); … … 53 55 this.detailsGroupBox.SuspendLayout(); 54 56 this.SuspendLayout(); 57 // 58 // itemslistView 59 // 60 this.itemsListView.Location = new System.Drawing.Point(this.itemsListView.Location.X, this.itemsListView.Location.Y + 3); 61 // 62 // detailsGroupBox 63 // 64 this.detailsGroupBox.Location = new System.Drawing.Point(this.detailsGroupBox.Location.X, this.detailsGroupBox.Location.Y + 3); 65 // 55 66 // 56 67 // splitContainer … … 59 70 // splitContainer.Panel2 60 71 // 61 this.splitContainer.Panel2.Controls.Add(this. exportButton);72 this.splitContainer.Panel2.Controls.Add(this.flowLayoutPanel); 62 73 // 63 74 // itemsGroupBox 64 75 // 65 76 this.itemsGroupBox.Text = "Data Analysis Solution"; 77 // 78 // flowLayoutPanel 79 // 80 this.flowLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); 81 this.flowLayoutPanel.FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight; 82 this.flowLayoutPanel.Location = new System.Drawing.Point(0, 0); 83 this.flowLayoutPanel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); 84 this.flowLayoutPanel.Size = new System.Drawing.Size(266, 30); 85 this.flowLayoutPanel.Controls.Add(this.loadProblemDataButton); 86 // 87 // loadProblemDataButton 88 // 89 this.loadProblemDataButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); 90 this.loadProblemDataButton.AutoSize = true; 91 this.loadProblemDataButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open; 92 this.loadProblemDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; 93 this.loadProblemDataButton.Name = "loadProblemDataButton"; 94 this.loadProblemDataButton.Size = new System.Drawing.Size(105, 24); 95 this.loadProblemDataButton.TabIndex = 6; 96 this.loadProblemDataButton.Text = "Load new Data"; 97 this.loadProblemDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 98 this.loadProblemDataButton.UseVisualStyleBackColor = true; 99 this.loadProblemDataButton.Click += new System.EventHandler(this.loadProblemDataButton_Click); 100 this.toolTip.SetToolTip(this.loadProblemDataButton, "Creates a new data analysis solution with the same model and the loaded problem data."); 66 101 // 67 // addButton102 // openFileDialog 68 103 // 69 this.toolTip.SetToolTip(this.addButton, "Add"); 70 // 71 // removeButton 72 // 73 this.toolTip.SetToolTip(this.removeButton, "Remove"); 74 // 75 // exportButton 76 // 77 this.exportButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 78 this.exportButton.Location = new System.Drawing.Point(215, 4); 79 this.exportButton.Name = "exportButton"; 80 this.exportButton.Size = new System.Drawing.Size(54, 23); 81 this.exportButton.TabIndex = 6; 82 this.exportButton.Text = "Export"; 83 this.exportButton.UseVisualStyleBackColor = true; 84 this.exportButton.Click += new System.EventHandler(this.exportButton_Click); 104 this.loadProblemDataFileDialog.Filter = "HL files|*.hl"; 105 this.loadProblemDataFileDialog.Title = "Load new ProblemData or Problem..."; 85 106 // 86 107 // DataAnalysisSolutionView … … 100 121 #endregion 101 122 102 private System.Windows.Forms.SaveFileDialog exportFileDialog; 103 protected System.Windows.Forms.Button exportButton; 123 protected System.Windows.Forms.Button loadProblemDataButton; 124 protected System.Windows.Forms.OpenFileDialog loadProblemDataFileDialog; 125 protected System.Windows.Forms.FlowLayoutPanel flowLayoutPanel; 104 126 105 127 } -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs
r9999 r11144 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.ComponentModel;25 24 using System.Drawing; 26 25 using System.Linq; … … 31 30 using HeuristicLab.Optimization; 32 31 using HeuristicLab.Optimization.Views; 32 using HeuristicLab.Persistence.Default.Xml; 33 33 using HeuristicLab.PluginInfrastructure; 34 34 … … 52 52 addButton.Enabled = false; 53 53 removeButton.Enabled = false; 54 if (Content == null) { 55 exportButton.Enabled = false; 56 } else { 57 exportButton.Enabled = !Locked; 58 } 54 loadProblemDataButton.Enabled = Content != null && !Locked; 59 55 } 60 56 … … 127 123 } 128 124 129 130 private void exportButton_Click(object sender, EventArgs e) { 131 var exporters = ApplicationManager.Manager.GetInstances<IDataAnalysisSolutionExporter>() 132 .Where(exporter => exporter.Supports(Content)).ToArray(); 133 exportFileDialog.Filter = exporters.Skip(1) 134 .Aggregate(exporters.First().FileTypeFilter, (s, exporter) => s + "|" + exporter.FileTypeFilter); 135 var result = exportFileDialog.ShowDialog(); 136 if (result == DialogResult.OK) { 137 138 var name = exportFileDialog.FileName; 139 var selectedExporter = exporters.Single(exporter => exporter.FileTypeFilter == exportFileDialog.Filter); 140 141 using (BackgroundWorker bg = new BackgroundWorker()) { 142 MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Exportion solution to " + name + "."); 143 bg.DoWork += (_, __) => selectedExporter.Export(Content, name); 144 bg.RunWorkerCompleted += (_, __) => MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this); 145 bg.RunWorkerAsync(); 125 protected virtual void loadProblemDataButton_Click(object sender, EventArgs e) { 126 if (loadProblemDataFileDialog.ShowDialog(this) != DialogResult.OK) return; 127 try { 128 object hlFile = XmlParser.Deserialize(loadProblemDataFileDialog.FileName); 129 130 IDataAnalysisProblemData problemData = null; 131 if (hlFile is IDataAnalysisProblemData) { 132 problemData = (IDataAnalysisProblemData)hlFile; 133 } else if (hlFile is IDataAnalysisProblem) { 134 problemData = ((IDataAnalysisProblem)hlFile).ProblemData; 135 } else if (hlFile is IDataAnalysisSolution) { 136 problemData = ((IDataAnalysisSolution)hlFile).ProblemData; 146 137 } 138 139 if (problemData == null) 140 throw new InvalidOperationException("The chosen HeuristicLab file does not contain a ProblemData, Problem, or DataAnalysisSolution."); 141 142 var solution = (IDataAnalysisSolution)Content.Clone(); 143 problemData.AdjustProblemDataProperties(solution.ProblemData); 144 solution.ProblemData = problemData; 145 if (!solution.Name.EndsWith(" with loaded problemData")) 146 solution.Name += " with loaded problemData"; 147 MainFormManager.MainForm.ShowContent(solution); 148 } 149 catch (InvalidOperationException invalidOperationException) { 150 ErrorHandling.ShowErrorDialog(this, invalidOperationException); 151 } 152 catch (ArgumentException argumentException) { 153 ErrorHandling.ShowErrorDialog(this, argumentException); 147 154 } 148 155 } … … 194 201 validDragOperation = false; 195 202 if (ReadOnly) return; 203 if (e.Effect != DragDropEffects.Copy) return; 196 204 197 205 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 198 if (dropData is DataAnalysisProblemData) validDragOperation = true; 206 if (dropData is IDataAnalysisProblemData) validDragOperation = true; 207 else if (dropData is IDataAnalysisProblem) validDragOperation = true; 199 208 else if (dropData is IValueParameter) { 200 209 var param = (IValueParameter)dropData; 201 if (param.Value is DataAnalysisProblemData) validDragOperation = true;210 if (param.Value is IDataAnalysisProblemData) validDragOperation = true; 202 211 } 203 212 } 204 213 205 214 protected override void itemsListView_DragDrop(object sender, DragEventArgs e) { 206 if (e.Effect != DragDropEffects.None) { 207 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 208 if (dropData is DataAnalysisProblemData) { 209 DataAnalysisProblemData problemData = (DataAnalysisProblemData)dropData; 210 Content.ProblemData = (DataAnalysisProblemData)problemData.Clone(); 211 } else if (dropData is IValueParameter) { 212 var param = (IValueParameter)dropData; 213 DataAnalysisProblemData problemData = param.Value as DataAnalysisProblemData; 214 if (problemData != null) 215 Content.ProblemData = (DataAnalysisProblemData)problemData.Clone(); 216 } 215 if (e.Effect == DragDropEffects.None) return; 216 217 IDataAnalysisProblemData problemData = null; 218 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 219 if (dropData is IDataAnalysisProblemData) 220 problemData = (IDataAnalysisProblemData)dropData; 221 else if (dropData is IDataAnalysisProblem) 222 problemData = ((IDataAnalysisProblem)dropData).ProblemData; 223 else if (dropData is IValueParameter) { 224 var param = (IValueParameter)dropData; 225 problemData = param.Value as DataAnalysisProblemData; 226 } 227 if (problemData == null) return; 228 229 try { 230 problemData.AdjustProblemDataProperties(Content.ProblemData); 231 Content.ProblemData = problemData; 232 233 if (!Content.Name.EndsWith(" with changed problemData")) 234 Content.Name += " with changed problemData"; 235 } 236 catch (InvalidOperationException invalidOperationException) { 237 ErrorHandling.ShowErrorDialog(this, invalidOperationException); 238 } 239 catch (ArgumentException argumentException) { 240 ErrorHandling.ShowErrorDialog(this, argumentException); 217 241 } 218 242 } 219 243 #endregion 244 220 245 } 221 246 } -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/RegressionEnsembleSolutionView.cs
r9456 r11144 32 32 } 33 33 34 protected override void SetEnabledStateOfControls() { 35 base.SetEnabledStateOfControls(); 36 //loading of problemdata is currently not support for ensemble solutions 37 loadProblemDataButton.Enabled = false; 38 loadProblemDataButton.Visible = false; 39 } 40 34 41 public new RegressionEnsembleSolution Content { 35 42 get { return (RegressionEnsembleSolution)base.Content; } … … 47 54 var droppedData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 48 55 if (droppedData is IValueParameter) droppedData = ((IValueParameter)droppedData).Value; 56 if (droppedData is IRegressionProblem) droppedData = ((IRegressionProblem)droppedData).ProblemData; 49 57 50 58 RegressionEnsembleProblemData ensembleProblemData = droppedData as RegressionEnsembleProblemData; 51 RegressionProblemData problemData = droppedData asRegressionProblemData;59 IRegressionProblemData problemData = droppedData as IRegressionProblemData; 52 60 if (ensembleProblemData != null) { 53 61 Content.ProblemData = (RegressionEnsembleProblemData)ensembleProblemData.Clone(); -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/RegressionSolutionView.cs
r9456 r11144 43 43 44 44 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 45 if (dropData is RegressionProblemData) validDragOperation = true; 45 if (dropData is IRegressionProblemData) validDragOperation = true; 46 else if (dropData is IRegressionProblem) validDragOperation = true; 46 47 else if (dropData is IValueParameter) { 47 48 var param = (IValueParameter)dropData; -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/TimeSeriesPrognosisSolutionView.cs
r9456 r11144 44 44 var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 45 45 if (dropData is ITimeSeriesPrognosisProblemData) validDragOperation = true; 46 else if (dropData is ITimeSeriesPrognosisProblem) validDragOperation = true; 46 47 else if (dropData is IValueParameter) { 47 48 var param = (IValueParameter)dropData;
Note: See TracChangeset
for help on using the changeset viewer.