104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Design
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Support for SuperTabStrip tabs design-time editor
 | |
|     /// </summary>
 | |
|     public class SuperTabControlTabsEditor : SuperTabStripTabsEditor
 | |
|     {
 | |
|         public SuperTabControlTabsEditor(Type type)
 | |
|             : base(type)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         #region CreateInstance
 | |
| 
 | |
|         protected override object CreateInstance(Type itemType)
 | |
|         {
 | |
|             object item = base.CreateInstance(itemType);
 | |
| 
 | |
|             if (item is SuperTabItem)
 | |
|             {
 | |
|                 SuperTabItem tab = item as SuperTabItem;
 | |
| 
 | |
|                 tab.Text = String.IsNullOrEmpty(tab.Name) ? "My Tab" : tab.Name;
 | |
| 
 | |
|                 CreateNewTab(tab);
 | |
|             }
 | |
|             else if (item is ButtonItem)
 | |
|             {
 | |
|                 ButtonItem bi = item as ButtonItem;
 | |
| 
 | |
|                 bi.Text = String.IsNullOrEmpty(bi.Name) ? "My Button" : bi.Name;
 | |
|             }
 | |
| 
 | |
|             return (item);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region CreateNewTab
 | |
| 
 | |
|         private void CreateNewTab(SuperTabItem tab)
 | |
|         {
 | |
|             IDesignerHost dh = (IDesignerHost)GetService(typeof(IDesignerHost));
 | |
|             SuperTabControl tabControl = Context.Instance as SuperTabControl;
 | |
| 
 | |
|             if (dh == null || tabControl == null)
 | |
|                 return;
 | |
| 
 | |
|             DesignerTransaction dt = dh.CreateTransaction();
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 IComponentChangeService change =
 | |
|                     GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
| 
 | |
|                 if (change != null)
 | |
|                     change.OnComponentChanging(Context.Container, null);
 | |
| 
 | |
|                 SuperTabControlPanel panel = dh.CreateComponent(typeof(SuperTabControlPanel)) as SuperTabControlPanel;
 | |
| 
 | |
|                 if (tab != null && panel != null)
 | |
|                 {
 | |
|                     tab.AttachedControl = panel;
 | |
|                     panel.TabItem = tab;
 | |
| 
 | |
|                     tabControl.Controls.Add(panel);
 | |
|                     tabControl.Tabs.Add(tab);
 | |
| 
 | |
|                     panel.Dock = DockStyle.Fill;
 | |
|                     panel.BringToFront();
 | |
| 
 | |
|                     tabControl.ApplyPanelStyle(panel);
 | |
| 
 | |
|                     tabControl.SelectedTab = tab;
 | |
|                 }
 | |
| 
 | |
|                 if (change != null)
 | |
|                     change.OnComponentChanged(Context.Container, null, null, null);
 | |
| 
 | |
|                 if (change != null)
 | |
|                 {
 | |
|                     change.OnComponentChanging(panel, null);
 | |
|                     change.OnComponentChanged(panel, null, null, null);
 | |
|                 }
 | |
|             }
 | |
|             catch
 | |
|             {
 | |
|                 dt.Cancel();
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 if (!dt.Canceled)
 | |
|                     dt.Commit();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| }
 |