示例#1
0
 public PKBoxItem()
 {
     this.Name     = "Box";
     this.Layout   = new PKLayout();
     this.ID       = PKSequenceGenerator.GetNextId();
     this.position = new PKPoint();
     this.Corners  = PKRectangleCorners.None;
 }
示例#2
0
 private void mnuAddButton_Click(object sender, EventArgs e)
 {
     pkExtDesigner.AddItem(new PKButton
     {
         Name  = "btn" + PKSequenceGenerator.GetNextGUIId(),
         Value = "Button",
         Width = 70
     });
 }
示例#3
0
 private void mnuAddPanel_Click(object sender, EventArgs e)
 {
     pkExtDesigner.AddItem(new PKPanel
     {
         Name   = "pnl" + PKSequenceGenerator.GetNextGUIId(),
         Width  = 200,
         Height = 200,
         Flex   = 1
     });
 }
示例#4
0
 private void mnuAddColumn_Click(object sender, EventArgs e)
 {
     pkExtDesigner.AddItem(new PKColumn
     {
         Name   = "col" + PKSequenceGenerator.GetNextGUIId(),
         Value  = "Column",
         Height = 30,
         Width  = 100,
         Flex   = 1
     });
 }
示例#5
0
 private void mnuAddText_Click(object sender, EventArgs e)
 {
     pkExtDesigner.AddItem(new PKText
     {
         Name   = "txt" + PKSequenceGenerator.GetNextGUIId(),
         Value  = "Text",
         Height = 30,
         Width  = 100,
         Flex   = 1
     });
 }
示例#6
0
 private void mnuAddContainer_Click(object sender, EventArgs e)
 {
     pkExtDesigner.AddItem(new PKContainer
     {
         Name    = "pnl" + PKSequenceGenerator.GetNextGUIId(),
         Width   = 200,
         Height  = 200,
         Flex    = 1,
         Padding = 5,
         Layout  = new PKVBox()
     });
 }
示例#7
0
        private void mnuAddTable_Click(object sender, EventArgs e)
        {
            var table = new PKGrid
            {
                Name   = "grid" + PKSequenceGenerator.GetNextGUIId(),
                Height = 30,
                Width  = 100,
                Flex   = 1
            };

            table.ColumnRow.BorderPen = PKPens.BorderPen;
            pkExtDesigner.AddItem(table);
        }
示例#8
0
        private static PKBoxItem ConvertToBoxItem(List <PKFlatItem> items, bool newId)
        {
            if (newId)
            {
                items.ForEach(x => {
                    string oldId = x.ID;
                    x.ID         = PKSequenceGenerator.GetNextId();
                    x.Name       = "cmp" + PKSequenceGenerator.GetNextGUIId();
                    items.FindAll(y => y.ParentID == oldId).ForEach(y => y.ParentID = x.ID);
                });
            }

            items.ForEach(x =>
            {
                PKBoxItem item = null;
                if (x.IsComponent)
                {
                    string strCmp = File.ReadAllText(Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "Components"), x.ComponentFileName));
                    item          = Deserialize(strCmp, true);
                }
                else
                {
                    item = (PKBoxItem)Activator.CreateInstance(Type.GetType(x.ClassName));
                }
                if (item != null)
                {
                    PKElementCreateVisitor visitor = new PKElementCreateVisitor(x);
                    item.Accept(visitor);
                    x.BoxItem = item;
                }
            });

            items.ForEach(x => {
                x.ParentItem = items.Find(y => y.ID == x.ParentID);
                if (x.ParentItem != null)
                {
                    PKElementParentVistor visitor = new PKElementParentVistor(items, x.BoxItem);
                    x.ParentItem.BoxItem.Accept(visitor);
                }
            });

            return(items.Find(x => x.ParentID == null).BoxItem);
        }
示例#9
0
        private void mnuAddNumberField_Click(object sender, EventArgs e)
        {
            var field = new PKField
            {
                Name  = "num" + PKSequenceGenerator.GetNextGUIId(),
                Width = 200
            };

            field.Add(new PKLabelField
            {
                Value = "Label:",
                Align = PKHAlign.Right,
                Width = 120
            });
            field.Add(new PKNumberField
            {
                Width = 120
            });
            pkExtDesigner.AddItem(field);
        }
示例#10
0
        private void mnuAddTextArea_Click(object sender, EventArgs e)
        {
            var field = new PKField
            {
                Name   = "txtArea" + PKSequenceGenerator.GetNextGUIId(),
                Height = 140,
                Width  = 300
            };

            field.Add(new PKLabelField
            {
                Value = "Label:",
                Align = PKHAlign.Right,
                Width = 120
            });
            field.Add(new PKTextAreaField
            {
                Width = 220
            });
            pkExtDesigner.AddItem(field);
        }
示例#11
0
        private void mnuAddDateField_Click(object sender, EventArgs e)
        {
            var field = new PKField
            {
                Name  = "dt" + PKSequenceGenerator.GetNextGUIId(),
                Width = 200
            };

            field.Add(new PKLabelField
            {
                Value = "Label:",
                Align = PKHAlign.Right,
                Width = 120
            });
            field.Add(new PKDateField
            {
                Value = DateTime.Today.ToString("MM/dd/yyyy"),
                Width = 120
            });
            pkExtDesigner.AddItem(field);
        }