Beispiel #1
0
        protected override ICollection <Field> InstantiateCore()
        {
            XView xView = XTemplate.XProject.XViews.Single();
            View  view  = InstantiateView(xView, Project);

            return(InstantiateFields(xView, view).ToList());
        }
Beispiel #2
0
        private void AddCheckCode(XView xView)
        {
            string checkCode = xView.CheckCode.Trim();

            if (!View.CheckCode.Contains(checkCode))
            {
                View.CheckCode = string.Concat(View.CheckCode, "\n", checkCode).Trim();
                Metadata.UpdateView(View);
            }
        }
Beispiel #3
0
        protected override ICollection <Field> InstantiateCore()
        {
            XView xView = XTemplate.XProject.XViews.Single();

            AddCheckCode(xView);
            XPage xPage = xView.XPages.Single();
            Page  page  = InstantiatePage(xPage, View);

            return(InstantiateFields(xPage, page).ToList());
        }
Beispiel #4
0
        protected void AddView(View view, XProject xProject)
        {
            Progress?.Report($"Adding view: {view.Name}");
            XView xView = XView.Create(view);

            xProject.Add(xView);
            foreach (Page page in view.Pages)
            {
                AddPage(page, xView);
            }
        }
Beispiel #5
0
 protected IEnumerable <Field> InstantiateFields(XView xView, View view)
 {
     context.SetView(view);
     foreach (XPage xPage in xView.XPages)
     {
         Page page = InstantiatePage(xPage, view);
         foreach (Field field in InstantiateFieldsInternal(xPage, page))
         {
             yield return(field);
         }
     }
 }
Beispiel #6
0
        protected View InstantiateView(XView xView, Project project)
        {
            Progress?.Report($"Adding view: {xView.Name}");
            View view = xView.Instantiate(project);

            if (context.ViewNameGenerator.Exists(view.Name) || context.ViewNameGenerator.Conflicts(view.Name))
            {
                view.Name = context.ViewNameGenerator.MakeUnique(view.Name);
                Progress?.Report($"Renamed view: {view.Name}");
            }
            Metadata.InsertView(view);
            project.Views.Add(view);
            context.ViewIdMap[xView.ViewId] = view.Id;
            return(view);
        }
Beispiel #7
0
        protected void AddPage(Page page, XView xView)
        {
            View view = page.GetView();

            Progress?.Report($"Adding page: {view.Name}/{page.Name}");
            XPage xPage = XPage.Create(page);

            xView.Add(xPage);
            foreach (DataRow field in GetFields(page))
            {
                string fieldName = field.Field <string>(ColumnNames.NAME);
                Progress?.Report($"Adding field: {view.Name}/{page.Name}/{fieldName}");
                xPage.Add(XField.Create(field));
            }
        }
Beispiel #8
0
        private View?RenderSimple(XView child, Window root, int row)
        {
            switch (child)
            {
            case XButton button:
                return(_elementFactory?.CreateButton(button, root, row));

            case XLabel label:
                return(_elementFactory?.CreateLabel(label, root, row));

            case XCheckBox checkBox:
                return(_elementFactory?.CreateCheckBox(checkBox, root, row));

            default:
                throw new InvalidOperationException($"Unknown node type: {child.GetType().Name}");
            }
        }
Beispiel #9
0
        protected override XTemplate CreateCore()
        {
            XTemplate xTemplate = new XTemplate(TemplateLevel.Page)
            {
                Name = Page.Name
            };
            XProject xProject = new XProject();

            xTemplate.Add(xProject);
            XView xView = new XView
            {
                CheckCode = Page.GetView().CheckCode
            };

            xProject.Add(xView);
            AddPage(Page, xView);
            return(xTemplate);
        }
Beispiel #10
0
        public static void SetWidth(View view, XView xView)
        {
            if (xView.WidthHandling == WidthHandling.Auto ||
                float.IsNaN(xView.Width))
            {
                return;
            }

            switch (xView.WidthHandling)
            {
            case WidthHandling.Percent:
                view.Width = Dim.Percent(xView.Width);
                break;

            case WidthHandling.Columns:
                view.Width = (int)Math.Ceiling(xView.Width);
                break;

            default:
                return;
            }
        }