示例#1
0
 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);
 }
示例#2
0
文件: Default.aspx.cs 项目: kyvkri/MG
 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;
     }
 }
示例#3
0
 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);
 }
示例#4
0
    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);
    }
示例#5
0
 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;
 }
示例#6
0
 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;
 }
示例#7
0
    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);
    }
示例#8
0
    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();

        }
    }
示例#9
0
    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();

        }
    }
示例#10
0
    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);
    }
示例#11
0
    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();

        }
    }