Changeset 10021
- Timestamp:
- 10/02/13 20:11:14 (11 years ago)
- Location:
- stable
- Files:
-
- 14 deleted
- 14 edited
- 12 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 10000-10001,10003,10009
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Optimization.Views/3.3/ProblemView.Designer.cs
r9456 r10021 46 46 private void InitializeComponent() { 47 47 this.problemInstanceSplitContainer = new System.Windows.Forms.SplitContainer(); 48 this.ProblemInstanceConsumerViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 48 this.libraryLabel = new System.Windows.Forms.Label(); 49 this.problemInstanceProviderComboBox = new System.Windows.Forms.ComboBox(); 50 this.problemInstanceProviderViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 49 51 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 50 52 ((System.ComponentModel.ISupportInitialize)(this.problemInstanceSplitContainer)).BeginInit(); … … 87 89 // problemInstanceSplitContainer.Panel1 88 90 // 89 this.problemInstanceSplitContainer.Panel1.Controls.Add(this.ProblemInstanceConsumerViewHost); 91 this.problemInstanceSplitContainer.Panel1.Controls.Add(this.libraryLabel); 92 this.problemInstanceSplitContainer.Panel1.Controls.Add(this.problemInstanceProviderComboBox); 93 this.problemInstanceSplitContainer.Panel1.Controls.Add(this.problemInstanceProviderViewHost); 90 94 this.problemInstanceSplitContainer.Panel1MinSize = 10; 91 95 // … … 100 104 this.problemInstanceSplitContainer.TabIndex = 13; 101 105 // 102 // ProblemInstanceConsumerViewHost106 // libraryLabel 103 107 // 104 this.ProblemInstanceConsumerViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 108 this.libraryLabel.AutoSize = true; 109 this.libraryLabel.Location = new System.Drawing.Point(3, 6); 110 this.libraryLabel.Name = "libraryLabel"; 111 this.libraryLabel.Size = new System.Drawing.Size(41, 13); 112 this.libraryLabel.TabIndex = 17; 113 this.libraryLabel.Text = "Library:"; 114 // 115 // problemInstanceProviderComboBox 116 // 117 this.problemInstanceProviderComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 118 this.problemInstanceProviderComboBox.FormattingEnabled = true; 119 this.problemInstanceProviderComboBox.Location = new System.Drawing.Point(50, 2); 120 this.problemInstanceProviderComboBox.Name = "problemInstanceProviderComboBox"; 121 this.problemInstanceProviderComboBox.Size = new System.Drawing.Size(208, 21); 122 this.problemInstanceProviderComboBox.TabIndex = 18; 123 this.problemInstanceProviderComboBox.SelectedIndexChanged += new System.EventHandler(this.problemInstanceProviderComboBox_SelectedIndexChanged); 124 // 125 // problemInstanceProviderViewHost 126 // 127 this.problemInstanceProviderViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 105 128 | System.Windows.Forms.AnchorStyles.Left) 106 129 | System.Windows.Forms.AnchorStyles.Right))); 107 this. ProblemInstanceConsumerViewHost.Caption = "ProblemInstanceConsumerView";108 this. ProblemInstanceConsumerViewHost.Content = null;109 this. ProblemInstanceConsumerViewHost.Enabled = false;110 this. ProblemInstanceConsumerViewHost.Location = new System.Drawing.Point(0, 1);111 this. ProblemInstanceConsumerViewHost.Name = "ProblemInstanceConsumerViewHost";112 this. ProblemInstanceConsumerViewHost.ReadOnly = false;113 this. ProblemInstanceConsumerViewHost.Size = new System.Drawing.Size(511, 23);114 this. ProblemInstanceConsumerViewHost.TabIndex = 0;115 this. ProblemInstanceConsumerViewHost.ViewsLabelVisible = false;116 this. ProblemInstanceConsumerViewHost.ViewType = null;130 this.problemInstanceProviderViewHost.Caption = "ProblemInstanceConsumerView"; 131 this.problemInstanceProviderViewHost.Content = null; 132 this.problemInstanceProviderViewHost.Enabled = false; 133 this.problemInstanceProviderViewHost.Location = new System.Drawing.Point(264, 1); 134 this.problemInstanceProviderViewHost.Name = "problemInstanceProviderViewHost"; 135 this.problemInstanceProviderViewHost.ReadOnly = false; 136 this.problemInstanceProviderViewHost.Size = new System.Drawing.Size(247, 23); 137 this.problemInstanceProviderViewHost.TabIndex = 0; 138 this.problemInstanceProviderViewHost.ViewsLabelVisible = false; 139 this.problemInstanceProviderViewHost.ViewType = null; 117 140 // 118 141 // ProblemView 119 142 // 120 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);121 143 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; 122 144 this.Controls.Add(this.problemInstanceSplitContainer); … … 125 147 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 126 148 this.problemInstanceSplitContainer.Panel1.ResumeLayout(false); 149 this.problemInstanceSplitContainer.Panel1.PerformLayout(); 127 150 this.problemInstanceSplitContainer.Panel2.ResumeLayout(false); 128 151 this.problemInstanceSplitContainer.Panel2.PerformLayout(); … … 136 159 137 160 protected System.Windows.Forms.SplitContainer problemInstanceSplitContainer; 138 protected HeuristicLab.MainForm.WindowsForms.ViewHost ProblemInstanceConsumerViewHost; 161 protected HeuristicLab.MainForm.WindowsForms.ViewHost problemInstanceProviderViewHost; 162 protected System.Windows.Forms.Label libraryLabel; 163 protected System.Windows.Forms.ComboBox problemInstanceProviderComboBox; 139 164 } 140 165 } -
stable/HeuristicLab.Optimization.Views/3.3/ProblemView.cs
r9456 r10021 23 23 using System.Collections.Generic; 24 24 using System.Linq; 25 using System.Windows.Forms;26 25 using HeuristicLab.Core.Views; 27 26 using HeuristicLab.MainForm; … … 37 36 public partial class ProblemView : ParameterizedNamedItemView { 38 37 39 private static Type neededViewType = typeof(ProblemInstanceConsumerView);40 41 38 public new IProblem Content { 42 39 get { return (IProblem)base.Content; } 43 40 set { base.Content = value; } 44 41 } 42 43 protected IEnumerable<IProblemInstanceProvider> problemInstanceProviders; 44 public IEnumerable<IProblemInstanceProvider> ProblemInstanceProviders { 45 get { return new List<IProblemInstanceProvider>(problemInstanceProviders); } 46 } 47 48 public IProblemInstanceProvider SelectedProvider { get; protected set; } 45 49 46 50 /// <summary> … … 53 57 protected override void OnContentChanged() { 54 58 base.OnContentChanged(); 55 IProblemInstanceConsumer consumer = Content as IProblemInstanceConsumer; 56 if (consumer != null) { 57 IEnumerable<Type> viewTypes = MainFormManager.GetViewTypes(consumer.GetType(), true); 58 Type genericView = viewTypes.Where(x => x.IsSubclassOf(neededViewType)).First(); 59 ProblemInstanceConsumerViewHost.Content = null; //necessary to enable the change of the ViewType 60 ProblemInstanceConsumerViewHost.ViewType = genericView; 61 ProblemInstanceConsumerViewHost.Content = consumer; 62 ProblemInstanceConsumerView view = (ProblemInstanceConsumerView)ProblemInstanceConsumerViewHost.ActiveView; 63 problemInstanceSplitContainer.Panel1Collapsed = !view.ProblemInstanceProviders.Any(); 59 if (Content == null) { 60 problemInstanceProviders = null; 61 problemInstanceProviderComboBox.DataSource = null; 62 problemInstanceSplitContainer.Panel1Collapsed = true; 64 63 } else { 65 problemInstanceSplitContainer.Panel1Collapsed = true; 64 var consumer = Content as IProblemInstanceConsumer; 65 if (consumer != null) { 66 problemInstanceProviders = ProblemInstanceManager.GetProviders(Content); 67 bool expand = problemInstanceProviders.Any(); 68 if (expand) { 69 problemInstanceProviderComboBox.DisplayMember = "Name"; 70 problemInstanceProviderComboBox.DataSource = ProblemInstanceProviders.OrderBy(x => x.Name).ToList(); 71 } 72 problemInstanceSplitContainer.Panel1Collapsed = !expand; 73 } else 74 problemInstanceSplitContainer.Panel1Collapsed = true; 66 75 } 67 76 SetEnabledStateOfControls(); 68 77 } 69 78 79 protected virtual void problemInstanceProviderComboBox_SelectedIndexChanged(object sender, System.EventArgs e) { 80 if (problemInstanceProviderComboBox.SelectedIndex >= 0) { 81 SelectedProvider = (IProblemInstanceProvider)problemInstanceProviderComboBox.SelectedItem; 82 problemInstanceProviderViewHost.Content = SelectedProvider; 83 var view = (ProblemInstanceProviderView)problemInstanceProviderViewHost.ActiveView; 84 var consumer = (IProblemInstanceConsumer)Content; 85 view.Consumer = consumer; 86 if (CheckForIProblemInstanceExporter(consumer)) 87 view.Exporter = (IProblemInstanceExporter)Content; 88 else view.Exporter = null; 89 SetTooltip(); 90 } else { 91 SelectedProvider = null; 92 } 93 SetEnabledStateOfControls(); 94 } 95 96 protected bool CheckForIProblemInstanceExporter(IProblemInstanceConsumer content) { 97 return Content.GetType().GetInterfaces() 98 .Any(x => x == typeof(IProblemInstanceExporter)); 99 } 100 101 #region ToolTip 102 protected void SetTooltip() { 103 toolTip.SetToolTip(problemInstanceProviderComboBox, GetProviderToolTip()); 104 } 105 106 private string GetProviderToolTip() { 107 var provider = SelectedProvider; 108 string toolTip = provider.Name; 109 110 if (!String.IsNullOrEmpty(provider.ReferencePublication)) { 111 toolTip = toolTip 112 + Environment.NewLine + Environment.NewLine 113 + provider.ReferencePublication; 114 } 115 if (provider.WebLink != null) { 116 toolTip = toolTip 117 + Environment.NewLine 118 + provider.WebLink.ToString(); 119 } 120 121 return toolTip; 122 } 123 #endregion 70 124 } 71 125 } -
stable/HeuristicLab.Problems.Instances.DataAnalysis.Views
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views merged: 10000,10009
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisInstanceProviderView.cs
r10001 r10021 29 29 namespace HeuristicLab.Problems.Instances.DataAnalysis.Views { 30 30 [View("DataAnalysis InstanceProvider View")] 31 public partial class DataAnalysisInstanceProviderView<T> : ProblemInstanceProviderView Generic<T>31 public partial class DataAnalysisInstanceProviderView<T> : ProblemInstanceProviderView<T> 32 32 where T : class, IDataAnalysisProblemData { 33 33 -
stable/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj
r8885 r10021 92 92 <DependentUpon>ClassificationImportTypeDialog.cs</DependentUpon> 93 93 </Compile> 94 <Compile Include="ClassificationInstanceConsumerView.cs"> 95 <SubType>UserControl</SubType> 96 </Compile> 97 <Compile Include="ClassificationInstanceConsumerView.Designer.cs"> 98 <DependentUpon>ClassificationInstanceConsumerView.cs</DependentUpon> 94 <Compile Include="ClassificationInstanceProviderView.cs"> 95 <SubType>UserControl</SubType> 96 </Compile> 97 <Compile Include="ClassificationInstanceProviderView.Designer.cs"> 98 <DependentUpon>ClassificationInstanceProviderView.cs</DependentUpon> 99 </Compile> 100 <Compile Include="ClusteringInstanceProviderView.cs"> 101 <SubType>UserControl</SubType> 102 </Compile> 103 <Compile Include="ClusteringInstanceProviderView.Designer.cs"> 104 <DependentUpon>ClusteringInstanceProviderView.cs</DependentUpon> 99 105 </Compile> 100 106 <Compile Include="TimeSeriesPrognosisImportTypeDialog.cs"> … … 104 110 <DependentUpon>TimeSeriesPrognosisImportTypeDialog.cs</DependentUpon> 105 111 </Compile> 106 <Compile Include="TimeSeriesPrognosisInstance ConsumerView.cs">107 <SubType>UserControl</SubType> 108 </Compile> 109 <Compile Include="TimeSeriesPrognosisInstance ConsumerView.Designer.cs">110 <DependentUpon>TimeSeriesPrognosisInstance ConsumerView.cs</DependentUpon>112 <Compile Include="TimeSeriesPrognosisInstanceProviderView.cs"> 113 <SubType>UserControl</SubType> 114 </Compile> 115 <Compile Include="TimeSeriesPrognosisInstanceProviderView.Designer.cs"> 116 <DependentUpon>TimeSeriesPrognosisInstanceProviderView.cs</DependentUpon> 111 117 </Compile> 112 118 <Compile Include="DataAnalysisImportTypeDialog.cs"> … … 116 122 <DependentUpon>DataAnalysisImportTypeDialog.cs</DependentUpon> 117 123 </Compile> 118 <Compile Include="DataAnalysisInstance ConsumerView.cs">119 <SubType>UserControl</SubType> 120 </Compile> 121 <Compile Include="DataAnalysisInstance ConsumerView.Designer.cs">122 <DependentUpon>DataAnalysisInstance ConsumerView.cs</DependentUpon>124 <Compile Include="DataAnalysisInstanceProviderView.cs"> 125 <SubType>UserControl</SubType> 126 </Compile> 127 <Compile Include="DataAnalysisInstanceProviderView.Designer.cs"> 128 <DependentUpon>DataAnalysisInstanceProviderView.cs</DependentUpon> 123 129 </Compile> 124 130 <Compile Include="Plugin.cs" /> … … 129 135 <DependentUpon>RegressionImportTypeDialog.cs</DependentUpon> 130 136 </Compile> 131 <Compile Include="RegressionInstance ConsumerView.cs">132 <SubType>UserControl</SubType> 133 </Compile> 134 <Compile Include="RegressionInstance ConsumerView.Designer.cs">135 <DependentUpon>RegressionInstance ConsumerView.cs</DependentUpon>137 <Compile Include="RegressionInstanceProviderView.cs"> 138 <SubType>UserControl</SubType> 139 </Compile> 140 <Compile Include="RegressionInstanceProviderView.Designer.cs"> 141 <DependentUpon>RegressionInstanceProviderView.cs</DependentUpon> 136 142 </Compile> 137 143 <None Include="HeuristicLab.snk" /> -
stable/HeuristicLab.Problems.Instances.TSPLIB.Views
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.Instances.TSPLIB.Views (added) merged: 10000,10009
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/TSPLIBTSPInstanceProviderView.cs
r9456 r10021 24 24 using System.Windows.Forms; 25 25 using HeuristicLab.MainForm; 26 using HeuristicLab.MainForm.WindowsForms;27 26 using HeuristicLab.Problems.Instances.Views; 28 27 29 28 namespace HeuristicLab.Problems.Instances.TSPLIB.Views { 30 29 [View("TSPLIB TSP InstanceProvider View")] 31 [Content(typeof( IProblemInstanceConsumer<TSPData>), IsDefaultView = true)]32 public partial class TSPLIBTSPInstanceProviderView : ProblemInstance ConsumerViewGeneric<TSPData> {33 public new IProblemInstanceConsumer<TSPData>Content {34 get { return ( IProblemInstanceConsumer<TSPData>)base.Content; }30 [Content(typeof(TSPLIBTSPInstanceProvider), IsDefaultView = true)] 31 public partial class TSPLIBTSPInstanceProviderView : ProblemInstanceProviderView<TSPData> { 32 public new TSPLIBTSPInstanceProvider Content { 33 get { return (TSPLIBTSPInstanceProvider)base.Content; } 35 34 set { base.Content = value; } 36 35 } … … 41 40 42 41 protected override void importButton_Click(object sender, EventArgs e) { 43 TSPLIBTSPInstanceProvider provider = SelectedProvider as TSPLIBTSPInstanceProvider; 44 if (provider != null) { 45 using (var dialog = new TSPLIBImportDialog()) { 46 if (dialog.ShowDialog() == DialogResult.OK) { 47 var instance = provider.LoadData(dialog.TSPFileName, dialog.TourFileName, dialog.Quality); 48 try { 49 GenericConsumer.Load(instance); 50 } 51 catch (Exception ex) { 52 MessageBox.Show(String.Format("This problem does not support loading the instance {0}: {1}", Path.GetFileName(openFileDialog.FileName), Environment.NewLine + ex.Message), "Cannot load instance"); 53 } 42 using (var dialog = new TSPLIBImportDialog()) { 43 if (dialog.ShowDialog() == DialogResult.OK) { 44 var instance = Content.LoadData(dialog.TSPFileName, dialog.TourFileName, dialog.Quality); 45 try { 46 GenericConsumer.Load(instance); 47 instancesComboBox.SelectedIndex = -1; 48 } catch (Exception ex) { 49 MessageBox.Show(String.Format("This problem does not support loading the instance {0}: {1}", Path.GetFileName(openFileDialog.FileName), Environment.NewLine + ex.Message), "Cannot load instance"); 54 50 } 55 51 } 56 } else {57 base.importButton_Click(sender, e);58 52 } 59 53 } -
stable/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj
r8600 r10021 115 115 <Compile Include="Plugin.cs" /> 116 116 <Compile Include="Properties\AssemblyInfo.cs" /> 117 <Compile Include="VRPInstance ConsumerView.cs">117 <Compile Include="VRPInstanceProviderView.cs"> 118 118 <SubType>UserControl</SubType> 119 119 </Compile> 120 <Compile Include="VRPInstance ConsumerView.designer.cs">121 <DependentUpon>VRPInstance ConsumerView.cs</DependentUpon>120 <Compile Include="VRPInstanceProviderView.designer.cs"> 121 <DependentUpon>VRPInstanceProviderView.cs</DependentUpon> 122 122 </Compile> 123 123 <Compile Include="VRPImportDialog.cs"> … … 182 182 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 183 183 <PropertyGroup> 184 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)184 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir) 185 185 set ProjectDir=$(ProjectDir) 186 186 set SolutionDir=$(SolutionDir) … … 188 188 189 189 call PreBuildEvent.cmd</PreBuildEvent> 190 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">190 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' "> 191 191 export ProjectDir=$(ProjectDir) 192 192 export SolutionDir=$(SolutionDir) -
stable/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/Plugin.cs.frame
r9462 r10021 27 27 [PluginDependency("HeuristicLab.Common.Resources", "3.3")] 28 28 [PluginDependency("HeuristicLab.MainForm", "3.3")] 29 [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]30 29 [PluginDependency("HeuristicLab.Problems.Instances", "3.3")] 31 30 [PluginDependency("HeuristicLab.Problems.Instances.VehicleRouting", "3.4")] -
stable/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/VRPInstanceProviderView.cs
r10001 r10021 30 30 [View("VRP InstanceProvider View")] 31 31 [Content(typeof(IProblemInstanceProvider<IVRPData>), IsDefaultView = true)] 32 public partial class VRPInstanceProviderView<T> : ProblemInstanceProviderView Generic<T> where T : class, IVRPData {32 public partial class VRPInstanceProviderView<T> : ProblemInstanceProviderView<T> where T : class, IVRPData { 33 33 34 34 public VRPInstanceProviderView() { -
stable/HeuristicLab.Problems.Instances.Views/3.3/HeuristicLab.Problems.Instances.Views-3.3.csproj
r8600 r10021 113 113 </ItemGroup> 114 114 <ItemGroup> 115 <Compile Include="ProblemInstanceConsumerViewGeneric.cs">116 <SubType>UserControl</SubType>117 </Compile>118 <Compile Include="ProblemInstanceConsumerViewGeneric.Designer.cs">119 <DependentUpon>ProblemInstanceConsumerViewGeneric.cs</DependentUpon>120 </Compile>121 115 <Compile Include="Plugin.cs" /> 122 <Compile Include="ProblemInstanceConsumerView.cs">123 <SubType>UserControl</SubType>124 </Compile>125 <Compile Include="ProblemInstanceConsumerView.Designer.cs">126 <DependentUpon>ProblemInstanceConsumerView.cs</DependentUpon>127 </Compile>128 116 <Compile Include="ProblemInstanceProviderView.cs"> 129 117 <SubType>UserControl</SubType> … … 199 187 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 200 188 <PropertyGroup> 201 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)189 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir) 202 190 set ProjectDir=$(ProjectDir) 203 191 set SolutionDir=$(SolutionDir) … … 206 194 call PreBuildEvent.cmd 207 195 </PreBuildEvent> 208 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">196 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' "> 209 197 export ProjectDir=$(ProjectDir) 210 198 export SolutionDir=$(SolutionDir) -
stable/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderView.cs
r9456 r10021 21 21 22 22 using System.Windows.Forms; 23 using HeuristicLab.Core; 23 24 using HeuristicLab.MainForm; 24 25 using HeuristicLab.MainForm.WindowsForms; … … 35 36 36 37 public abstract IProblemInstanceConsumer Consumer { get; set; } 38 public abstract IProblemInstanceExporter Exporter { get; set; } 37 39 38 p ublicProblemInstanceProviderView() {40 protected ProblemInstanceProviderView() { 39 41 InitializeComponent(); 40 42 } 43 44 protected string GetProblemType() { 45 var item = Consumer as IItem; 46 return item != null ? item.ItemName : "problem"; 47 } 48 49 protected string GetProviderFormatInfo() { 50 return Content != null ? Content.Name : string.Empty; 51 } 52 53 protected abstract void SetTooltip(); 41 54 } 42 55 } -
stable/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.Designer.cs
r9456 r10021 20 20 #endregion 21 21 22 22 23 namespace HeuristicLab.Problems.Instances.Views { 23 partial class ProblemInstanceProviderView Generic<T> {24 partial class ProblemInstanceProviderView<T> { 24 25 /// <summary> 25 26 /// Required designer variable. … … 45 46 /// </summary> 46 47 private void InitializeComponent() { 47 this.components = new System.ComponentModel.Container();48 this.instanceLabel = new System.Windows.Forms.Label();49 48 this.instancesComboBox = new System.Windows.Forms.ComboBox(); 50 49 this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); 51 50 this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); 51 this.instanceLabel = new System.Windows.Forms.Label(); 52 this.splitContainer2 = new System.Windows.Forms.SplitContainer(); 53 this.exportButton = new System.Windows.Forms.Button(); 54 this.splitContainer1 = new System.Windows.Forms.SplitContainer(); 55 this.importButton = new System.Windows.Forms.Button(); 56 this.libraryInfoButton = new System.Windows.Forms.Button(); 57 ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); 58 this.splitContainer2.Panel1.SuspendLayout(); 59 this.splitContainer2.Panel2.SuspendLayout(); 60 this.splitContainer2.SuspendLayout(); 61 ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); 62 this.splitContainer1.Panel1.SuspendLayout(); 63 this.splitContainer1.Panel2.SuspendLayout(); 64 this.splitContainer1.SuspendLayout(); 52 65 this.SuspendLayout(); 53 //54 // instanceLabel55 //56 this.instanceLabel.AutoSize = true;57 this.instanceLabel.Location = new System.Drawing.Point(3, 4);58 this.instanceLabel.Name = "instanceLabel";59 this.instanceLabel.Size = new System.Drawing.Size(51, 13);60 this.instanceLabel.TabIndex = 4;61 this.instanceLabel.Text = "Instance:";62 66 // 63 67 // instancesComboBox … … 67 71 this.instancesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 68 72 this.instancesComboBox.FormattingEnabled = true; 69 this.instancesComboBox.Location = new System.Drawing.Point(60, 1);73 this.instancesComboBox.Location = new System.Drawing.Point(60, 2); 70 74 this.instancesComboBox.Name = "instancesComboBox"; 71 this.instancesComboBox.Size = new System.Drawing.Size( 632, 21);75 this.instancesComboBox.Size = new System.Drawing.Size(540, 21); 72 76 this.instancesComboBox.TabIndex = 7; 77 this.instancesComboBox.SelectionChangeCommitted += new System.EventHandler(this.instancesComboBox_SelectionChangeCommitted); 73 78 this.instancesComboBox.DataSourceChanged += new System.EventHandler(this.instancesComboBox_DataSourceChanged); 74 this.instancesComboBox.SelectionChangeCommitted += new System.EventHandler(instancesComboBox_SelectionChangeCommitted);75 79 // 76 80 // openFileDialog … … 83 87 this.saveFileDialog.Title = "Save RegressionInstance..."; 84 88 // 89 // instanceLabel 90 // 91 this.instanceLabel.AutoSize = true; 92 this.instanceLabel.Location = new System.Drawing.Point(3, 5); 93 this.instanceLabel.Name = "instanceLabel"; 94 this.instanceLabel.Size = new System.Drawing.Size(51, 13); 95 this.instanceLabel.TabIndex = 4; 96 this.instanceLabel.Text = "Instance:"; 97 // 98 // splitContainer2 99 // 100 this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; 101 this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; 102 this.splitContainer2.IsSplitterFixed = true; 103 this.splitContainer2.Location = new System.Drawing.Point(0, 0); 104 this.splitContainer2.Name = "splitContainer2"; 105 // 106 // splitContainer2.Panel1 107 // 108 this.splitContainer2.Panel1.Controls.Add(this.exportButton); 109 // 110 // splitContainer2.Panel2 111 // 112 this.splitContainer2.Panel2.Controls.Add(this.instanceLabel); 113 this.splitContainer2.Panel2.Controls.Add(this.instancesComboBox); 114 this.splitContainer2.Size = new System.Drawing.Size(632, 23); 115 this.splitContainer2.SplitterDistance = 25; 116 this.splitContainer2.TabIndex = 21; 117 // 118 // exportButton 119 // 120 this.exportButton.Location = new System.Drawing.Point(1, 0); 121 this.exportButton.Name = "exportButton"; 122 this.exportButton.Size = new System.Drawing.Size(24, 24); 123 this.exportButton.TabIndex = 20; 124 this.exportButton.Text = "Export"; 125 this.exportButton.UseVisualStyleBackColor = true; 126 this.exportButton.Click += new System.EventHandler(exportButton_Click); 127 // 128 // splitContainer1 129 // 130 this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 131 | System.Windows.Forms.AnchorStyles.Right))); 132 this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; 133 this.splitContainer1.IsSplitterFixed = true; 134 this.splitContainer1.Location = new System.Drawing.Point(33, -1); 135 this.splitContainer1.Name = "splitContainer1"; 136 // 137 // splitContainer1.Panel1 138 // 139 this.splitContainer1.Panel1.Controls.Add(this.importButton); 140 // 141 // splitContainer1.Panel2 142 // 143 this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); 144 this.splitContainer1.Size = new System.Drawing.Size(661, 23); 145 this.splitContainer1.SplitterDistance = 25; 146 this.splitContainer1.TabIndex = 21; 147 // 148 // importButton 149 // 150 this.importButton.Location = new System.Drawing.Point(0, 0); 151 this.importButton.Name = "importButton"; 152 this.importButton.Size = new System.Drawing.Size(24, 24); 153 this.importButton.TabIndex = 19; 154 this.importButton.Text = "Import"; 155 this.importButton.UseVisualStyleBackColor = true; 156 this.importButton.Click += new System.EventHandler(importButton_Click); 157 // 158 // libraryInfoButton 159 // 160 this.libraryInfoButton.Location = new System.Drawing.Point(3, -1); 161 this.libraryInfoButton.Name = "libraryInfoButton"; 162 this.libraryInfoButton.Size = new System.Drawing.Size(24, 24); 163 this.libraryInfoButton.TabIndex = 22; 164 this.libraryInfoButton.Text = "Info"; 165 this.libraryInfoButton.UseVisualStyleBackColor = true; 166 this.libraryInfoButton.Click += new System.EventHandler(this.libraryInfoButton_Click); 167 // 85 168 // ProblemInstanceProviderViewGeneric 86 169 // 87 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);88 170 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; 89 this.Controls.Add(this. instanceLabel);90 this.Controls.Add(this. instancesComboBox);171 this.Controls.Add(this.libraryInfoButton); 172 this.Controls.Add(this.splitContainer1); 91 173 this.Name = "ProblemInstanceProviderViewGeneric"; 92 this.Size = new System.Drawing.Size(694, 21); 174 this.splitContainer2.Panel1.ResumeLayout(false); 175 this.splitContainer2.Panel2.ResumeLayout(false); 176 this.splitContainer2.Panel2.PerformLayout(); 177 ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); 178 this.splitContainer2.ResumeLayout(false); 179 this.splitContainer1.Panel1.ResumeLayout(false); 180 this.splitContainer1.Panel2.ResumeLayout(false); 181 ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); 182 this.splitContainer1.ResumeLayout(false); 93 183 this.ResumeLayout(false); 94 this.PerformLayout();95 184 96 185 } … … 98 187 99 188 protected System.Windows.Forms.OpenFileDialog openFileDialog; 100 protected System.Windows.Forms.Label instanceLabel;101 189 protected System.Windows.Forms.ComboBox instancesComboBox; 102 190 protected System.Windows.Forms.SaveFileDialog saveFileDialog; 191 protected System.Windows.Forms.Label instanceLabel; 192 protected System.Windows.Forms.SplitContainer splitContainer2; 193 protected System.Windows.Forms.SplitContainer splitContainer1; 194 protected System.Windows.Forms.Button libraryInfoButton; 195 protected System.Windows.Forms.Button importButton; 196 protected System.Windows.Forms.Button exportButton; 103 197 } 104 198 } -
stable/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs
r10020 r10021 21 21 22 22 using System; 23 using System.ComponentModel; 23 using System.Diagnostics; 24 using System.IO; 24 25 using System.Linq; 25 26 using System.Threading.Tasks; 26 27 using System.Windows.Forms; 28 using HeuristicLab.Common.Resources; 27 29 using HeuristicLab.MainForm; 28 30 using HeuristicLab.MainForm.WindowsForms; … … 32 34 [View("ProblemInstanceProviderViewGeneric")] 33 35 [Content(typeof(IProblemInstanceProvider<>), IsDefaultView = true)] 34 public partial class ProblemInstanceProviderView Generic<T> : ProblemInstanceProviderView {36 public partial class ProblemInstanceProviderView<T> : ProblemInstanceProviderView { 35 37 36 38 public new IProblemInstanceProvider<T> Content { … … 39 41 } 40 42 41 private IProblemInstanceConsumer<T> GenericConsumer { get { return Consumer as IProblemInstanceConsumer<T>; } }42 43 pr ivateIProblemInstanceConsumer consumer;43 #region Importer & Exporter 44 protected IProblemInstanceConsumer<T> GenericConsumer { get { return Consumer as IProblemInstanceConsumer<T>; } } 45 protected IProblemInstanceConsumer consumer; 44 46 public override IProblemInstanceConsumer Consumer { 45 47 get { return consumer; } … … 47 49 consumer = value; 48 50 SetEnabledStateOfControls(); 51 SetTooltip(); 49 52 } 50 53 } 51 54 52 public ProblemInstanceProviderViewGeneric() { 55 protected IProblemInstanceExporter<T> GenericExporter { get { return Exporter as IProblemInstanceExporter<T>; } } 56 protected IProblemInstanceExporter exporter; 57 public override IProblemInstanceExporter Exporter { 58 get { return exporter; } 59 set { 60 exporter = value; 61 SetEnabledStateOfControls(); 62 } 63 } 64 #endregion 65 66 public ProblemInstanceProviderView() { 53 67 InitializeComponent(); 68 importButton.Text = String.Empty; 69 importButton.Image = VSImageLibrary.Open; 70 exportButton.Text = String.Empty; 71 exportButton.Image = VSImageLibrary.SaveAs; 72 libraryInfoButton.Text = String.Empty; 73 libraryInfoButton.Image = VSImageLibrary.Help; 54 74 } 55 75 … … 65 85 instancesComboBox.SelectedIndex = -1; 66 86 } 87 SetTooltip(); 67 88 } 68 89 … … 80 101 base.SetEnabledStateOfControls(); 81 102 instancesComboBox.Enabled = !ReadOnly && !Locked && Content != null && GenericConsumer != null; 103 libraryInfoButton.Enabled = Content != null && Content.WebLink != null; 104 importButton.Enabled = !ReadOnly && !Locked && Content != null && GenericConsumer != null && Content.CanImportData; 105 splitContainer1.Panel1Collapsed = !importButton.Enabled; 106 exportButton.Enabled = !ReadOnly && !Locked && Content != null && GenericExporter != null && Content.CanExportData; 107 splitContainer2.Panel1Collapsed = !exportButton.Enabled; 82 108 } 83 109 … … 89 115 } 90 116 91 pr ivate void instancesComboBox_SelectionChangeCommitted(object sender, System.EventArgs e) {117 protected virtual void instancesComboBox_SelectionChangeCommitted(object sender, EventArgs e) { 92 118 toolTip.SetToolTip(instancesComboBox, String.Empty); 93 119 if (instancesComboBox.SelectedIndex >= 0) { … … 98 124 // lock active view and show progress bar 99 125 mainForm.AddOperationProgressToContent(activeView.Content, "Loading problem instance."); 100 // continuation for removing the progess bar from the active view101 Action<Task> removeProgressFromContent = (_) => mainForm.RemoveOperationProgressFromContent(activeView.Content);102 126 103 // task structure: 104 // loadFromProvider 105 // | 106 // +-> on fault -> show error dialog -> remove progress bar 107 // | 108 // `-> success -> loadToProblem 109 // | 110 // +-> on fault -> show error dialog -> remove progress bar 111 // | 112 // `-> success -> set tool tip -> remove progress bar 113 var loadFromProvider = new Task<T>(() => Content.LoadData(descriptor)); 127 Task.Factory.StartNew(() => { 128 T data; 129 try { 130 data = Content.LoadData(descriptor); 131 } catch (Exception ex) { 132 ErrorHandling.ShowErrorDialog(String.Format("Could not load the problem instance {0}", descriptor.Name), ex); 133 mainForm.RemoveOperationProgressFromContent(activeView.Content); 134 return; 135 } 136 try { 137 GenericConsumer.Load(data); 138 } catch (Exception ex) { 139 ErrorHandling.ShowErrorDialog(String.Format("This problem does not support loading the instance {0}", descriptor.Name), ex); 140 } finally { 141 mainForm.RemoveOperationProgressFromContent(activeView.Content); 142 } 143 }); 144 } 145 } 114 146 115 // success 116 var loadToProblem = loadFromProvider 117 .ContinueWith(task => GenericConsumer.Load(task.Result), TaskContinuationOptions.OnlyOnRanToCompletion); 118 // on error 119 loadFromProvider 120 .ContinueWith(task => { ErrorHandling.ShowErrorDialog(String.Format("Could not load the problem instance {0}", descriptor.Name), task.Exception); }, TaskContinuationOptions.OnlyOnFaulted) 121 .ContinueWith(removeProgressFromContent); 147 private void libraryInfoButton_Click(object sender, EventArgs e) { 148 Process.Start(Content.WebLink.ToString()); 149 } 122 150 123 // success 124 loadToProblem 125 .ContinueWith(task => toolTip.SetToolTip(instancesComboBox, descriptor.Description), TaskContinuationOptions.OnlyOnRanToCompletion) 126 .ContinueWith(removeProgressFromContent); 127 // on error 128 loadToProblem.ContinueWith(task => { ErrorHandling.ShowErrorDialog(String.Format("This problem does not support loading the instance {0}", descriptor.Name), task.Exception); }, TaskContinuationOptions.OnlyOnFaulted) 129 .ContinueWith(removeProgressFromContent); 151 protected virtual void importButton_Click(object sender, EventArgs e) { 152 openFileDialog.FileName = Content.Name + " instance"; 153 if (openFileDialog.ShowDialog() == DialogResult.OK) { 154 T instance = default(T); 155 try { 156 instance = Content.ImportData(openFileDialog.FileName); 157 } catch (Exception ex) { 158 MessageBox.Show(String.Format("There was an error parsing the file: {0}", Environment.NewLine + ex.Message), "Error while parsing", MessageBoxButtons.OK, MessageBoxIcon.Error); 159 return; 160 } 161 try { 162 GenericConsumer.Load(instance); 163 instancesComboBox.SelectedIndex = -1; 164 } catch (Exception ex) { 165 MessageBox.Show(String.Format("This problem does not support loading the instance {0}: {1}", Path.GetFileName(openFileDialog.FileName), Environment.NewLine + ex.Message), "Cannot load instance"); 166 } 167 } 168 } 130 169 131 // start async loading task 132 loadFromProvider.Start(); 170 protected virtual void exportButton_Click(object sender, EventArgs e) { 171 if (saveFileDialog.ShowDialog(this) == DialogResult.OK) { 172 try { 173 Content.ExportData(GenericExporter.Export(), saveFileDialog.FileName); 174 } catch (Exception ex) { 175 ErrorHandling.ShowErrorDialog(this, ex); 176 } 133 177 } 178 } 179 180 protected override void SetTooltip() { 181 toolTip.SetToolTip(importButton, "Import a " + GetProblemType() + " from a file in the " + GetProviderFormatInfo() + " format."); 182 toolTip.SetToolTip(exportButton, "Export currently loaded " + GetProblemType() + " to a file in the " + GetProviderFormatInfo() + " format."); 183 if (Content != null && Content.WebLink != null) 184 toolTip.SetToolTip(libraryInfoButton, "Browse to " + Content.WebLink); 185 else toolTip.SetToolTip(libraryInfoButton, "Library does not have a web reference."); 134 186 } 135 187 } -
stable/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.Designer.cs
r9456 r10021 71 71 // ProblemInstanceConsumerViewHost 72 72 // 73 this. ProblemInstanceConsumerViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));74 this. ProblemInstanceConsumerViewHost.Dock = System.Windows.Forms.DockStyle.Fill;75 this. ProblemInstanceConsumerViewHost.Location = new System.Drawing.Point(0, 0);76 this. ProblemInstanceConsumerViewHost.Size = new System.Drawing.Size(511, 26);73 this.problemInstanceProviderViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left))); 74 this.problemInstanceProviderViewHost.Dock = System.Windows.Forms.DockStyle.Fill; 75 this.problemInstanceProviderViewHost.Location = new System.Drawing.Point(0, 0); 76 this.problemInstanceProviderViewHost.Size = new System.Drawing.Size(511, 26); 77 77 // 78 78 // parameterCollectionView … … 95 95 // problemTabControl 96 96 // 97 this.problemTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 98 | System.Windows.Forms.AnchorStyles.Left) 97 this.problemTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 98 | System.Windows.Forms.AnchorStyles.Left) 99 99 | System.Windows.Forms.AnchorStyles.Right))); 100 100 this.problemTabControl.Controls.Add(this.problemTabPage);
Note: See TracChangeset
for help on using the changeset viewer.