Free cookie consent management tool by TermsFeed Policy Generator

Changeset 4144


Ignore:
Timestamp:
08/04/10 14:34:40 (14 years ago)
Author:
cneumuel
Message:

improved HiveExperiment GUI (HL3.3 look&feel, RunCollectionView, JobItem.ToString) (#1115)

Location:
branches/3.3-HiveMigration/sources/HeuristicLab.Hive
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobDto.cs

    r4141 r4144  
    8282    public ProjectDto Project { get; set; }
    8383
    84    
    85 
    8684    public override string ToString() {
    8785      return base.ToString() + "State: " + State + ", [Ressource : " + Client + " ] , DateCreated: " + DateCreated + ", DateCalculated: " + DateCalculated +
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/HeuristicLab.Hive.Experiment.Views-3.3.csproj

    r4133 r4144  
    6767      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath>
    6868    </Reference>
    69     <Reference Include="HeuristicLab.Core.Views-3.3">
    70       <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Core.Views-3.3.dll</HintPath>
    71     </Reference>
     69    <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
    7270    <Reference Include="HeuristicLab.Data-3.3">
    7371      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Data-3.3.dll</HintPath>
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/HiveExperimentView.Designer.cs

    r4133 r4144  
    4848      this.tabControl = new System.Windows.Forms.TabControl();
    4949      this.experimentTabPage = new System.Windows.Forms.TabPage();
     50      this.openExperimentButton = new System.Windows.Forms.Button();
     51      this.newExperimentButton = new System.Windows.Forms.Button();
    5052      this.experimentNamedItemView = new HeuristicLab.Core.Views.NamedItemView();
    51       this.newExperimentButton = new System.Windows.Forms.Button();
    52       this.openExperimentButton = new System.Windows.Forms.Button();
    53       this.loadExperimentButton = new System.Windows.Forms.Button();
     53      this.viewExperimentButton = new System.Windows.Forms.Button();
    5454      this.hiveStatusTabPage = new System.Windows.Forms.TabPage();
    5555      this.jobListView = new HeuristicLab.Hive.Experiment.Views.JobItemListView();
     
    6868      this.disconnectButton = new System.Windows.Forms.Button();
    6969      this.reconnectButton = new System.Windows.Forms.Button();
     70      this.runsTabPage = new System.Windows.Forms.TabPage();
     71      this.runCollectionView = new HeuristicLab.Optimization.Views.RunCollectionView();
    7072      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    7173      this.tabControl.SuspendLayout();
     
    7375      this.hiveStatusTabPage.SuspendLayout();
    7476      this.logTabPage.SuspendLayout();
     77      this.runsTabPage.SuspendLayout();
    7578      this.SuspendLayout();
    7679      //
     
    9295      this.tabControl.Controls.Add(this.experimentTabPage);
    9396      this.tabControl.Controls.Add(this.hiveStatusTabPage);
     97      this.tabControl.Controls.Add(this.runsTabPage);
    9498      this.tabControl.Controls.Add(this.logTabPage);
    9599      this.tabControl.Location = new System.Drawing.Point(0, 99);
     
    101105      // experimentTabPage
    102106      //
     107      this.experimentTabPage.Controls.Add(this.openExperimentButton);
     108      this.experimentTabPage.Controls.Add(this.newExperimentButton);
    103109      this.experimentTabPage.Controls.Add(this.experimentNamedItemView);
    104       this.experimentTabPage.Controls.Add(this.newExperimentButton);
    105       this.experimentTabPage.Controls.Add(this.openExperimentButton);
    106       this.experimentTabPage.Controls.Add(this.loadExperimentButton);
     110      this.experimentTabPage.Controls.Add(this.viewExperimentButton);
    107111      this.experimentTabPage.Location = new System.Drawing.Point(4, 22);
    108112      this.experimentTabPage.Name = "experimentTabPage";
     
    113117      this.experimentTabPage.UseVisualStyleBackColor = true;
    114118      //
     119      // openExperimentButton
     120      //
     121      this.openExperimentButton.Image = ((System.Drawing.Image)(resources.GetObject("openExperimentButton.Image")));
     122      this.openExperimentButton.Location = new System.Drawing.Point(36, 6);
     123      this.openExperimentButton.Name = "openExperimentButton";
     124      this.openExperimentButton.Size = new System.Drawing.Size(24, 24);
     125      this.openExperimentButton.TabIndex = 5;
     126      this.toolTip.SetToolTip(this.openExperimentButton, "Open Experiment");
     127      this.openExperimentButton.UseVisualStyleBackColor = true;
     128      this.openExperimentButton.Click += new System.EventHandler(this.openExperimentButton_Click);
     129      //
     130      // newExperimentButton
     131      //
     132      this.newExperimentButton.Image = ((System.Drawing.Image)(resources.GetObject("newExperimentButton.Image")));
     133      this.newExperimentButton.Location = new System.Drawing.Point(6, 6);
     134      this.newExperimentButton.Name = "newExperimentButton";
     135      this.newExperimentButton.Size = new System.Drawing.Size(24, 24);
     136      this.newExperimentButton.TabIndex = 4;
     137      this.toolTip.SetToolTip(this.newExperimentButton, "New Experiment");
     138      this.newExperimentButton.UseVisualStyleBackColor = true;
     139      this.newExperimentButton.Click += new System.EventHandler(this.newExperimentButton_Click);
     140      //
    115141      // experimentNamedItemView
    116142      //
     
    119145      this.experimentNamedItemView.Caption = "NamedItem View";
    120146      this.experimentNamedItemView.Content = null;
    121       this.experimentNamedItemView.Location = new System.Drawing.Point(144, 7);
     147      this.experimentNamedItemView.Location = new System.Drawing.Point(3, 36);
    122148      this.experimentNamedItemView.Name = "experimentNamedItemView";
    123149      this.experimentNamedItemView.ReadOnly = false;
    124       this.experimentNamedItemView.Size = new System.Drawing.Size(577, 52);
     150      this.experimentNamedItemView.Size = new System.Drawing.Size(721, 52);
    125151      this.experimentNamedItemView.TabIndex = 3;
    126152      //
    127       // newExperimentButton
    128       //
    129       this.newExperimentButton.Location = new System.Drawing.Point(6, 6);
    130       this.newExperimentButton.Name = "newExperimentButton";
    131       this.newExperimentButton.Size = new System.Drawing.Size(131, 32);
    132       this.newExperimentButton.TabIndex = 2;
    133       this.newExperimentButton.Text = "New Experiment";
    134       this.newExperimentButton.UseVisualStyleBackColor = true;
    135       this.newExperimentButton.Click += new System.EventHandler(this.newExperimentButton_Click);
    136       //
    137       // openExperimentButton
    138       //
    139       this.openExperimentButton.Location = new System.Drawing.Point(6, 82);
    140       this.openExperimentButton.Name = "openExperimentButton";
    141       this.openExperimentButton.Size = new System.Drawing.Size(131, 32);
    142       this.openExperimentButton.TabIndex = 1;
    143       this.openExperimentButton.Text = "Open Experiment";
    144       this.openExperimentButton.UseVisualStyleBackColor = true;
    145       this.openExperimentButton.Click += new System.EventHandler(this.openExperimentButton_Click);
    146       //
    147       // loadExperimentButton
    148       //
    149       this.loadExperimentButton.Location = new System.Drawing.Point(6, 44);
    150       this.loadExperimentButton.Name = "loadExperimentButton";
    151       this.loadExperimentButton.Size = new System.Drawing.Size(131, 32);
    152       this.loadExperimentButton.TabIndex = 0;
    153       this.loadExperimentButton.Text = "Load Experiment";
    154       this.loadExperimentButton.UseVisualStyleBackColor = true;
    155       this.loadExperimentButton.Click += new System.EventHandler(this.loadExperimentButton_Click);
     153      // viewExperimentButton
     154      //
     155      this.viewExperimentButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     156                  | System.Windows.Forms.AnchorStyles.Right)));
     157      this.viewExperimentButton.Location = new System.Drawing.Point(0, 94);
     158      this.viewExperimentButton.Name = "viewExperimentButton";
     159      this.viewExperimentButton.Size = new System.Drawing.Size(727, 23);
     160      this.viewExperimentButton.TabIndex = 1;
     161      this.viewExperimentButton.Text = "&Show Experiment";
     162      this.viewExperimentButton.UseVisualStyleBackColor = true;
     163      this.viewExperimentButton.Click += new System.EventHandler(this.showExperimentButton_Click);
    156164      //
    157165      // hiveStatusTabPage
     
    335343      this.reconnectButton.UseVisualStyleBackColor = true;
    336344      this.reconnectButton.Click += new System.EventHandler(this.reconnectButton_Click);
     345      //
     346      // runsTabPage
     347      //
     348      this.runsTabPage.Controls.Add(this.runCollectionView);
     349      this.runsTabPage.Location = new System.Drawing.Point(4, 22);
     350      this.runsTabPage.Name = "runsTabPage";
     351      this.runsTabPage.Size = new System.Drawing.Size(727, 369);
     352      this.runsTabPage.TabIndex = 4;
     353      this.runsTabPage.Text = "Runs";
     354      this.runsTabPage.UseVisualStyleBackColor = true;
     355      //
     356      // runCollectionView
     357      //
     358      this.runCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     359                  | System.Windows.Forms.AnchorStyles.Left)
     360                  | System.Windows.Forms.AnchorStyles.Right)));
     361      this.runCollectionView.Caption = "RunCollection View";
     362      this.runCollectionView.Content = null;
     363      this.runCollectionView.Location = new System.Drawing.Point(0, 3);
     364      this.runCollectionView.Name = "runCollectionView";
     365      this.runCollectionView.ReadOnly = false;
     366      this.runCollectionView.Size = new System.Drawing.Size(727, 366);
     367      this.runCollectionView.TabIndex = 0;
    337368      //
    338369      // HiveExperimentView
     
    363394      this.Controls.SetChildIndex(this.startButton, 0);
    364395      this.Controls.SetChildIndex(this.tabControl, 0);
    365       this.Controls.SetChildIndex(this.nameLabel, 0);
    366       this.Controls.SetChildIndex(this.descriptionLabel, 0);
    367       this.Controls.SetChildIndex(this.nameTextBox, 0);
    368       this.Controls.SetChildIndex(this.descriptionTextBox, 0);
    369396      this.Controls.SetChildIndex(this.resourceIdsLabel, 0);
    370397      this.Controls.SetChildIndex(this.serverUrlTextBox, 0);
     
    372399      this.Controls.SetChildIndex(this.disconnectButton, 0);
    373400      this.Controls.SetChildIndex(this.reconnectButton, 0);
     401      this.Controls.SetChildIndex(this.nameLabel, 0);
     402      this.Controls.SetChildIndex(this.descriptionLabel, 0);
     403      this.Controls.SetChildIndex(this.nameTextBox, 0);
     404      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
    374405      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
    375406      this.tabControl.ResumeLayout(false);
     
    377408      this.hiveStatusTabPage.ResumeLayout(false);
    378409      this.logTabPage.ResumeLayout(false);
     410      this.runsTabPage.ResumeLayout(false);
    379411      this.ResumeLayout(false);
    380412      this.PerformLayout();
     
    396428    private System.Windows.Forms.TextBox serverUrlTextBox;
    397429    private System.Windows.Forms.TextBox resourceIdsTextBox;
    398     private System.Windows.Forms.Button newExperimentButton;
    399     private System.Windows.Forms.Button openExperimentButton;
    400     private System.Windows.Forms.Button loadExperimentButton;
     430    private System.Windows.Forms.Button viewExperimentButton;
    401431    private Core.Views.NamedItemView experimentNamedItemView;
    402432    private System.Windows.Forms.TabPage logTabPage;
     
    405435    private System.Windows.Forms.Button disconnectButton;
    406436    private System.Windows.Forms.Button reconnectButton;
     437    protected System.Windows.Forms.Button openExperimentButton;
     438    protected System.Windows.Forms.Button newExperimentButton;
     439    private System.Windows.Forms.TabPage runsTabPage;
     440    private Optimization.Views.RunCollectionView runCollectionView;
    407441
    408442  }
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/HiveExperimentView.cs

    r4133 r4144  
    8686        logView.Content = Content.Log;
    8787        jobListView.Content = Content.JobItems;
     88        Content_ExperimentChanged(this, EventArgs.Empty);
    8889      }
    8990    }
     
    9394      executionTimeTextBox.Enabled = Content != null;
    9495      if (Content != null) {
    95         openExperimentButton.Enabled = Content.Experiment != null;
     96        viewExperimentButton.Enabled = Content.Experiment != null;
    9697        experimentNamedItemView.Locked = Content.Experiment == null;
    9798      }
     
    107108      experimentNamedItemView.Content = Content.Experiment;
    108109      if (Content.Experiment != null) {
     110        runCollectionView.Content = Content.Experiment.Runs;
    109111        Content.Prepare();
    110112      }
     
    210212    }
    211213
    212     private void loadExperimentButton_Click(object sender, EventArgs e) {
     214    private void openExperimentButton_Click(object sender, EventArgs e) {
    213215      OpenFileDialog openFileDialog = new OpenFileDialog();
    214216      openFileDialog.Title = "Open Experimenter";
     
    223225    }
    224226
    225     private void openExperimentButton_Click(object sender, EventArgs e) {
     227    private void showExperimentButton_Click(object sender, EventArgs e) {
    226228      MainFormManager.MainForm.ShowContent(Content.Experiment);
    227229    }
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/HiveExperimentView.resx

    r4133 r4144  
    121121    <value>102, 17</value>
    122122  </metadata>
    123   <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    124     <value>102, 17</value>
    125   </metadata>
    126123  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    127124    <value>17, 17</value>
    128125  </metadata>
    129126  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     127  <data name="openExperimentButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     128    <value>
     129        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
     130        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDQAA
     131        Cw0B7QfALAAAAn9JREFUOE+lk2tI01EYxhf0oU8WqVEIRpaIBWJgSPUhROmippS3QkkTylsXDMW8ts3b
     132        1G06daVibuqaOq0sxbBCKBSJ0PJCialZUFSKqaGSt1//TbIsww8deOBwznl+5zkv71kHiP5rGAFrKb1Q
     133        5ypR6bmaVU6m2kCiXJv007Om2XgwJEaNT4QiyDi/GF9mKRVgsWkav+CYQkR1utwAQfypphqZ4l/JIhOL
     134        jvtGKfCOyDMB6O/WMjNea9L3MT1zIxoM5QrqdWnS1SA+kUq8w1V4hhUgqq1QMj1WtcK88KmIud5oqsqy
     135        qCzOQFMopSQvhRvyBApkcQLzV91E1docpr9ol29eFMz0J0Bv2Kr6C3CrVMa3jyWm2EZzc12OSQ8M2TTo
     136        ZdytzMCgSUVfIqFcfY2bqiSKlQmoc+JNaUSVJRlMvsvHGHuoVUx9lZKFIQkMp63UW2FtMBH6YuBVFF01
     137        /lwO9aoQadSpTAxkwXs596oVtD+ULx36/Qkvg6HDl/k2D2YeufCmwoELZ45MCIA9olKVmK+vJQy3JVOv
     138        l7M4KIae8CVAV6hgPMV8uxczLYeZbDrIaN1eJBG2nHazyDN1cZEymdHueG7rcuh8KiTpixYA56AziMVn
     139        J5h9coyp5kOM1TvxudqejvRNBHrY4GRnZmcCqLMT6GlJ4Y4uGwZS4IUQ97kfs62eTD12YbzBmRGDAx+0
     140        u+iVmyMO24njbqvG5VbOz4yjtjyL3vuRdOSKltUuX0+LbAON0o3UJFmiibPi+pXtBLrvWHR2tHZfBuSm
     141        xZIrPk9mfAiJlwKMleWsvxsnj+7H9YAD+xxssbexwnqbBVs2m7HV3GxlI631E9fa/wGRpaRpa3TTbQAA
     142        AABJRU5ErkJggg==
     143</value>
     144  </data>
     145  <data name="newExperimentButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     146    <value>
     147        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
     148        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDQAA
     149        Cw0B7QfALAAAAaJJREFUOE+Nkk1LAkEYx5egU9Sla9AX6NKhLlH3IujSoXtBn0EI+gB5qVBIKyIMtEDo
     150        BUIhK6qDSUj4gqYloilmvqa5rrr/Zlx3dkU0B/48z87O/zfzPDMcAE7SOg8sB2AkqYdIXIoAK4LyX17X
     151        HiVzYPhC0NBUB1yR6Jfy5lx59rQXRAKEhl6Y4YhMnXOSmUDywRlYHV5YbG6YLp1UW2pgEyBoSdARbdNP
     152        OszSSQxEZnkO2D+7w/TCWhtEOoGfqyE5KmKnVf/HIHBLcn4SiI21oGQPkw32J68M0VKvBKgvulgJdEey
     153        O+sJNhlg9/i6aZalAEpz98xwQADhAaWJ2GOAWr0BCpFBCoCeIjOxgdCIHlYCiI8DGQ1QMjKzKIooVwSk
     154        MuUmYGp+lf5rlcDeArhD6wMzqZOqUEe2UEE0WegNMFgcHYB6Q0SxXEUiXcJbNNsboD+xdwAqfA3p3C8i
     155        n3l4QuneAFqfetDG5X94xFJFBCIZuHzJ/gHqxoVjObwGv/DojvcPUDfO9/4NpyeBm+dofwD5vrvFrtco
     156        3zFd8J/oO/gDpYIVhUFyWDsAAAAASUVORK5CYII=
     157</value>
     158  </data>
    130159  <data name="startButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    131160    <value>
    132161        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    133         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
    134         CwYBZDTpJAAAALZJREFUOE9j/P//PwNFAGQAOi7bn+2GTRybGIZmkKKEGRH/iTUEpwGWZfpEGYLVgKgp
     162        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
     163        CwIBm8luNgAAALZJREFUOE9j/P//PwNFAGQAOi7bn+2GTRybGIZmkKKEGRH/iTUEpwGWZfpEGYLVgKgp
    135164        Qf833Fr8nxhDsBoQPMEbZDtRhmA1wKfLGWwACEctCsDrEqwGODZb/M/YEAvWbNus/1+nWOG/RBo3iFZD
    136165        jwmsBpjX6KFo5k9gwaoZnIawxa1eqTLcZnyacRqgki8FdjYhzTgNkM4QJEozTgNEkjlx+pmoQMQW2rjy
     
    141170    <value>
    142171        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    143         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
    144         CwYBZDTpJAAAAXJJREFUOE+tkj1IQmEYhWsoaIi2xmhpiYSgKFoiCMLJJYSEJiEI0mgIyqjA6vaLUKIU
     172        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
     173        CwIBm8luNgAAAXJJREFUOE+tkj1IQmEYhWsoaIi2xmhpiYSgKFoiCMLJJYSEJiEI0mgIyqjA6vaLUKIU
    145174        iZlJKKUoWEbZDzVYCYlQYVxcNDIoRND8ud7idD83C27g7YNvPM8573nfcgBlgh4BCPmCxIX0Qtx/ATTu
    146175        Lyy78ph3ZKC2pTBlSWB86w2jhleMrD9jWB9N/jQsSkDEj5FPPERZ+J7yOL5j4PYzsPsYGL1piKR7nL64
     
    154183    <value>
    155184        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    156         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
    157         CwYBZDTpJAAAAYNJREFUOE9j/P//PwNFAGQAJZgizWDXI9veu/nvfxhuW/vtf+OKz/9rF7//XzHv1f+S
     185        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
     186        CwIBm8luNgAAAYNJREFUOE9j/P//PwNFAGQAJZgizWDXI9veu/nvfxhuW/vtf+OKz/9rF7//XzHv1f+S
    158187        2c//F0x//L901mOgFoSrUQzo2vDr/6aT3/6vPPTl/4I9n/5ffvDzf+/ad/+bl74BG5I3/cV/3dBVuA0A
    159188        2bri4Jf/83Z9+n/ryS+Qwv8NS978L5378n/O1Of/k3qf/Vf1W4TbAJCT5+z49P/hyx9gzSBQMvvl/6wp
     
    167196    <value>
    168197        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    169         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
    170         CwYBZDTpJAAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
     198        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
     199        CwIBm8luNgAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
    171200        SPPVh3/+64auAqr9z4DOJ2hA29pv/289/f1f1W8R2AB0PkEDGld8/n/54e//cm6zwAag8wkaULv4/f8T
    172201        13//F7ObBDYAnU/QgIp5r/7vvvDzP79ZN9gAdD5BA0pmP/+//uTP/5wGrWAD0PkEDSiY/vj/gj2f/7Pq
     
    177206    <value>
    178207        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    179         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBQAA
    180         CwUByY3ISQAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
     208        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAQAA
     209        CwEBNnBPWwAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
    181210        SPPVh3/+64auAqr9z4DOJ2hA29pv/289/f1f1W8R2AB0PkEDGld8/n/54e//cm6zwAag8wkaULv4/f8T
    182211        13//F7ObBDYAnU/QgIp5r/7vvvDzP79ZN9gAdD5BA0pmP/+//uTP/5wGrWAD0PkEDSiY/vj/gj2f/7Pq
     
    187216    <value>
    188217        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    189         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBAAA
    190         CwQBG8oqrQAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
     218        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAAAA
     219        CwAB5DetvwAAAMZJREFUOE9j/P//PwNFAGQAJZgizWDXU2I7VgN6N//937Xh1/+8qY8+gRSg89EtxHAB
    191220        SPPVh3/+64auAqr9z4DOJ2hA29pv/289/f1f1W8R2AB0PkEDGld8/n/54e//cm6zwAag8wkaULv4/f8T
    192221        13//F7ObBDYAnU/QgIp5r/7vvvDzP79ZN9gAdD5BA0pmP/+//uTP/5wGrWAD0PkEDSiY/vj/gj2f/7Pq
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/JobItemView.Designer.cs

    r4141 r4144  
    3434      this.coresNeededTextBox = new System.Windows.Forms.TextBox();
    3535      this.memoryNeededTextBox = new System.Windows.Forms.TextBox();
    36       this.pluginsNeededTextBox = new System.Windows.Forms.TextBox();
     36      this.exceptionTextBox = new System.Windows.Forms.TextBox();
    3737      this.projectTextBox = new System.Windows.Forms.TextBox();
    3838      this.percentageLabel = new System.Windows.Forms.Label();
     
    4242      this.coresNeededLabel = new System.Windows.Forms.Label();
    4343      this.memoryNeededLabel = new System.Windows.Forms.Label();
    44       this.pluginsNeededLabel = new System.Windows.Forms.Label();
     44      this.exceptionLabel = new System.Windows.Forms.Label();
    4545      this.projectLabel = new System.Windows.Forms.Label();
    4646      this.snapshotGroupBox = new System.Windows.Forms.GroupBox();
     47      this.requestSnapshotButton = new System.Windows.Forms.Button();
    4748      this.openSnapshotButton = new System.Windows.Forms.Button();
    4849      this.snapshotTimeText = new System.Windows.Forms.TextBox();
     
    5657      this.tabControl = new System.Windows.Forms.TabControl();
    5758      this.detailsTabPage = new System.Windows.Forms.TabPage();
     59      this.jobIdLabel = new System.Windows.Forms.Label();
     60      this.jobIdTextBox = new System.Windows.Forms.TextBox();
    5861      this.logTabPage = new System.Windows.Forms.TabPage();
    5962      this.logView = new HeuristicLab.Core.Views.LogView();
    60       this.requestSnapshotButton = new System.Windows.Forms.Button();
    6163      this.snapshotGroupBox.SuspendLayout();
    6264      this.jobStatusGroupBox.SuspendLayout();
     
    7880      //
    7981      this.userIdLabel.AutoSize = true;
    80       this.userIdLabel.Location = new System.Drawing.Point(3, 3);
     82      this.userIdLabel.Location = new System.Drawing.Point(3, 28);
    8183      this.userIdLabel.Name = "userIdLabel";
    8284      this.userIdLabel.Size = new System.Drawing.Size(41, 13);
     
    9799      this.userIdTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    98100                  | System.Windows.Forms.AnchorStyles.Right)));
    99       this.userIdTextBox.Location = new System.Drawing.Point(91, 3);
     101      this.userIdTextBox.Location = new System.Drawing.Point(91, 28);
    100102      this.userIdTextBox.Name = "userIdTextBox";
    101103      this.userIdTextBox.Size = new System.Drawing.Size(448, 20);
     
    131133      this.priorityTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    132134                  | System.Windows.Forms.AnchorStyles.Right)));
    133       this.priorityTextBox.Location = new System.Drawing.Point(91, 25);
     135      this.priorityTextBox.Location = new System.Drawing.Point(91, 50);
    134136      this.priorityTextBox.Name = "priorityTextBox";
    135137      this.priorityTextBox.Size = new System.Drawing.Size(448, 20);
     
    140142      this.coresNeededTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    141143                  | System.Windows.Forms.AnchorStyles.Right)));
    142       this.coresNeededTextBox.Location = new System.Drawing.Point(91, 47);
     144      this.coresNeededTextBox.Location = new System.Drawing.Point(91, 72);
    143145      this.coresNeededTextBox.Name = "coresNeededTextBox";
    144146      this.coresNeededTextBox.Size = new System.Drawing.Size(448, 20);
     
    149151      this.memoryNeededTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    150152                  | System.Windows.Forms.AnchorStyles.Right)));
    151       this.memoryNeededTextBox.Location = new System.Drawing.Point(91, 69);
     153      this.memoryNeededTextBox.Location = new System.Drawing.Point(91, 94);
    152154      this.memoryNeededTextBox.Name = "memoryNeededTextBox";
    153155      this.memoryNeededTextBox.Size = new System.Drawing.Size(448, 20);
    154156      this.memoryNeededTextBox.TabIndex = 9;
    155157      //
    156       // pluginsNeededTextBox
    157       //
    158       this.pluginsNeededTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    159                   | System.Windows.Forms.AnchorStyles.Right)));
    160       this.pluginsNeededTextBox.Location = new System.Drawing.Point(91, 91);
    161       this.pluginsNeededTextBox.Name = "pluginsNeededTextBox";
    162       this.pluginsNeededTextBox.Size = new System.Drawing.Size(448, 20);
    163       this.pluginsNeededTextBox.TabIndex = 10;
     158      // exceptionTextBox
     159      //
     160      this.exceptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     161                  | System.Windows.Forms.AnchorStyles.Right)));
     162      this.exceptionTextBox.Location = new System.Drawing.Point(91, 116);
     163      this.exceptionTextBox.Name = "exceptionTextBox";
     164      this.exceptionTextBox.Size = new System.Drawing.Size(448, 20);
     165      this.exceptionTextBox.TabIndex = 10;
    164166      //
    165167      // projectTextBox
     
    167169      this.projectTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    168170                  | System.Windows.Forms.AnchorStyles.Right)));
    169       this.projectTextBox.Location = new System.Drawing.Point(91, 113);
     171      this.projectTextBox.Location = new System.Drawing.Point(91, 138);
    170172      this.projectTextBox.Name = "projectTextBox";
    171173      this.projectTextBox.Size = new System.Drawing.Size(448, 20);
     
    202204      //
    203205      this.priorityLabel.AutoSize = true;
    204       this.priorityLabel.Location = new System.Drawing.Point(3, 25);
     206      this.priorityLabel.Location = new System.Drawing.Point(3, 50);
    205207      this.priorityLabel.Name = "priorityLabel";
    206208      this.priorityLabel.Size = new System.Drawing.Size(41, 13);
     
    211213      //
    212214      this.coresNeededLabel.AutoSize = true;
    213       this.coresNeededLabel.Location = new System.Drawing.Point(3, 47);
     215      this.coresNeededLabel.Location = new System.Drawing.Point(3, 72);
    214216      this.coresNeededLabel.Name = "coresNeededLabel";
    215217      this.coresNeededLabel.Size = new System.Drawing.Size(75, 13);
     
    220222      //
    221223      this.memoryNeededLabel.AutoSize = true;
    222       this.memoryNeededLabel.Location = new System.Drawing.Point(3, 69);
     224      this.memoryNeededLabel.Location = new System.Drawing.Point(3, 94);
    223225      this.memoryNeededLabel.Name = "memoryNeededLabel";
    224226      this.memoryNeededLabel.Size = new System.Drawing.Size(85, 13);
     
    226228      this.memoryNeededLabel.Text = "MemoryNeeded:";
    227229      //
    228       // pluginsNeededLabel
    229       //
    230       this.pluginsNeededLabel.AutoSize = true;
    231       this.pluginsNeededLabel.Location = new System.Drawing.Point(3, 91);
    232       this.pluginsNeededLabel.Name = "pluginsNeededLabel";
    233       this.pluginsNeededLabel.Size = new System.Drawing.Size(82, 13);
    234       this.pluginsNeededLabel.TabIndex = 19;
    235       this.pluginsNeededLabel.Text = "PluginsNeeded:";
     230      // exceptionLabel
     231      //
     232      this.exceptionLabel.AutoSize = true;
     233      this.exceptionLabel.Location = new System.Drawing.Point(3, 116);
     234      this.exceptionLabel.Name = "exceptionLabel";
     235      this.exceptionLabel.Size = new System.Drawing.Size(57, 13);
     236      this.exceptionLabel.TabIndex = 19;
     237      this.exceptionLabel.Text = "Exception:";
    236238      //
    237239      // projectLabel
    238240      //
    239241      this.projectLabel.AutoSize = true;
    240       this.projectLabel.Location = new System.Drawing.Point(3, 113);
     242      this.projectLabel.Location = new System.Drawing.Point(3, 138);
    241243      this.projectLabel.Name = "projectLabel";
    242244      this.projectLabel.Size = new System.Drawing.Size(43, 13);
     
    254256      this.snapshotGroupBox.Controls.Add(this.snapshotTimeLabel);
    255257      this.snapshotGroupBox.Controls.Add(this.snapshotStatusLabel);
    256       this.snapshotGroupBox.Location = new System.Drawing.Point(6, 279);
     258      this.snapshotGroupBox.Location = new System.Drawing.Point(6, 304);
    257259      this.snapshotGroupBox.Name = "snapshotGroupBox";
    258260      this.snapshotGroupBox.Size = new System.Drawing.Size(533, 100);
     
    260262      this.snapshotGroupBox.TabStop = false;
    261263      this.snapshotGroupBox.Text = "Latest Snapshot";
     264      //
     265      // requestSnapshotButton
     266      //
     267      this.requestSnapshotButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
     268      this.requestSnapshotButton.Location = new System.Drawing.Point(307, 67);
     269      this.requestSnapshotButton.Name = "requestSnapshotButton";
     270      this.requestSnapshotButton.Size = new System.Drawing.Size(107, 26);
     271      this.requestSnapshotButton.TabIndex = 26;
     272      this.requestSnapshotButton.Text = "Request Snapshot";
     273      this.requestSnapshotButton.UseVisualStyleBackColor = true;
     274      this.requestSnapshotButton.Click += new System.EventHandler(this.requestSnapshotButton_Click);
    262275      //
    263276      // openSnapshotButton
     
    341354      this.jobStatusGroupBox.Controls.Add(this.dateCreatedLabel);
    342355      this.jobStatusGroupBox.Controls.Add(this.dateFinishedLabel);
    343       this.jobStatusGroupBox.Location = new System.Drawing.Point(6, 139);
     356      this.jobStatusGroupBox.Location = new System.Drawing.Point(6, 164);
    344357      this.jobStatusGroupBox.Name = "jobStatusGroupBox";
    345358      this.jobStatusGroupBox.Size = new System.Drawing.Size(533, 134);
     
    372385      // detailsTabPage
    373386      //
     387      this.detailsTabPage.Controls.Add(this.jobIdLabel);
     388      this.detailsTabPage.Controls.Add(this.jobIdTextBox);
    374389      this.detailsTabPage.Controls.Add(this.userIdLabel);
    375390      this.detailsTabPage.Controls.Add(this.jobStatusGroupBox);
     
    379394      this.detailsTabPage.Controls.Add(this.projectLabel);
    380395      this.detailsTabPage.Controls.Add(this.coresNeededTextBox);
    381       this.detailsTabPage.Controls.Add(this.pluginsNeededLabel);
     396      this.detailsTabPage.Controls.Add(this.exceptionLabel);
    382397      this.detailsTabPage.Controls.Add(this.memoryNeededTextBox);
    383398      this.detailsTabPage.Controls.Add(this.memoryNeededLabel);
    384       this.detailsTabPage.Controls.Add(this.pluginsNeededTextBox);
     399      this.detailsTabPage.Controls.Add(this.exceptionTextBox);
    385400      this.detailsTabPage.Controls.Add(this.coresNeededLabel);
    386401      this.detailsTabPage.Controls.Add(this.projectTextBox);
     
    394409      this.detailsTabPage.UseVisualStyleBackColor = true;
    395410      //
     411      // jobIdLabel
     412      //
     413      this.jobIdLabel.AutoSize = true;
     414      this.jobIdLabel.Location = new System.Drawing.Point(3, 6);
     415      this.jobIdLabel.Name = "jobIdLabel";
     416      this.jobIdLabel.Size = new System.Drawing.Size(36, 13);
     417      this.jobIdLabel.TabIndex = 25;
     418      this.jobIdLabel.Text = "JobId:";
     419      //
     420      // jobIdTextBox
     421      //
     422      this.jobIdTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     423                  | System.Windows.Forms.AnchorStyles.Right)));
     424      this.jobIdTextBox.Location = new System.Drawing.Point(91, 6);
     425      this.jobIdTextBox.Name = "jobIdTextBox";
     426      this.jobIdTextBox.Size = new System.Drawing.Size(448, 20);
     427      this.jobIdTextBox.TabIndex = 26;
     428      //
    396429      // logTabPage
    397430      //
     
    417450      this.logView.Size = new System.Drawing.Size(536, 447);
    418451      this.logView.TabIndex = 0;
    419       //
    420       // requestSnapshotButton
    421       //
    422       this.requestSnapshotButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    423       this.requestSnapshotButton.Location = new System.Drawing.Point(307, 67);
    424       this.requestSnapshotButton.Name = "requestSnapshotButton";
    425       this.requestSnapshotButton.Size = new System.Drawing.Size(107, 26);
    426       this.requestSnapshotButton.TabIndex = 26;
    427       this.requestSnapshotButton.Text = "Request Snapshot";
    428       this.requestSnapshotButton.UseVisualStyleBackColor = true;
    429       this.requestSnapshotButton.Click += new System.EventHandler(this.requestSnapshotButton_Click);
    430452      //
    431453      // JobItemView
     
    460482    private System.Windows.Forms.TextBox coresNeededTextBox;
    461483    private System.Windows.Forms.TextBox memoryNeededTextBox;
    462     private System.Windows.Forms.TextBox pluginsNeededTextBox;
     484    private System.Windows.Forms.TextBox exceptionTextBox;
    463485    private System.Windows.Forms.TextBox projectTextBox;
    464486    private System.Windows.Forms.Label percentageLabel;
     
    468490    private System.Windows.Forms.Label coresNeededLabel;
    469491    private System.Windows.Forms.Label memoryNeededLabel;
    470     private System.Windows.Forms.Label pluginsNeededLabel;
     492    private System.Windows.Forms.Label exceptionLabel;
    471493    private System.Windows.Forms.Label projectLabel;
    472494    private System.Windows.Forms.GroupBox snapshotGroupBox;
     
    485507    private Core.Views.LogView logView;
    486508    private System.Windows.Forms.Button requestSnapshotButton;
     509    private System.Windows.Forms.Label jobIdLabel;
     510    private System.Windows.Forms.TextBox jobIdTextBox;
    487511  }
    488512}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/JobItemView.cs

    r4141 r4144  
    5959        Invoke(new EventHandler(Content_JobDtoChanged), sender, e);
    6060      } else {
     61        this.jobIdTextBox.Text = Content.JobDto.Id.ToString();
    6162        this.stateTextBox.Text = Content.JobDto.State.ToString();
    6263        this.userIdTextBox.Text = Content.JobDto.UserId.ToString();
     
    6970        this.coresNeededTextBox.Text = Content.JobDto.CoresNeeded.ToString();
    7071        this.memoryNeededTextBox.Text = Content.JobDto.MemoryNeeded.ToString();
    71         this.pluginsNeededTextBox.Text = string.Join(", ", Content.JobDto.PluginsNeeded.Select(x => x.Name + "-" + x.Version).ToArray());
     72        this.exceptionTextBox.Text = Content.JobDto.Exception;
    7273        this.projectTextBox.Text = Content.JobDto.Project != null ? Content.JobDto.Project.Name : "-";
    7374      }
     
    9293      base.SetEnabledStateOfControls();
    9394      openSnapshotButton.Enabled = Content != null && Content.LatestSnapshot != null;
     95      this.jobIdTextBox.ReadOnly = this.ReadOnly;
    9496      this.stateTextBox.ReadOnly = this.ReadOnly;
    9597      this.userIdTextBox.ReadOnly = this.ReadOnly;
     
    101103      this.coresNeededTextBox.ReadOnly = this.ReadOnly;
    102104      this.memoryNeededTextBox.ReadOnly = this.ReadOnly;
    103       this.pluginsNeededTextBox.ReadOnly = this.ReadOnly;
     105      this.exceptionTextBox.ReadOnly = this.ReadOnly;
    104106      this.projectTextBox.ReadOnly = this.ReadOnly;
    105107      this.snapshotStatusText.ReadOnly = this.ReadOnly;
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment/3.3/HiveExperiment.cs

    r4141 r4144  
    280280              StatusMessage = "Initial Snapshot",
    281281              Success = true
    282             }
     282            },
     283            Optimizer = optimizer
    283284          };
    284285          jobItems.Add(jobItem);
     
    348349        return optimizers;
    349350      } else {
    350         return FlatOptimizerTree(null, experiment);
     351        return FlatOptimizerTree(null, experiment, "");
    351352      }
    352353    }
     
    361362    /// </summary>
    362363    /// <returns>a dictionary mapping from the parent optimizer to the child optimizer</returns>
    363     private IDictionary<IOptimizer, IOptimizer> FlatOptimizerTree(IOptimizer parent, IOptimizer optimizer) {
     364    private IDictionary<IOptimizer, IOptimizer> FlatOptimizerTree(IOptimizer parent, IOptimizer optimizer, string prepend) {
    364365      IDictionary<IOptimizer, IOptimizer> optimizers = new Dictionary<IOptimizer, IOptimizer>();
    365366      if (optimizer is HeuristicLab.Optimization.Experiment) {
    366367        HeuristicLab.Optimization.Experiment experiment = optimizer as HeuristicLab.Optimization.Experiment;
     368        if (this.experiment != experiment) {
     369          prepend += "Experiment/"; // don't prepend for top-level optimizers
     370        }
    367371        foreach (IOptimizer opt in experiment.Optimizers) {
    368           AddRange(optimizers, FlatOptimizerTree(experiment, opt));
     372          AddRange(optimizers, FlatOptimizerTree(experiment, opt, prepend));
    369373        }
    370374      } else if (optimizer is BatchRun) {
    371375        BatchRun batchRun = optimizer as BatchRun;
     376        prepend += "BatchRun/";
    372377        for (int i = 0; i < batchRun.Repetitions; i++) {
    373378          IOptimizer opt = (IOptimizer)batchRun.Algorithm.Clone();
    374           AddRange(optimizers, FlatOptimizerTree(batchRun, opt));
     379          opt.Name += " [" + i + "]";
     380          IDictionary<IOptimizer, IOptimizer> batchOptimizers = FlatOptimizerTree(batchRun, opt, prepend);
     381          AddRange(optimizers, batchOptimizers);
    375382        }
    376383      } else if (optimizer is EngineAlgorithm) {
     384        optimizer.Name = prepend + optimizer.Name;
    377385        optimizers.Add(optimizer, parent);
    378386      } else {
    379387        Logger.Warn("Optimizer of type " + optimizers.GetType().ToString() + " unknown");
     388        optimizer.Name = prepend + optimizer.Name;
    380389        optimizers.Add(optimizer, parent);
    381390      }
     
    398407          BatchRun batchRun = (BatchRun)parentOptimizer;
    399408          if (newOptimizer is IAlgorithm) {
    400             batchRun.Runs.Add(new Run((IAlgorithm)newOptimizer));
     409            batchRun.Runs.Add(new Run(newOptimizer.Name, (IAlgorithm)newOptimizer) );
    401410          } else {
    402411            throw new NotSupportedException("Only IAlgorithm types supported");
     
    461470          IExecutionEngineFacade executionEngineFacade = GetExecutionEngineFacade();
    462471          IJob restoredObject = null;
     472          IOptimizer originalOptimizer = pendingOptimizersByJobId[job.Id];
    463473
    464474          do {
    465             if (stopPending || !this.IsPollingResults) {
    466               return;
    467             }
    468 
    469             ResponseObject<JobDto> response = executionEngineFacade.GetJobById(job.Id);
    470             LogMessage("Response: " + response.StatusMessage + " (jobId: " + job.Id + ")");
    471             GetJobItemById(job.Id).LogMessage("Response: " + response.StatusMessage);
    472 
    473             UpdateJobItem(response.Obj);
    474 
    475             if (response.Obj.State == State.Abort) {
    476               // job is aborted, don't poll for results anymore
    477               GetJobItemById(job.Id).LogMessage("Job successfully aborted");
    478               return;
    479             }
    480 
    481475            // loop while
    482476            // 1. the user doesn't request an abort
     
    484478            // 3. no result for the job is available yet (response.Obj==null)
    485479            // 4. the result that we get from the server is a snapshot and not the final result
     480
     481            if (stopPending || !this.IsPollingResults) {
     482              return;
     483            }
     484
     485            ResponseObject<JobDto> response = executionEngineFacade.GetJobById(job.Id);
     486            LogMessage("Response: " + response.StatusMessage + " (jobId: " + job.Id + ")");
     487            GetJobItemById(job.Id).LogMessage("Response: " + response.StatusMessage);
     488
     489            UpdateJobItem(response.Obj);
     490
     491            if (response.Obj.State == State.Abort) {
     492              pendingOptimizersByJobId.Remove(job.Id);
     493              parentOptimizersByPendingOptimizer.Remove(originalOptimizer);
     494              GetJobItemById(job.Id).LogMessage("Job successfully aborted");
     495              return;
     496            }
     497
     498            if (response.Obj.State == State.Failed) {
     499              pendingOptimizersByJobId.Remove(job.Id);
     500              parentOptimizersByPendingOptimizer.Remove(originalOptimizer);
     501              GetJobItemById(job.Id).LogMessage("Job failed with exception: " + response.Obj.Exception);
     502              return;
     503            }
     504
    486505            if (response.Success && response.Obj != null && response.Obj.State == State.Finished) {
    487506              ResponseObject<SerializedJob> jobResponse = executionEngineFacade.GetLastSerializedResult(job.Id, false, false);
    488507              restoredObject = XmlParser.Deserialize<IJob>(new MemoryStream(jobResponse.Obj.SerializedJobData));
    489508              UpdateSnapshot(jobResponse);
     509            } else {
     510              Thread.Sleep(resultPollingIntervalMs);
    490511            }
    491 
    492             Thread.Sleep(resultPollingIntervalMs);
    493512          } while (restoredObject == null || restoredObject.ExecutionState != Core.ExecutionState.Stopped);
    494513
     
    496515          GetJobItemById(job.Id).LogMessage("Job finished");
    497516          // job retrieved... replace the existing optimizers with the finished one
    498           IOptimizer originalOptimizer = pendingOptimizersByJobId[job.Id];
     517         
    499518          IOptimizer restoredOptimizer = ((OptimizerJob)restoredObject).Optimizer;
    500519         
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment/3.3/JobItem.cs

    r4135 r4144  
    1010using HeuristicLab.Common;
    1111using System.Diagnostics;
     12using HeuristicLab.Optimization;
    1213
    1314namespace HeuristicLab.Hive.Experiment {
     
    1920      get {
    2021        if (jobDto.State == State.Offline) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutablePrepared;
    21         else if (jobDto.State == State.Idle) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutableStopped;
     22        else if (jobDto.State == State.Idle) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutablePrepared;
    2223        else if (jobDto.State == State.Calculating) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutableStarted;
    23         else if (jobDto.State == State.Offline) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutableStopped;
    2424        else if (jobDto.State == State.Abort) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutableStopped;
     25        else if (jobDto.State == State.Failed) return HeuristicLab.Common.Resources.VS2008ImageLibrary.Error;
     26        else if (jobDto.State == State.Finished) return HeuristicLab.Common.Resources.VS2008ImageLibrary.ExecutableStopped;
    2527        else return HeuristicLab.Common.Resources.VS2008ImageLibrary.Event;
    2628      }
     
    6567      get { return log; }
    6668    }
     69
     70    [Storable]
     71    private IOptimizer optimizer;
     72    public IOptimizer Optimizer {
     73      get { return optimizer; }
     74      set { this.optimizer = value; }
     75    }
    6776   
    6877    public JobItem() {
     
    7281    public override string ToString() {
    7382      if (jobDto != null) {
    74         return base.ToString() + " - " + jobDto.Id.ToString();
     83        return optimizer.Name;
    7584      } else {
    7685        return base.ToString();
     
    105114      clone.latestSnapshot = (ResponseObject<SerializedJob>)cloner.Clone(this.latestSnapshot);
    106115      clone.log = (ILog)cloner.Clone(this.log);
     116      clone.optimizer = (IOptimizer)cloner.Clone(this.optimizer);
    107117      return clone;
    108118    }
Note: See TracChangeset for help on using the changeset viewer.