- Timestamp:
- 06/24/12 17:57:51 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.LinearAssignment.Views/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.LinearAssignment.Views/3.3/LAPAssignmentView.Designer.cs
r8022 r8093 45 45 /// </summary> 46 46 private void InitializeComponent() { 47 this.assignmentView = new HeuristicLab.Data.Views.StringConvertibleArrayView();48 47 this.qualityView = new HeuristicLab.Data.Views.StringConvertibleValueView(); 48 this.splitContainer = new System.Windows.Forms.SplitContainer(); 49 this.assignmentDataGridView = new System.Windows.Forms.DataGridView(); 50 this.RowsColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); 51 this.Columns = new System.Windows.Forms.DataGridViewTextBoxColumn(); 52 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); 53 this.splitContainer.Panel1.SuspendLayout(); 54 this.splitContainer.SuspendLayout(); 55 ((System.ComponentModel.ISupportInitialize)(this.assignmentDataGridView)).BeginInit(); 49 56 this.SuspendLayout(); 50 //51 // assignmentView52 //53 this.assignmentView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)54 | System.Windows.Forms.AnchorStyles.Left)55 | System.Windows.Forms.AnchorStyles.Right)));56 this.assignmentView.Caption = "StringConvertibleArray View";57 this.assignmentView.Content = null;58 this.assignmentView.Location = new System.Drawing.Point(0, 30);59 this.assignmentView.Name = "assignmentView";60 this.assignmentView.ReadOnly = true;61 this.assignmentView.Size = new System.Drawing.Size(422, 130);62 this.assignmentView.TabIndex = 0;63 57 // 64 58 // qualityView … … 72 66 this.qualityView.Name = "qualityView"; 73 67 this.qualityView.ReadOnly = true; 74 this.qualityView.Size = new System.Drawing.Size(4 22, 21);68 this.qualityView.Size = new System.Drawing.Size(413, 21); 75 69 this.qualityView.TabIndex = 1; 70 // 71 // splitContainer 72 // 73 this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 74 | System.Windows.Forms.AnchorStyles.Left) 75 | System.Windows.Forms.AnchorStyles.Right))); 76 this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; 77 this.splitContainer.Location = new System.Drawing.Point(0, 30); 78 this.splitContainer.Name = "splitContainer"; 79 // 80 // splitContainer.Panel1 81 // 82 this.splitContainer.Panel1.Controls.Add(this.assignmentDataGridView); 83 this.splitContainer.Size = new System.Drawing.Size(413, 324); 84 this.splitContainer.SplitterDistance = 250; 85 this.splitContainer.TabIndex = 2; 86 // 87 // assignmentDataGridView 88 // 89 this.assignmentDataGridView.AllowUserToAddRows = false; 90 this.assignmentDataGridView.AllowUserToDeleteRows = false; 91 this.assignmentDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 92 | System.Windows.Forms.AnchorStyles.Left) 93 | System.Windows.Forms.AnchorStyles.Right))); 94 this.assignmentDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 95 this.assignmentDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { 96 this.RowsColumn, 97 this.Columns}); 98 this.assignmentDataGridView.Location = new System.Drawing.Point(3, 3); 99 this.assignmentDataGridView.Name = "assignmentDataGridView"; 100 this.assignmentDataGridView.ReadOnly = true; 101 this.assignmentDataGridView.Size = new System.Drawing.Size(244, 318); 102 this.assignmentDataGridView.TabIndex = 0; 103 // 104 // RowsColumn 105 // 106 this.RowsColumn.HeaderText = "Rows"; 107 this.RowsColumn.Name = "RowsColumn"; 108 this.RowsColumn.ReadOnly = true; 109 // 110 // Columns 111 // 112 this.Columns.HeaderText = "Columns"; 113 this.Columns.Name = "Columns"; 114 this.Columns.ReadOnly = true; 76 115 // 77 116 // LAPAssignmentView … … 79 118 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 80 119 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 120 this.Controls.Add(this.splitContainer); 81 121 this.Controls.Add(this.qualityView); 82 this.Controls.Add(this.assignmentView);83 122 this.Name = "LAPAssignmentView"; 84 this.Size = new System.Drawing.Size(422, 160); 123 this.Size = new System.Drawing.Size(413, 354); 124 this.splitContainer.Panel1.ResumeLayout(false); 125 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); 126 this.splitContainer.ResumeLayout(false); 127 ((System.ComponentModel.ISupportInitialize)(this.assignmentDataGridView)).EndInit(); 85 128 this.ResumeLayout(false); 86 129 … … 89 132 #endregion 90 133 91 private Data.Views.StringConvertibleArrayView assignmentView;92 134 private Data.Views.StringConvertibleValueView qualityView; 135 private System.Windows.Forms.SplitContainer splitContainer; 136 private System.Windows.Forms.DataGridView assignmentDataGridView; 137 private System.Windows.Forms.DataGridViewTextBoxColumn RowsColumn; 138 private System.Windows.Forms.DataGridViewTextBoxColumn Columns; 93 139 } 94 140 } -
trunk/sources/HeuristicLab.Problems.LinearAssignment.Views/3.3/LAPAssignmentView.cs
r8022 r8093 20 20 #endregion 21 21 22 using System; 22 23 using System.ComponentModel; 23 24 using System.Windows.Forms; 25 using HeuristicLab.Common; 24 26 using HeuristicLab.Core.Views; 27 using HeuristicLab.Encodings.PermutationEncoding; 25 28 using HeuristicLab.MainForm; 26 29 using HeuristicLab.MainForm.WindowsForms; … … 30 33 [Content(typeof(LAPAssignment), IsDefaultView = true)] 31 34 public partial class LAPAssignmentView : ItemView { 35 private ViewHost assignmentViewHost; 36 32 37 public new LAPAssignment Content { 33 38 get { return (LAPAssignment)base.Content; } … … 37 42 public LAPAssignmentView() { 38 43 InitializeComponent(); 44 assignmentViewHost = new ViewHost(); 45 assignmentViewHost.Dock = DockStyle.Fill; 46 assignmentViewHost.ViewsLabelVisible = true; 47 splitContainer.Panel2.Controls.Add(assignmentViewHost); 39 48 } 40 49 … … 42 51 protected override void DeregisterContentEvents() { 43 52 Content.PropertyChanged -= new PropertyChangedEventHandler(Content_PropertyChanged); 53 if (Content.Assignment != null) Content.Assignment.ItemChanged -= new EventHandler<EventArgs<int>>(Assignment_ItemChanged); 54 if (Content.RowNames != null) Content.RowNames.ItemChanged += new EventHandler<EventArgs<int>>(Names_ItemChanged); 55 if (Content.ColumnNames != null) Content.ColumnNames.ItemChanged -= new EventHandler<EventArgs<int>>(Names_ItemChanged); 44 56 base.DeregisterContentEvents(); 45 57 } … … 47 59 base.RegisterContentEvents(); 48 60 Content.PropertyChanged += new PropertyChangedEventHandler(Content_PropertyChanged); 61 if (Content.Assignment != null) Content.Assignment.ItemChanged += new EventHandler<EventArgs<int>>(Assignment_ItemChanged); 62 if (Content.RowNames != null) Content.RowNames.ItemChanged += new EventHandler<EventArgs<int>>(Names_ItemChanged); 63 if (Content.ColumnNames != null) Content.ColumnNames.ItemChanged += new EventHandler<EventArgs<int>>(Names_ItemChanged); 64 } 65 66 private void Assignment_ItemChanged(object sender, EventArgs<int> e) { 67 if (sender != Content.Assignment) 68 ((Permutation)sender).ItemChanged -= new EventHandler<EventArgs<int>>(Assignment_ItemChanged); 69 else UpdateAssignmentMatrix(); 70 } 71 72 private void Names_ItemChanged(object sender, EventArgs<int> e) { 73 UpdateAssignmentMatrix(); 49 74 } 50 75 #endregion … … 54 79 if (Content == null) { 55 80 qualityView.Content = null; 56 assignmentView.Content = null; 81 assignmentViewHost.Content = null; 82 assignmentDataGridView.Rows.Clear(); 57 83 } else { 58 84 qualityView.Content = Content.Quality; 59 assignmentView.Content = Content.Assignment; 85 assignmentViewHost.Content = Content.Assignment; 86 UpdateAssignmentMatrix(); 60 87 } 61 88 } … … 63 90 protected override void SetEnabledStateOfControls() { 64 91 base.SetEnabledStateOfControls(); 92 assignmentDataGridView.Enabled = Content != null; 65 93 } 66 94 … … 70 98 case "Quality": qualityView.Content = Content.Quality; 71 99 break; 72 case "Assignment": assignmentView.Content = Content.Assignment; 100 case "Assignment": 101 if (Content.Assignment != null) 102 Content.Assignment.ItemChanged += new EventHandler<EventArgs<int>>(Assignment_ItemChanged); 103 assignmentViewHost.Content = Content.Assignment; 104 UpdateAssignmentMatrix(); 105 break; 106 case "RowNames": 107 if (Content.RowNames != null) 108 Content.RowNames.ItemChanged += new EventHandler<EventArgs<int>>(Names_ItemChanged); 109 UpdateAssignmentMatrix(); 110 break; 111 case "ColumnNames": 112 if (Content.ColumnNames != null) 113 Content.ColumnNames.ItemChanged += new EventHandler<EventArgs<int>>(Names_ItemChanged); 114 UpdateAssignmentMatrix(); 73 115 break; 74 116 default: break; … … 76 118 } 77 119 #endregion 120 121 private void UpdateAssignmentMatrix() { 122 assignmentDataGridView.Rows.Clear(); 123 if (Content.Assignment != null) { 124 string rowName, colName; 125 var rows = new DataGridViewRow[Content.Assignment.Length]; 126 for (int i = 0; i < Content.Assignment.Length; i++) { 127 if (Content.RowNames != null && Content.RowNames.Length > i) 128 rowName = Content.RowNames[i]; 129 else rowName = "Row " + (i + 1).ToString(); 130 if (Content.ColumnNames != null && Content.ColumnNames.Length > Content.Assignment[i]) 131 colName = Content.ColumnNames[Content.Assignment[i]]; 132 else colName = "Column " + (Content.Assignment[i] + 1).ToString(); 133 rows[i] = new DataGridViewRow(); 134 rows[i].CreateCells(assignmentDataGridView, new string[] { rowName, colName }); 135 } 136 assignmentDataGridView.Rows.AddRange(rows); 137 assignmentDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 138 } 139 } 140 78 141 } 79 142 }
Note: See TracChangeset
for help on using the changeset viewer.