Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/19/11 18:58:53 (13 years ago)
Author:
cneumuel
Message:

#1233

  • created baseclass for jobs (ItemJob) which derives OperatorJobs and EngineJobs
  • created special view for OptimizerJobs which derives from a more general view
  • removed logic from domain class HiveExperiment and moved it into RefreshableHiveExperiment
  • improved ItemTreeView
  • corrected plugin dependencies
  • fixed bug in database trigger when deleting HiveExperiments
  • added delete cascade for Plugin and PluginData
  • lots of fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Jobs/OptimizerJob.cs

    r5958 r6033  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.Drawing;
    2524using HeuristicLab.Common;
    2625using HeuristicLab.Core;
     
    3231  [Item("Optimizer Job", "Represents Job which executes a IOptimizer object.")]
    3332  [StorableClass]
    34   public class OptimizerJob : AbstractJob {
     33  public class OptimizerJob : ItemJob {
    3534    public override bool IsParallelizable {
    36       get { return this.Optimizer is Optimization.Experiment || this.Optimizer is BatchRun; }
     35      get { return this.Item is Experiment || this.Item is BatchRun; }
    3736    }
    3837
    39     [Storable]
    40     protected IOptimizer optimizer;
    41     public IOptimizer Optimizer {
    42       get { return optimizer; }
    43       set {
    44         if (value != optimizer) {
    45           if (optimizer != null) DeregisterOptimizerEvents();
    46           optimizer = value;
    47           if (optimizer != null) RegisterOptimizerEvents();
    48           OnOptimizerChanged();
    49         }
    50       }
     38    public new IOptimizer Item {
     39      get { return (IOptimizer)base.Item; }
     40      set { base.Item = value; }
    5141    }
    5242
     
    5848    }
    5949
    60     public OptimizerJob() : base() {
    61      
    62     }
     50    public OptimizerJob() : base() { }
    6351    public OptimizerJob(IOptimizer optimizer)
    6452      : this() {
    65       this.Optimizer = optimizer;
     53        this.Item = optimizer;
    6654
    67       if (optimizer is Optimization.Experiment) {
     55      if (optimizer is Experiment) {
    6856        this.ComputeInParallel = true;
    69       } else if (optimizer is Optimization.BatchRun) {
     57      } else if (optimizer is BatchRun) {
    7058        this.ComputeInParallel = false;
    7159      } else {
     
    7765    protected OptimizerJob(OptimizerJob original, Cloner cloner)
    7866      : base(original, cloner) {
    79       this.Optimizer = cloner.Clone(original.Optimizer);
    8067      this.IndexInParentOptimizerList = original.IndexInParentOptimizerList;
    8168      this.CollectChildJobs = original.CollectChildJobs;
    82       this.RegisterOptimizerEvents();
    8369    }
    8470    public override IDeepCloneable Clone(Cloner cloner) {
     
    8672    }
    8773
    88     [StorableHook(HookType.AfterDeserialization)]
    89     protected virtual void AfterDeserialization() {
    90       RegisterOptimizerEvents();
    91     }
    92 
    9374    /// <summary>
    9475    /// Casts the Optimizer to an Experiment. Returns null if cast was not successfull.
    9576    /// </summary>
    96     public Optimization.Experiment OptimizerAsExperiment {
    97       get { return Optimizer as Optimization.Experiment; }
     77    public Experiment OptimizerAsExperiment {
     78      get { return Item as Experiment; }
    9879    }
    9980
     
    10182    /// Casts the Optimizer to an BatchRun. Returns null if cast was not successfull.
    10283    /// </summary>
    103     public Optimization.BatchRun OptimizerAsBatchRun {
    104       get { return Optimizer as Optimization.BatchRun; }
     84    public BatchRun OptimizerAsBatchRun {
     85      get { return Item as BatchRun; }
    10586    }
    10687
     
    10889
    10990    public override ExecutionState ExecutionState {
    110       get { return optimizer.ExecutionState; }
     91      get { return Item.ExecutionState; }
    11192    }
    11293
    11394    public override TimeSpan ExecutionTime {
    114       get { return optimizer.ExecutionTime; }
     95      get { return Item.ExecutionTime; }
    11596    }
    11697
    11798    public override void Prepare() {
    118       optimizer.Prepare();
     99      Item.Prepare();
    119100    }
    120101
    121102    public override void Start() {
    122       if ((optimizer is Optimization.Experiment && OptimizerAsExperiment.Optimizers.Count == 0) || // experiment would not fire OnStopped if it has 0 optimizers
    123           (optimizer is Optimization.BatchRun && OptimizerAsBatchRun.Optimizer == null)) { // batchrun would not fire OnStopped if algorithm == null
     103      if ((Item is Experiment && OptimizerAsExperiment.Optimizers.Count == 0) || // experiment would not fire OnStopped if it has 0 optimizers
     104          (Item is BatchRun && OptimizerAsBatchRun.Optimizer == null)) { // batchrun would not fire OnStopped if algorithm == null
    124105        OnJobStopped();
    125106      } else {
    126         optimizer.Start();
     107        Item.Start();
    127108      }
    128109    }
    129110
    130111    public override void Pause() {
    131       optimizer.Pause();
     112      Item.Pause();
    132113    }
    133114
    134115    public override void Stop() {
    135       optimizer.Stop();
     116      Item.Stop();
    136117    }
    137118
     
    142123
    143124    #region Optimizer Events
    144     protected virtual void RegisterOptimizerEvents() {
    145       optimizer.Stopped += new EventHandler(optimizer_Stopped);
    146       optimizer.Paused += new EventHandler(optimizer_Paused);
    147       optimizer.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred);
    148       optimizer.DescriptionChanged += new EventHandler(optimizer_DescriptionChanged);
    149       optimizer.ItemImageChanged += new EventHandler(optimizer_ItemImageChanged);
    150       optimizer.NameChanged += new EventHandler(optimizer_NameChanged);
    151       optimizer.NameChanging += new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging);
    152       optimizer.ToStringChanged += new EventHandler(optimizer_ToStringChanged);
     125    protected override void RegisterItemEvents() {
     126      base.RegisterItemEvents();
     127      Item.Stopped += new EventHandler(optimizer_Stopped);
     128      Item.Paused += new EventHandler(optimizer_Paused);
     129      Item.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred);
     130      Item.DescriptionChanged += new EventHandler(optimizer_DescriptionChanged);
     131      Item.NameChanged += new EventHandler(optimizer_NameChanged);
     132      Item.NameChanging += new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging);
    153133    }
    154134
    155135    protected virtual void DeregisterOptimizerEvents() {
    156       optimizer.Stopped -= new EventHandler(optimizer_Stopped);
    157       optimizer.Paused -= new EventHandler(optimizer_Paused);
    158       optimizer.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred);
    159       optimizer.DescriptionChanged -= new EventHandler(optimizer_DescriptionChanged);
    160       optimizer.ItemImageChanged -= new EventHandler(optimizer_ItemImageChanged);
    161       optimizer.NameChanged -= new EventHandler(optimizer_NameChanged);
    162       optimizer.NameChanging -= new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging);
    163       optimizer.ToStringChanged -= new EventHandler(optimizer_ToStringChanged);
    164     }
    165 
    166     protected void optimizer_ToStringChanged(object sender, EventArgs e) {
    167       this.OnToStringChanged();
     136      Item.Stopped -= new EventHandler(optimizer_Stopped);
     137      Item.Paused -= new EventHandler(optimizer_Paused);
     138      Item.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred);
     139      Item.DescriptionChanged -= new EventHandler(optimizer_DescriptionChanged);
     140      Item.NameChanged -= new EventHandler(optimizer_NameChanged);
     141      Item.NameChanging -= new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging);
     142      base.DeregisterItemEvents();
    168143    }
    169144
     
    174149    protected void optimizer_NameChanged(object sender, EventArgs e) {
    175150      this.OnNameChanged();
    176     }
    177 
    178     protected void optimizer_ItemImageChanged(object sender, EventArgs e) {
    179       this.OnItemImageChanged();
    180151    }
    181152
     
    198169
    199170    #region INamedItem Members
    200 
    201171    public override bool CanChangeDescription {
    202       get { return optimizer.CanChangeDescription; }
     172      get { return Item.CanChangeDescription; }
    203173    }
    204174
    205175    public override bool CanChangeName {
    206       get { return optimizer.CanChangeName; }
     176      get { return Item.CanChangeName; }
    207177    }
    208178
    209179    public override string Description {
    210       get { return optimizer.Description; }
    211       set { optimizer.Description = value; }
     180      get { return Item.Description; }
     181      set { Item.Description = value; }
    212182    }
    213183
    214184    public override string Name {
    215       get { return optimizer.Name; }
    216       set { optimizer.Name = value; }
    217     }
    218     #endregion
    219    
    220     #region IItem Members
    221 
    222     public override string ItemDescription {
    223       get { return optimizer.ItemDescription; }
    224     }
    225 
    226     public override Image ItemImage {
    227       get { return optimizer.ItemImage; }
    228     }
    229 
    230     public override string ItemName {
    231       get { return optimizer.ItemName; }
    232     }
    233 
    234     public override Version ItemVersion {
    235       get { return optimizer.ItemVersion; }
     185      get { return Item.Name; }
     186      set { Item.Name = value; }
    236187    }
    237188    #endregion
Note: See TracChangeset for help on using the changeset viewer.