/// <summary>
        /// Adding internal link
        /// </summary>
        /// <param name="__target"></param>
        /// <param name="__parent"></param>
        /// <returns></returns>
        public metaLink AddLink(IMetaContentNested __target, string __description = "", int __priority = 100)
        {
            metaLink link = new metaLink();

            link.target      = __target;
            link.parent      = parent;
            link.priority    = __priority;
            link.description = __description;

            if (__target is metaPage)
            {
                metaPage targetPage = __target as metaPage;
                link.title = targetPage.header.name;
                if (link.description.isNullOrEmptyString())
                {
                    link.description = targetPage.header.description;
                }
                //link.description = targetPage.
            }

            link.name = link.target.name.imbTitleCamelOperation(true);
            link.type = appendLinkType.link;

            links.Add(link);
            return(link);
        }
        public void Add(object input)
        {
            if (input is metaDocumentSet)
            {
                metaDocumentSet input_metaDocumentSet = (metaDocumentSet)input;
                documentSets.Add(input_metaDocumentSet, this);
                return;
            }

            if (input is metaDocument)
            {
                metaDocument input_metaDocument = (metaDocument)input;
                documents.Add(input_metaDocument, this);
                return;
            }

            if (input is metaPage)
            {
                metaPage input_metaPage = (metaPage)input;
                pages.Add(input_metaPage, this);
                return;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Appends its data points into new or existing property collection
        /// </summary>
        /// <param name="data">Property collection to add data into</param>
        /// <returns>Updated or newly created property collection</returns>
        public virtual PropertyCollection AppendDataFields(PropertyCollection data = null)
        {
            if (data == null)
            {
                data = new PropertyCollection();
            }

            //systemStatusData sdata = imbSystemInfo.getSystemStatusData();

            metaDocument asDocument = document as metaDocument;
            metaPage     asPage     = page as metaPage;

            IMetaContentNested asMetacontent = this as IMetaContentNested;

            if (asMetacontent != null)
            {
                data[templateFieldBasic.document_relpath] = asMetacontent.getPathToParent(document);
                data[templateFieldBasic.page_relpath]     = asMetacontent.getPathToParent(page);
                // data[templateFieldBasic.root_relpath] = asMetacontent.getPathToParent(root);
            }
            //data[templateFieldBasic.sys_time] = DateTime.Now.ToShortTimeString();
            //ata[templateFieldBasic.sys_threads] = sdata.threads;
            //data[templateFieldBasic.sys_mem] = this.getPathToParent(asDocument);
            //data[templateFieldBasic.sys_log] = asDocument.header.name;
            //data[templateFieldBasic.sys_runtime] = sdata.timeRunning;

            if (asPage != null)
            {
                data[templateFieldBasic.page_name]   = asPage.name;
                data[templateFieldBasic.page_title]  = asPage.pageTitle;
                data[templateFieldBasic.page_desc]   = asPage.pageDescription;
                data[templateFieldBasic.page_id]     = asPage.id;
                data[templateFieldBasic.page_number] = asPage.id; // parent.Count();
                data[templateFieldBasic.page_type]   = asPage.GetType().Name;
                if (asPage.parent != null)
                {
                    data[templateFieldBasic.page_count] = asPage.parent.Count();
                }
                else
                {
                    data[templateFieldBasic.page_count] = 0;
                }
            }

            if (asDocument != null)
            {
                if (asDocument.parent != null)
                {
                    data[templateFieldBasic.document_count] = asDocument.parent.Count();
                }
                else
                {
                    data[templateFieldBasic.document_count] = 0;
                }

                data[templateFieldBasic.document_desc]   = asDocument.documentDescription;
                data[templateFieldBasic.document_name]   = asDocument.name;
                data[templateFieldBasic.document_number] = asDocument.id; // parent.Count();
                data[templateFieldBasic.document_path]   = asDocument.path;

                data[templateFieldBasic.document_title] = asDocument.documentTitle;
                data[templateFieldBasic.document_type]  = asDocument.GetType().Name;
                data[templateFieldBasic.document_id]    = asDocument.id;
            }

            data[templateFieldMetaBlock.block_name]     = name;
            data[templateFieldMetaBlock.block_id]       = id;
            data[templateFieldMetaBlock.block_priority] = priority;
            data[templateFieldMetaBlock.block_type]     = GetType().Name;

            return(data);
        }
Exemplo n.º 4
0
        public void createNewFile(IRenderExecutionContext context, IMetaContentNested oldScope)
        {
            ITextRender render = sourceRender.outputRender;
            string      ext    = format.getDefaultExtension();

            string filename = (oldScope.name + filenameSufix).getFilename(ext);

            string filepath = context.directoryScope.FullName.add(filename, "\\");

            // String folderPath = context.data.getProperString(oldScope.path, templateFieldBasic.path_folder, templateFieldBasic.document_path, templateFieldBasic.documentset_path);

            PropertyCollection content_blocks = render.getContentBlocks(true, format);
            IMetaContentNested sc             = (IMetaContentNested)oldScope;

            string codeOutput = template;

            try
            {
                IConverterRender cr = (IConverterRender)render;

                reportLinkCollectionSet menu    = new reportLinkCollectionSet();
                reportLinkToolbar       toolbar = new reportLinkToolbar();
                // sc.GetLinkCollection((deliveryInstance)context, format, sourceRender.levelsOfNewDirectory, false);

                // <---------- MENU ----------------------------
                if (oldScope is metaPage)
                {
                    metaPage oldScope_metaPage = (metaPage)oldScope;
                    menu.Add("Document set", oldScope_metaPage.menu_documentSetMenu.CompileLinkCollection(context as deliveryInstance, format, levelsOfNewDirectory));
                    menu.Add("Document", oldScope_metaPage.menu_documentmenu.CompileLinkCollection(context as deliveryInstance, format, levelsOfNewDirectory));
                    menu.Add("Page", oldScope_metaPage.menu_pagemenu.CompileLinkCollection(context as deliveryInstance, format, levelsOfNewDirectory));

                    menu.Add("Root", oldScope_metaPage.menu_rootmenu.CompileLinkCollection(context as deliveryInstance, format, levelsOfNewDirectory));

                    toolbar = oldScope_metaPage.toolbar_pagetools;
                }

                string menuRender = menu.RenderSetAsDropDowns(cr.converter);
                content_blocks.add(templateFieldSubcontent.html_mainnav, menuRender, false);

                // <---------------- TOOL BAR
                if (toolbar != null)
                {
                    if (toolbar.Any())
                    {
                        string toolbarRender = toolbar.CompileLinkCollection(context as deliveryInstance, format, levelsOfNewDirectory).RenderAsToolbar(cr.converter);
                        content_blocks.add(templateFieldSubcontent.html_toolbar, toolbarRender, false);
                    }
                }

                // <---------------- LINKS
                // codeOutput = codeOutput.CompileLinksInTemplate(context as deliveryInstance, format, levelsOfNewDirectory);
            }
            catch (Exception ex)
            {
                throw new aceReportException("Auto-menu creation : " + ex.Message + " Automenu creation for " + oldScope.path);
            }

            if (context is deliveryInstance)
            {
                deliveryInstance contextDeliveryInstance = (deliveryInstance)context;
                contextDeliveryInstance.unit.blockBuilder.BuildDynamicNavigationTemplates(contextDeliveryInstance, content_blocks);
            }

            codeOutput = codeOutput.applyToContent(false, content_blocks);// openBase.openFileToString(tempfile.FullName, true, false);

            codeOutput = codeOutput.applyToContent(false, context.data);

            codeOutput = codeOutput.CompileLinksInTemplate(context as deliveryInstance, format, levelsOfNewDirectory);

            codeOutput = codeOutput.Replace("..//", "../");
            codeOutput = codeOutput.Replace(" href=\"/", " href=\"");

            //var savedfile = codeOutput.saveStringToFile(filepath, imbSCI.Cores.enums.getWritableFileMode.overwrite, Encoding.UTF8);

            context.saveFileOutput(codeOutput, filepath, getFolderPathForLinkRegistry(context), description);

            //IDocScriptExecutionContext docContext = context as IDocScriptExecutionContext;

            //docContext.linkRegistry[context.directoryScope.FullName].AddLink(filename, "", filepath);
        }