Changeset 8093 for trunk/sources/HeuristicLab.Problems.LinearAssignment.Views/3.3/LAPAssignmentView.cs
- Timestamp:
- 06/24/12 17:57:51 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.