contentmodel.cs

来自「Freetextbox是优秀的在线编辑器」· CS 代码 · 共 80 行

CS
80
字号
namespace FreeTextBoxControls.Support.Sgml
{
    using System;

    public class ContentModel
    {
        public ContentModel()
        {
            this.Model = new Group(null);
        }

        public void AddConnector(char c)
        {
            this.Model.AddConnector(c);
        }

        public void AddOccurrence(char c)
        {
            this.Model.AddOccurrence(c);
        }

        public void AddSymbol(string sym)
        {
            this.Model.AddSymbol(sym);
        }

        public bool CanContain(string name, SgmlDtd dtd)
        {
            if (this.DeclaredContent != FreeTextBoxControls.Support.Sgml.DeclaredContent.Default)
            {
                return false;
            }
            return this.Model.CanContain(name, dtd);
        }

        public int PopGroup()
        {
            if (this.CurrentDepth == 0)
            {
                return -1;
            }
            this.CurrentDepth--;
            this.Model.Parent.AddGroup(this.Model);
            this.Model = this.Model.Parent;
            return this.CurrentDepth;
        }

        public void PushGroup()
        {
            this.Model = new Group(this.Model);
            this.CurrentDepth++;
        }

        public void SetDeclaredContent(string dc)
        {
            switch (dc)
            {
                case "EMPTY":
                    this.DeclaredContent = FreeTextBoxControls.Support.Sgml.DeclaredContent.EMPTY;
                    return;

                case "RCDATA":
                    this.DeclaredContent = FreeTextBoxControls.Support.Sgml.DeclaredContent.RCDATA;
                    return;

                case "CDATA":
                    this.DeclaredContent = FreeTextBoxControls.Support.Sgml.DeclaredContent.CDATA;
                    return;
            }
            throw new Exception(string.Format("Declared content type '{0}' is not supported", dc));
        }


        public int CurrentDepth;
        public FreeTextBoxControls.Support.Sgml.DeclaredContent DeclaredContent;
        public Group Model;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?