示例#1
0
        protected MDForm(IV8MetadataContainer Container, string formID) : base()
        {
            var Header = Container.GetElement(formID);

            SerializedList StringsBlock = FindStringsBlock(Header.ReadAll(), formID);

            ReadStringsBlock(StringsBlock);
            _Container = Container;
        }
示例#2
0
        ////////////////////////////////////////////////////////
        // static

        public static MDForm Create(IV8MetadataContainer Container, string ElementName)
        {
            var Data = Container.GetElement(ElementName + ".0");

            if (Data.ElemType == MDFileItem.ElementType.Directory)
            {
                return(MDOrdinaryForm.Create(Container, ElementName));
            }
            else
            {
                return(MDManagedForm.Create(Container, ElementName));
            }
        }
示例#3
0
        public MDTemplate(IV8MetadataContainer MDContainer, String ObjID)
        {
            _Container = MDContainer;

            SerializedList header = new SerializedList(_Container.GetElement(ObjID).ReadAll());

            Kind = (TemplateKind)Enum.Parse(typeof(TemplateKind), header.Items[1].Items[1].ToString());

            ReadStringsBlock((SerializedList)header.Items[1].Items[2]);

            switch (Kind)
            {
            case MDTemplate.TemplateKind.Moxel:
            case MDTemplate.TemplateKind.Text:
            case MDTemplate.TemplateKind.GEOSchema:
            case MDTemplate.TemplateKind.GraphicChart:
            case MDTemplate.TemplateKind.DCSAppearanceTemplate:
                m_Document = new PersistedTemplateStub(this);
                break;

            case MDTemplate.TemplateKind.BinaryData:
                m_Document = new BinaryDataDocument(this);
                break;

            case MDTemplate.TemplateKind.HTMLDocument:
                m_Document = new HTMLTemplate(this);
                break;

            case MDTemplate.TemplateKind.DataCompositionSchema:
                m_Document = new DCSSchemaDocument(this);
                break;

            default:
                break;
            }
        }