Ejemplo n.º 1
0
        public override void Visit(PKControl item)
        {
            string strItems        = "";
            string strItemInit     = "";
            string strLayoutConfig = "";

            item.Items.ToList().ForEach(x => {
                var visitor = new PKExt3CodeGenVisitor();
                x.Accept(visitor);
                strItemInit += String.Format(@"this.{0} = {1};",
                                             x.Name, visitor.Code);
                strItems += String.Format("this.{0},", x.Name);
            });

            if (strItems.Length > 0)
            {
                strItems = strItems.Remove(strItems.Length - 1, 1);
            }

            if (item.Layout.Name() == "vbox" || item.Layout.Name() == "hbox")
            {
                strLayoutConfig = "this.layoutConfig = {align: 'stretch'};";
            }

            Code = string.Format(@"{0}=Ext.extend(Ext.Container,{{
                initComponent: function(){{
                    this.layout = '{1}';
                    {2}
                    {3}
                    this.items=[{4}];
                    {0}.superclass.initComponent.apply(this, arguments);
                }}
            }});", item.Name, item.Layout.Name(), strLayoutConfig, strItemInit, strItems);
        }
Ejemplo n.º 2
0
        public override void Visit(PKTabPanel item)
        {
            string strDimension = "";

            var bvisitor = new PKExt3CodeGenVisitor();

            item.Body.Accept(bvisitor);


            if (item.Flex > 0)
            {
                strDimension = string.Format("flex: {0},", item.Flex);
            }
            else
            {
                if (item.Parent.Layout.Name() == "vbox")
                {
                    strDimension = string.Format("height: {0},", item.Height);
                }
                if (item.Parent.Layout.Name() == "hbox")
                {
                    strDimension = string.Format("width: {0},", item.Width);
                }
            }

            Code = string.Format(@"new Ext.TabPanel({{                
                style: 'padding: {2}px;',
                {0}                                
                items: [{1}]
            }})",
                                 strDimension,
                                 bvisitor.Code,
                                 item.Padding);
        }
        private static string GenerateCode(PKControl mainApp)
        {
            PKExt3CodeGenVisitor visitor = new PKExt3CodeGenVisitor();

            mainApp.Accept(visitor);
            return(new JSBeautify(visitor.Code, new JSBeautifyOptions {
                indent_char = ' ',
                indent_level = 1,
                indent_size = 4,
                preserve_newlines = false
            }).GetResult());
        }
Ejemplo n.º 4
0
 public override void Visit(PKGridColumnRow item)
 {
     item.Cells.ToList().ForEach(x => {
         var visitor = new PKExt3CodeGenVisitor();
         x.Accept(visitor);
         Code += visitor.Code + ",";
     });
     if (Code.Length > 0)
     {
         Code = Code.Remove(Code.Length - 1, 1);
     }
 }
Ejemplo n.º 5
0
 public override void Visit(PKPanelFooter item)
 {
     item.Items.ToList().ForEach(x =>
     {
         var visitor = new PKExt3CodeGenVisitor();
         x.Accept(visitor);
         Code += visitor.Code + ",";
     });
     if (Code.Length > 0)
     {
         Code = Code.Remove(Code.Length - 1, 1);
     }
 }
Ejemplo n.º 6
0
        public override void Visit(PKContainer item)
        {
            string strItems        = "";
            string strDimension    = "";
            string strLayoutConfig = "";

            item.Items.ToList().ForEach(x =>
            {
                var visitor = new PKExt3CodeGenVisitor();
                x.Accept(visitor);
                strItems += visitor.Code + ",";
            });

            if (strItems.Length > 0)
            {
                strItems = strItems.Remove(strItems.Length - 1, 1);
            }

            if (item.Flex > 0)
            {
                strDimension = string.Format("flex: {0},", item.Flex);
            }
            else
            {
                if (item.Parent.Layout.Name() == "vbox")
                {
                    strDimension = string.Format("height: {0},", item.Height);
                }
                if (item.Parent.Layout.Name() == "hbox")
                {
                    strDimension = string.Format("width: {0},", item.Width);
                }
            }

            if (item.Layout.Name() == "vbox" || item.Layout.Name() == "hbox")
            {
                strLayoutConfig = "layoutConfig: {align: 'stretch'},";
            }

            Code = string.Format(@"new Ext.Container({{
            xtype: 'container',
            style: 'padding: {4}px;',
            layout : '{0}',
            {1}
            {2}
            items: [{3}]                
            }})", item.Layout.Name(), strLayoutConfig, strDimension, strItems, item.Padding);
        }
Ejemplo n.º 7
0
        public override void Visit(PKGrid item)
        {
            string strDimension = "";
            var    cvisitor     = new PKExt3CodeGenVisitor();
            var    tvisitor     = new PKExt3CodeGenVisitor();
            var    bvisitor     = new PKExt3CodeGenVisitor();

            item.Toolbar.Accept(tvisitor);
            item.ColumnRow.Accept(cvisitor);
            item.Bottombar.Accept(bvisitor);

            if (item.Flex > 0)
            {
                strDimension = string.Format("flex: {0},", item.Flex);
            }
            else
            {
                if (item.Parent.Layout.Name() == "vbox")
                {
                    strDimension = string.Format("height: {0},", item.Height);
                }
                if (item.Parent.Layout.Name() == "hbox")
                {
                    strDimension = string.Format("width: {0},", item.Width);
                }
            }

            Code = string.Format(@"new Ext.grid.GridPanel({{                
                viewConfig: {{
                    forceFit: true,
                    sm: new Ext.grid.RowSelectionModel({{
                        singleSelect: true
                    }})
                }},
                store: new Ext.data.JsonStore({{}}),
                {0}
                title: '{1}',
                columns: [{2}],
                tbar:[{3}],
                bbar:[{4}]
            }})",
                                 strDimension,
                                 item.Header.Value,
                                 cvisitor.Code,
                                 tvisitor.Code,
                                 bvisitor.Code);
        }
Ejemplo n.º 8
0
        public override void Visit(PKPanel item)
        {
            string strDimension = "";

            var hvisitor = new PKExt3CodeGenVisitor();
            var tvisitor = new PKExt3CodeGenVisitor();
            var bvisitor = new PKExt3CodeGenVisitor();
            var fvisitor = new PKExt3CodeGenVisitor();

            item.Header.Accept(hvisitor);
            item.Toolbar.Accept(tvisitor);
            item.Body.Accept(bvisitor);
            item.Footer.Accept(fvisitor);

            if (item.Flex > 0)
            {
                strDimension = string.Format("flex: {0},", item.Flex);
            }
            else
            {
                if (item.Parent.Layout.Name() == "vbox")
                {
                    strDimension = string.Format("height: {0},", item.Height);
                }
                if (item.Parent.Layout.Name() == "hbox")
                {
                    strDimension = string.Format("width: {0},", item.Width);
                }
            }

            Code = string.Format(@"new Ext.Panel({{                
                layout : 'fit',
                style: 'padding: {5}px;',
                {0}
                title: '{1}',
                tbar:[{2}],
                items: [{3}],
                buttons : [{4}]                
            }})",
                                 strDimension,
                                 hvisitor.Code,
                                 tvisitor.Code,
                                 bvisitor.Code,
                                 fvisitor.Code,
                                 item.Padding);
        }
Ejemplo n.º 9
0
        public string VisitPKTab(PKTab item)
        {
            string strCode   = string.Empty;
            var    childItem = item.Items.FirstOrDefault();

            if (childItem != null)
            {
                var visitor = new PKExt3CodeGenVisitor();
                childItem.Accept(visitor);
                strCode = visitor.Code;
            }
            return(string.Format(@"new Ext.Container({{ 
                    title: '{0}',
                    layout: 'fit',
                    items: [{1}]
                }})", item.Text, strCode));
        }