Changeset 2838 for trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs
- Timestamp:
- 02/19/10 11:46:57 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs
r2818 r2838 29 29 namespace HeuristicLab.Core.Views { 30 30 public sealed partial class ViewHost : UserControl { 31 private Dictionary<Type, ToolStripMenuItem> typeMenuItemTable;32 33 public IEnumerable<Type> AvailableViewTypes {34 get { return typeMenuItemTable.Keys; }35 }36 37 31 private Type viewType; 38 32 public Type ViewType { … … 54 48 if (value != content) { 55 49 content = value; 50 viewContextMenuStrip.Item = content; 56 51 Initialize(); 57 52 } … … 60 55 61 56 public ViewHost() { 62 typeMenuItemTable = new Dictionary<Type, ToolStripMenuItem>();57 InitializeComponent(); 63 58 viewType = null; 64 59 content = null; 65 InitializeComponent();66 60 Initialize(); 67 61 } … … 70 64 viewsLabel.Enabled = false; 71 65 viewsLabel.Visible = false; 72 typeMenuItemTable.Clear(); 73 contextMenuStrip.Items.Clear(); 74 contextMenuStrip.Enabled = false; 66 viewContextMenuStrip.Enabled = false; 75 67 messageLabel.Visible = false; 68 76 69 if (viewPanel.Controls.Count > 0) viewPanel.Controls[0].Dispose(); 77 70 viewPanel.Controls.Clear(); … … 80 73 81 74 if (Content != null) { 82 var viewTypes = from t in MainFormManager.GetViewTypes(Content.GetType()) 83 orderby t.Name ascending 84 select t; 85 foreach (Type v in viewTypes) { 86 ToolStripMenuItem item = new ToolStripMenuItem(v.GetPrettyName()); 87 item.Name = v.FullName; 88 item.ToolTipText = v.GetPrettyName(true); 89 item.Tag = v; 90 contextMenuStrip.Items.Add(item); 91 typeMenuItemTable.Add(v, item); 92 } 93 if (contextMenuStrip.Items.Count == 0) { 75 if (viewContextMenuStrip.Items.Count == 0) { 94 76 messageLabel.Visible = true; 95 77 } else { 96 78 viewsLabel.Enabled = true; 97 79 viewsLabel.Visible = true; 98 contextMenuStrip.Enabled = true;80 viewContextMenuStrip.Enabled = true; 99 81 messageLabel.Visible = false; 100 82 } … … 102 84 if (!ViewCanShowContent(viewType, Content)) { 103 85 viewType = MainFormManager.GetDefaultViewType(Content.GetType()); 104 if ((viewType == null) && ( contextMenuStrip.Items.Count > 0)) // create first available view if default view is not available105 viewType = (Type) contextMenuStrip.Items[0].Tag;86 if ((viewType == null) && (viewContextMenuStrip.Items.Count > 0)) // create first available view if default view is not available 87 viewType = (Type)viewContextMenuStrip.Items[0].Tag; 106 88 } 107 89 UpdateView(); … … 121 103 Content.GetType().GetPrettyName())); 122 104 123 foreach (ToolStripMenuItem item in typeMenuItemTable.Values) { 124 item.Checked = false; 125 item.Enabled = true; 126 } 127 typeMenuItemTable[viewType].Checked = true; 128 typeMenuItemTable[viewType].Enabled = false; 129 105 UpdateActiveMenuItem(); 130 106 Control view = (Control)MainFormManager.CreateView(viewType, Content); 131 107 viewPanel.Controls.Add(view); … … 136 112 } 137 113 114 private void UpdateActiveMenuItem() { 115 foreach (KeyValuePair<Type, ToolStripMenuItem> item in viewContextMenuStrip.MenuItems) { 116 if (item.Key == viewType) { 117 item.Value.Checked = true; 118 item.Value.Enabled = false; 119 } else { 120 item.Value.Checked = false; 121 item.Value.Enabled = true; 122 } 123 } 124 } 125 138 126 private bool ViewCanShowContent(Type viewType, object content) { 139 127 if (content == null) // every view can display null … … 141 129 if (viewType == null) 142 130 return false; 143 return ContentAttribute.CanViewType(viewType, Content.GetType()) && typeMenuItemTable.ContainsKey(viewType);131 return ContentAttribute.CanViewType(viewType, Content.GetType()) && viewContextMenuStrip.MenuItems.Any(item => item.Key == viewType); 144 132 } 145 133 146 134 private void viewsLabel_DoubleClick(object sender, EventArgs e) { 147 MainFormManager.CreateView(view Panel.Tag.GetType(), Content).Show();135 MainFormManager.CreateView(viewType, Content).Show(); 148 136 } 149 private void contextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { 137 138 private void viewContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { 150 139 Type viewType = (Type)e.ClickedItem.Tag; 151 140 ViewType = viewType;
Note: See TracChangeset
for help on using the changeset viewer.