Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/01/10 14:38:53 (14 years ago)
Author:
epitzer
Message:

Finished initial port of ProgrammableOperator to HL 3.3 (#842)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperatorView.cs

    r2799 r2897  
    3434using HeuristicLab.CodeEditor;
    3535using HeuristicLab.Core.Views;
     36using HeuristicLab.Operators.Views;
     37using HeuristicLab.MainForm;
    3638
    3739namespace HeuristicLab.Operators.Programmable {
    3840
     41  [Content(typeof(ProgrammableOperator), true)]
    3942  public partial class ProgrammableOperatorView : NamedItemView {
    4043
    4144    public ProgrammableOperator ProgrammableOperator {
    4245      get { return (ProgrammableOperator)base.Content; }
    43       set { base.Content = (NamedItem)value; }
     46      set { base.Content = (ProgrammableOperator)value; }
    4447    }
    4548
     
    5356    }
    5457
    55     protected override void DeregisterContentEvents() {     
    56       //operatorBaseVariableInfosView.Operator = null;
    57       //operatorBaseVariablesView.Operator = null;
    58       //constrainedItemBaseView.ConstrainedItem = null;
    59       ProgrammableOperator.CodeChanged -= new EventHandler(ProgrammableOperator_CodeChanged);
    60       ProgrammableOperator.DescriptionChanged -= new EventHandler(ProgrammableOperator_DescriptionChanged);
    61       base.DeregisterContentEvents();           
    62     }
    63 
    64 
    6558    protected override void RegisterContentEvents() {
    6659      base.RegisterContentEvents();
    67       //operatorBaseVariableInfosView.Operator = ProgrammableOperator;
    68       //operatorBaseVariablesView.Operator = ProgrammableOperator;
    69       //constrainedItemBaseView.ConstrainedItem = ProgrammableOperator;
    70       ProgrammableOperator.CodeChanged += new EventHandler(ProgrammableOperator_CodeChanged);
    71       ProgrammableOperator.DescriptionChanged += new EventHandler(ProgrammableOperator_DescriptionChanged);
    72     }
    73 
     60      ProgrammableOperator.CodeChanged += ProgrammableOperator_CodeChanged;
     61      ProgrammableOperator.DescriptionChanged += ProgrammableOperator_DescriptionChanged;
     62      ProgrammableOperator.SignatureChanged += ProgrammableOperator_SignatureChanged;
     63    }
     64
     65    protected override void DeregisterContentEvents() {
     66      ProgrammableOperator.CodeChanged -= ProgrammableOperator_CodeChanged;
     67      ProgrammableOperator.DescriptionChanged -= ProgrammableOperator_DescriptionChanged;
     68      ProgrammableOperator.SignatureChanged -= ProgrammableOperator_SignatureChanged;
     69      base.DeregisterContentEvents();
     70    }
    7471
    7572    protected override void OnContentChanged() {
    76       base.OnContentChanged();   
     73      base.OnContentChanged();
    7774      if (ProgrammableOperator == null) {
    7875        codeEditor.Text = "";
    7976        codeEditor.Enabled = false;
    80         addVariableInfoButton.Enabled = false;
    81         removeVariableInfoButton.Enabled = false;
    8277        descriptionTextBox.Text = "";
    8378        descriptionTextBox.Enabled = false;
    84         codeEditor.Prefix = @"using System
    85 
    86 public class Operator {
    87   public static IOperation Execute(IOperator op, IScope scope, parameters ...) {
    88 ";
    89         codeEditor.Suffix = @"
    90     return null;
    91   }
    92 }";
    9379        assembliesTreeView.Nodes.Clear();
    9480      } else {
    9581        codeEditor.Enabled = true;
    96         addVariableInfoButton.Enabled = true;
    97         //removeVariableInfoButton.Enabled = operatorBaseVariableInfosView.SelectedVariableInfos.Count > 0;
    9882        descriptionTextBox.Text = ProgrammableOperator.Description;
    9983        descriptionTextBox.Enabled = true;
     
    11296        }
    11397        codeEditor.ScrollAfterPrefix();
     98        codeEditor.ShowCompileErrors(ProgrammableOperator.CompileErrors, "ProgrammableOperator");
    11499      }
    115100    }
     
    130115      ProgrammableOperator.Code = codeEditor.UserCode;
    131116    }
    132    
    133     /*
    134     private void operatorBaseVariableInfosView_SelectedVariableInfosChanged(object sender, EventArgs e) {
    135       removeVariableInfoButton.Enabled = operatorBaseVariableInfosView.SelectedVariableInfos.Count > 0;
    136     }
    137    
    138     private void descriptionTextBox_Validated(object sender, EventArgs e) {
    139       ProgrammableOperator.SetDescription(descriptionTextBox.Text);
    140     }
    141 
    142     private void addVariableInfoButton_Click(object sender, EventArgs e) {
    143       AddVariableInfoDialog dialog = new AddVariableInfoDialog();
    144       if (dialog.ShowDialog(this) == DialogResult.OK) {
    145         if (ProgrammableOperator.GetVariableInfo(dialog.VariableInfo.FormalName) != null) {
    146           Auxiliary.ShowErrorMessageBox("A variable info with the same formal name already exists.");
    147         } else {
    148           ProgrammableOperator.AddVariableInfo(dialog.VariableInfo);
    149           Recompile();
    150         }
    151       }
    152       dialog.Dispose();
    153     }
    154 
    155     private void removeVariableInfoButton_Click(object sender, EventArgs e) {
    156       IVariableInfo[] selected = new IVariableInfo[operatorBaseVariableInfosView.SelectedVariableInfos.Count];
    157       operatorBaseVariableInfosView.SelectedVariableInfos.CopyTo(selected, 0);
    158       for (int i = 0; i < selected.Length; i++)
    159         ProgrammableOperator.RemoveVariableInfo(selected[i].FormalName);
    160       Recompile();
    161     } */
    162117
    163118    private void Recompile() {
     
    170125      }
    171126      OnContentChanged();
    172       codeEditor.ShowCompileErrors(ProgrammableOperator.CompileErrors, "ProgrammableOperator");
    173127      this.Enabled = true;
    174128    }
     
    184138    private void ProgrammableOperator_DescriptionChanged(object sender, EventArgs e) {
    185139      descriptionTextBox.Text = ProgrammableOperator.Description;
     140    }
     141    private void ProgrammableOperator_SignatureChanged(object sender, EventArgs args) {
     142      codeEditor.Prefix = GetGeneratedPrefix();
    186143    }
    187144    #endregion
     
    317274    }
    318275
     276    private void descriptionTextBox_TextChanged(object sender, EventArgs e) {
     277      ProgrammableOperator.SetDescription(descriptionTextBox.Text);
     278    }
     279
    319280
    320281  }
Note: See TracChangeset for help on using the changeset viewer.