protected void AddKPIBox(KPIDashboardElement elem, WAFPanel container) { KPIBox kpiBox = new KPIBox(); kpiBox.Width = new Unit(33, UnitType.Percentage); kpiBox.Period = elem.Period; kpiBox.KPIClass = elem.KPIClass; kpiBox.Height = new Unit(110, UnitType.Pixel); container.Controls.Add(kpiBox); }
protected void Page_Load(object sender, EventArgs e) { ((WAF_Edit_Webshop_MasterPage)Master).ShopCreated += new EventHandler(Master_ShopCreated); // Master.ShopsDataBound += new EventHandler(Master_ShopsDataBound); if (WAFShopHelper.SiteHasShop(WAFContext.Request.SiteId)) { Shop shop = WAFContext.Session.GetContent<Shop>(WAFShopHelper.GetCurrentShopId()); List<DashboardBox> boxes = shop.DashboardBoxes.Get(); int count = 0; pnlBigBoxContainer.Visible = true; int rowCount = (boxes.Count + 2 - 1) / 2; int percent = 0; if (rowCount == 0) { percent = 100; } else if (rowCount == 1) { percent = 100; } else if (rowCount == 2){ percent = 50; }else if(rowCount == 3){ percent = 50; } foreach (DashboardBox box in boxes) { if (box != null) { if (box.UserControlUrl.Length > 0) { UserControl ctrl = (UserControl)Page.LoadControl("dashboard/" + box.UserControlUrl); WAFPanel pnl = new WAFPanel(); pnlSmallBoxContainer.Controls.Add(pnl); pnl.Controls.Add(ctrl); pnl.Height = new Unit(percent, UnitType.Percentage); pnl.Border = true; pnl.Text = box.Name; pnl.ScrollBars = ScrollBars.Auto; pnl.Margin = true; count++; if (count % 2 == 0) { pnl.Width = new Unit(49, UnitType.Percentage); } else { pnl.Width = new Unit(49, UnitType.Percentage); } } } } } else { pnlBigBoxContainer.Visible = false; } }
protected void AddTimeSeriesControl(TrendChartDashboardElement elem, WAFPanel container) { WAFPanel pnlTimeSeriesContainer = new WAFPanel(); pnlTimeSeriesContainer.Width = new Unit(98, UnitType.Percentage); pnlTimeSeriesContainer.Inline = true; pnlTimeSeriesContainer.Border = true; pnlTimeSeriesContainer.Text = Utils.GetFriendlyName(elem.TrendElementClass.Replace("TimeSeries", "") + " - " + WAFContext.Session.GetEnumName(elem.Period)); pnlTimeSeriesContainer.Height = new Unit(440); pnlTimeSeriesContainer.ScrollBars = ScrollBars.None; TimeSeriesChart timeSeriesChart = new TimeSeriesChart(); timeSeriesChart.Width = new Unit(870, UnitType.Pixel); timeSeriesChart.Period = elem.Period; timeSeriesChart.MinimumTickSize = WAF.Presentation.Web.Controls.Charts.TimeSeriesTickSize.Day; timeSeriesChart.TimeSeriesClass = elem.TrendElementClass; timeSeriesChart.Height = new Unit(400, UnitType.Pixel); pnlTimeSeriesContainer.Controls.Add(timeSeriesChart); container.Controls.Add(pnlTimeSeriesContainer); }
protected void AddMapControl(MapDashboardElement elem, WAFPanel container) { WAFPanel pnlMapContainer = new WAFPanel(); pnlMapContainer.Width = new Unit(98, UnitType.Percentage); pnlMapContainer.Inline = true; pnlMapContainer.Border = true; pnlMapContainer.Height = new Unit(475, UnitType.Pixel); pnlMapContainer.Text = Utils.GetFriendlyName(elem.MapElementClass.Replace("Map", "")); pnlMapContainer.ScrollBars = ScrollBars.None; AnalyticsMap mapCtrl = new AnalyticsMap(); mapCtrl.Width = new Unit(870, UnitType.Pixel); mapCtrl.Period = elem.Period; mapCtrl.MapClass = elem.MapElementClass; mapCtrl.Map = elem.Map; mapCtrl.ProjectionType = MapProjectionType.Mercator; mapCtrl.Height = new Unit(450, UnitType.Pixel); pnlMapContainer.Controls.Add(mapCtrl); container.Controls.Add(pnlMapContainer); }
protected WAFPanel GetSpacerPanel(int height) { WAFPanel spacerPnl = new WAFPanel(); spacerPnl.Width = new Unit(98, UnitType.Percentage); spacerPnl.Inline = true; spacerPnl.Border = false; spacerPnl.Height = new Unit(height, UnitType.Pixel); spacerPnl.ScrollBars = ScrollBars.None; return spacerPnl; }
protected WAFPanel GetContainer(bool border, string text) { WAFPanel containerPnl = new WAFPanel(); containerPnl.Width = new Unit(98, UnitType.Percentage); containerPnl.Inline = true; containerPnl.Border = border; containerPnl.Text = text; containerPnl.ScrollBars = ScrollBars.None; return containerPnl; }
protected override void OnInit(EventArgs e) { _treeControl = new TemplateTree(); _treeControl.RootFolder = WAFContext.PathFromRootToAppFolder; _treeControl.AllowSelect = true; _treeControl.AllowDrag = false; _treeControl.DblClick += new EventHandler(_treeControl_DblClick); pnlLeft.Controls.Add(_treeControl); cntFrm.CommandClick += new EventHandler<CommandArgument>(cntFrm_CommandClick); WAFPanel p1 = new WAFPanel(); p1.Width = Unit.Percentage(100); p1.Height = Unit.Pixel(26); p1.Border = false; p1.Margin = true; MainButton saveAspx = new MainButton(); saveAspx.Click += new EventHandler(saveAspx_Click); saveAspx.Text = Local.Text("Web.WAF.Edit.Templates.TemplatesSaveChanges"); p1.Controls.Add(saveAspx); tabASPXFile.Controls.Add(p1); _aspxFileEditor = new CodeEditor(); _aspxFileEditor.Width = Unit.Percentage(100); _aspxFileEditor.Height = Unit.Percentage(100); _aspxFileEditor.Language = "html"; tabASPXFile.Controls.Add(_aspxFileEditor); WAFPanel p2 = new WAFPanel(); p2.Width = Unit.Percentage(100); p2.Height = Unit.Pixel(26); p2.Border = false; p2.Margin = true; MainButton saveCodebehind = new MainButton(); saveCodebehind.Click += new EventHandler(saveCodebehind_Click); saveCodebehind.Text = Local.Text("Web.WAF.Edit.Templates.TemplatesSaveChanges"); _codebehindEditor = new CodeEditor(); _codebehindEditor.Width = Unit.Percentage(100); _codebehindEditor.Height = Unit.Percentage(100); _codebehindEditor.Language = "cs"; tabCodebindFile.Controls.Add(p2); tabCodebindFile.Controls.Add(_codebehindEditor); p2.Controls.Add(saveCodebehind); TemplatesMaster.ViewChanged += new EventHandler<MainMenuItem>(TemplatesMaster_ViewChanged); btnCreateTemplate.Click += new EventHandler(btnCreateTemplate_Click); if (!IsPostBack && Request["Open"] != null) { CKeyNLR key = new CKeyNLR(Request["Open"]); cntFrm.ContentKey = key; tabbedView.Visible = true; Template s = WAFContext.Session.GetContent<Template>(key); string treeKey = s.Filepath + "." + s.NodeId + "."; if (WAFRuntime.FileSystem.FileExists(WAFContext.PathFromRootToAppFolder + s.Filepath)) { treeKey += "match#"; } else { treeKey += "onlyContent#"; } _treeControl.SetSelected(treeKey); _treeControl.Refresh(); updateCodeEditors(s.Filepath); cntFrm.Refresh(); } base.OnInit(e); }
protected override void CreateChildControls() { Controls.Clear(); PropertyPanel pp; if (currentDef != null) { // Buttons WAFPanel pnlButtons = new WAFPanel(); pnlButtons.Height = Unit.Pixel(25); pnlButtons.Border = false; Controls.Add(pnlButtons); MainButton btnSave = new MainButton(); btnSave.Text = "Save"; btnSave.Click += new EventHandler(btnSave_Click); pnlButtons.Controls.Add(btnSave); MainButton btnChange = new MainButton(); btnChange.Text = "Change LCID..."; pnlButtons.Controls.Add(btnChange); btnChange.WorkflowMethodCompleted += new EventHandler<WorkflowMethodArgs>(btnChange_WorkflowMethodCompleted); btnChange.SetWorkflowMethod<changeLCID>(this.LCID, null, true, false, true, null); MainButton btnChangeFlag = new MainButton(); btnChangeFlag.Text = "Change icon..."; pnlButtons.Controls.Add(btnChangeFlag); btnChangeFlag.SetWorkflowMethod<changeIcon>(new object[] { this.LCID, WAFContext.PathFromRootToFolderSkins + "Default\\Flags\\" }); MainButton btnDelete = new MainButton(); btnDelete.Text = "Delete..."; btnDelete.Click += new EventHandler(btnDelete_Click); btnDelete.Confirm = true; btnDelete.ConfirmQuestion = "Permanently delete all \"" + currentDef.Name + "\" content?"; pnlButtons.Controls.Add(btnDelete); // Name txtName = new TextBox(); txtName.Width = Unit.Percentage(100); txtName.Font.Size = new FontUnit(14, UnitType.Pixel); txtName.Text = currentDef.Name; StringBuilder htmlIcon = new StringBuilder(); htmlIcon.Append("<img style=\"float:left; margin:5px 2px; 0px 0px;\" src=\""); htmlIcon.Append(WAFContext.GetUrlFromHostToCultureFlag(LCID)); htmlIcon.Append("\" height=\"11\" width=\"16\" />"); PropertyPanel ppCodeName = new PropertyPanel(txtName, PropertyLayout.TwoColumns, htmlIcon.ToString(), null); ppCodeName.TitleWidth = Unit.Pixel(50); ppCodeName.Height = Unit.Pixel(45); ppCodeName.ShowAdvancedFunctions = false; Controls.Add(ppCodeName); ppCodeName.Border = true; ppCodeName.MarginTop = true; TabbedView tab = new TabbedView(); this.Controls.Add(tab); tab.PostOnViewChange = false; tab.MarginTop = true; tab.Height = Unit.Percentage(100); tab.Width = Unit.Percentage(100); TabView general = tab.CreateAndAddView("General", "General"); general.Height = Unit.Percentage(100); general.Width = Unit.Percentage(100); // LCID txtLCID = new TextBox(); txtLCID.Enabled = false; txtLCID.Width = Unit.Pixel(100); txtLCID.Text = currentDef.LCID.ToString(); txtLCID.EnableViewState = false; pp = new PropertyPanel(txtLCID, PropertyLayout.TwoColumns, "LCID", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(txtLCID); general.Controls.Add(pp); CultureInfo ci = null; try { ci = CultureInfo.GetCultureInfo(currentDef.LCID); } catch { } // LCID Name TextBox txtLCIDName = new TextBox(); txtLCIDName.Enabled = false; txtLCIDName.Width = Unit.Pixel(200); txtLCIDName.Text = ci == null ? "(Unknown)" : ci.Name; txtLCIDName.EnableViewState = false; pp = new PropertyPanel(txtLCIDName, PropertyLayout.TwoColumns, "LCID Name", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(txtLCIDName); general.Controls.Add(pp); // LCID Native name TextBox txtLCIDNativeName = new TextBox(); txtLCIDNativeName.Enabled = false; txtLCIDNativeName.Width = Unit.Pixel(200); txtLCIDNativeName.Text = ci == null ? "(Unknown)" : ci.NativeName; txtLCIDNativeName.EnableViewState = false; pp = new PropertyPanel(txtLCIDNativeName, PropertyLayout.TwoColumns, "LCID Native Name", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(txtLCIDNativeName); general.Controls.Add(pp); //// Access group ID //chkAccessGroupId = new TextBox(); //chkAccessGroupId.Text = currentDef.Settings.AccessGroupId.ToString(); //pp = new PropertyPanel(chkAccessGroupId, PropertyLayout.TwoColumns, "Access group id", null); //pp.ShowAdvancedFunctions = false; //pp.Controls.Add(chkAccessGroupId); //general.Controls.Add(pp); TabView tNames = tab.CreateAndAddView("Names", "Names"); //// Language versions //langVersions = new LanguageVersions(); //langVersions.SetData(currentDef.NameByLCID, currentDef.DescriptionByLCID); //PropertyPanel ppLangVersion = new PropertyPanel(langVersions, PropertyLayout.NoTitle, "Friendly names and descriptions:", null); //langVersions.Enabled = writeAccess; //ppLangVersion.Layout = PropertyLayout.NoTitle; //tNames.Controls.Add(ppLangVersion); base.CreateChildControls(); } }
protected override void CreateChildControls() { Controls.Clear(); if (currentDef != null) { // Buttons WAFPanel pnlButtons = new WAFPanel(); pnlButtons.Height = Unit.Pixel(25); pnlButtons.Border = false; if (writeAccess || currentDef.IsChangeDef) { MainButton btnSave = new MainButton(); btnSave.Text = "Save"; btnSave.Click += new EventHandler(btnSave_Click); pnlButtons.Controls.Add(btnSave); MainButton btnEditAsTextFile = new MainButton(); btnEditAsTextFile.Text = "Edit values as text table..."; btnEditAsTextFile.Click += new EventHandler(btnEditAsTextFile_Click); pnlButtons.Controls.Add(btnEditAsTextFile); if (DefinitionType == DefinitionType.Local) { MainButton btnDelete = new MainButton(); btnDelete.Confirm = true; if (currentDef.IsChangeDef) { btnDelete.Text = "Delete enumeration changes..."; btnDelete.ConfirmQuestion = "Delete changes to native enumeration \"" + bestDef.CodeName + "\"?"; } else { btnDelete.ConfirmQuestion = "Delete enumeration \"" + currentDef.CodeName + "\"?"; btnDelete.Text = "Delete enumeration..."; } btnDelete.Click += new EventHandler(btnDelete_Click); pnlButtons.Controls.Add(btnDelete); } } if (DefinitionType == DefinitionType.Native) { //MainButton btnNewChangeEnumeration = new MainButton(); //btnNewChangeEnumeration.Text = "Change"; //btnNewChangeEnumeration.Click += new EventHandler(btnNewChangeEnumeration_Click); //pnlButtons.Controls.Add(btnNewChangeEnumeration); } Controls.Add(pnlButtons); // Code name txtCodeName = new TextBox(); txtCodeName.Width = Unit.Percentage(100); txtCodeName.Font.Size = new FontUnit(14, UnitType.Pixel); txtCodeName.Text = bestDef.CodeName; txtCodeName.Enabled = !currentDef.IsChangeDef && writeAccess; StringBuilder htmlIcon = new StringBuilder(); htmlIcon.Append("<img style=\"float:left; margin:5px 2px; 0px 0px;\" src=\""); htmlIcon.Append(IconUrl); htmlIcon.Append("\" height=\"16\" width=\"16\" />"); PropertyPanel ppCodeName = new PropertyPanel(txtCodeName, PropertyLayout.TwoColumns, htmlIcon.ToString(), null); ppCodeName.TitleWidth = Unit.Pixel(50); ppCodeName.Height = Unit.Pixel(45); ppCodeName.ShowAdvancedFunctions = false; Controls.Add(ppCodeName); ppCodeName.Border = true; ppCodeName.MarginTop = true; TabbedView tab = new TabbedView(); this.Controls.Add(tab); tab.PostOnViewChange = false; tab.MarginTop = true; tab.Height = Unit.Percentage(100); tab.Width = Unit.Percentage(100); TabView general = tab.CreateAndAddView("General", "General"); // Namespace txtNameSpace = new TextBox(); txtNameSpace.Width = Unit.Percentage(100); txtNameSpace.Enabled = !currentDef.IsChangeDef && writeAccess; txtNameSpace.Text = bestDef.Namespace; PropertyPanel ppNameSpace = new PropertyPanel(txtNameSpace, PropertyLayout.TwoColumns, "Namespace", null); ppNameSpace.ShowAdvancedFunctions = false; general.Controls.Add(ppNameSpace); TabView tNames = tab.CreateAndAddView("Names", "Names"); // Language versions langVersions = new LanguageVersions(); langVersions.SetData(currentDef.NameByLCID, currentDef.DescriptionByLCID); PropertyPanel ppLangVersion = new PropertyPanel(langVersions, PropertyLayout.NoTitle, "Friendly names and descriptions:", null); langVersions.Enabled = writeAccess; ppLangVersion.Layout = PropertyLayout.NoTitle; tNames.Controls.Add(ppLangVersion); TabView tValues = tab.CreateAndAddView("Values", "Values"); WAFPanel p = new WAFPanel(); p.Width = Unit.Percentage(100); p.Height = Unit.Percentage(100); p.Border = false; p.ScrollBars = ScrollBars.Auto; enumControls = new List<EnumerationValueControl>(); foreach (var v in bestDef.Values.Values) { var c = new EnumerationValueControl(); c.SetData(v.Value, v.CodeName, v.NameByLCID, v.DescriptionByLCID, writeAccess); enumControls.Add(c); p.Controls.Add(c); } tValues.Controls.Add(p); _btnAddValue = new LightButton(); _btnAddValue.Text = "Add enumeration value"; _btnAddValue.Enabled = writeAccess; if (writeAccess) _btnAddValue.Click += new EventHandler(btnAddValue_Click); p.Controls.Add(_btnAddValue); base.CreateChildControls(); } }
protected override void OnInit(EventArgs e) { _treeControl = new StyleSheetTree(); _treeControl.RootFolder = WAFContext.PathFromRootToAppFolder; _treeControl.AllowSelect = true; _treeControl.AllowDrag = false; _treeControl.DblClick += new EventHandler(_treeControl_DblClick); pnlLeft.Controls.Add(_treeControl); TemplatesMaster.ViewChanged += new EventHandler<MainMenuItem>(TemplatesMaster_ViewChanged); cntFrm.CommandClick += new EventHandler<CommandArgument>(cntFrm_CommandClick); WAFPanel p1 = new WAFPanel(); p1.Width = Unit.Percentage(100); p1.Height = Unit.Pixel(26); p1.Border = false; p1.Margin = true; MainButton saveCss = new MainButton(); saveCss.Click += new EventHandler(saveCss_Click); saveCss.Text = "Save changes"; _fileEditor = new CodeEditor(); _fileEditor.Width = Unit.Percentage(100); _fileEditor.Height = Unit.Percentage(100); _fileEditor.Language = "css"; tabFile.Controls.Add(p1); tabFile.Controls.Add(_fileEditor); p1.Controls.Add(saveCss); btnCreateStylesheet.Click += new EventHandler(btnCreateStylesheet_Click); if (!IsPostBack && Request["Open"] != null) { CKeyNLR key = new CKeyNLR(Request["Open"]); cntFrm.ContentKey = key; tabbedView.Visible = true; Stylesheet s = WAFContext.Session.GetContent<Stylesheet>(key); string treeKey = s.Filepath + "." + s.NodeId + "."; if (WAFRuntime.FileSystem.FileExists(WAFContext.PathFromRootToAppFolder + s.Filepath)) { treeKey += "match#"; } else { treeKey += "onlyContent#"; } _treeControl.SetSelected(treeKey); _treeControl.Refresh(); updateCodeEditors(s.Filepath); cntFrm.Refresh(); } base.OnInit(e); }
protected override void CreateChildControls() { Controls.Clear(); PropertyPanel pp; if (currentDef != null) { // Buttons WAFPanel pnlButtons = new WAFPanel(); pnlButtons.Height = Unit.Pixel(25); pnlButtons.Border = false; if (writeAccess) { MainButton btnSave = new MainButton(); btnSave.Text = "Save"; btnSave.Click += new EventHandler(btnSave_Click); pnlButtons.Controls.Add(btnSave); if (DefinitionType == DefinitionType.Local) { MainButton btnDelete = new MainButton(); btnDelete.Confirm = true; btnDelete.ConfirmQuestion = "Delete property group \"" + currentDef.Name + "\"?"; btnDelete.Text = "Delete property group..."; btnDelete.Click += new EventHandler(btnDelete_Click); pnlButtons.Controls.Add(btnDelete); } } if (DefinitionType == DefinitionType.Native) { //MainButton btnNewChangePropertyGroup = new MainButton(); //btnNewChangePropertyGroup.Text = "Change"; //btnNewChangePropertyGroup.Click += new EventHandler(btnNewChangePropertyGroup_Click); //pnlButtons.Controls.Add(btnNewChangePropertyGroup); } Controls.Add(pnlButtons); // Code name txtName = new TextBox(); txtName.Width = Unit.Percentage(100); txtName.Font.Size = new FontUnit(14, UnitType.Pixel); txtName.Text = currentDef.Name; txtName.Enabled = writeAccess; StringBuilder htmlIcon = new StringBuilder(); htmlIcon.Append("<img style=\"float:left; margin:5px 2px; 0px 0px;\" src=\""); htmlIcon.Append(IconUrl + currentDef.GroupType.ToString() + ".png"); htmlIcon.Append("\" height=\"16\" width=\"16\" />"); PropertyPanel ppCodeName = new PropertyPanel(txtName, PropertyLayout.TwoColumns, htmlIcon.ToString(), null); ppCodeName.TitleWidth = Unit.Pixel(50); ppCodeName.Height = Unit.Pixel(45); ppCodeName.ShowAdvancedFunctions = false; Controls.Add(ppCodeName); ppCodeName.Border = true; ppCodeName.MarginTop = true; TabbedView tab = new TabbedView(); this.Controls.Add(tab); tab.PostOnViewChange = false; tab.MarginTop = true; tab.Height = Unit.Percentage(100); tab.Width = Unit.Percentage(100); TabView general = tab.CreateAndAddView("General", "General"); general.Height = Unit.Percentage(100); general.Width = Unit.Percentage(100); // Group type lstType = new RadioButtonList(); lstType.Items.Add(new ListItem("Panel", PropertyGroupType.Panel.ToString())); lstType.Items.Add(new ListItem("Tab panel", PropertyGroupType.TabPanel.ToString())); lstType.Items.Add(new ListItem("Tab container", PropertyGroupType.TabStrip.ToString())); lstType.Width = Unit.Percentage(100); lstType.SelectedValue = currentDef.GroupType.ToString(); pp = new PropertyPanel(lstType, PropertyLayout.TwoColumns, "Type", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(lstType); general.Controls.Add(pp); // Height txtHeight = new TextBox(); txtHeight.Text = currentDef.Height.IsEmpty ? "" : currentDef.Height.ToString(); pp = new PropertyPanel(txtHeight, PropertyLayout.TwoColumns, "Height", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(txtHeight); general.Controls.Add(pp); // Width txtWidth = new TextBox(); txtWidth.Text = currentDef.Width.IsEmpty ? "" : currentDef.Width.ToString(); pp = new PropertyPanel(txtWidth, PropertyLayout.TwoColumns, "Width", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(txtWidth); general.Controls.Add(pp); // Border chkBorder = new CheckBox(); chkBorder.Checked = currentDef.Settings.Border; pp = new PropertyPanel(chkBorder, PropertyLayout.TwoColumns, "Border", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(chkBorder); general.Controls.Add(pp); // Show title chkShowTitle = new CheckBox(); chkShowTitle.Checked = currentDef.Settings.ShowTitle; pp = new PropertyPanel(chkShowTitle, PropertyLayout.TwoColumns, "Show title", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(chkShowTitle); general.Controls.Add(pp); // Inline chkInline = new CheckBox(); chkInline.Checked = currentDef.Settings.Inline; pp = new PropertyPanel(chkInline, PropertyLayout.TwoColumns, "Inline", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(chkInline); general.Controls.Add(pp); // Access group ID chkAccessGroupId = new TextBox(); chkAccessGroupId.Text = currentDef.Settings.AccessGroupId.ToString(); pp = new PropertyPanel(chkAccessGroupId, PropertyLayout.TwoColumns, "Access group id", null); pp.ShowAdvancedFunctions = false; pp.Controls.Add(chkAccessGroupId); general.Controls.Add(pp); TabView tNames = tab.CreateAndAddView("Names", "Names"); // Language versions langVersions = new LanguageVersions(); langVersions.SetData(currentDef.NameByLCID, currentDef.DescriptionByLCID); PropertyPanel ppLangVersion = new PropertyPanel(langVersions, PropertyLayout.NoTitle, "Friendly names and descriptions:", null); langVersions.Enabled = writeAccess; ppLangVersion.Layout = PropertyLayout.NoTitle; tNames.Controls.Add(ppLangVersion); base.CreateChildControls(); } }