Changeset 9833
- Timestamp:
- 08/01/13 09:57:40 (11 years ago)
- 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 48 48 this.openButton = new System.Windows.Forms.Button(); 49 49 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(); 55 51 this.SuspendLayout(); 56 //57 // valueTextBox58 //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 // valueLabel65 //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 // splitContainer71 //72 //73 // splitContainer.Panel274 //75 this.splitContainer.Panel2.Controls.Add(this.openButton);76 this.splitContainer.Size = new System.Drawing.Size(194, 24);77 this.splitContainer.SplitterDistance = 56;78 52 // 79 53 // openButton … … 81 55 this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 82 56 this.openButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open; 83 this.openButton.Location = new System.Drawing.Point(1 10, 0);57 this.openButton.Location = new System.Drawing.Point(167, 0); 84 58 this.openButton.Name = "openButton"; 85 59 this.openButton.Size = new System.Drawing.Size(24, 24); … … 88 62 this.openButton.Click += new System.EventHandler(this.openButton_Click); 89 63 // 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 // 90 77 // DirectoryValueView 91 78 // 92 79 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); 94 83 this.Name = "DirectoryValueView"; 95 84 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);103 85 this.ResumeLayout(false); 104 86 … … 109 91 protected System.Windows.Forms.Button openButton; 110 92 protected System.Windows.Forms.FolderBrowserDialog folderBrowserDialog; 93 private StringConvertibleValueView stringConvertibleValueView; 111 94 112 95 } -
trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/DirectoryValueView.cs
r9697 r9833 22 22 using System; 23 23 using System.Windows.Forms; 24 using HeuristicLab.Core.Views; 24 25 using HeuristicLab.MainForm; 25 26 … … 27 28 [View("DirectoryValueView")] 28 29 [Content(typeof(DirectoryValue), true)] 29 public partial class DirectoryValueView : StringConvertibleValueView {30 public partial class DirectoryValueView : ItemView { 30 31 public new DirectoryValue Content { 31 32 get { return (DirectoryValue)base.Content; } 32 33 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; }41 34 } 42 35 … … 47 40 protected override void SetEnabledStateOfControls() { 48 41 base.SetEnabledStateOfControls(); 49 valueTextBox.Enabled = !Locked && !ReadOnly && Content != null;50 valueTextBox.ReadOnly = Locked || ReadOnly || Content == null;51 42 openButton.Enabled = !Locked && !ReadOnly && Content != null; 52 43 } … … 55 46 base.OnContentChanged(); 56 47 if (Content == null) { 57 valueTextBox.Text = string.Empty;48 stringConvertibleValueView.Content = null; 58 49 return; 59 50 } 60 51 61 valueTextBox.Text = Content.Value; 62 openButton.Enabled = !Content.ReadOnly; 52 stringConvertibleValueView.Content = Content.StringValue; 63 53 } 64 54 -
trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/FileValueView.Designer.cs
r9680 r9833 48 48 this.openButton = new System.Windows.Forms.Button(); 49 49 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(); 55 51 this.SuspendLayout(); 56 //57 // valueTextBox58 //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 // valueLabel65 //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 // splitContainer71 //72 //73 // splitContainer.Panel274 //75 this.splitContainer.Panel2.Controls.Add(this.openButton);76 this.splitContainer.Size = new System.Drawing.Size(194, 24);77 this.splitContainer.SplitterDistance = 27;78 52 // 79 53 // openButton … … 81 55 this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 82 56 this.openButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open; 83 this.openButton.Location = new System.Drawing.Point(1 39, 0);57 this.openButton.Location = new System.Drawing.Point(198, 0); 84 58 this.openButton.Name = "openButton"; 85 59 this.openButton.Size = new System.Drawing.Size(24, 24); … … 88 62 this.openButton.Click += new System.EventHandler(this.openButton_Click); 89 63 // 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 // 90 77 // FileValueView 91 78 // 92 79 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); 94 83 this.Name = "FileValueView"; 95 84 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);103 85 this.ResumeLayout(false); 104 86 … … 109 91 protected System.Windows.Forms.Button openButton; 110 92 protected System.Windows.Forms.OpenFileDialog openFileDialog; 93 protected StringConvertibleValueView stringConvertibleValueView; 111 94 } 112 95 } -
trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/FileValueView.cs
r9697 r9833 22 22 using System; 23 23 using System.Windows.Forms; 24 using HeuristicLab.Core.Views; 24 25 using HeuristicLab.MainForm; 25 26 … … 27 28 [View("FileValueView")] 28 29 [Content(typeof(FileValue), true)] 29 public partial class FileValueView : StringConvertibleValueView {30 public partial class FileValueView : ItemView { 30 31 public new FileValue Content { 31 32 get { return (FileValue)base.Content; } 32 33 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; }41 34 } 42 35 … … 45 38 } 46 39 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 }55 40 protected override void SetEnabledStateOfControls() { 56 41 base.SetEnabledStateOfControls(); 57 valueTextBox.Enabled = !Locked && !ReadOnly && Content != null;58 valueTextBox.ReadOnly = Locked || ReadOnly || Content == null;59 42 openButton.Enabled = !Locked && !ReadOnly && Content != null; 60 43 } … … 63 46 base.OnContentChanged(); 64 47 if (Content == null) { 65 valueTextBox.Text = string.Empty;48 stringConvertibleValueView.Content = null; 66 49 return; 67 50 } 68 51 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; 75 53 openFileDialog.Filter = Content.FileDialogFilter; 76 54 } 77 55 78 56 protected virtual void openButton_Click(object sender, EventArgs e) { 57 openFileDialog.Filter = Content.FileDialogFilter; 79 58 if (openFileDialog.ShowDialog(this) != DialogResult.OK) return; 80 59 Content.Value = openFileDialog.FileName; -
trunk/sources/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs
r9714 r9833 24 24 using System.IO; 25 25 using System.Windows.Forms; 26 using HeuristicLab.Core.Views;27 26 using HeuristicLab.MainForm; 28 27 … … 30 29 [View("TextFileView")] 31 30 [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; } 36 35 set { 37 if ( changedFileContent!= value) {38 changedFileContent= value;39 On ChangedFileContent();36 if (fileContentChanged != value) { 37 fileContentChanged = value; 38 OnFileContentChanged(); 40 39 } 41 40 } … … 49 48 public TextFileView() { 50 49 InitializeComponent(); 51 changedFileContent= false;50 fileContentChanged = false; 52 51 } 53 52 54 53 protected override void RegisterContentEvents() { 55 54 base.RegisterContentEvents(); 56 Content.ValueChanged += Content_FilePathChanged; 57 Content.FileOpenDialogFilterChanged += Content_FileDialogFilterChanged; 55 Content.StringValue.ValueChanged += Content_FilePathChanged; 58 56 } 59 57 protected override void DeregisterContentEvents() { 60 Content.ValueChanged -= Content_FilePathChanged; 61 Content.FileOpenDialogFilterChanged -= Content_FileDialogFilterChanged; 58 Content.StringValue.ValueChanged -= Content_FilePathChanged; 62 59 fileSystemWatcher.EnableRaisingEvents = false; 63 60 base.DeregisterContentEvents(); … … 66 63 base.SetEnabledStateOfControls(); 67 64 textBox.ReadOnly = Locked || ReadOnly || Content == null; 68 saveButton.Enabled = !Locked && !ReadOnly && Content != null && ChangedFileContent;65 saveButton.Enabled = !Locked && !ReadOnly && Content != null && FileContentChanged; 69 66 70 67 if (Content != null && Content.Exists()) { … … 83 80 protected override void OnContentChanged() { 84 81 base.OnContentChanged(); 85 ChangedFileContent= false;82 FileContentChanged = false; 86 83 if (Content == null) { 87 fileValueView.Content = null;88 84 textBox.Text = string.Empty; 89 85 //mkommend: other properties of the file system watcher cannot be cleared (e.g., path) as this leads to an ArgumentException … … 91 87 return; 92 88 } 93 94 fileValueView.Content = Content;95 89 saveFileDialog.Filter = Content.FileDialogFilter; 96 90 UpdateTextBox(); … … 101 95 SetEnabledStateOfControls(); 102 96 } 103 private void Content_FileDialogFilterChanged(object sender, EventArgs e) {104 saveFileDialog.Filter = Content.FileDialogFilter;105 }106 97 107 98 private void textBox_TextChanged(object sender, EventArgs e) { 108 ChangedFileContent= fileText != textBox.Text;109 } 110 111 private void On ChangedFileContent() {99 FileContentChanged = fileText != textBox.Text; 100 } 101 102 private void OnFileContentChanged() { 112 103 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; 118 105 } 119 106 … … 146 133 } else { 147 134 fileText = newContent; 148 ChangedFileContent= true;135 FileContentChanged = true; 149 136 } 150 137 } … … 185 172 WriteFile(path, textBox.Text); 186 173 Content.Value = path; 187 ChangedFileContent= false;174 FileContentChanged = false; 188 175 fileSystemWatcher.EnableRaisingEvents = true; 189 176 } … … 212 199 } 213 200 private void textBox_Validated(object sender, EventArgs e) { 214 if (! ChangedFileContent) return;201 if (!FileContentChanged) return; 215 202 string msg = string.Format("You have not saved the changes in the file \"{0}\" yet. Do you want to save the changes?", Content.Value); 216 203 var result = MessageBox.Show(this, msg, "Save changes?", MessageBoxButtons.YesNo, MessageBoxIcon.Information); -
trunk/sources/HeuristicLab.Data/3.3/Path Types/DirectoryValue.cs
r9680 r9833 39 39 40 40 public override bool Exists() { 41 return Directory.Exists( value);41 return Directory.Exists(Value); 42 42 } 43 43 } -
trunk/sources/HeuristicLab.Data/3.3/Path Types/FileValue.cs
r9680 r9833 20 20 #endregion 21 21 22 using System;23 22 using System.IO; 24 23 using HeuristicLab.Common; … … 37 36 if (fileDialogFilter != value) { 38 37 fileDialogFilter = value; 39 OnFileOpenDialogFilterChanged();40 38 } 41 39 } … … 58 56 59 57 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); 68 59 } 69 60 } -
trunk/sources/HeuristicLab.Data/3.3/Path Types/PathValue.cs
r9697 r9833 20 20 #endregion 21 21 22 23 22 using System.IO; 24 23 using HeuristicLab.Common; … … 29 28 [Item("PathValue", "Represents a path.")] 30 29 [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; } 34 40 set { 35 41 if (value == null) value = string.Empty; 36 42 value = value.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); 37 base.Value = value;43 stringValue.Value = value; 38 44 } 39 45 } … … 41 47 [StorableConstructor] 42 48 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 } 44 53 45 protected PathValue() 46 : base(string.Empty) { } 54 protected PathValue() : base() { } 47 55 48 56 public abstract bool Exists();
Note: See TracChangeset
for help on using the changeset viewer.