Ejemplo n.º 1
0
        private string getGroupField(LabelField field, string format, AttendanceGroup group)
        {
            if (group == null)
            {
                return("");
            }

            switch (field)
            {
            case LabelField.GROUP_NAME:
                return(string.Format(format, group.org.OrganizationName));

            case LabelField.GROUP_LOCATION:
                return(string.Format(format, group.org.Location));

            case LabelField.GROUP_SUBGROUPS:
                return(group.subgroupName);

            case LabelField.ATTENDANCE_DATE_TIME:
                return(string.Format(format, group.meeting.MeetingDate));

            case LabelField.ATTENDANCE_PAGER:
                return("");

            case LabelField.ATTENDANCE_NOTES:
                return("");

            default:
                return("");
            }
        }
Ejemplo n.º 2
0
        private string getGroupField(AttendanceCacheSet cacheSet, LabelField field, string format, AttendanceGroup group)
        {
            if (group == null)
            {
                return("");
            }

            Organization org;
            Meeting      meeting;

            switch (field)
            {
            case LabelField.GROUP_NAME:
                org = cacheSet.getOrganization(group.groupID);

                return(org == null ? "" : string.Format(format, org.OrganizationName));

            case LabelField.GROUP_LOCATION:
                org = cacheSet.getOrganization(group.groupID);

                return(org == null ? "" : string.Format(format, org.Location));

            case LabelField.GROUP_SUBGROUPS:
                return(group.subgroupName);

            case LabelField.GROUP_LOCATION_AND_SUBGROUP:
                org = cacheSet.getOrganization(group.groupID);
                List <string> groupItems = new List <string>();
                if (org != null && org.Location.HasValue())
                {
                    groupItems.Add(org.Location);
                }
                if (group.subgroupName.HasValue())
                {
                    groupItems.Add(group.subgroupName);
                }
                return(string.Format(format, string.Join(" - ", groupItems)));

            case LabelField.GROUP_NAME_AND_TIME:
                org     = cacheSet.getOrganization(group.groupID);
                meeting = cacheSet.getMeeting(group.groupID, group.datetime);

                string orgName = org == null ? "" : org.OrganizationName;
                return(string.Format(format, orgName, meeting.MeetingDate));

            case LabelField.ATTENDANCE_DATE_TIME:
                meeting = cacheSet.getMeeting(group.groupID, group.datetime);

                return(string.Format(format, meeting.MeetingDate));

            case LabelField.ATTENDANCE_PAGER:
                return("");

            case LabelField.ATTENDANCE_NOTES:
                return("");

            default:
                return("");
            }
        }
 private Field BuildField(string rawField)
 {
     Match fieldMatch = _fieldRegex.Match(rawField);
     if (fieldMatch.Success)
     {
         DataField field = new DataField
         {
             Name = fieldMatch.Groups["Name"].Value,
             X = Convert.ToInt32(fieldMatch.Groups["XPos"].Value),
             Y = Convert.ToInt32(fieldMatch.Groups["YPos"].Value),
             Width = Convert.ToInt32(fieldMatch.Groups["Length"].Value),
             Type = fieldMatch.Groups["Format"].Value
         };
         if (fieldMatch.Groups["PossibleValues"].Success && !string.IsNullOrEmpty(fieldMatch.Groups["PossibleValues"].Value))
             field.PossibleValues = new List<string>(fieldMatch.Groups["PossibleValues"].Value.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries));
         return field;
     }
     else
     {
         Match labelMatch = _labelRegex.Match(rawField);
         if (labelMatch.Success)
         {
             LabelField field = new LabelField
             {
                 Name = labelMatch.Groups["Name"].Value,
                 X = Convert.ToInt32(labelMatch.Groups["XPos"].Value),
                 Y = Convert.ToInt32(labelMatch.Groups["YPos"].Value),
                 Width = Convert.ToInt32(labelMatch.Groups["Length"].Value)
             };
             return field;
         }
     }
     return null;
 }
Ejemplo n.º 4
0
        private string getParentsField(AttendanceCacheSet cacheSet, LabelField field, string format, Attendance attendance)
        {
            CmsData.Person person = cacheSet.getPerson(attendance.peopleID);

            if (person == null)
            {
                return("");
            }

            CmsData.Family family = cacheSet.getFamily(person.FamilyId);

            if (family == null)
            {
                return("");
            }

            CmsData.Person head   = cacheSet.getPerson(family.HeadOfHouseholdId ?? 0);
            CmsData.Person spouse = cacheSet.getPerson(family.HeadOfHouseholdSpouseId ?? 0);

            if (head == null && spouse == null)
            {
                return("");
            }

            switch (field)
            {
            case LabelField.PARENTS_NAME:
                List <string> names = new List <string>();

                if (head != null)
                {
                    names.Add(head.FirstName);
                }

                if (spouse != null)
                {
                    names.Add(spouse.FirstName);
                }

                return(string.Format(format, string.Join(", ", names)));

            case LabelField.PARENTS_PHONE:
                List <string> phones = new List <string>();

                if (head != null && !head.CellPhone.IsEmpty())
                {
                    phones.Add(head.FirstName + ": " + head.CellPhone);
                }

                if (spouse != null && !spouse.CellPhone.IsEmpty())
                {
                    phones.Add(spouse.FirstName + ": " + spouse.CellPhone);
                }

                return(string.Format(format, string.Join(", ", phones)));

            default:
                return("");
            }
        }
Ejemplo n.º 5
0
        private string getPersonField(AttendanceCacheSet cacheSet, LabelField field, string format, Attendance attendance)
        {
            CmsData.Person person = cacheSet.getPerson(attendance.peopleID);

            if (person == null)
            {
                return("");
            }

            switch (field)
            {
            case LabelField.PERSON_SECURITY_CODE:
                return(string.Format(format, cacheSet.securityCode));

            case LabelField.PERSON_FIRST_NAME:
                string firstname = person.PreferredName;
                return(string.Format(format, firstname));

            case LabelField.PERSON_LAST_NAME:
                return(string.Format(format, person.LastName));

            case LabelField.PERSON_ALLERGIES:
                return(string.Format(format, person.GetRecReg().MedicalDescription));

            case LabelField.PERSON_INFO:
                string allergies = person.GetRecReg().MedicalDescription.IsEmpty() ? "" : "A";
                string custody   = person.CustodyIssue.HasValue && person.CustodyIssue.Value ? "C" : "";
                string transport = person.OkTransport.HasValue && person.OkTransport.Value ? "T" : "";

                return(string.Format(format, allergies, custody, transport));

            case LabelField.PERSON_MEMBER_GUEST:
                string member = person.MemberStatus.Member ? "Member" : "";
                string guest  = person.MemberStatus.Member ? "" : "Guest";

                return(string.Format(format, member, guest));

            case LabelField.PERSON_FULL_NAME:
                return(string.Format(format, person.PreferredName, person.LastName));

            case LabelField.PERSON_DOB:
                return(string.Format(format, person.BirthDate));

            case LabelField.PERSON_EMERGENCY_NAME:
                return(string.Format(format, person.GetRecReg().Emcontact));

            case LabelField.PERSON_EMERGENCY_PHONE:
                return(string.Format(format, person.GetRecReg().Emphone.FmtFone()));

            case LabelField.PERSON_SCHOOL:
                return(string.Format(format, person.SchoolOther));

            case LabelField.PERSON_GRADE:
                return(string.Format(format, person.Grade));

            default:
                return("");
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Constructor for Label Field Definition
 /// </summary>
 /// <param name="frm">The main form</param>
 /// <param name="field">The label field</param>
 public LabelFieldDefinition(MainForm frm, LabelField field) : base(frm)
 {
     InitializeComponent();
     this.txtPrompt.AcceptsReturn = true;
     this.txtPrompt.AcceptsTab    = true;
     this.mode  = FormMode.Edit;
     this.field = field;
     this.page  = field.Page;
     LoadFormData();
 }
Ejemplo n.º 7
0
        private void CreateUI()
        {
            _Frame     = new Skill.Framework.UI.Frame("Frame");
            _Panel     = new Skill.Framework.UI.StackPanel();
            _BtnUpdate = new Button()
            {
                Height = 20, Margin = new Skill.Framework.UI.Thickness(0, 0, 0, 4)
            }; _BtnUpdate.Content.text = "Count";
            _LblCount             = new LabelField(); _LblCount.Label.text = "Count";
            _LblCount.Label2.text = _ChildCounter.Count.ToString();

            _Panel.Controls.Add(_LblCount);
            _Panel.Controls.Add(_BtnUpdate);

            _Frame.Grid.Controls.Add(_Panel);
            _BtnUpdate.Click += _BtnUpdate_Click;
        }
Ejemplo n.º 8
0
        private List <Control> GetControls(LabelField field, Size canvasSize)
        {
            DragableLabel label = new DragableLabel();

            label.Width = defaultControlWidth;
            SetControlProperties(label, field, canvasSize);
            label.Text = field.PromptText.Replace("\t", "    ");

            if (field.Page.FlipLabelColor)
            {
                label.ForeColor = Color.White;
            }

            List <Control> controls = new List <Control>();

            controls.Add(label);
            return(controls);
        }
Ejemplo n.º 9
0
        private static LabelField ElementToLabelField(XmlElement fieldElm, string fieldId, string fieldName)
        {
            if (fieldElm == null)
            {
                return(null);
            }
            LabelField labelField = (LabelField)SchemaFactory.CreateField(FieldTypeEnum.LABEL);

            labelField.Id   = fieldId;
            labelField.Name = fieldName;
            //rules
            XmlElement rulesEle = XmlUtils.GetChildElement(fieldElm, "rules");

            if (rulesEle != null)
            {
                List <XmlElement> ruleEleList = XmlUtils.GetChildElements(rulesEle, "rule");
                foreach (XmlElement ruleEle in ruleEleList)
                {
                    Rule rule = ElementToRule(ruleEle, labelField.Id);
                    labelField.Add(rule);
                }
            }
            //property
            XmlElement propertiesEle = XmlUtils.GetChildElement(fieldElm, "properties");

            if (propertiesEle != null)
            {
                List <XmlElement> propertyEleList = XmlUtils.GetChildElements(propertiesEle, "property");
                foreach (XmlElement propertyEle in propertyEleList)
                {
                    Property.Property property = ElementToProperty(propertyEle, labelField.Id);
                    labelField.Add(property);
                }
            }
            //labelGroup
            XmlElement labelGroupEle = XmlUtils.GetChildElement(fieldElm, "label-group");

            if (labelGroupEle != null)
            {
                LabelGroup labelGroup = ElementToLabelGroup(labelGroupEle, fieldId);
                labelField.SetLabelGroup(labelGroup);
            }
            return(labelField);
        }
Ejemplo n.º 10
0
        private TableRow SetDataLabelsRow(int r, DataRow dr)
        {
            TableRow tr = new TableRow();
            Field    f;

            for (int c = 0; c < dr.ItemArray.Length; c++)
            {
                if (Columns[c].ReadOnly)
                {
                    f = new LabelField(dr.ItemArray[c].ToString().Trim());
                }
                else
                {
                    f = new TextBoxField(ID + "-r" + r + "c" + c, "dbfieldid", "DGCellTB", dr.ItemArray[c].ToString().Trim());
                }
                tr.AddColumnCell(f);
            }
            return(tr);
        }
        void ReleaseDesignerOutlets()
        {
            if (Button != null)
            {
                Button.Dispose();
                Button = null;
            }

            if (TextField != null)
            {
                TextField.Dispose();
                TextField = null;
            }

            if (LabelField != null)
            {
                LabelField.Dispose();
                LabelField = null;
            }
        }
Ejemplo n.º 12
0
        public string getField(LabelField field, string format, Attendance attendance, AttendanceGroup group)
        {
            switch (field.category())
            {
            case LabelFieldAttribute.CATEGORY_UNUSED:
                return("");

            case LabelFieldAttribute.CATEGORY_PERSON:
                return(getPersonField(field, format, attendance));

            case LabelFieldAttribute.CATEGORY_PARENTS:
                return(getParentsField(field, format, attendance));

            case LabelFieldAttribute.CATEGORY_GROUP:
                return(getGroupField(field, format, group));

            default:
                return("");
            }
        }
Ejemplo n.º 13
0
        private string getParentsField(LabelField field, string format, Attendance attendance)
        {
            if (attendance.head == null && attendance.spouse == null)
            {
                return("");
            }

            switch (field)
            {
            case LabelField.PARENTS_NAME:
                List <string> names = new List <string>();

                if (attendance.head != null)
                {
                    names.Add(attendance.head.FirstName);
                }
                if (attendance.spouse != null)
                {
                    names.Add(attendance.spouse.FirstName);
                }

                return(string.Format(format, string.Join(", ", names)));

            case LabelField.PARENTS_PHONE:
                List <string> phones = new List <string>();

                if (attendance.head != null && !attendance.head.CellPhone.IsEmpty())
                {
                    phones.Add(attendance.head.FirstName + ": " + attendance.head.CellPhone);
                }
                if (attendance.spouse != null && !attendance.spouse.CellPhone.IsEmpty())
                {
                    phones.Add(attendance.spouse.FirstName + ": " + attendance.spouse.CellPhone);
                }

                return(string.Format(format, string.Join(", ", phones)));

            default:
                return("");
            }
        }
Ejemplo n.º 14
0
        private string getPersonField(AttendanceCacheSet cacheSet, LabelField field, string format, Attendance attendance)
        {
            CmsData.Person person = cacheSet.getPerson(attendance.peopleID);

            if (person == null)
            {
                return("");
            }

            switch (field)
            {
            case LabelField.PERSON_SECURITY_CODE:
                return(string.Format(format, cacheSet.securityCode));

            case LabelField.PERSON_FIRST_NAME:
                return(string.Format(format, person.FirstName));

            case LabelField.PERSON_LAST_NAME:
                return(string.Format(format, person.LastName));

            case LabelField.PERSON_ALLERGIES:
                return(string.Format(format, person.GetRecReg().MedicalDescription));

            case LabelField.PERSON_INFO:
                string allergies = person.GetRecReg().MedicalDescription.IsEmpty() ? "" : "A";
                string custody   = person.CustodyIssue.HasValue && person.CustodyIssue.Value ? "C" : "";
                string transport = person.OkTransport.HasValue && person.OkTransport.Value ? "T" : "";

                return(string.Format(format, allergies, custody, transport));

            case LabelField.PERSON_MEMBER_GUEST:
                string member = person.MemberStatus.Member ? "Member" : "";
                string guest  = person.MemberStatus.Member ? "" : "Guest";

                return(string.Format(format, member, guest));

            default:
                return("");
            }
        }
Ejemplo n.º 15
0
        private string getGroupField(AttendanceCacheSet cacheSet, LabelField field, string format, AttendanceGroup group)
        {
            if (group == null)
            {
                return("");
            }

            Organization org;
            Meeting      meeting;

            switch (field)
            {
            case LabelField.GROUP_NAME:
                org = cacheSet.getOrganization(group.groupID);

                return(org == null ? "" : string.Format(format, org.OrganizationName));

            case LabelField.GROUP_LOCATION:
                org = cacheSet.getOrganization(group.groupID);

                return(org == null ? "" : string.Format(format, org.Location));

            case LabelField.GROUP_SUBGROUPS:
                return(group.subgroupName);

            case LabelField.ATTENDANCE_DATE_TIME:
                meeting = cacheSet.getMeeting(group.groupID, group.datetime);

                return(string.Format(format, meeting.MeetingDate));

            case LabelField.ATTENDANCE_PAGER:
                return("");

            case LabelField.ATTENDANCE_NOTES:
                return("");

            default:
                return("");
            }
        }
Ejemplo n.º 16
0
        private Field CreateFieldFromSourceData(int r, int c)
        {
            string CellID = ID + "-r" + r + "c" + c;
            Field  f      = new Field("", "", "", "");

            if (Columns[c].ReadOnly)
            {
                if (Columns[c].Type == ColumnType.CheckBox)
                {
                    f = new CheckBoxField("", CellID, "", SourceData.Rows[r].ItemArray[c].ToString().Trim() == "TRUE" ? true : false, false);
                }
                else
                {
                    f = new LabelField(SourceData.Rows[r].ItemArray[c].ToString().Trim());
                }
            }
            else
            {
                switch (Columns[c].Type)
                {
                case ColumnType.Unknown:
                case ColumnType.Text:
                    f = new TextBoxField(CellID, "dbfieldid", "DGCellTB", SourceData.Rows[r].ItemArray[c].ToString().Trim());
                    break;

                case ColumnType.CheckBox:
                    f = new CheckBoxField("", CellID, "", SourceData.Rows[r].ItemArray[c].ToString().Trim() == "TRUE" ? true : false, false);
                    break;

                default:
                    break;
                }
            }
            string DBFieldID = SourceData.Rows[r].ItemArray[DbTableUniqueIDColumnNumber].ToString();

            f.DBFieldID = DBFieldID;

            return(f);
        }
Ejemplo n.º 17
0
        public static Field CreateField(FieldTypeEnum fieldEnum)
        {
            Field field = null;

            switch (fieldEnum)
            {
            case FieldTypeEnum.INPUT:
                field = new InputField();
                break;

            case FieldTypeEnum.MULTIINPUT:
                field = new MultiInputField();
                break;

            case FieldTypeEnum.SINGLECHECK:
                field = new SingleCheckField();
                break;

            case FieldTypeEnum.MULTICHECK:
                field = new MultiCheckField();
                break;

            case FieldTypeEnum.COMPLEX:
                field = new ComplexField();
                break;

            case FieldTypeEnum.MULTICOMPLEX:
                field = new MultiComplexField();
                break;

            case FieldTypeEnum.LABEL:
                field = new LabelField();
                break;
            }
            return(field);
        }
Ejemplo n.º 18
0
        public static void CreateLabel(this IGuiElementGroup group, string label)
        {
            var l = new LabelField(label);

            group.Add(l);
        }
Ejemplo n.º 19
0
 private static MemberInfo ForValue(LabelField p)
 {
     return(typeof(LabelField).GetField(Enum.GetName(typeof(LabelField), p)));
 }
Ejemplo n.º 20
0
 private static LabelFieldAttribute GetAttr(LabelField p)
 {
     return((LabelFieldAttribute)Attribute.GetCustomAttribute(ForValue(p), typeof(LabelFieldAttribute)));
 }
Ejemplo n.º 21
0
 public static int category(this LabelField field)
 {
     return(GetAttr(field).category);
 }
Ejemplo n.º 22
0
        private void CreateUI()
        {
            _ChangeCheck = new ChangeCheck();
            _ChangeCheck.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _ChangeCheck.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);

            _ChangeCheck.RowDefinitions.Add(24, Skill.Framework.UI.GridUnitType.Pixel);  // _BtnAdd , _BtnRemove
            _ChangeCheck.RowDefinitions.Add(164, Skill.Framework.UI.GridUnitType.Pixel); // _PointsScrollView
            _ChangeCheck.RowDefinitions.Add(86, Skill.Framework.UI.GridUnitType.Pixel);  // _PnlPoperties
            _ChangeCheck.RowDefinitions.Add(130, Skill.Framework.UI.GridUnitType.Pixel); //_PnlTools

            _BtnAdd = new Button()
            {
                Row = 0, Column = 0
            }; _BtnAdd.Content.text = "Add"; _BtnAdd.Content.tooltip = "Add new point the end of the path."; _BtnAdd.Content.image = Resources.UITextures.Plus;
            _BtnRemove = new Button()
            {
                Row = 0, Column = 1
            }; _BtnRemove.Content.text = "Remove"; _BtnRemove.Content.tooltip = "Remove selected point."; _BtnRemove.Content.image = Resources.UITextures.Minus;
            _PointsScrollView          = new Skill.Framework.UI.ScrollView()
            {
                Row = 1, Column = 0, ColumnSpan = 2, AlwayShowVertical = true, Padding = new Skill.Framework.UI.Thickness(0, 2)
            };
            _GridPoints = new Skill.Framework.UI.SelectionGrid()
            {
                XCount = 5
            };
            _PointsScrollView.Controls.Add(_GridPoints);
            _PointsScrollView.RenderAreaChanged += _PointsScrollView_RenderAreaChanged;

            _SelectedPointPropertiesBackground = new Skill.Framework.UI.Box()
            {
                Row = 2, Column = 0, ColumnSpan = 2
            };
            _PnlPoperties = new Skill.Framework.UI.StackPanel()
            {
                Row = 2, Column = 0, ColumnSpan = 2, Orientation = Skill.Framework.UI.Orientation.Vertical, Padding = new Skill.Framework.UI.Thickness(2)
            };

            _FFTime = new FloatField()
            {
                Height = 16, Margin = new Skill.Framework.UI.Thickness(0, 2, 0, 4)
            }; _FFTime.Label.text = "Time";
            _VFValue = new Vector3Field()
            {
                Height = 20
            }; _VFValue.Label.text = "Position";
            _VFInTangent           = new Vector3Field()
            {
                Height = 20
            }; _VFInTangent.Label.text = "InTangent";
            _VFOutTangent = new Vector3Field()
            {
                Height = 20
            }; _VFOutTangent.Label.text = "OutTangent";

            _PnlPoperties.Controls.Add(_FFTime);
            _PnlPoperties.Controls.Add(_VFValue);
            _PnlPoperties.Controls.Add(_VFInTangent);
            _PnlPoperties.Controls.Add(_VFOutTangent);

            _PnlTools = new Skill.Framework.UI.Grid()
            {
                Row = 5, Column = 0, ColumnSpan = 2, Padding = new Skill.Framework.UI.Thickness(2)
            };
            _PnlTools.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _PnlTools.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _PnlTools.ColumnDefinitions.Add(2, Skill.Framework.UI.GridUnitType.Star);

            _PnlTools.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star); // _LmGroundLayer
            _PnlTools.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star); // _BtnGroundAll , _BtnGroundSelected
            _PnlTools.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star); // _LblFLinearTime
            _PnlTools.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _PnlTools.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);

            _LmGroundLayer = new LayerMaskField()
            {
                Row = 0, Column = 0, ColumnSpan = 3, Layers = _Path.GroundLayer, Margin = new Framework.UI.Thickness(2)
            }; _LmGroundLayer.Label.text = "Ground Layer";
            _BtnGroundSelected           = new Button()
            {
                Row = 1, Column = 0, ColumnSpan = 2, Margin = new Skill.Framework.UI.Thickness(2, 2)
            }; _BtnGroundSelected.Content.text = "Ground Selected"; _BtnGroundSelected.Content.tooltip = "put selected on ground";
            _BtnGroundAll = new Button()
            {
                Row = 1, Column = 2, Margin = new Skill.Framework.UI.Thickness(2, 2)
            }; _BtnGroundAll.Content.text = "Ground All"; _BtnGroundAll.Content.tooltip = "put all points on ground";

            _LblFLinearTime = new LabelField()
            {
                Row = 2, Column = 0, Margin = new Skill.Framework.UI.Thickness(0, 2)
            }; _LblFLinearTime.Label.text = "Time";
            _FFLinearTime = new FloatField()
            {
                Row = 2, Column = 1, Margin = new Skill.Framework.UI.Thickness(0, 2), Value = _Path.PathTime
            };
            _BtnSetLinearTime = new Button()
            {
                Row = 2, Column = 2, Margin = new Skill.Framework.UI.Thickness(2, 2)
            }; _BtnSetLinearTime.Content.text = "Set Time by Distance"; _BtnSetLinearTime.Content.tooltip = "Set time of nodes by relative distance";

            _SliSmoothValue = new Skill.Editor.UI.Slider()
            {
                Row = 3, Column = 0, ColumnSpan = 3, MinValue = 0.0f, MaxValue = 1.0f, Value = _Path.SmoothValue
            }; _SliSmoothValue.Label.text = "Smooth Value";
            _BtnSmoothCurve = new Button()
            {
                Row = 4, Column = 0, ColumnSpan = 2, Margin = new Skill.Framework.UI.Thickness(2, 2)
            }; _BtnSmoothCurve.Content.text = "Smooth Curve"; _BtnSmoothCurve.Content.tooltip = "Smooth the in and out tangents of the keys.";
            _BtnSmoothPoint = new Button()
            {
                Row = 4, Column = 2, Margin = new Skill.Framework.UI.Thickness(2, 2)
            }; _BtnSmoothPoint.Content.text = "Smooth Point"; _BtnSmoothPoint.Content.tooltip = "Smooth the in and out tangents of the selected key.";

            _PnlTools.Controls.Add(_LmGroundLayer);
            _PnlTools.Controls.Add(_BtnGroundSelected);
            _PnlTools.Controls.Add(_BtnGroundAll);
            _PnlTools.Controls.Add(_LblFLinearTime);
            _PnlTools.Controls.Add(_FFLinearTime);
            _PnlTools.Controls.Add(_BtnSetLinearTime);
            _PnlTools.Controls.Add(_SliSmoothValue);
            _PnlTools.Controls.Add(_BtnSmoothPoint);
            _PnlTools.Controls.Add(_BtnSmoothCurve);


            _ChangeCheck.Controls.Add(_BtnAdd);
            _ChangeCheck.Controls.Add(_BtnRemove);
            _ChangeCheck.Controls.Add(_PointsScrollView);
            _ChangeCheck.Controls.Add(_SelectedPointPropertiesBackground);
            _ChangeCheck.Controls.Add(_PnlPoperties);
            _ChangeCheck.Controls.Add(_PnlTools);

            _Frame = new Skill.Framework.UI.Frame("EditorFrame");
            _Frame.Grid.Controls.Add(_ChangeCheck);

            _BtnAdd.Click               += _BtnAdd_Click;
            _BtnRemove.Click            += _BtnRemove_Click;
            _ChangeCheck.Changed        += _ChangeCheck_Changed;
            _GridPoints.SelectedChanged += _GridPoints_SelectedChanged;

            _FFTime.ValueChanged       += SelectedPoint_ValueChanged;
            _VFValue.ValueChanged      += SelectedPoint_ValueChanged;
            _VFInTangent.ValueChanged  += SelectedPoint_ValueChanged;
            _VFOutTangent.ValueChanged += SelectedPoint_ValueChanged;

            _FFLinearTime.ValueChanged += _FFLinearTime_ValueChanged;
            _BtnSmoothPoint.Click      += _BtnSmoothPoint_Click;
            _BtnSmoothCurve.Click      += _BtnSmoothCurve_Click;
            _BtnSetLinearTime.Click    += _BtnSetLinearTime_Click;

            _SliSmoothValue.ValueChanged += _SliSmoothValue_ValueChanged;

            _LmGroundLayer.LayersChanged += _LmGroundLayer_LayersChanged;
            _BtnGroundSelected.Click     += _BtnGroundSelected_Click;
            _BtnGroundAll.Click          += _BtnGroundAll_Click;
        }