/// <summary>
 /// Initializes a new instance of the <see cref="imbMetaAttribute"/> class.
 /// </summary>
 /// <param name="_type">The type.</param>
 /// <param name="_path">The path.</param>
 /// <param name="_description">The description.</param>
 public imbMetaAttribute(imbMetaAttributeEnum _type, String _path, String _description, String _caption = "")
 {
     path        = _path;
     description = _description;
     caption     = _caption;
     type        = _type;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructs meta content
        /// </summary>
        /// <param name="output">The output.</param>
        /// <param name="meta">The meta.</param>
        /// <param name="helpContext">The help context.</param>
        /// <param name="item">The item.</param>
        public void GenerateMetaContent(ITextRender output, imbMetaAttributeEnum meta, settingsMemberInfoEntry item)
        {
            String     metaSectionTitle = "";
            folderNode resfolder        = resourcesFolder; //= helpContext.resourcesFolder.Add(item.relevantTypeName, item.relevantTypeName, "Resources for class [" + item.relevantTypeName + "]");

            if (!item.metaAttributeSet[meta].Any())
            {
                return;
            }

            switch (meta)
            {
            case imbMetaAttributeEnum.AttachContent:
            case imbMetaAttributeEnum.AttachExample:
                resfolder = resourcesFolder.Add(item.relevantTypeName, item.relevantTypeName, "Resources for class [" + item.relevantTypeName + "]");
                break;
            }



            switch (meta)
            {
            case imbMetaAttributeEnum.AddContextProperty:
                break;

            case imbMetaAttributeEnum.AddExampleInLine:
                foreach (imbMetaAttribute att in item.metaAttributeSet[meta])
                {
                    output.open("div", att.caption, att.description);

                    output.AppendCode(att.path);

                    output.close();
                }
                break;

            case imbMetaAttributeEnum.AttachExample:

                foreach (imbMetaAttribute att in item.metaAttributeSet[meta])
                {
                    String p = resfolder.findFile(att.path, SearchOption.AllDirectories);

                    output.open("div", att.caption, att.description);

                    if (File.Exists(p))
                    {
                        String src = File.ReadAllText(p);
                        output.AppendCode(src);
                    }

                    output.close();
                }
                break;

            case imbMetaAttributeEnum.AddProjectProperty:
                break;

            case imbMetaAttributeEnum.AddSearchLink:
                foreach (imbMetaAttribute att in item.metaAttributeSet[meta])
                {
                    if (att.path.Contains("{0}"))
                    {
                        att.path = String.Format(att.path, item.name);
                    }
                    if (att.description.Contains("{0}"))
                    {
                        att.description = String.Format(att.description, item.name);
                    }
                    output.AppendLink(att.path, att.description, att.caption);
                }
                break;

            case imbMetaAttributeEnum.AttachContent:
                //var folder = helpContext.resourcesFolder.Add(item.relevantTypeName, item.relevantTypeName, "Resources for class [" + item.relevantTypeName + "]");
                foreach (imbMetaAttribute att in item.metaAttributeSet[meta])
                {
                    String p = resfolder.findFile(att.path, SearchOption.AllDirectories);
                    if (File.Exists(p))
                    {
                        String src = File.ReadAllText(p);
                        output.AppendDirect(src);
                    }
                }
                break;

            case imbMetaAttributeEnum.AttachLink:

                //output.open("div", "Related content", "");

                foreach (imbMetaAttribute att in item.metaAttributeSet[meta])
                {
                    output.AppendLink(att.path, att.description, att.caption);
                }

                //output.close();
                break;
            }

            output.AppendHorizontalLine();
        }