Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/21/12 18:02:33 (12 years ago)
Author:
gkronber
Message:

#1847: merged trunk changes r7800:HEAD into gp move operators branch

Location:
branches/GP-MoveOperators
Files:
12 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/GP-MoveOperators

  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.Designer.cs

    r7259 r8085  
    4646    private void InitializeComponent() {
    4747      this.components = new System.ComponentModel.Container();
     48      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CreateExperimentDialog));
    4849      this.okButton = new System.Windows.Forms.Button();
    4950      this.cancelButton = new System.Windows.Forms.Button();
     
    5354      this.repetitionsNumericUpDown = new System.Windows.Forms.NumericUpDown();
    5455      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
     56      this.experimentCreationBackgroundWorker = new System.ComponentModel.BackgroundWorker();
     57      this.instanceDiscoveryProgressBar = new System.Windows.Forms.ProgressBar();
     58      this.instanceDiscoveryProgressLabel = new System.Windows.Forms.Label();
     59      this.selectAllCheckBox = new System.Windows.Forms.CheckBox();
     60      this.selectNoneCheckBox = new System.Windows.Forms.CheckBox();
     61      this.instanceDiscoveryBackgroundWorker = new System.ComponentModel.BackgroundWorker();
     62      this.tabControl = new System.Windows.Forms.TabControl();
     63      this.parametersTabPage = new System.Windows.Forms.TabPage();
     64      this.parametersSplitContainer = new System.Windows.Forms.SplitContainer();
     65      this.parametersListView = new System.Windows.Forms.ListView();
     66      this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
     67      this.generateButton = new System.Windows.Forms.Button();
     68      this.stringConvertibleArrayView = new HeuristicLab.Data.Views.StringConvertibleArrayView();
     69      this.detailsTypeLabel = new System.Windows.Forms.Label();
     70      this.choicesListView = new System.Windows.Forms.ListView();
     71      this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
     72      this.instancesTabPage = new System.Windows.Forms.TabPage();
     73      this.label1 = new System.Windows.Forms.Label();
     74      this.instancesTreeView = new System.Windows.Forms.TreeView();
     75      this.experimentsToCreateDescriptionLabel = new System.Windows.Forms.Label();
     76      this.variationsLabel = new System.Windows.Forms.Label();
     77      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
     78      this.warningProvider = new System.Windows.Forms.ErrorProvider(this.components);
     79      this.experimentCreationProgressBar = new System.Windows.Forms.ProgressBar();
    5580      ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).BeginInit();
     81      this.tabControl.SuspendLayout();
     82      this.parametersTabPage.SuspendLayout();
     83      ((System.ComponentModel.ISupportInitialize)(this.parametersSplitContainer)).BeginInit();
     84      this.parametersSplitContainer.Panel1.SuspendLayout();
     85      this.parametersSplitContainer.Panel2.SuspendLayout();
     86      this.parametersSplitContainer.SuspendLayout();
     87      this.instancesTabPage.SuspendLayout();
     88      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
     89      ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).BeginInit();
    5690      this.SuspendLayout();
    5791      //
     
    6195      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
    6296      this.okButton.Enabled = false;
    63       this.okButton.Location = new System.Drawing.Point(113, 58);
     97      this.okButton.Location = new System.Drawing.Point(246, 377);
    6498      this.okButton.Name = "okButton";
    6599      this.okButton.Size = new System.Drawing.Size(75, 23);
    66       this.okButton.TabIndex = 4;
     100      this.okButton.TabIndex = 7;
    67101      this.okButton.Text = "&OK";
    68102      this.okButton.UseVisualStyleBackColor = true;
     
    73107      this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    74108      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    75       this.cancelButton.Location = new System.Drawing.Point(194, 58);
     109      this.cancelButton.Location = new System.Drawing.Point(327, 377);
    76110      this.cancelButton.Name = "cancelButton";
    77111      this.cancelButton.Size = new System.Drawing.Size(75, 23);
    78       this.cancelButton.TabIndex = 5;
     112      this.cancelButton.TabIndex = 8;
    79113      this.cancelButton.Text = "&Cancel";
    80114      this.cancelButton.UseVisualStyleBackColor = true;
     
    105139      //
    106140      this.repetitionsLabel.AutoSize = true;
    107       this.repetitionsLabel.Location = new System.Drawing.Point(12, 30);
     141      this.repetitionsLabel.Location = new System.Drawing.Point(12, 31);
    108142      this.repetitionsLabel.Name = "repetitionsLabel";
    109143      this.repetitionsLabel.Size = new System.Drawing.Size(63, 13);
     
    127161            0});
    128162      this.repetitionsNumericUpDown.Name = "repetitionsNumericUpDown";
    129       this.repetitionsNumericUpDown.Size = new System.Drawing.Size(156, 20);
     163      this.repetitionsNumericUpDown.Size = new System.Drawing.Size(289, 20);
    130164      this.repetitionsNumericUpDown.TabIndex = 3;
    131165      this.repetitionsNumericUpDown.ThousandsSeparator = true;
     
    138172      this.repetitionsNumericUpDown.Validated += new System.EventHandler(this.repetitionsNumericUpDown_Validated);
    139173      //
     174      // experimentCreationBackgroundWorker
     175      //
     176      this.experimentCreationBackgroundWorker.WorkerReportsProgress = true;
     177      this.experimentCreationBackgroundWorker.WorkerSupportsCancellation = true;
     178      this.experimentCreationBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.experimentCreationBackgroundWorker_DoWork);
     179      this.experimentCreationBackgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.experimentCreationBackgroundWorker_ProgressChanged);
     180      this.experimentCreationBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.experimentCreationBackgroundWorker_RunWorkerCompleted);
     181      //
     182      // instanceDiscoveryProgressBar
     183      //
     184      this.instanceDiscoveryProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
     185      this.instanceDiscoveryProgressBar.Location = new System.Drawing.Point(6, 132);
     186      this.instanceDiscoveryProgressBar.Name = "instanceDiscoveryProgressBar";
     187      this.instanceDiscoveryProgressBar.Size = new System.Drawing.Size(308, 23);
     188      this.instanceDiscoveryProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
     189      this.instanceDiscoveryProgressBar.TabIndex = 4;
     190      this.instanceDiscoveryProgressBar.Visible = false;
     191      //
     192      // instanceDiscoveryProgressLabel
     193      //
     194      this.instanceDiscoveryProgressLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
     195      this.instanceDiscoveryProgressLabel.BackColor = System.Drawing.SystemColors.Control;
     196      this.instanceDiscoveryProgressLabel.Location = new System.Drawing.Point(6, 158);
     197      this.instanceDiscoveryProgressLabel.Name = "instanceDiscoveryProgressLabel";
     198      this.instanceDiscoveryProgressLabel.Size = new System.Drawing.Size(308, 23);
     199      this.instanceDiscoveryProgressLabel.TabIndex = 5;
     200      this.instanceDiscoveryProgressLabel.Text = "label1";
     201      this.instanceDiscoveryProgressLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
     202      this.instanceDiscoveryProgressLabel.Visible = false;
     203      //
     204      // selectAllCheckBox
     205      //
     206      this.selectAllCheckBox.AutoSize = true;
     207      this.selectAllCheckBox.Location = new System.Drawing.Point(52, 12);
     208      this.selectAllCheckBox.Name = "selectAllCheckBox";
     209      this.selectAllCheckBox.Size = new System.Drawing.Size(36, 17);
     210      this.selectAllCheckBox.TabIndex = 1;
     211      this.selectAllCheckBox.Text = "all";
     212      this.selectAllCheckBox.UseVisualStyleBackColor = true;
     213      this.selectAllCheckBox.CheckedChanged += new System.EventHandler(this.selectAllCheckBox_CheckedChanged);
     214      //
     215      // selectNoneCheckBox
     216      //
     217      this.selectNoneCheckBox.AutoSize = true;
     218      this.selectNoneCheckBox.Location = new System.Drawing.Point(94, 12);
     219      this.selectNoneCheckBox.Name = "selectNoneCheckBox";
     220      this.selectNoneCheckBox.Size = new System.Drawing.Size(50, 17);
     221      this.selectNoneCheckBox.TabIndex = 2;
     222      this.selectNoneCheckBox.Text = "none";
     223      this.selectNoneCheckBox.UseVisualStyleBackColor = true;
     224      this.selectNoneCheckBox.CheckedChanged += new System.EventHandler(this.selectNoneCheckBox_CheckedChanged);
     225      //
     226      // instanceDiscoveryBackgroundWorker
     227      //
     228      this.instanceDiscoveryBackgroundWorker.WorkerReportsProgress = true;
     229      this.instanceDiscoveryBackgroundWorker.WorkerSupportsCancellation = true;
     230      this.instanceDiscoveryBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.instanceDiscoveryBackgroundWorker_DoWork);
     231      this.instanceDiscoveryBackgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.instanceDiscoveryBackgroundWorker_ProgressChanged);
     232      this.instanceDiscoveryBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.instanceDiscoveryBackgroundWorker_RunWorkerCompleted);
     233      //
     234      // tabControl
     235      //
     236      this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     237                  | System.Windows.Forms.AnchorStyles.Left)
     238                  | System.Windows.Forms.AnchorStyles.Right)));
     239      this.tabControl.Controls.Add(this.parametersTabPage);
     240      this.tabControl.Controls.Add(this.instancesTabPage);
     241      this.tabControl.Location = new System.Drawing.Point(15, 54);
     242      this.tabControl.Name = "tabControl";
     243      this.tabControl.SelectedIndex = 0;
     244      this.tabControl.Size = new System.Drawing.Size(387, 317);
     245      this.tabControl.TabIndex = 4;
     246      //
     247      // parametersTabPage
     248      //
     249      this.parametersTabPage.Controls.Add(this.parametersSplitContainer);
     250      this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
     251      this.parametersTabPage.Name = "parametersTabPage";
     252      this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
     253      this.parametersTabPage.Size = new System.Drawing.Size(379, 291);
     254      this.parametersTabPage.TabIndex = 1;
     255      this.parametersTabPage.Text = "Parameter Variations";
     256      this.parametersTabPage.UseVisualStyleBackColor = true;
     257      //
     258      // parametersSplitContainer
     259      //
     260      this.parametersSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
     261      this.parametersSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
     262      this.parametersSplitContainer.Location = new System.Drawing.Point(3, 3);
     263      this.parametersSplitContainer.Name = "parametersSplitContainer";
     264      //
     265      // parametersSplitContainer.Panel1
     266      //
     267      this.parametersSplitContainer.Panel1.Controls.Add(this.parametersListView);
     268      //
     269      // parametersSplitContainer.Panel2
     270      //
     271      this.parametersSplitContainer.Panel2.Controls.Add(this.generateButton);
     272      this.parametersSplitContainer.Panel2.Controls.Add(this.stringConvertibleArrayView);
     273      this.parametersSplitContainer.Panel2.Controls.Add(this.detailsTypeLabel);
     274      this.parametersSplitContainer.Panel2.Controls.Add(this.choicesListView);
     275      this.parametersSplitContainer.Size = new System.Drawing.Size(373, 285);
     276      this.parametersSplitContainer.SplitterDistance = 155;
     277      this.parametersSplitContainer.TabIndex = 1;
     278      //
     279      // parametersListView
     280      //
     281      this.parametersListView.CheckBoxes = true;
     282      this.parametersListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
     283            this.columnHeader1});
     284      this.parametersListView.Dock = System.Windows.Forms.DockStyle.Fill;
     285      this.parametersListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
     286      this.parametersListView.Location = new System.Drawing.Point(0, 0);
     287      this.parametersListView.MultiSelect = false;
     288      this.parametersListView.Name = "parametersListView";
     289      this.parametersListView.Size = new System.Drawing.Size(155, 285);
     290      this.parametersListView.TabIndex = 0;
     291      this.parametersListView.UseCompatibleStateImageBehavior = false;
     292      this.parametersListView.View = System.Windows.Forms.View.Details;
     293      this.parametersListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.parametersListView_ItemChecked);
     294      this.parametersListView.SelectedIndexChanged += new System.EventHandler(this.parametersListView_SelectedIndexChanged);
     295      //
     296      // columnHeader1
     297      //
     298      this.columnHeader1.Width = 150;
     299      //
     300      // generateButton
     301      //
     302      this.generateButton.Location = new System.Drawing.Point(16, 10);
     303      this.generateButton.Name = "generateButton";
     304      this.generateButton.Size = new System.Drawing.Size(75, 23);
     305      this.generateButton.TabIndex = 8;
     306      this.generateButton.Text = "Generate...";
     307      this.generateButton.UseVisualStyleBackColor = true;
     308      this.generateButton.Click += new System.EventHandler(this.generateButton_Click);
     309      //
     310      // stringConvertibleArrayView
     311      //
     312      this.stringConvertibleArrayView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     313                  | System.Windows.Forms.AnchorStyles.Left)
     314                  | System.Windows.Forms.AnchorStyles.Right)));
     315      this.stringConvertibleArrayView.Caption = "StringConvertibleArray View";
     316      this.stringConvertibleArrayView.Content = null;
     317      this.stringConvertibleArrayView.Location = new System.Drawing.Point(16, 39);
     318      this.stringConvertibleArrayView.Name = "stringConvertibleArrayView";
     319      this.stringConvertibleArrayView.ReadOnly = false;
     320      this.stringConvertibleArrayView.Size = new System.Drawing.Size(183, 233);
     321      this.stringConvertibleArrayView.TabIndex = 7;
     322      //
     323      // detailsTypeLabel
     324      //
     325      this.detailsTypeLabel.AutoSize = true;
     326      this.detailsTypeLabel.Location = new System.Drawing.Point(13, 15);
     327      this.detailsTypeLabel.Name = "detailsTypeLabel";
     328      this.detailsTypeLabel.Size = new System.Drawing.Size(48, 13);
     329      this.detailsTypeLabel.TabIndex = 0;
     330      this.detailsTypeLabel.Text = "Choices:";
     331      //
     332      // choicesListView
     333      //
     334      this.choicesListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     335                  | System.Windows.Forms.AnchorStyles.Left)
     336                  | System.Windows.Forms.AnchorStyles.Right)));
     337      this.choicesListView.CheckBoxes = true;
     338      this.choicesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
     339            this.columnHeader2});
     340      this.choicesListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
     341      this.choicesListView.Location = new System.Drawing.Point(16, 34);
     342      this.choicesListView.Name = "choicesListView";
     343      this.choicesListView.Size = new System.Drawing.Size(183, 238);
     344      this.choicesListView.TabIndex = 6;
     345      this.choicesListView.UseCompatibleStateImageBehavior = false;
     346      this.choicesListView.View = System.Windows.Forms.View.Details;
     347      this.choicesListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.choiceListView_ItemChecked);
     348      //
     349      // columnHeader2
     350      //
     351      this.columnHeader2.Width = 150;
     352      //
     353      // instancesTabPage
     354      //
     355      this.instancesTabPage.Controls.Add(this.label1);
     356      this.instancesTabPage.Controls.Add(this.instanceDiscoveryProgressBar);
     357      this.instancesTabPage.Controls.Add(this.selectNoneCheckBox);
     358      this.instancesTabPage.Controls.Add(this.instanceDiscoveryProgressLabel);
     359      this.instancesTabPage.Controls.Add(this.selectAllCheckBox);
     360      this.instancesTabPage.Controls.Add(this.instancesTreeView);
     361      this.instancesTabPage.Location = new System.Drawing.Point(4, 22);
     362      this.instancesTabPage.Name = "instancesTabPage";
     363      this.instancesTabPage.Padding = new System.Windows.Forms.Padding(3);
     364      this.instancesTabPage.Size = new System.Drawing.Size(320, 273);
     365      this.instancesTabPage.TabIndex = 0;
     366      this.instancesTabPage.Text = "Problem Instances";
     367      this.instancesTabPage.UseVisualStyleBackColor = true;
     368      //
     369      // label1
     370      //
     371      this.label1.AutoSize = true;
     372      this.label1.Location = new System.Drawing.Point(6, 13);
     373      this.label1.Name = "label1";
     374      this.label1.Size = new System.Drawing.Size(40, 13);
     375      this.label1.TabIndex = 0;
     376      this.label1.Text = "Select:";
     377      //
     378      // instancesTreeView
     379      //
     380      this.instancesTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     381                  | System.Windows.Forms.AnchorStyles.Left)
     382                  | System.Windows.Forms.AnchorStyles.Right)));
     383      this.instancesTreeView.CheckBoxes = true;
     384      this.instancesTreeView.Location = new System.Drawing.Point(6, 35);
     385      this.instancesTreeView.Name = "instancesTreeView";
     386      this.instancesTreeView.Size = new System.Drawing.Size(308, 232);
     387      this.instancesTreeView.TabIndex = 6;
     388      this.instancesTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.instancesTreeView_AfterCheck);
     389      //
     390      // experimentsToCreateDescriptionLabel
     391      //
     392      this.experimentsToCreateDescriptionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     393      this.experimentsToCreateDescriptionLabel.AutoSize = true;
     394      this.experimentsToCreateDescriptionLabel.Location = new System.Drawing.Point(12, 382);
     395      this.experimentsToCreateDescriptionLabel.Name = "experimentsToCreateDescriptionLabel";
     396      this.experimentsToCreateDescriptionLabel.Size = new System.Drawing.Size(56, 13);
     397      this.experimentsToCreateDescriptionLabel.TabIndex = 5;
     398      this.experimentsToCreateDescriptionLabel.Text = "Variations:";
     399      //
     400      // variationsLabel
     401      //
     402      this.variationsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     403      this.variationsLabel.AutoSize = true;
     404      this.variationsLabel.Location = new System.Drawing.Point(74, 382);
     405      this.variationsLabel.Name = "variationsLabel";
     406      this.variationsLabel.Size = new System.Drawing.Size(13, 13);
     407      this.variationsLabel.TabIndex = 6;
     408      this.variationsLabel.Text = "1";
     409      this.variationsLabel.TextChanged += new System.EventHandler(this.experimentsLabel_TextChanged);
     410      //
     411      // errorProvider
     412      //
     413      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
     414      this.errorProvider.ContainerControl = this;
     415      //
     416      // warningProvider
     417      //
     418      this.warningProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
     419      this.warningProvider.ContainerControl = this;
     420      this.warningProvider.Icon = ((System.Drawing.Icon)(resources.GetObject("warningProvider.Icon")));
     421      //
     422      // experimentCreationProgressBar
     423      //
     424      this.experimentCreationProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
     425                  | System.Windows.Forms.AnchorStyles.Right)));
     426      this.experimentCreationProgressBar.Location = new System.Drawing.Point(187, 377);
     427      this.experimentCreationProgressBar.Name = "experimentCreationProgressBar";
     428      this.experimentCreationProgressBar.Size = new System.Drawing.Size(134, 23);
     429      this.experimentCreationProgressBar.TabIndex = 9;
     430      this.experimentCreationProgressBar.Visible = false;
     431      //
    140432      // CreateExperimentDialog
    141433      //
    142434      this.AcceptButton = this.okButton;
    143       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    144       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     435      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    145436      this.CancelButton = this.cancelButton;
    146       this.ClientSize = new System.Drawing.Size(281, 93);
     437      this.ClientSize = new System.Drawing.Size(414, 412);
     438      this.Controls.Add(this.experimentCreationProgressBar);
     439      this.Controls.Add(this.variationsLabel);
     440      this.Controls.Add(this.experimentsToCreateDescriptionLabel);
     441      this.Controls.Add(this.tabControl);
    147442      this.Controls.Add(this.repetitionsNumericUpDown);
    148443      this.Controls.Add(this.repetitionsLabel);
     
    158453      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
    159454      this.Text = "Create Experiment";
     455      this.TopMost = true;
     456      this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CreateExperimentDialog_FormClosing);
     457      this.Load += new System.EventHandler(this.CreateExperimentDialog_Load);
    160458      ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).EndInit();
     459      this.tabControl.ResumeLayout(false);
     460      this.parametersTabPage.ResumeLayout(false);
     461      this.parametersSplitContainer.Panel1.ResumeLayout(false);
     462      this.parametersSplitContainer.Panel2.ResumeLayout(false);
     463      this.parametersSplitContainer.Panel2.PerformLayout();
     464      ((System.ComponentModel.ISupportInitialize)(this.parametersSplitContainer)).EndInit();
     465      this.parametersSplitContainer.ResumeLayout(false);
     466      this.instancesTabPage.ResumeLayout(false);
     467      this.instancesTabPage.PerformLayout();
     468      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
     469      ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).EndInit();
    161470      this.ResumeLayout(false);
    162471      this.PerformLayout();
     
    173482    private System.Windows.Forms.NumericUpDown repetitionsNumericUpDown;
    174483    private System.Windows.Forms.ToolTip toolTip;
     484    private System.ComponentModel.BackgroundWorker experimentCreationBackgroundWorker;
     485    private System.Windows.Forms.ProgressBar instanceDiscoveryProgressBar;
     486    private System.Windows.Forms.Label instanceDiscoveryProgressLabel;
     487    private System.Windows.Forms.CheckBox selectAllCheckBox;
     488    private System.Windows.Forms.CheckBox selectNoneCheckBox;
     489    private System.ComponentModel.BackgroundWorker instanceDiscoveryBackgroundWorker;
     490    private System.Windows.Forms.TabControl tabControl;
     491    private System.Windows.Forms.TabPage parametersTabPage;
     492    private System.Windows.Forms.TabPage instancesTabPage;
     493    private System.Windows.Forms.SplitContainer parametersSplitContainer;
     494    private System.Windows.Forms.ListView parametersListView;
     495    private System.Windows.Forms.ColumnHeader columnHeader1;
     496    private System.Windows.Forms.Label experimentsToCreateDescriptionLabel;
     497    private System.Windows.Forms.Label variationsLabel;
     498    private System.Windows.Forms.Label detailsTypeLabel;
     499    private System.Windows.Forms.ListView choicesListView;
     500    private System.Windows.Forms.ColumnHeader columnHeader2;
     501    private System.Windows.Forms.Label label1;
     502    private System.Windows.Forms.ErrorProvider errorProvider;
     503    private System.Windows.Forms.ErrorProvider warningProvider;
     504    private System.Windows.Forms.TreeView instancesTreeView;
     505    private Data.Views.StringConvertibleArrayView stringConvertibleArrayView;
     506    private System.Windows.Forms.ProgressBar experimentCreationProgressBar;
     507    private System.Windows.Forms.Button generateButton;
    175508
    176509  }
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.cs

    r7259 r8085  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.ComponentModel;
     25using System.Globalization;
     26using System.Linq;
     27using System.Text;
     28using System.Threading;
    2329using System.Windows.Forms;
     30using HeuristicLab.Core;
     31using HeuristicLab.Data;
    2432using HeuristicLab.Optimization;
     33using HeuristicLab.Parameters;
     34using HeuristicLab.Problems.Instances;
    2535
    2636namespace HeuristicLab.Optimizer {
    2737  public partial class CreateExperimentDialog : Form {
     38    private enum DialogMode { Normal = 1, DiscoveringInstances = 2, CreatingExperiment = 3, PreparingExperiment = 4 };
     39
    2840    private IOptimizer optimizer;
    2941    public IOptimizer Optimizer {
     
    3143      set {
    3244        optimizer = value;
    33         experiment = null;
     45        Experiment = null;
    3446        okButton.Enabled = optimizer != null;
    35       }
    36     }
    37 
    38     private Experiment experiment;
    39     public Experiment Experiment {
    40       get { return experiment; }
    41     }
    42 
    43     public CreateExperimentDialog() {
    44       experiment = null;
    45       optimizer = null;
     47        SetTabControlVisibility();
     48        FillInstanceTreeViewAsync();
     49        FillParametersListView();
     50      }
     51    }
     52
     53    public Experiment Experiment { get; private set; }
     54
     55    private bool createBatchRun;
     56    private int repetitions;
     57    private Dictionary<IProblemInstanceProvider, HashSet<IDataDescriptor>> instances;
     58    private Dictionary<IValueParameter, IntArray> intParameters;
     59    private Dictionary<IValueParameter, DoubleArray> doubleParameters;
     60    private HashSet<IValueParameter> boolParameters;
     61    private Dictionary<IValueParameter, HashSet<IItem>> multipleChoiceParameters;
     62    private IItem optionalNullChoice = new BoolValue(); // any item will do
     63
     64    private StringBuilder failedInstances;
     65    private EventWaitHandle backgroundWorkerWaitHandle = new ManualResetEvent(false);
     66    private bool suppressTreeViewEventHandling, suppressCheckAllNoneEventHandling;
     67
     68    public CreateExperimentDialog() : this(null) { }
     69    public CreateExperimentDialog(IOptimizer optimizer) {
    4670      InitializeComponent();
    47     }
    48     public CreateExperimentDialog(IOptimizer optimizer)
    49       : this() {
    50       Optimizer = optimizer;
    51     }
     71      instanceDiscoveryProgressLabel.BackColor = instancesTabPage.BackColor;
     72      createBatchRun = createBatchRunCheckBox.Checked;
     73      repetitions = (int)repetitionsNumericUpDown.Value;
     74      // do not set the Optimizer property here, because we want to delay instance discovery to the time when the form loads
     75      this.optimizer = optimizer;
     76      Experiment = null;
     77      okButton.Enabled = optimizer != null;
     78
     79      instances = new Dictionary<IProblemInstanceProvider, HashSet<IDataDescriptor>>();
     80      intParameters = new Dictionary<IValueParameter, IntArray>();
     81      doubleParameters = new Dictionary<IValueParameter, DoubleArray>();
     82      boolParameters = new HashSet<IValueParameter>();
     83      multipleChoiceParameters = new Dictionary<IValueParameter, HashSet<IItem>>();
     84    }
     85
     86    #region Event handlers
     87    private void CreateExperimentDialog_Load(object sender, EventArgs e) {
     88      SetTabControlVisibility();
     89      FillInstanceTreeViewAsync();
     90      FillParametersListView();
     91    }
     92
     93    private void CreateExperimentDialog_FormClosing(object sender, FormClosingEventArgs e) {
     94      if (experimentCreationBackgroundWorker.IsBusy) {
     95        if (DialogResult != System.Windows.Forms.DialogResult.OK) {
     96          if (experimentCreationBackgroundWorker.IsBusy) experimentCreationBackgroundWorker.CancelAsync();
     97          if (instanceDiscoveryBackgroundWorker.IsBusy) instanceDiscoveryBackgroundWorker.CancelAsync();
     98        }
     99        e.Cancel = true;
     100      }
     101    }
     102
     103    private void okButton_Click(object sender, EventArgs e) {
     104      SetMode(DialogMode.CreatingExperiment);
     105      experimentCreationBackgroundWorker.RunWorkerAsync();
     106      backgroundWorkerWaitHandle.WaitOne(); // make sure the background worker has started before exiting
     107    }
     108
     109    #region Parameters variation
     110    private void parametersListView_ItemChecked(object sender, ItemCheckedEventArgs e) {
     111      var parameter = (IValueParameter)e.Item.Tag;
     112      var isConstrainedValueParameter = typeof(OptionalConstrainedValueParameter<>).Equals(parameter.GetType().GetGenericTypeDefinition())
     113        || typeof(ConstrainedValueParameter<>).Equals(parameter.GetType().GetGenericTypeDefinition());
     114
     115      if (!isConstrainedValueParameter && parameter.Value == null) {
     116        if (e.Item.Checked) e.Item.Checked = false;
     117        return;
     118      }
     119
     120      if (isConstrainedValueParameter) {
     121        if (e.Item.Checked) multipleChoiceParameters.Add(parameter, new HashSet<IItem>());
     122        else multipleChoiceParameters.Remove(parameter);
     123      }
     124
     125      var intValue = parameter.Value as ValueTypeValue<int>;
     126      if (intValue != null) {
     127        if (e.Item.Checked) {
     128          intParameters.Add(parameter, new IntArray());
     129          intParameters[parameter].Reset += new EventHandler(ValuesArray_Reset);
     130        } else intParameters.Remove(parameter);
     131      }
     132
     133      var doubleValue = parameter.Value as ValueTypeValue<double>;
     134      if (doubleValue != null) {
     135        if (e.Item.Checked) {
     136          doubleParameters.Add(parameter, new DoubleArray());
     137          doubleParameters[parameter].Reset += new EventHandler(ValuesArray_Reset);
     138        } else doubleParameters.Remove(parameter);
     139      }
     140
     141      var boolValue = parameter.Value as ValueTypeValue<bool>;
     142      if (boolValue != null) {
     143        if (e.Item.Checked) boolParameters.Add(parameter);
     144        else boolParameters.Remove(parameter);
     145      }
     146
     147      UpdateVariationsLabel();
     148      if (e.Item.Selected) UpdateDetailsView(parameter);
     149      else e.Item.Selected = true;
     150    }
     151
     152    private void parametersListView_SelectedIndexChanged(object sender, EventArgs e) {
     153      if (parametersListView.SelectedItems.Count == 0) {
     154        ClearDetailsView();
     155      } else {
     156        var parameter = parametersListView.SelectedItems[0].Tag as IValueParameter;
     157        UpdateDetailsView(parameter);
     158      }
     159    }
     160
     161    private void UpdateDetailsView(IValueParameter parameter) {
     162      ClearDetailsView();
     163
     164      var isOptionalConstrainedValueParameter = typeof(OptionalConstrainedValueParameter<>).IsAssignableFrom(parameter.GetType().GetGenericTypeDefinition());
     165      var isConstrainedValueParameter =
     166        isOptionalConstrainedValueParameter
     167        || typeof(ConstrainedValueParameter<>).Equals(parameter.GetType().GetGenericTypeDefinition());
     168
     169      if (isConstrainedValueParameter) {
     170        detailsTypeLabel.Text = "Choices:";
     171        choicesListView.Tag = parameter;
     172
     173        if (isOptionalConstrainedValueParameter) {
     174          choicesListView.Items.Add(new ListViewItem("-") {
     175            Tag = optionalNullChoice,
     176            Checked = multipleChoiceParameters.ContainsKey(parameter)
     177            && multipleChoiceParameters[parameter].Contains(optionalNullChoice)
     178          });
     179        }
     180        dynamic constrainedValuedParameter = parameter;
     181        dynamic validValues = constrainedValuedParameter.ValidValues;
     182        foreach (var choice in validValues) {
     183          choicesListView.Items.Add(new ListViewItem(choice.ToString()) {
     184            Tag = choice,
     185            Checked = multipleChoiceParameters.ContainsKey(parameter)
     186            && multipleChoiceParameters[parameter].Contains(choice)
     187          });
     188        }
     189        choicesListView.Enabled = multipleChoiceParameters.ContainsKey(parameter);
     190        detailsTypeLabel.Visible = true;
     191        choicesListView.Visible = true;
     192        return;
     193      }
     194
     195      if (parameter.Value is ValueTypeValue<bool>) {
     196        detailsTypeLabel.Text = "Boolean parameter: True / False";
     197        detailsTypeLabel.Visible = true;
     198      }
     199
     200      var intValue = parameter.Value as ValueTypeValue<int>;
     201      if (intValue != null) {
     202        if (intParameters.ContainsKey(parameter))
     203          stringConvertibleArrayView.Content = intParameters[parameter];
     204        stringConvertibleArrayView.Visible = true;
     205        stringConvertibleArrayView.ReadOnly = !intParameters.ContainsKey(parameter);
     206        generateButton.Tag = parameter;
     207        generateButton.Enabled = intParameters.ContainsKey(parameter);
     208        generateButton.Visible = true;
     209        return;
     210      }
     211
     212      var doubleValue = parameter.Value as ValueTypeValue<double>;
     213      if (doubleValue != null) {
     214        if (doubleParameters.ContainsKey(parameter))
     215          stringConvertibleArrayView.Content = doubleParameters[parameter];
     216        stringConvertibleArrayView.Visible = true;
     217        stringConvertibleArrayView.ReadOnly = !doubleParameters.ContainsKey(parameter);
     218        generateButton.Tag = parameter;
     219        generateButton.Enabled = doubleParameters.ContainsKey(parameter);
     220        generateButton.Visible = true;
     221        return;
     222      }
     223    }
     224
     225    #region Detail controls
     226    private void choiceListView_ItemChecked(object sender, ItemCheckedEventArgs e) {
     227      var parameter = (IValueParameter)choicesListView.Tag;
     228      if (multipleChoiceParameters.ContainsKey(parameter)) {
     229        if (e.Item.Checked) {
     230          multipleChoiceParameters[parameter].Add((IItem)e.Item.Tag);
     231        } else multipleChoiceParameters[parameter].Remove((IItem)e.Item.Tag);
     232
     233        UpdateVariationsLabel();
     234      }
     235    }
     236
     237    private void generateButton_Click(object sender, EventArgs e) {
     238      var parameter = (IValueParameter)generateButton.Tag;
     239      bool integerOnly = intParameters.ContainsKey(parameter);
     240      double min = 0, max = 1, step = 1;
     241      #region Try to calculate some meaningful values
     242      if (integerOnly) {
     243        int len = intParameters[parameter].Length;
     244        if (len > 0) {
     245          min = intParameters[parameter].Min();
     246          max = intParameters[parameter].Max();
     247          step = len >= 2 ? Math.Abs((intParameters[parameter][len - 1] - intParameters[parameter][len - 2])) : 1;
     248        }
     249      } else {
     250        int len = doubleParameters[parameter].Length;
     251        if (len > 0) {
     252          min = doubleParameters[parameter].Min();
     253          max = doubleParameters[parameter].Max();
     254          step = len >= 2 ? Math.Abs((doubleParameters[parameter][len - 1] - doubleParameters[parameter][len - 2])) : 1;
     255        }
     256      }
     257      #endregion
     258      using (var dialog = new DefineArithmeticProgressionDialog(integerOnly, min, max, step)) {
     259        if (dialog.ShowDialog(this) == DialogResult.OK) {
     260          var values = dialog.Values;
     261          if (integerOnly) {
     262            intParameters[parameter].Reset -= new EventHandler(ValuesArray_Reset);
     263            intParameters[parameter] = new IntArray(values.Select(x => (int)x).ToArray());
     264            intParameters[parameter].Reset += new EventHandler(ValuesArray_Reset);
     265            stringConvertibleArrayView.Content = intParameters[parameter];
     266          } else {
     267            doubleParameters[parameter].Reset -= new EventHandler(ValuesArray_Reset);
     268            doubleParameters[parameter] = new DoubleArray(values.ToArray());
     269            doubleParameters[parameter].Reset += new EventHandler(ValuesArray_Reset);
     270            stringConvertibleArrayView.Content = doubleParameters[parameter];
     271          }
     272          UpdateVariationsLabel();
     273        }
     274      }
     275    }
     276
     277    private void ValuesArray_Reset(object sender, EventArgs e) {
     278      UpdateVariationsLabel();
     279    }
     280    #endregion
     281    #endregion
     282
     283    #region Instances
     284    private void instancesTreeView_AfterCheck(object sender, TreeViewEventArgs e) {
     285      if (!suppressTreeViewEventHandling) {
     286        if (e.Node.Nodes.Count > 0) { // provider node was (un)checked
     287          SyncProviderNode(e.Node);
     288        } else { // descriptor node was (un)checked
     289          SyncInstanceNode(e.Node);
     290        }
     291
     292        suppressCheckAllNoneEventHandling = true;
     293        try {
     294          var treeViewNodes = instancesTreeView.Nodes.OfType<TreeNode>().SelectMany(x => x.Nodes.OfType<TreeNode>());
     295          selectAllCheckBox.Checked = treeViewNodes.Count() == instances.SelectMany(x => x.Value).Count();
     296          selectNoneCheckBox.Checked = !treeViewNodes.Any(x => x.Checked);
     297        }
     298        finally { suppressCheckAllNoneEventHandling = false; }
     299        UpdateVariationsLabel();
     300      }
     301    }
     302
     303    private void SyncProviderNode(TreeNode node) {
     304      suppressTreeViewEventHandling = true;
     305      try {
     306        foreach (TreeNode n in node.Nodes) {
     307          if (n.Checked != node.Checked) {
     308            n.Checked = node.Checked;
     309            SyncInstanceNode(n, false);
     310          }
     311        }
     312      }
     313      finally { suppressTreeViewEventHandling = false; }
     314    }
     315
     316    private void SyncInstanceNode(TreeNode node, bool providerCheck = true) {
     317      var provider = (IProblemInstanceProvider)node.Parent.Tag;
     318      var descriptor = (IDataDescriptor)node.Tag;
     319      if (node.Checked) {
     320        if (!instances.ContainsKey(provider))
     321          instances.Add(provider, new HashSet<IDataDescriptor>());
     322        instances[provider].Add(descriptor);
     323      } else {
     324        if (instances.ContainsKey(provider)) {
     325          instances[provider].Remove(descriptor);
     326          if (instances[provider].Count == 0)
     327            instances.Remove(provider);
     328        }
     329      }
     330      if (providerCheck) {
     331        bool allChecked = node.Parent.Nodes.OfType<TreeNode>().All(x => x.Checked);
     332        suppressTreeViewEventHandling = true;
     333        try {
     334          node.Parent.Checked = allChecked;
     335        }
     336        finally { suppressTreeViewEventHandling = false; }
     337      }
     338    }
     339
     340    private void selectAllCheckBox_CheckedChanged(object sender, EventArgs e) {
     341      if (!suppressCheckAllNoneEventHandling) {
     342        if (selectAllCheckBox.Checked) {
     343          suppressCheckAllNoneEventHandling = true;
     344          try { selectNoneCheckBox.Checked = false; }
     345          finally { suppressCheckAllNoneEventHandling = false; }
     346          try {
     347            suppressTreeViewEventHandling = true;
     348            foreach (TreeNode node in instancesTreeView.Nodes) {
     349              if (!node.Checked) {
     350                node.Checked = true;
     351                SyncProviderNode(node);
     352              }
     353            }
     354          }
     355          finally { suppressTreeViewEventHandling = false; }
     356        }
     357      }
     358    }
     359
     360    private void selectNoneCheckBox_CheckedChanged(object sender, EventArgs e) {
     361      if (!suppressCheckAllNoneEventHandling) {
     362        if (selectNoneCheckBox.Checked) {
     363          suppressCheckAllNoneEventHandling = true;
     364          try { selectAllCheckBox.Checked = false; }
     365          finally { suppressCheckAllNoneEventHandling = false; }
     366          try {
     367            suppressTreeViewEventHandling = true;
     368            foreach (TreeNode node in instancesTreeView.Nodes) {
     369              if (node.Checked) {
     370                node.Checked = false;
     371                SyncProviderNode(node);
     372              }
     373            }
     374          }
     375          finally { suppressTreeViewEventHandling = false; }
     376        }
     377      }
     378    }
     379    #endregion
    52380
    53381    private void createBatchRunCheckBox_CheckedChanged(object sender, EventArgs e) {
    54382      repetitionsNumericUpDown.Enabled = createBatchRunCheckBox.Checked;
    55     }
     383      createBatchRun = createBatchRunCheckBox.Checked;
     384    }
     385
    56386    private void repetitionsNumericUpDown_Validated(object sender, EventArgs e) {
    57387      if (repetitionsNumericUpDown.Text == string.Empty)
    58388        repetitionsNumericUpDown.Text = repetitionsNumericUpDown.Value.ToString();
    59     }
    60     private void okButton_Click(object sender, EventArgs e) {
    61       experiment = new Experiment();
    62       if (createBatchRunCheckBox.Checked) {
    63         BatchRun batchRun = new BatchRun();
    64         batchRun.Repetitions = (int)repetitionsNumericUpDown.Value;
    65         batchRun.Optimizer = (IOptimizer)Optimizer.Clone();
    66         Experiment.Optimizers.Add(batchRun);
     389      repetitions = (int)repetitionsNumericUpDown.Value;
     390    }
     391
     392    private void experimentsLabel_TextChanged(object sender, EventArgs e) {
     393      long number;
     394      if (long.TryParse(variationsLabel.Text, NumberStyles.AllowThousands, CultureInfo.CurrentCulture.NumberFormat, out number)) {
     395        if (number > 1000) warningProvider.SetError(variationsLabel, "Consider reducing the number of variations!");
     396        else warningProvider.SetError(variationsLabel, null);
     397      }
     398    }
     399    #endregion
     400
     401    #region Helpers
     402    private void SetTabControlVisibility() {
     403      bool isAlgorithm = optimizer != null && optimizer is IAlgorithm;
     404      bool instancesAvailable = isAlgorithm
     405        && ((IAlgorithm)optimizer).Problem != null
     406        && ProblemInstanceManager.GetProviders(((IAlgorithm)optimizer).Problem).Any();
     407      if (instancesAvailable && tabControl.TabCount == 1)
     408        tabControl.TabPages.Add(instancesTabPage);
     409      else if (!instancesAvailable && tabControl.TabCount == 2)
     410        tabControl.TabPages.Remove(instancesTabPage);
     411      tabControl.Visible = isAlgorithm;
     412      if (isAlgorithm) {
     413        variationsLabel.Visible = true;
     414        experimentsToCreateDescriptionLabel.Visible = true;
     415        Height = 450;
    67416      } else {
    68         Experiment.Optimizers.Add((IOptimizer)Optimizer.Clone());
    69       }
    70       Experiment.Prepare(true);
    71     }
     417        variationsLabel.Visible = false;
     418        experimentsToCreateDescriptionLabel.Visible = false;
     419        Height = 130;
     420      }
     421    }
     422
     423    private void FillParametersListView() {
     424      parametersListView.Items.Clear();
     425      intParameters.Clear();
     426      doubleParameters.Clear();
     427      boolParameters.Clear();
     428      multipleChoiceParameters.Clear();
     429
     430      if (Optimizer is IAlgorithm) {
     431        var parameters = ((IAlgorithm)optimizer).Parameters;
     432        foreach (var param in parameters) {
     433          var valueParam = param as IValueParameter;
     434          if (valueParam != null && (valueParam.Value is ValueTypeValue<bool>
     435              || valueParam.Value is ValueTypeValue<int>
     436              || valueParam.Value is ValueTypeValue<double>)
     437            || typeof(OptionalConstrainedValueParameter<>).IsAssignableFrom(param.GetType().GetGenericTypeDefinition())
     438            || typeof(ConstrainedValueParameter<>).IsAssignableFrom(param.GetType().GetGenericTypeDefinition()))
     439            parametersListView.Items.Add(new ListViewItem(param.Name) { Tag = param });
     440        }
     441      }
     442    }
     443
     444    private void FillInstanceTreeViewAsync() {
     445      instances.Clear();
     446      instancesTreeView.Nodes.Clear();
     447
     448      if (Optimizer is IAlgorithm && ((IAlgorithm)Optimizer).Problem != null) {
     449        SetMode(DialogMode.DiscoveringInstances);
     450        instanceDiscoveryBackgroundWorker.RunWorkerAsync();
     451      }
     452    }
     453
     454    private void AddOptimizer(IOptimizer optimizer, Experiment experiment) {
     455      if (createBatchRun) {
     456        var batchRun = new BatchRun();
     457        batchRun.Repetitions = repetitions;
     458        batchRun.Optimizer = optimizer;
     459        experiment.Optimizers.Add(batchRun);
     460      } else {
     461        experiment.Optimizers.Add(optimizer);
     462      }
     463    }
     464
     465    private int GetNumberOfVariations() {
     466      int instancesCount = 1;
     467      if (instances.Values.Any())
     468        instancesCount = Math.Max(instances.Values.SelectMany(x => x).Count(), 1);
     469
     470      int intParameterVariations = 1;
     471      foreach (var intParam in intParameters.Values) {
     472        intParameterVariations *= Math.Max(intParam.Length, 1);
     473      }
     474      int doubleParameterVariations = 1;
     475      foreach (var doubleParam in doubleParameters.Values) {
     476        doubleParameterVariations *= Math.Max(doubleParam.Length, 1);
     477      }
     478      int boolParameterVariations = 1;
     479      foreach (var boolParam in boolParameters) {
     480        boolParameterVariations *= 2;
     481      }
     482      int choiceParameterVariations = 1;
     483      foreach (var choiceParam in multipleChoiceParameters.Values) {
     484        choiceParameterVariations *= Math.Max(choiceParam.Count, 1);
     485      }
     486
     487      return (instancesCount * intParameterVariations * doubleParameterVariations * boolParameterVariations * choiceParameterVariations);
     488    }
     489
     490    private void SetMode(DialogMode mode) {
     491      if (InvokeRequired) Invoke((Action<DialogMode>)SetMode, mode);
     492      else {
     493        createBatchRunCheckBox.Enabled = mode == DialogMode.Normal;
     494        repetitionsNumericUpDown.Enabled = mode == DialogMode.Normal;
     495        parametersSplitContainer.Enabled = mode == DialogMode.Normal || mode == DialogMode.DiscoveringInstances;
     496        selectAllCheckBox.Enabled = mode == DialogMode.Normal;
     497        selectNoneCheckBox.Enabled = mode == DialogMode.Normal;
     498        instancesTreeView.Enabled = mode == DialogMode.Normal;
     499        instancesTreeView.Visible = mode == DialogMode.Normal || mode == DialogMode.CreatingExperiment || mode == DialogMode.PreparingExperiment;
     500        okButton.Enabled = mode == DialogMode.Normal;
     501        okButton.Visible = mode != DialogMode.CreatingExperiment && mode != DialogMode.PreparingExperiment;
     502        cancelButton.Enabled = mode != DialogMode.PreparingExperiment;
     503        instanceDiscoveryProgressLabel.Visible = mode == DialogMode.DiscoveringInstances;
     504        instanceDiscoveryProgressBar.Visible = mode == DialogMode.DiscoveringInstances;
     505        experimentCreationProgressBar.Visible = mode == DialogMode.CreatingExperiment || mode == DialogMode.PreparingExperiment;
     506      }
     507    }
     508
     509    private void ClearDetailsView() {
     510      stringConvertibleArrayView.Visible = false;
     511      stringConvertibleArrayView.Content = null;
     512      stringConvertibleArrayView.ReadOnly = true;
     513      generateButton.Visible = false;
     514      detailsTypeLabel.Visible = false;
     515      choicesListView.Items.Clear();
     516      choicesListView.Enabled = false;
     517      choicesListView.Visible = false;
     518    }
     519
     520    private void UpdateVariationsLabel() {
     521      variationsLabel.Text = GetNumberOfVariations().ToString("#,#", CultureInfo.CurrentCulture);
     522    }
     523
     524    #region Retrieve parameter combinations
     525    private IEnumerable<Dictionary<IValueParameter, int>> GetIntParameterConfigurations() {
     526      var configuration = new Dictionary<IValueParameter, int>();
     527      var enumerators = new Dictionary<IValueParameter, IEnumerator<int>>();
     528      bool finished;
     529      do {
     530        foreach (var p in intParameters) {
     531          if (!enumerators.ContainsKey(p.Key)) {
     532            enumerators[p.Key] = p.Value.GetEnumerator();
     533            enumerators[p.Key].MoveNext();
     534          }
     535          configuration[p.Key] = enumerators[p.Key].Current;
     536        }
     537        yield return configuration;
     538
     539        finished = true;
     540        foreach (var p in intParameters) {
     541          if (!enumerators[p.Key].MoveNext()) {
     542            enumerators[p.Key] = p.Value.GetEnumerator();
     543            enumerators[p.Key].MoveNext();
     544          } else {
     545            finished = false;
     546            break;
     547          }
     548        }
     549      } while (!finished);
     550    }
     551
     552    private IEnumerable<Dictionary<IValueParameter, double>> GetDoubleParameterConfigurations() {
     553      var configuration = new Dictionary<IValueParameter, double>();
     554      var enumerators = new Dictionary<IValueParameter, IEnumerator<double>>();
     555      bool finished;
     556      do {
     557        foreach (var p in doubleParameters) {
     558          if (!enumerators.ContainsKey(p.Key)) {
     559            enumerators[p.Key] = p.Value.GetEnumerator();
     560            enumerators[p.Key].MoveNext();
     561          }
     562          configuration[p.Key] = enumerators[p.Key].Current;
     563        }
     564        yield return configuration;
     565
     566        finished = true;
     567        foreach (var p in doubleParameters) {
     568          if (!enumerators[p.Key].MoveNext()) {
     569            enumerators[p.Key] = p.Value.GetEnumerator();
     570            enumerators[p.Key].MoveNext();
     571          } else {
     572            finished = false;
     573            break;
     574          }
     575        }
     576      } while (!finished);
     577    }
     578
     579    private IEnumerable<Dictionary<IValueParameter, bool>> GetBoolParameterConfigurations() {
     580      var configuration = new Dictionary<IValueParameter, bool>();
     581      bool finished;
     582      do {
     583        finished = true;
     584        foreach (var p in boolParameters) {
     585          if (!configuration.ContainsKey(p)) configuration.Add(p, false);
     586          else {
     587            if (configuration[p]) {
     588              configuration[p] = false;
     589            } else {
     590              configuration[p] = true;
     591              finished = false;
     592              break;
     593            }
     594          }
     595        }
     596        yield return configuration;
     597      } while (!finished);
     598    }
     599
     600    private IEnumerable<Dictionary<IValueParameter, IItem>> GetMultipleChoiceConfigurations() {
     601      var configuration = new Dictionary<IValueParameter, IItem>();
     602      var enumerators = new Dictionary<IValueParameter, IEnumerator<IItem>>();
     603      bool finished;
     604      do {
     605        foreach (var p in multipleChoiceParameters.Keys.ToArray()) {
     606          if (!enumerators.ContainsKey(p)) {
     607            enumerators.Add(p, multipleChoiceParameters[p].GetEnumerator());
     608            if (!enumerators[p].MoveNext()) {
     609              multipleChoiceParameters.Remove(p);
     610              continue;
     611            }
     612          }
     613          configuration[p] = enumerators[p].Current;
     614        }
     615
     616        finished = true;
     617        foreach (var p in multipleChoiceParameters.Keys) {
     618          if (!enumerators[p].MoveNext()) {
     619            enumerators[p] = multipleChoiceParameters[p].GetEnumerator();
     620            enumerators[p].MoveNext();
     621          } else {
     622            finished = false;
     623            break;
     624          }
     625        }
     626        yield return configuration;
     627      } while (!finished);
     628    }
     629    #endregion
     630    #endregion
     631
     632    #region Background workers
     633    #region Instance discovery
     634    private void instanceDiscoveryBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
     635      var instanceProviders = ProblemInstanceManager.GetProviders(((IAlgorithm)Optimizer).Problem).ToArray();
     636      var nodes = new TreeNode[instanceProviders.Length];
     637      for (int i = 0; i < instanceProviders.Length; i++) {
     638        var provider = instanceProviders[i];
     639        nodes[i] = new TreeNode(provider.Name) { Tag = provider };
     640      }
     641      e.Result = nodes;
     642      for (int i = 0; i < nodes.Length; i++) {
     643        var providerNode = nodes[i];
     644        var provider = providerNode.Tag as IProblemInstanceProvider;
     645        double progress = i / (double)nodes.Length;
     646        instanceDiscoveryBackgroundWorker.ReportProgress((int)(100 * progress), provider.Name);
     647        var descriptors = ProblemInstanceManager.GetDataDescriptors(provider).ToArray();
     648        for (int j = 0; j < descriptors.Length; j++) {
     649          #region Check cancellation request
     650          if (instanceDiscoveryBackgroundWorker.CancellationPending) {
     651            e.Cancel = true;
     652            return;
     653          }
     654          #endregion
     655          var node = new TreeNode(descriptors[j].Name) { Tag = descriptors[j] };
     656          providerNode.Nodes.Add(node);
     657        }
     658      }
     659      instanceDiscoveryBackgroundWorker.ReportProgress(100, string.Empty);
     660    }
     661
     662    private void instanceDiscoveryBackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) {
     663      if (instanceDiscoveryProgressBar.Value != e.ProgressPercentage)
     664        instanceDiscoveryProgressBar.Value = e.ProgressPercentage;
     665      instanceDiscoveryProgressLabel.Text = (string)e.UserState;
     666      Application.DoEvents();
     667    }
     668
     669    private void instanceDiscoveryBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
     670      try {
     671        instancesTreeView.Nodes.AddRange((TreeNode[])e.Result);
     672        foreach (TreeNode node in instancesTreeView.Nodes)
     673          node.Collapse();
     674        selectNoneCheckBox.Checked = true;
     675      }
     676      catch { }
     677      try {
     678        SetMode(DialogMode.Normal);
     679        if (e.Error != null) MessageBox.Show(e.Error.Message, "Error occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
     680      }
     681      catch { }
     682    }
     683    #endregion
     684
     685    #region Experiment creation
     686    private void experimentCreationBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
     687      backgroundWorkerWaitHandle.Set(); // notify the ok button that we're busy now
     688      failedInstances = new StringBuilder();
     689      var localExperiment = new Experiment();
     690
     691      int counter = 0, totalVariations = GetNumberOfVariations();
     692      if (instances.Count == 0) {
     693        try {
     694          AddParameterVariations(Optimizer, localExperiment, ref counter, totalVariations);
     695        } catch (OperationCanceledException) {
     696          e.Cancel = true;
     697          localExperiment = null;
     698          return;
     699        }
     700        experimentCreationBackgroundWorker.ReportProgress(100, string.Empty);
     701      } else {
     702        foreach (var provider in instances.Keys) {
     703          foreach (var descriptor in instances[provider]) {
     704            var algorithm = (IAlgorithm)Optimizer.Clone();
     705            bool failed = false;
     706            try {
     707              ProblemInstanceManager.LoadData(provider, descriptor, (IProblemInstanceConsumer)algorithm.Problem);
     708            } catch (Exception ex) {
     709              failedInstances.AppendLine(descriptor.Name + ": " + ex.Message);
     710              failed = true;
     711            }
     712            if (!failed) {
     713              try {
     714                AddParameterVariations(algorithm, localExperiment, ref counter, totalVariations);
     715              } catch (OperationCanceledException) {
     716                e.Cancel = true;
     717                localExperiment = null;
     718                return;
     719              }
     720            } else experimentCreationBackgroundWorker.ReportProgress((int)Math.Round((100.0 * counter) / totalVariations), "Loading failed (" + descriptor.Name + ")");
     721          }
     722        }
     723      }
     724      if (localExperiment != null) {
     725        // this step can take some time
     726        SetMode(DialogMode.PreparingExperiment);
     727        experimentCreationBackgroundWorker.ReportProgress(-1);
     728        localExperiment.Prepare(true);
     729        experimentCreationBackgroundWorker.ReportProgress(100);
     730      }
     731      Experiment = localExperiment;
     732    }
     733
     734    private void AddParameterVariations(IOptimizer optimizer, Experiment localExperiment, ref int counter, int totalVariations) {
     735      var variations = experimentCreationBackgroundWorker_CalculateParameterVariations(optimizer);
     736      foreach (var v in variations) {
     737        if (experimentCreationBackgroundWorker.CancellationPending)
     738          throw new OperationCanceledException();
     739        AddOptimizer(v, localExperiment);
     740        counter++;
     741        experimentCreationBackgroundWorker.ReportProgress((int)Math.Round((100.0 * counter) / totalVariations), string.Empty);
     742      }
     743    }
     744
     745    private IEnumerable<IOptimizer> experimentCreationBackgroundWorker_CalculateParameterVariations(IOptimizer optimizer) {
     746      if (!boolParameters.Any() && !intParameters.Any() && !doubleParameters.Any() && !multipleChoiceParameters.Any()) {
     747        var o = (IOptimizer)optimizer.Clone();
     748        o.Runs.Clear();
     749        yield return o;
     750        yield break;
     751      }
     752      bool finished;
     753      var mcEnumerator = GetMultipleChoiceConfigurations().GetEnumerator();
     754      var boolEnumerator = GetBoolParameterConfigurations().GetEnumerator();
     755      var intEnumerator = GetIntParameterConfigurations().GetEnumerator();
     756      var doubleEnumerator = GetDoubleParameterConfigurations().GetEnumerator();
     757      mcEnumerator.MoveNext(); boolEnumerator.MoveNext(); intEnumerator.MoveNext(); doubleEnumerator.MoveNext();
     758      do {
     759        var variant = (IAlgorithm)optimizer.Clone();
     760        variant.Runs.Clear();
     761        variant.Name += " {";
     762        finished = true;
     763        if (doubleParameters.Any()) {
     764          foreach (var d in doubleEnumerator.Current) {
     765            var value = (ValueTypeValue<double>)((IValueParameter)variant.Parameters[d.Key.Name]).Value;
     766            value.Value = d.Value;
     767            variant.Name += d.Key.Name + "=" + d.Value.ToString() + ", ";
     768          }
     769          if (finished) {
     770            if (doubleEnumerator.MoveNext()) {
     771              finished = false;
     772            } else {
     773              doubleEnumerator = GetDoubleParameterConfigurations().GetEnumerator();
     774              doubleEnumerator.MoveNext();
     775            }
     776          }
     777        }
     778        if (intParameters.Any()) {
     779          foreach (var i in intEnumerator.Current) {
     780            var value = (ValueTypeValue<int>)((IValueParameter)variant.Parameters[i.Key.Name]).Value;
     781            value.Value = i.Value;
     782            variant.Name += i.Key.Name + "=" + i.Value.ToString() + ", ";
     783          }
     784          if (finished) {
     785            if (intEnumerator.MoveNext()) {
     786              finished = false;
     787            } else {
     788              intEnumerator = GetIntParameterConfigurations().GetEnumerator();
     789              intEnumerator.MoveNext();
     790            }
     791          }
     792        }
     793        if (boolParameters.Any()) {
     794          foreach (var b in boolEnumerator.Current) {
     795            var value = (ValueTypeValue<bool>)((IValueParameter)variant.Parameters[b.Key.Name]).Value;
     796            value.Value = b.Value;
     797            variant.Name += b.Key.Name + "=" + b.Value.ToString() + ", ";
     798          }
     799          if (finished) {
     800            if (boolEnumerator.MoveNext()) {
     801              finished = false;
     802            } else {
     803              boolEnumerator = GetBoolParameterConfigurations().GetEnumerator();
     804              boolEnumerator.MoveNext();
     805            }
     806          }
     807        }
     808        if (multipleChoiceParameters.Any()) {
     809          foreach (var m in mcEnumerator.Current) {
     810            dynamic variantParam = variant.Parameters[m.Key.Name];
     811            if (m.Value == optionalNullChoice) {
     812              variantParam.Value = null;
     813              variant.Name += m.Key.Name + "=null, ";
     814              continue;
     815            }
     816            var variantEnumerator = ((IEnumerable<object>)variantParam.ValidValues).GetEnumerator();
     817            var originalEnumerator = ((IEnumerable<object>)((dynamic)m.Key).ValidValues).GetEnumerator();
     818            while (variantEnumerator.MoveNext() && originalEnumerator.MoveNext()) {
     819              if (m.Value == (IItem)originalEnumerator.Current) {
     820                variantParam.Value = (dynamic)variantEnumerator.Current;
     821                if (m.Value is INamedItem)
     822                  variant.Name += m.Key.Name + "=" + ((INamedItem)m.Value).Name + ", ";
     823                else variant.Name += m.Key.Name + "=" + m.Value.ToString() + ", ";
     824                break;
     825              }
     826            }
     827          }
     828          if (finished) {
     829            if (mcEnumerator.MoveNext()) {
     830              finished = false;
     831            } else {
     832              mcEnumerator = GetMultipleChoiceConfigurations().GetEnumerator();
     833              mcEnumerator.MoveNext();
     834            }
     835          }
     836        }
     837        variant.Name = variant.Name.Substring(0, variant.Name.Length - 2) + "}";
     838        yield return variant;
     839      } while (!finished);
     840    }
     841
     842    private void experimentCreationBackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) {
     843      if (e.ProgressPercentage >= 0 && e.ProgressPercentage <= 100) {
     844        experimentCreationProgressBar.Style = ProgressBarStyle.Continuous;
     845        experimentCreationProgressBar.Value = e.ProgressPercentage;
     846      } else {
     847        experimentCreationProgressBar.Style = ProgressBarStyle.Marquee;
     848      }
     849      Application.DoEvents();
     850    }
     851
     852    private void experimentCreationBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
     853      try {
     854        SetMode(DialogMode.Normal);
     855        if (e.Error != null) MessageBox.Show(e.Error.Message, "Error occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
     856        if (failedInstances.Length > 0) MessageBox.Show("Some instances could not be loaded: " + Environment.NewLine + failedInstances.ToString(), "Some instances failed to load", MessageBoxButtons.OK, MessageBoxIcon.Error);
     857        if (!e.Cancelled && e.Error == null) {
     858          DialogResult = System.Windows.Forms.DialogResult.OK;
     859          Close();
     860        }
     861      }
     862      catch { }
     863    }
     864    #endregion
     865    #endregion
    72866  }
    73867}
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj

    r7013 r8085  
    9999  </PropertyGroup>
    100100  <ItemGroup>
     101    <Reference Include="Microsoft.CSharp" />
    101102    <Reference Include="System" />
    102103    <Reference Include="System.Core">
     
    115116  </ItemGroup>
    116117  <ItemGroup>
     118    <EmbeddedResource Include="CreateExperimentDialog.resx">
     119      <DependentUpon>CreateExperimentDialog.cs</DependentUpon>
     120    </EmbeddedResource>
    117121    <EmbeddedResource Include="Documents\GA_VRP.hl" />
    118122    <EmbeddedResource Include="Documents\SGP_SymbClass.hl" />
     
    121125    <EmbeddedResource Include="Documents\PSO_Schwefel.hl" />
    122126    <None Include="Plugin.cs.frame" />
     127    <Compile Include="DefineArithmeticProgressionDialog.cs">
     128      <SubType>Form</SubType>
     129    </Compile>
     130    <Compile Include="DefineArithmeticProgressionDialog.Designer.cs">
     131      <DependentUpon>DefineArithmeticProgressionDialog.cs</DependentUpon>
     132    </Compile>
    123133    <Compile Include="OptimizerSingleDocumentMainForm.cs">
    124134      <SubType>Form</SubType>
     
    205215  </ItemGroup>
    206216  <ItemGroup>
     217    <ProjectReference Include="..\..\HeuristicLab.Clients.Access\3.3\HeuristicLab.Clients.Access-3.3.csproj">
     218      <Project>{494F87F4-0F25-4D33-A382-10CDB2174D48}</Project>
     219      <Name>HeuristicLab.Clients.Access-3.3</Name>
     220      <Private>False</Private>
     221    </ProjectReference>
    207222    <ProjectReference Include="..\..\HeuristicLab.Clients.Common\3.3\HeuristicLab.Clients.Common-3.3.csproj">
    208223      <Project>{730A9104-D4D1-4360-966B-E49B7571DDA3}</Project>
     
    235250      <Private>False</Private>
    236251    </ProjectReference>
     252    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
     253      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
     254      <Name>HeuristicLab.Data.Views-3.3</Name>
     255      <Private>False</Private>
     256    </ProjectReference>
     257    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
     258      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
     259      <Name>HeuristicLab.Data-3.3</Name>
     260      <Private>False</Private>
     261    </ProjectReference>
    237262    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
    238263      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
     
    250275      <Private>False</Private>
    251276    </ProjectReference>
     277    <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
     278      <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
     279      <Name>HeuristicLab.Parameters-3.3</Name>
     280      <Private>False</Private>
     281    </ProjectReference>
    252282    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    253283      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
     
    258288      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    259289      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
     290      <Private>False</Private>
     291    </ProjectReference>
     292    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
     293      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
     294      <Name>HeuristicLab.Problems.Instances-3.3</Name>
    260295      <Private>False</Private>
    261296    </ProjectReference>
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/MainFormTypeSelectionDialog.Designer.cs

    r7070 r8085  
    126126      this.AcceptButton = this.okButton;
    127127      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    128       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     128      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    129129      this.CancelButton = this.cancelButton;
    130130      this.ClientSize = new System.Drawing.Size(260, 202);
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/NewItemDialog.Designer.cs

    r7259 r8085  
    121121      this.AcceptButton = this.okButton;
    122122      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    123       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     123      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    124124      this.CancelButton = this.cancelButton;
    125125      this.ClientSize = new System.Drawing.Size(624, 444);
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/OptimizerDockingMainForm.Designer.cs

    r7259 r8085  
    5050      //
    5151      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    52       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     52      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    5353      this.ClientSize = new System.Drawing.Size(984, 714);
    5454      this.Name = "OptimizerMainForm";
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/OptimizerMultipleDocumentMainForm.Designer.cs

    r7259 r8085  
    5050      //
    5151      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    52       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     52      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    5353      this.ClientSize = new System.Drawing.Size(984, 714);
    5454      this.Name = "OptimizerMainForm";
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/OptimizerSingleDocumentMainForm.Designer.cs

    r7259 r8085  
    5050      //
    5151      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    52       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     52      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    5353      this.ClientSize = new System.Drawing.Size(984, 714);
    5454      this.Name = "OptimizerMainForm";
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/Plugin.cs.frame

    r7260 r8085  
    2121
    2222using System.Windows.Forms;
     23using HeuristicLab.Clients.Access;
    2324using HeuristicLab.Optimizer.Properties;
    2425using HeuristicLab.PluginInfrastructure;
     
    3334  [PluginDependency("HeuristicLab.Core", "3.3")]
    3435  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
     36  [PluginDependency("HeuristicLab.Data", "3.3")]
     37  [PluginDependency("HeuristicLab.Data.Views", "3.3")]
    3538  [PluginDependency("HeuristicLab.MainForm", "3.3")]
    3639  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
    3740  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     41  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    3842  [PluginDependency("HeuristicLab.Persistence", "3.3")]
     43  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
     44  [PluginDependency("HeuristicLab.Clients.Access", "3.3")]
    3945  public class HeuristicLabOptimizerPlugin : PluginBase {
    4046  }
     
    5460
    5561      if (mainForm != null) {
     62        ClientInformation.InitializeAsync();
     63        UserInformation.InitializeAsync();
     64
    5665        mainForm.ShowContentInViewHost = true;
    5766        Application.Run(mainForm);
  • branches/GP-MoveOperators/HeuristicLab.Optimizer/3.3/StartPage.Designer.cs

    r7259 r8085  
    211211      //
    212212      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    213       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     213      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    214214      this.Controls.Add(this.splitContainer);
    215215      this.Controls.Add(this.showStartPageCheckBox);
Note: See TracChangeset for help on using the changeset viewer.