Changeset 7235


Ignore:
Timestamp:
12/27/11 02:37:02 (11 years ago)
Author:
swagner
Message:

Added information icon in VariableValueView and ResultValueView, corrected tooltip update in NamedItemCollectionView and reverted changes of r6631 (#1054).

Location:
trunk/sources
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs

    r5837 r7235  
    7777      return listViewItem;
    7878    }
     79    protected override void UpdateListViewItemText(ListViewItem listViewItem) {
     80      base.UpdateListViewItemText(listViewItem);
     81      T item = listViewItem.Tag as T;
     82      if ((item != null) && !string.IsNullOrEmpty(item.Description)) {
     83        listViewItem.ToolTipText = item.ItemName + ": " + item.Description;
     84      }
     85    }
    7986
    8087    #region ListView Events
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemView.cs

    r5833 r7235  
    2626
    2727namespace HeuristicLab.Core.Views {
    28   /// <summary>
    29   /// The visual representation of a <see cref="Variable"/>.
    30   /// </summary>
    3128  [View("NamedItem View")]
    3229  [Content(typeof(NamedItem), false)]
  • trunk/sources/HeuristicLab.Core.Views/3.3/VariableValueView.Designer.cs

    r5445 r7235  
    4545    /// </summary>
    4646    private void InitializeComponent() {
     47      this.components = new System.ComponentModel.Container();
    4748      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
     49      this.infoLabel = new System.Windows.Forms.Label();
     50      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
    4851      this.SuspendLayout();
    4952      //
    5053      // viewHost
    5154      //
     55      this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     56            | System.Windows.Forms.AnchorStyles.Left)
     57            | System.Windows.Forms.AnchorStyles.Right)));
    5258      this.viewHost.Caption = "View";
    5359      this.viewHost.Content = null;
    54       this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
    5560      this.viewHost.Enabled = false;
    5661      this.viewHost.Location = new System.Drawing.Point(0, 0);
    5762      this.viewHost.Name = "viewHost";
    5863      this.viewHost.ReadOnly = false;
    59       this.viewHost.Size = new System.Drawing.Size(359, 274);
     64      this.viewHost.Size = new System.Drawing.Size(334, 274);
    6065      this.viewHost.TabIndex = 0;
     66      this.viewHost.ViewsLabelVisible = true;
    6167      this.viewHost.ViewType = null;
     68      //
     69      // infoLabel
     70      //
     71      this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
     72      this.infoLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Information;
     73      this.infoLabel.Location = new System.Drawing.Point(340, 3);
     74      this.infoLabel.Name = "infoLabel";
     75      this.infoLabel.Size = new System.Drawing.Size(16, 16);
     76      this.infoLabel.TabIndex = 1;
     77      this.toolTip.SetToolTip(this.infoLabel, "Double-click to open description editor.");
     78      this.infoLabel.DoubleClick += new System.EventHandler(this.infoLabel_DoubleClick);
    6279      //
    6380      // VariableValueView
    6481      //
     82      this.AllowDrop = true;
    6583      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    6684      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    67       this.AllowDrop = true;
     85      this.Controls.Add(this.infoLabel);
    6886      this.Controls.Add(this.viewHost);
    6987      this.Name = "VariableValueView";
     
    7997
    8098    protected MainForm.WindowsForms.ViewHost viewHost;
     99    private System.Windows.Forms.Label infoLabel;
     100    private System.Windows.Forms.ToolTip toolTip;
    81101
    82102  }
  • trunk/sources/HeuristicLab.Core.Views/3.3/VariableValueView.cs

    r5837 r7235  
    2525
    2626namespace HeuristicLab.Core.Views {
    27   /// <summary>
    28   /// The visual representation of a <see cref="Variable"/>.
    29   /// </summary>
    3027  [View("Variable Value View")]
    3128  [Content(typeof(Variable), false)]
    3229  [Content(typeof(IVariable), false)]
    3330  public partial class VariableValueView : ItemView {
    34     /// <summary>
    35     /// Gets or sets the variable to represent visually.
    36     /// </summary>
    37     /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
    38     /// No own data storage present.</remarks>
     31    private const string infoLabelToolTipSuffix = "Double-click to open description editor.";
     32
    3933    public new IVariable Content {
    4034      get { return (IVariable)base.Content; }
     
    4236    }
    4337
    44     /// <summary>
    45     /// Initializes a new instance of <see cref="VariableView"/> with caption "Variable".
    46     /// </summary>
    4738    public VariableValueView() {
    4839      InitializeComponent();
    4940    }
    5041
    51     /// <summary>
    52     /// Removes the eventhandlers from the underlying <see cref="Variable"/>.
    53     /// </summary>
    54     /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
    5542    protected override void DeregisterContentEvents() {
     43      Content.NameChanged -= new EventHandler(Content_NameChanged);
     44      Content.DescriptionChanged -= new EventHandler(Content_DescriptionChanged);
    5645      Content.ValueChanged -= new EventHandler(Content_ValueChanged);
    5746      base.DeregisterContentEvents();
    5847    }
    59 
    60     /// <summary>
    61     /// Adds eventhandlers to the underlying <see cref="Variable"/>.
    62     /// </summary>
    63     /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
    6448    protected override void RegisterContentEvents() {
    6549      base.RegisterContentEvents();
     50      Content.NameChanged += new EventHandler(Content_NameChanged);
     51      Content.DescriptionChanged += new EventHandler(Content_DescriptionChanged);
    6652      Content.ValueChanged += new EventHandler(Content_ValueChanged);
    6753    }
     
    7157      if (Content == null) {
    7258        viewHost.Content = null;
     59        toolTip.SetToolTip(infoLabel, string.Empty);
     60        if (ViewAttribute.HasViewAttribute(this.GetType()))
     61          this.Caption = ViewAttribute.GetViewName(this.GetType());
     62        else
     63          this.Caption = "VariableValue View";
    7364      } else {
    7465        viewHost.ViewType = null;
    7566        viewHost.Content = Content.Value;
     67        toolTip.SetToolTip(infoLabel, string.IsNullOrEmpty(Content.Description) ? infoLabelToolTipSuffix : Content.Description + Environment.NewLine + Environment.NewLine + infoLabelToolTipSuffix);
     68        Caption = Content.Name;
    7669      }
    7770    }
    7871
     72    protected override void SetEnabledStateOfControls() {
     73      base.SetEnabledStateOfControls();
     74      viewHost.Enabled = Content != null;
     75      viewHost.ReadOnly = this.ReadOnly;
     76      infoLabel.Enabled = Content != null;
     77    }
     78
     79    protected virtual void Content_NameChanged(object sender, EventArgs e) {
     80      if (InvokeRequired)
     81        Invoke(new EventHandler(Content_NameChanged), sender, e);
     82      else
     83        Caption = Content.Name;
     84    }
     85    protected virtual void Content_DescriptionChanged(object sender, EventArgs e) {
     86      if (InvokeRequired)
     87        Invoke(new EventHandler(Content_DescriptionChanged), sender, e);
     88      else
     89        toolTip.SetToolTip(infoLabel, string.IsNullOrEmpty(Content.Description) ? infoLabelToolTipSuffix : Content.Description + Environment.NewLine + Environment.NewLine + infoLabelToolTipSuffix);
     90    }
    7991    protected virtual void Content_ValueChanged(object sender, EventArgs e) {
    8092      if (InvokeRequired)
     
    103115      }
    104116    }
     117    protected virtual void infoLabel_DoubleClick(object sender, EventArgs e) {
     118      using (TextDialog dialog = new TextDialog("Description of " + Content.Name, Content.Description, ReadOnly || !Content.CanChangeDescription)) {
     119        if (dialog.ShowDialog(this) == DialogResult.OK)
     120          Content.Description = dialog.Content;
     121      }
     122    }
    105123  }
    106124}
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs

    r5875 r7235  
    4545    /// </summary>
    4646    private void InitializeComponent() {
     47      this.components = new System.ComponentModel.Container();
    4748      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
     49      this.infoLabel = new System.Windows.Forms.Label();
     50      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
    4851      this.SuspendLayout();
    4952      //
    5053      // viewHost
    5154      //
     55      this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     56            | System.Windows.Forms.AnchorStyles.Left)
     57            | System.Windows.Forms.AnchorStyles.Right)));
    5258      this.viewHost.Caption = "View";
    5359      this.viewHost.Content = null;
    54       this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
    5560      this.viewHost.Enabled = false;
    5661      this.viewHost.Location = new System.Drawing.Point(0, 0);
    5762      this.viewHost.Name = "viewHost";
    5863      this.viewHost.ReadOnly = false;
    59       this.viewHost.Size = new System.Drawing.Size(359, 274);
     64      this.viewHost.Size = new System.Drawing.Size(334, 274);
    6065      this.viewHost.TabIndex = 0;
    6166      this.viewHost.ViewsLabelVisible = true;
    6267      this.viewHost.ViewType = null;
     68      //
     69      // infoLabel
     70      //
     71      this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
     72      this.infoLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Information;
     73      this.infoLabel.Location = new System.Drawing.Point(340, 3);
     74      this.infoLabel.Name = "infoLabel";
     75      this.infoLabel.Size = new System.Drawing.Size(16, 16);
     76      this.infoLabel.TabIndex = 1;
     77      this.toolTip.SetToolTip(this.infoLabel, "Double-click to open description editor.");
     78      this.infoLabel.DoubleClick += new System.EventHandler(this.infoLabel_DoubleClick);
    6379      //
    6480      // ResultValueView
     
    6682      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    6783      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     84      this.Controls.Add(this.infoLabel);
    6885      this.Controls.Add(this.viewHost);
    6986      this.Name = "ResultValueView";
     
    7693
    7794    private HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
     95    private System.Windows.Forms.Label infoLabel;
     96    private System.Windows.Forms.ToolTip toolTip;
    7897  }
    7998}
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.cs

    r5896 r7235  
    3030  [Content(typeof(IResult), false)]
    3131  public sealed partial class ResultValueView : ItemView {
     32    private const string infoLabelToolTipSuffix = "Double-click to open description editor.";
     33
    3234    public new IResult Content {
    3335      get { return (IResult)base.Content; }
     
    4547
    4648    protected override void DeregisterContentEvents() {
     49      Content.NameChanged -= new EventHandler(Content_NameChanged);
     50      Content.DescriptionChanged -= new EventHandler(Content_DescriptionChanged);
    4751      Content.ValueChanged -= new EventHandler(Content_ValueChanged);
    4852      base.DeregisterContentEvents();
     
    5054    protected override void RegisterContentEvents() {
    5155      base.RegisterContentEvents();
     56      Content.NameChanged += new EventHandler(Content_NameChanged);
     57      Content.DescriptionChanged += new EventHandler(Content_DescriptionChanged);
    5258      Content.ValueChanged += new EventHandler(Content_ValueChanged);
    5359    }
     
    5763      if (Content == null) {
    5864        viewHost.Content = null;
     65        toolTip.SetToolTip(infoLabel, string.Empty);
     66        if (ViewAttribute.HasViewAttribute(this.GetType()))
     67          this.Caption = ViewAttribute.GetViewName(this.GetType());
     68        else
     69          this.Caption = "ResultValue View";
    5970      } else {
    6071        viewHost.ViewType = null;
    6172        viewHost.Content = Content.Value;
     73        toolTip.SetToolTip(infoLabel, string.IsNullOrEmpty(Content.Description) ? infoLabelToolTipSuffix : Content.Description + Environment.NewLine + Environment.NewLine + infoLabelToolTipSuffix);
     74        Caption = Content.Name;
    6275      }
    6376    }
     
    6780      viewHost.Enabled = Content != null;
    6881      viewHost.ReadOnly = this.ReadOnly;
     82      infoLabel.Enabled = Content != null;
    6983    }
    7084
     85    private void Content_NameChanged(object sender, EventArgs e) {
     86      if (InvokeRequired)
     87        Invoke(new EventHandler(Content_NameChanged), sender, e);
     88      else
     89        Caption = Content.Name;
     90    }
     91    private void Content_DescriptionChanged(object sender, EventArgs e) {
     92      if (InvokeRequired)
     93        Invoke(new EventHandler(Content_DescriptionChanged), sender, e);
     94      else
     95        toolTip.SetToolTip(infoLabel, string.IsNullOrEmpty(Content.Description) ? infoLabelToolTipSuffix : Content.Description + Environment.NewLine + Environment.NewLine + infoLabelToolTipSuffix);
     96    }
    7197    private void Content_ValueChanged(object sender, EventArgs e) {
    7298      if (InvokeRequired)
     
    76102      }
    77103    }
     104
     105    private void infoLabel_DoubleClick(object sender, System.EventArgs e) {
     106      using (TextDialog dialog = new TextDialog("Description of " + Content.Name, Content.Description, ReadOnly || !Content.CanChangeDescription)) {
     107        if (dialog.ShowDialog(this) == DialogResult.OK)
     108          Content.Description = dialog.Content;
     109      }
     110    }
    78111  }
    79112}
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultView.cs

    r5896 r7235  
    2727
    2828namespace HeuristicLab.Optimization.Views {
    29   /// <summary>
    30   /// The visual representation of a <see cref="Variable"/>.
    31   /// </summary>
    3229  [View("Result View")]
    3330  [Content(typeof(Result), false)]
    3431  [Content(typeof(IResult), false)]
    3532  public sealed partial class ResultView : NamedItemView {
    36     /// <summary>
    37     /// Gets or sets the variable to represent visually.
    38     /// </summary>
    39     /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
    40     /// No own data storage present.</remarks>
    4133    public new IResult Content {
    4234      get { return (IResult)base.Content; }
     
    4941    }
    5042
    51     /// <summary>
    52     /// Initializes a new instance of <see cref="VariableView"/> with caption "Variable".
    53     /// </summary>
    5443    public ResultView() {
    5544      InitializeComponent();
    5645    }
    5746
    58     /// <summary>
    59     /// Removes the eventhandlers from the underlying <see cref="Variable"/>.
    60     /// </summary>
    61     /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
    6247    protected override void DeregisterContentEvents() {
    6348      Content.ValueChanged -= new EventHandler(Content_ValueChanged);
    6449      base.DeregisterContentEvents();
    6550    }
    66 
    67     /// <summary>
    68     /// Adds eventhandlers to the underlying <see cref="Variable"/>.
    69     /// </summary>
    70     /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
    7151    protected override void RegisterContentEvents() {
    7252      base.RegisterContentEvents();
  • trunk/sources/HeuristicLab.Optimization/3.3/Result.cs

    r6631 r7235  
    3939        if (value != null) return value.ItemImage;
    4040        else return base.ItemImage;
    41       }
    42     }
    43 
    44     public override string ItemDescription {
    45       get {
    46         if (Description != String.Empty) return Description;
    47         else return base.ItemDescription;
    4841      }
    4942    }
Note: See TracChangeset for help on using the changeset viewer.