Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/12/14 01:43:03 (10 years ago)
Author:
swagner
Message:

#2205: Implemented review comments:

  • added IConnectablePort
  • replaced MessagePort.Messages by MessagePort.LastMessage
  • removed Path and PathChanged in NetworkItem

Additional changes:

  • refactored CanConnectToPort
  • refactored cloning of port parameters in MessagePortView
Location:
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/Core.Networks.Views
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/Core.Networks.Views/MessagePortView.Designer.cs

    r11530 r11538  
    3838      this.clearConnectedPortButton = new System.Windows.Forms.Button();
    3939      this.connectedPortView = new HeuristicLab.Core.Networks.Views.PortView();
    40       this.cloneConnectedPortParametersButton = new System.Windows.Forms.Button();
     40      this.cloneParametersFromPortButton = new System.Windows.Forms.Button();
    4141      this.sendMessageButton = new System.Windows.Forms.Button();
    4242      this.splitContainer = new System.Windows.Forms.SplitContainer();
    4343      this.portParameterCollectionView = new HeuristicLab.Core.Networks.Views.PortParameterCollectionView();
    44       this.messageCollectionView = new HeuristicLab.Core.Networks.Views.MessageCollectionView();
    45       this.logMessagesCheckBox = new System.Windows.Forms.CheckBox();
     44      this.lastMessageGroupBox = new System.Windows.Forms.GroupBox();
     45      this.lastMessageView = new HeuristicLab.Core.Networks.Views.MessageView();
    4646      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    4747      this.connectedPortGroupBox.SuspendLayout();
     
    5050      this.splitContainer.Panel2.SuspendLayout();
    5151      this.splitContainer.SuspendLayout();
     52      this.lastMessageGroupBox.SuspendLayout();
    5253      this.SuspendLayout();
    5354      //
     
    112113      this.connectedPortView.DragOver += new System.Windows.Forms.DragEventHandler(this.connectedPortView_DragEnterOver);
    113114      //
    114       // cloneConnectedPortParametersButton
    115       //
    116       this.cloneConnectedPortParametersButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Clone;
    117       this.cloneConnectedPortParametersButton.Location = new System.Drawing.Point(156, 101);
    118       this.cloneConnectedPortParametersButton.Name = "cloneConnectedPortParametersButton";
    119       this.cloneConnectedPortParametersButton.Size = new System.Drawing.Size(24, 24);
    120       this.cloneConnectedPortParametersButton.TabIndex = 5;
    121       this.toolTip.SetToolTip(this.cloneConnectedPortParametersButton, "Clone Parameters from Connected Port");
    122       this.cloneConnectedPortParametersButton.UseVisualStyleBackColor = true;
    123       this.cloneConnectedPortParametersButton.Click += new System.EventHandler(this.cloneConnectedPortParametersButton_Click);
     115      // cloneParametersFromPortButton
     116      //
     117      this.cloneParametersFromPortButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Clone;
     118      this.cloneParametersFromPortButton.Location = new System.Drawing.Point(156, 101);
     119      this.cloneParametersFromPortButton.Name = "cloneParametersFromPortButton";
     120      this.cloneParametersFromPortButton.Size = new System.Drawing.Size(24, 24);
     121      this.cloneParametersFromPortButton.TabIndex = 5;
     122      this.toolTip.SetToolTip(this.cloneParametersFromPortButton, "Clone parameters from another port");
     123      this.cloneParametersFromPortButton.UseVisualStyleBackColor = true;
     124      this.cloneParametersFromPortButton.Click += new System.EventHandler(this.cloneParametersFromPortButton_Click);
    124125      //
    125126      // sendMessageButton
     
    149150      // splitContainer.Panel2
    150151      //
    151       this.splitContainer.Panel2.Controls.Add(this.logMessagesCheckBox);
    152       this.splitContainer.Panel2.Controls.Add(this.messageCollectionView);
     152      this.splitContainer.Panel2.Controls.Add(this.lastMessageGroupBox);
    153153      this.splitContainer.Size = new System.Drawing.Size(645, 435);
    154154      this.splitContainer.SplitterDistance = 218;
     
    167167      this.portParameterCollectionView.TabIndex = 0;
    168168      //
    169       // messageCollectionView
    170       //
    171       this.messageCollectionView.Caption = "MessageCollection View";
    172       this.messageCollectionView.Content = null;
    173       this.messageCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
    174       this.messageCollectionView.Location = new System.Drawing.Point(0, 0);
    175       this.messageCollectionView.Name = "messageCollectionView";
    176       this.messageCollectionView.ReadOnly = false;
    177       this.messageCollectionView.ShowDetails = true;
    178       this.messageCollectionView.Size = new System.Drawing.Size(645, 213);
    179       this.messageCollectionView.TabIndex = 0;
    180       //
    181       // logMessagesCheckBox
    182       //
    183       this.logMessagesCheckBox.AutoSize = true;
    184       this.logMessagesCheckBox.Location = new System.Drawing.Point(156, 24);
    185       this.logMessagesCheckBox.Name = "logMessagesCheckBox";
    186       this.logMessagesCheckBox.Size = new System.Drawing.Size(95, 17);
    187       this.logMessagesCheckBox.TabIndex = 1;
    188       this.logMessagesCheckBox.Text = "&Log Messages";
    189       this.logMessagesCheckBox.UseVisualStyleBackColor = true;
    190       this.logMessagesCheckBox.CheckedChanged += new System.EventHandler(this.logMessagesCheckBox_CheckedChanged);
     169      // lastMessageGroupBox
     170      //
     171      this.lastMessageGroupBox.Controls.Add(this.lastMessageView);
     172      this.lastMessageGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
     173      this.lastMessageGroupBox.Location = new System.Drawing.Point(0, 0);
     174      this.lastMessageGroupBox.Name = "lastMessageGroupBox";
     175      this.lastMessageGroupBox.Size = new System.Drawing.Size(645, 213);
     176      this.lastMessageGroupBox.TabIndex = 0;
     177      this.lastMessageGroupBox.TabStop = false;
     178      this.lastMessageGroupBox.Text = "Last Message";
     179      //
     180      // lastMessageView
     181      //
     182      this.lastMessageView.Caption = "Message View";
     183      this.lastMessageView.Content = null;
     184      this.lastMessageView.Dock = System.Windows.Forms.DockStyle.Fill;
     185      this.lastMessageView.Location = new System.Drawing.Point(3, 16);
     186      this.lastMessageView.Name = "lastMessageView";
     187      this.lastMessageView.ReadOnly = true;
     188      this.lastMessageView.Size = new System.Drawing.Size(639, 194);
     189      this.lastMessageView.TabIndex = 0;
    191190      //
    192191      // MessagePortView
     
    194193      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    195194      this.Controls.Add(this.sendMessageButton);
    196       this.Controls.Add(this.cloneConnectedPortParametersButton);
     195      this.Controls.Add(this.cloneParametersFromPortButton);
    197196      this.Controls.Add(this.connectedPortGroupBox);
    198197      this.Controls.Add(this.splitContainer);
     
    203202      this.Controls.SetChildIndex(this.infoLabel, 0);
    204203      this.Controls.SetChildIndex(this.connectedPortGroupBox, 0);
    205       this.Controls.SetChildIndex(this.cloneConnectedPortParametersButton, 0);
     204      this.Controls.SetChildIndex(this.cloneParametersFromPortButton, 0);
    206205      this.Controls.SetChildIndex(this.sendMessageButton, 0);
    207206      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
     
    209208      this.splitContainer.Panel1.ResumeLayout(false);
    210209      this.splitContainer.Panel2.ResumeLayout(false);
    211       this.splitContainer.Panel2.PerformLayout();
    212210      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
    213211      this.splitContainer.ResumeLayout(false);
     212      this.lastMessageGroupBox.ResumeLayout(false);
    214213      this.ResumeLayout(false);
    215214      this.PerformLayout();
     
    223222    protected System.Windows.Forms.Button clearConnectedPortButton;
    224223    protected System.Windows.Forms.Button setConnectedPortButton;
    225     protected System.Windows.Forms.Button cloneConnectedPortParametersButton;
     224    protected System.Windows.Forms.Button cloneParametersFromPortButton;
    226225    protected System.Windows.Forms.Button sendMessageButton;
    227226    protected System.Windows.Forms.SplitContainer splitContainer;
    228227    protected PortParameterCollectionView portParameterCollectionView;
    229     protected MessageCollectionView messageCollectionView;
    230     protected System.Windows.Forms.CheckBox logMessagesCheckBox;
     228    protected System.Windows.Forms.GroupBox lastMessageGroupBox;
     229    protected MessageView lastMessageView;
    231230
    232231
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/Core.Networks.Views/MessagePortView.cs

    r11530 r11538  
    5454      Content.ConnectedPortChanged -= Content_ConnectedPortChanged;
    5555      Content.PortConnectionValidChanged -= Content_PortConnectionValidChanged;
    56       Content.LogMessagesChanged -= Content_LogMessagesChanged;
     56      Content.LastMessageChanged -= Content_LastMessageChanged;
    5757      base.DeregisterContentEvents();
    5858    }
     
    6161      Content.ConnectedPortChanged += Content_ConnectedPortChanged;
    6262      Content.PortConnectionValidChanged += Content_PortConnectionValidChanged;
    63       Content.LogMessagesChanged += Content_LogMessagesChanged;
     63      Content.LastMessageChanged += Content_LastMessageChanged;
    6464    }
    6565
     
    6969      connectedPortView.Content = Content == null ? null : Content.ConnectedPort;
    7070      portParameterCollectionView.Content = Content == null ? null : Content.Parameters;
    71       logMessagesCheckBox.Checked = Content == null ? false : Content.LogMessages;
    72       messageCollectionView.Content = Content == null ? null : Content.Messages;
     71      lastMessageView.Content = Content == null ? null : Content.LastMessage;
    7372      errorProvider.SetError(connectedPortView, ((Content == null) || Content.PortConnectionValid) ? string.Empty : "Port connection is not valid");
    7473    }
     
    8180      clearConnectedPortButton.Enabled = Content != null && Content.ConnectedPort != null && !ReadOnly;
    8281      portParameterCollectionView.Enabled = Content != null && !ReadOnly;
    83       cloneConnectedPortParametersButton.Enabled = Content != null && Content.ConnectedPort != null && !ReadOnly;
    84       logMessagesCheckBox.Enabled = Content != null && !ReadOnly;
    85       messageCollectionView.Enabled = Content != null && !ReadOnly;
     82      cloneParametersFromPortButton.Enabled = Content != null && Content.ConnectedPort != null && !ReadOnly;
     83      lastMessageView.Enabled = Content != null && !ReadOnly;
    8684    }
    8785
     
    9189      else {
    9290        clearConnectedPortButton.Enabled = Content.ConnectedPort != null && !ReadOnly;
    93         cloneConnectedPortParametersButton.Enabled = Content.ConnectedPort != null && !ReadOnly;
     91        cloneParametersFromPortButton.Enabled = Content.ConnectedPort != null && !ReadOnly;
    9492        connectedPortView.Content = Content.ConnectedPort;
    9593      }
     
    102100      }
    103101    }
    104     protected virtual void Content_LogMessagesChanged(object sender, EventArgs e) {
     102    protected virtual void Content_LastMessageChanged(object sender, EventArgs e) {
    105103      if (InvokeRequired)
    106         Invoke(new EventHandler(Content_LogMessagesChanged), sender, e);
     104        Invoke(new EventHandler(Content_LastMessageChanged), sender, e);
    107105      else {
    108         logMessagesCheckBox.Checked = Content.LogMessages;
     106        lastMessageView.Content = Content.LastMessage;
    109107      }
    110108    }
     
    115113
    116114    protected virtual void setConnectedPortButton_Click(object sender, EventArgs e) {
    117       if (networkItemSelectorDialog == null) {
    118         networkItemSelectorDialog = new NetworkItemSelectorDialog();
    119         networkItemSelectorDialog.Caption = "Select Connected Port";
    120         networkItemSelectorDialog.NetworkItemSelector.Caption = "Available Ports";
    121       }
     115      if (networkItemSelectorDialog == null) networkItemSelectorDialog = new NetworkItemSelectorDialog();
     116      networkItemSelectorDialog.Caption = "Select Connected Port";
     117      networkItemSelectorDialog.NetworkItemSelector.Caption = "Available Ports";
    122118
    123119      try {
     
    145141    protected virtual void connectedPortView_DragEnterOver(object sender, DragEventArgs e) {
    146142      e.Effect = DragDropEffects.None;
    147       var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat) as IMessagePort;
     143      var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat) as IPort;
    148144
    149145      if (!ReadOnly && (data != null) && (Content.CanConnectToPort(data))) {
     
    157153      }
    158154    }
    159     protected virtual void cloneConnectedPortParametersButton_Click(object sender, EventArgs e) {
    160       Content.CloneParametersFromPort(Content.ConnectedPort);
    161     }
    162     protected virtual void logMessagesCheckBox_CheckedChanged(object sender, EventArgs e) {
    163       Content.LogMessages = logMessagesCheckBox.Checked;
     155    protected virtual void cloneParametersFromPortButton_Click(object sender, EventArgs e) {
     156      if (networkItemSelectorDialog == null) networkItemSelectorDialog = new NetworkItemSelectorDialog();
     157      networkItemSelectorDialog.Caption = "Select Port to Clone Parameters from";
     158      networkItemSelectorDialog.NetworkItemSelector.Caption = "Available Ports";
     159
     160      INetworkItem root = Content;
     161      while (root.Parent != null)
     162        root = root.Parent;
     163      networkItemSelectorDialog.NetworkItemSelector.Configure(
     164        root,
     165        null,
     166        typeof(IParameterizedPort)
     167      );
     168
     169      if (networkItemSelectorDialog.ShowDialog(this) == DialogResult.OK) {
     170        Content.CloneParametersFromPort(networkItemSelectorDialog.NetworkItemSelector.SelectedNetworkItem as IParameterizedPort);
     171      }
    164172    }
    165173  }
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/Core.Networks.Views/NetworkItemView.cs

    r11528 r11538  
    2222using HeuristicLab.Core.Views;
    2323using HeuristicLab.MainForm;
    24 using System;
    2524using System.Windows.Forms;
    2625
     
    3837      InitializeComponent();
    3938    }
    40 
    41     protected override void DeregisterContentEvents() {
    42       Content.PathChanged -= Content_PathChanged;
    43       base.DeregisterContentEvents();
    44     }
    45     protected override void RegisterContentEvents() {
    46       base.RegisterContentEvents();
    47       Content.PathChanged += Content_PathChanged;
    48     }
    49 
    50     protected override void OnContentChanged() {
    51       base.OnContentChanged();
    52       toolTip.SetToolTip(nameTextBox, Content != null ? Content.Path : string.Empty);
    53     }
    54 
    55     protected virtual void Content_PathChanged(object sender, System.EventArgs e) {
    56       if (InvokeRequired)
    57         Invoke(new EventHandler(Content_PathChanged), sender, e);
    58       else {
    59         toolTip.SetToolTip(nameTextBox, Content != null ? Content.Path : string.Empty);
    60       }
    61     }
    6239  }
    6340}
Note: See TracChangeset for help on using the changeset viewer.