Free cookie consent management tool by TermsFeed Policy Generator

Changeset 9833


Ignore:
Timestamp:
08/01/13 09:57:40 (11 years ago)
Author:
mkommend
Message:

#2081: Implemented reviewer comments by gkronber for path values.

Location:
trunk/sources
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/DirectoryValueView.Designer.cs

    r9680 r9833  
    4848      this.openButton = new System.Windows.Forms.Button();
    4949      this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
    50       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    51       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
    52       this.splitContainer.Panel1.SuspendLayout();
    53       this.splitContainer.Panel2.SuspendLayout();
    54       this.splitContainer.SuspendLayout();
     50      this.stringConvertibleValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
    5551      this.SuspendLayout();
    56       //
    57       // valueTextBox
    58       //
    59       this.errorProvider.SetIconAlignment(this.valueTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
    60       this.errorProvider.SetIconPadding(this.valueTextBox, 2);
    61       this.valueTextBox.Location = new System.Drawing.Point(17, 2);
    62       this.valueTextBox.Size = new System.Drawing.Size(87, 20);
    63       //
    64       // valueLabel
    65       //
    66       this.valueLabel.Location = new System.Drawing.Point(3, 5);
    67       this.valueLabel.Size = new System.Drawing.Size(52, 13);
    68       this.valueLabel.Text = "Directory:";
    69       //
    70       // splitContainer
    71       //
    72       //
    73       // splitContainer.Panel2
    74       //
    75       this.splitContainer.Panel2.Controls.Add(this.openButton);
    76       this.splitContainer.Size = new System.Drawing.Size(194, 24);
    77       this.splitContainer.SplitterDistance = 56;
    7852      //
    7953      // openButton
     
    8155      this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    8256      this.openButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
    83       this.openButton.Location = new System.Drawing.Point(110, 0);
     57      this.openButton.Location = new System.Drawing.Point(167, 0);
    8458      this.openButton.Name = "openButton";
    8559      this.openButton.Size = new System.Drawing.Size(24, 24);
     
    8862      this.openButton.Click += new System.EventHandler(this.openButton_Click);
    8963      //
     64      // stringConvertibleValueView
     65      //
     66      this.stringConvertibleValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     67            | System.Windows.Forms.AnchorStyles.Right)));
     68      this.stringConvertibleValueView.Caption = "StringConvertibleValue View";
     69      this.stringConvertibleValueView.Content = null;
     70      this.stringConvertibleValueView.LabelVisible = true;
     71      this.stringConvertibleValueView.Location = new System.Drawing.Point(4, 2);
     72      this.stringConvertibleValueView.Name = "stringConvertibleValueView";
     73      this.stringConvertibleValueView.ReadOnly = false;
     74      this.stringConvertibleValueView.Size = new System.Drawing.Size(157, 21);
     75      this.stringConvertibleValueView.TabIndex = 4;
     76      //
    9077      // DirectoryValueView
    9178      //
    9279      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    93       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     80      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
     81      this.Controls.Add(this.stringConvertibleValueView);
     82      this.Controls.Add(this.openButton);
    9483      this.Name = "DirectoryValueView";
    9584      this.Size = new System.Drawing.Size(194, 24);
    96       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
    97       this.splitContainer.Panel1.ResumeLayout(false);
    98       this.splitContainer.Panel1.PerformLayout();
    99       this.splitContainer.Panel2.ResumeLayout(false);
    100       this.splitContainer.Panel2.PerformLayout();
    101       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
    102       this.splitContainer.ResumeLayout(false);
    10385      this.ResumeLayout(false);
    10486
     
    10991    protected System.Windows.Forms.Button openButton;
    11092    protected System.Windows.Forms.FolderBrowserDialog folderBrowserDialog;
     93    private StringConvertibleValueView stringConvertibleValueView;
    11194
    11295  }
  • trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/DirectoryValueView.cs

    r9697 r9833  
    2222using System;
    2323using System.Windows.Forms;
     24using HeuristicLab.Core.Views;
    2425using HeuristicLab.MainForm;
    2526
     
    2728  [View("DirectoryValueView")]
    2829  [Content(typeof(DirectoryValue), true)]
    29   public partial class DirectoryValueView : StringConvertibleValueView {
     30  public partial class DirectoryValueView : ItemView {
    3031    public new DirectoryValue Content {
    3132      get { return (DirectoryValue)base.Content; }
    3233      set { base.Content = value; }
    33     }
    34 
    35     public override bool ReadOnly {
    36       get {
    37         if ((Content != null) && Content.ReadOnly) return true;
    38         return base.ReadOnly;
    39       }
    40       set { base.ReadOnly = value; }
    4134    }
    4235
     
    4740    protected override void SetEnabledStateOfControls() {
    4841      base.SetEnabledStateOfControls();
    49       valueTextBox.Enabled = !Locked && !ReadOnly && Content != null;
    50       valueTextBox.ReadOnly = Locked || ReadOnly || Content == null;
    5142      openButton.Enabled = !Locked && !ReadOnly && Content != null;
    5243    }
     
    5546      base.OnContentChanged();
    5647      if (Content == null) {
    57         valueTextBox.Text = string.Empty;
     48        stringConvertibleValueView.Content = null;
    5849        return;
    5950      }
    6051
    61       valueTextBox.Text = Content.Value;
    62       openButton.Enabled = !Content.ReadOnly;
     52      stringConvertibleValueView.Content = Content.StringValue;
    6353    }
    6454
  • trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/FileValueView.Designer.cs

    r9680 r9833  
    4848      this.openButton = new System.Windows.Forms.Button();
    4949      this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
    50       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    51       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
    52       this.splitContainer.Panel1.SuspendLayout();
    53       this.splitContainer.Panel2.SuspendLayout();
    54       this.splitContainer.SuspendLayout();
     50      this.stringConvertibleValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
    5551      this.SuspendLayout();
    56       //
    57       // valueTextBox
    58       //
    59       this.errorProvider.SetIconAlignment(this.valueTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
    60       this.errorProvider.SetIconPadding(this.valueTextBox, 2);
    61       this.valueTextBox.Location = new System.Drawing.Point(17, 2);
    62       this.valueTextBox.Size = new System.Drawing.Size(116, 20);
    63       //
    64       // valueLabel
    65       //
    66       this.valueLabel.Location = new System.Drawing.Point(3, 5);
    67       this.valueLabel.Size = new System.Drawing.Size(26, 13);
    68       this.valueLabel.Text = "File:";
    69       //
    70       // splitContainer
    71       //
    72       //
    73       // splitContainer.Panel2
    74       //
    75       this.splitContainer.Panel2.Controls.Add(this.openButton);
    76       this.splitContainer.Size = new System.Drawing.Size(194, 24);
    77       this.splitContainer.SplitterDistance = 27;
    7852      //
    7953      // openButton
     
    8155      this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    8256      this.openButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
    83       this.openButton.Location = new System.Drawing.Point(139, 0);
     57      this.openButton.Location = new System.Drawing.Point(198, 0);
    8458      this.openButton.Name = "openButton";
    8559      this.openButton.Size = new System.Drawing.Size(24, 24);
     
    8862      this.openButton.Click += new System.EventHandler(this.openButton_Click);
    8963      //
     64      // stringConvertibleValueView
     65      //
     66      this.stringConvertibleValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     67            | System.Windows.Forms.AnchorStyles.Right)));
     68      this.stringConvertibleValueView.Caption = "StringConvertibleValue View";
     69      this.stringConvertibleValueView.Content = null;
     70      this.stringConvertibleValueView.LabelVisible = true;
     71      this.stringConvertibleValueView.Location = new System.Drawing.Point(4, 2);
     72      this.stringConvertibleValueView.Name = "stringConvertibleValueView";
     73      this.stringConvertibleValueView.ReadOnly = false;
     74      this.stringConvertibleValueView.Size = new System.Drawing.Size(157, 21);
     75      this.stringConvertibleValueView.TabIndex = 0;
     76      //
    9077      // FileValueView
    9178      //
    9279      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    93       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     80      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
     81      this.Controls.Add(this.stringConvertibleValueView);
     82      this.Controls.Add(this.openButton);
    9483      this.Name = "FileValueView";
    9584      this.Size = new System.Drawing.Size(194, 24);
    96       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
    97       this.splitContainer.Panel1.ResumeLayout(false);
    98       this.splitContainer.Panel1.PerformLayout();
    99       this.splitContainer.Panel2.ResumeLayout(false);
    100       this.splitContainer.Panel2.PerformLayout();
    101       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
    102       this.splitContainer.ResumeLayout(false);
    10385      this.ResumeLayout(false);
    10486
     
    10991    protected System.Windows.Forms.Button openButton;
    11092    protected System.Windows.Forms.OpenFileDialog openFileDialog;
     93    protected StringConvertibleValueView stringConvertibleValueView;
    11194  }
    11295}
  • trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/FileValueView.cs

    r9697 r9833  
    2222using System;
    2323using System.Windows.Forms;
     24using HeuristicLab.Core.Views;
    2425using HeuristicLab.MainForm;
    2526
     
    2728  [View("FileValueView")]
    2829  [Content(typeof(FileValue), true)]
    29   public partial class FileValueView : StringConvertibleValueView {
     30  public partial class FileValueView : ItemView {
    3031    public new FileValue Content {
    3132      get { return (FileValue)base.Content; }
    3233      set { base.Content = value; }
    33     }
    34 
    35     public override bool ReadOnly {
    36       get {
    37         if ((Content != null) && Content.ReadOnly) return true;
    38         return base.ReadOnly;
    39       }
    40       set { base.ReadOnly = value; }
    4134    }
    4235
     
    4538    }
    4639
    47     protected override void RegisterContentEvents() {
    48       base.RegisterContentEvents();
    49       Content.FileOpenDialogFilterChanged += new EventHandler(Content_FileOpenDialogFilterChanged);
    50     }
    51     protected override void DeregisterContentEvents() {
    52       Content.FileOpenDialogFilterChanged -= new EventHandler(Content_FileOpenDialogFilterChanged);
    53       base.DeregisterContentEvents();
    54     }
    5540    protected override void SetEnabledStateOfControls() {
    5641      base.SetEnabledStateOfControls();
    57       valueTextBox.Enabled = !Locked && !ReadOnly && Content != null;
    58       valueTextBox.ReadOnly = Locked || ReadOnly || Content == null;
    5942      openButton.Enabled = !Locked && !ReadOnly && Content != null;
    6043    }
     
    6346      base.OnContentChanged();
    6447      if (Content == null) {
    65         valueTextBox.Text = string.Empty;
     48        stringConvertibleValueView.Content = null;
    6649        return;
    6750      }
    6851
    69       valueTextBox.Text = Content.Value;
    70       openButton.Enabled = !Content.ReadOnly;
    71       openFileDialog.Filter = Content.FileDialogFilter;
    72     }
    73 
    74     protected virtual void Content_FileOpenDialogFilterChanged(object sender, EventArgs e) {
     52      stringConvertibleValueView.Content = Content.StringValue;
    7553      openFileDialog.Filter = Content.FileDialogFilter;
    7654    }
    7755
    7856    protected virtual void openButton_Click(object sender, EventArgs e) {
     57      openFileDialog.Filter = Content.FileDialogFilter;
    7958      if (openFileDialog.ShowDialog(this) != DialogResult.OK) return;
    8059      Content.Value = openFileDialog.FileName;
  • trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs

    r9714 r9833  
    2424using System.IO;
    2525using System.Windows.Forms;
    26 using HeuristicLab.Core.Views;
    2726using HeuristicLab.MainForm;
    2827
     
    3029  [View("TextFileView")]
    3130  [Content(typeof(TextFileValue), true)]
    32   public sealed partial class TextFileView : ItemView {
    33     private bool changedFileContent;
    34     private bool ChangedFileContent {
    35       get { return changedFileContent; }
     31  public sealed partial class TextFileView : FileValueView {
     32    private bool fileContentChanged;
     33    private bool FileContentChanged {
     34      get { return fileContentChanged; }
    3635      set {
    37         if (changedFileContent != value) {
    38           changedFileContent = value;
    39           OnChangedFileContent();
     36        if (fileContentChanged != value) {
     37          fileContentChanged = value;
     38          OnFileContentChanged();
    4039        }
    4140      }
     
    4948    public TextFileView() {
    5049      InitializeComponent();
    51       changedFileContent = false;
     50      fileContentChanged = false;
    5251    }
    5352
    5453    protected override void RegisterContentEvents() {
    5554      base.RegisterContentEvents();
    56       Content.ValueChanged += Content_FilePathChanged;
    57       Content.FileOpenDialogFilterChanged += Content_FileDialogFilterChanged;
     55      Content.StringValue.ValueChanged += Content_FilePathChanged;
    5856    }
    5957    protected override void DeregisterContentEvents() {
    60       Content.ValueChanged -= Content_FilePathChanged;
    61       Content.FileOpenDialogFilterChanged -= Content_FileDialogFilterChanged;
     58      Content.StringValue.ValueChanged -= Content_FilePathChanged;
    6259      fileSystemWatcher.EnableRaisingEvents = false;
    6360      base.DeregisterContentEvents();
     
    6663      base.SetEnabledStateOfControls();
    6764      textBox.ReadOnly = Locked || ReadOnly || Content == null;
    68       saveButton.Enabled = !Locked && !ReadOnly && Content != null && ChangedFileContent;
     65      saveButton.Enabled = !Locked && !ReadOnly && Content != null && FileContentChanged;
    6966
    7067      if (Content != null && Content.Exists()) {
     
    8380    protected override void OnContentChanged() {
    8481      base.OnContentChanged();
    85       ChangedFileContent = false;
     82      FileContentChanged = false;
    8683      if (Content == null) {
    87         fileValueView.Content = null;
    8884        textBox.Text = string.Empty;
    8985        //mkommend: other properties of the file system watcher cannot be cleared (e.g., path) as this leads to an ArgumentException
     
    9187        return;
    9288      }
    93 
    94       fileValueView.Content = Content;
    9589      saveFileDialog.Filter = Content.FileDialogFilter;
    9690      UpdateTextBox();
     
    10195      SetEnabledStateOfControls();
    10296    }
    103     private void Content_FileDialogFilterChanged(object sender, EventArgs e) {
    104       saveFileDialog.Filter = Content.FileDialogFilter;
    105     }
    10697
    10798    private void textBox_TextChanged(object sender, EventArgs e) {
    108       ChangedFileContent = fileText != textBox.Text;
    109     }
    110 
    111     private void OnChangedFileContent() {
     99      FileContentChanged = fileText != textBox.Text;
     100    }
     101
     102    private void OnFileContentChanged() {
    112103      SetEnabledStateOfControls();
    113       if (ChangedFileContent) {
    114         textBox.ForeColor = Color.Red;
    115       } else {
    116         textBox.ForeColor = Color.Black;
    117       }
     104      textBox.ForeColor = FileContentChanged ? Color.Red : Color.Black;
    118105    }
    119106
     
    146133        } else {
    147134          fileText = newContent;
    148           ChangedFileContent = true;
     135          FileContentChanged = true;
    149136        }
    150137      }
     
    185172      WriteFile(path, textBox.Text);
    186173      Content.Value = path;
    187       ChangedFileContent = false;
     174      FileContentChanged = false;
    188175      fileSystemWatcher.EnableRaisingEvents = true;
    189176    }
     
    212199    }
    213200    private void textBox_Validated(object sender, EventArgs e) {
    214       if (!ChangedFileContent) return;
     201      if (!FileContentChanged) return;
    215202      string msg = string.Format("You have not saved the changes in the file \"{0}\" yet. Do you want to save the changes?", Content.Value);
    216203      var result = MessageBox.Show(this, msg, "Save changes?", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
  • trunk/sources/HeuristicLab.Data/3.3/Path Types/DirectoryValue.cs

    r9680 r9833  
    3939
    4040    public override bool Exists() {
    41       return Directory.Exists(value);
     41      return Directory.Exists(Value);
    4242    }
    4343  }
  • trunk/sources/HeuristicLab.Data/3.3/Path Types/FileValue.cs

    r9680 r9833  
    2020#endregion
    2121
    22 using System;
    2322using System.IO;
    2423using HeuristicLab.Common;
     
    3736        if (fileDialogFilter != value) {
    3837          fileDialogFilter = value;
    39           OnFileOpenDialogFilterChanged();
    4038        }
    4139      }
     
    5856
    5957    public override bool Exists() {
    60       return File.Exists(value);
    61     }
    62 
    63     public event EventHandler FileOpenDialogFilterChanged;
    64     protected virtual void OnFileOpenDialogFilterChanged() {
    65       var handler = FileOpenDialogFilterChanged;
    66       if (handler != null)
    67         handler(this, EventArgs.Empty);
     58      return File.Exists(Value);
    6859    }
    6960  }
  • trunk/sources/HeuristicLab.Data/3.3/Path Types/PathValue.cs

    r9697 r9833  
    2020#endregion
    2121
    22 
    2322using System.IO;
    2423using HeuristicLab.Common;
     
    2928  [Item("PathValue", "Represents a path.")]
    3029  [StorableClass]
    31   public abstract class PathValue : StringValue {
    32     public override string Value {
    33       get { return base.Value; }
     30  public abstract class PathValue : Item {
     31
     32    [Storable]
     33    private readonly StringValue stringValue = new StringValue();
     34    public StringValue StringValue {
     35      get { return stringValue; }
     36    }
     37
     38    public string Value {
     39      get { return stringValue.Value; }
    3440      set {
    3541        if (value == null) value = string.Empty;
    3642        value = value.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
    37         base.Value = value;
     43        stringValue.Value = value;
    3844      }
    3945    }
     
    4147    [StorableConstructor]
    4248    protected PathValue(bool deserializing) : base(deserializing) { }
    43     protected PathValue(PathValue original, Cloner cloner) : base(original, cloner) { }
     49    protected PathValue(PathValue original, Cloner cloner)
     50      : base(original, cloner) {
     51      stringValue = cloner.Clone(original.stringValue);
     52    }
    4453
    45     protected PathValue()
    46       : base(string.Empty) { }
     54    protected PathValue() : base() { }
    4755
    4856    public abstract bool Exists();
Note: See TracChangeset for help on using the changeset viewer.