Ejemplo n.º 1
0
        /// <summary>
        /// Returns whether an item is a global template</summary>
        /// <param name="item">Item to test</param>
        /// <returns>True iff item is a global template</returns>
        public bool IsExternalTemplate(object item)
        {
            var domNode = item.As <DomNode>();

            if (domNode == null)
            {
                return(false);
            }
            foreach (var node in domNode.Lineage)
            {
                TemplateFolder templateFolder = node.As <TemplateFolder>();
                if (templateFolder != null && templateFolder.Url != null)
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        private bool ValidateNewFolderUri(TemplateFolder parentFolder, Uri uri)
        {
            if (uri == null)
            {
                return(false);
            }

            foreach (var templateFolder in parentFolder.Folders)
            {
                if (templateFolder.Url == uri)
                {
                    return(false); //TODO: pop up warning dialog
                }
                if (!ValidateNewFolderUri(templateFolder, uri))
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Searches for a template by its GUID</summary>
        /// <param name="parentFolder">Template's parent folder to search through</param>
        /// <param name="guid">GUID to search for</param>
        /// <returns>Template matching given GUID</returns>
        public Template SearchForTemplateByGuid(TemplateFolder parentFolder, Guid guid)
        {
            foreach (var template in parentFolder.Templates)
            {
                if (template.Guid == guid)
                {
                    return(template);
                }
            }

            foreach (var templateFolder in parentFolder.Folders)
            {
                var template = SearchForTemplateByGuid(templateFolder, guid);
                if (template != null)
                {
                    return(template);
                }
            }

            return(null);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Imports templates and template folders stored in an external file</summary>
 /// <param name="parentTemplateFolder">Template folder in which to import templates and template folders</param>
 /// <param name="fromParent">Root of templates to import</param>
 protected virtual void ImportTemplates(TemplateFolder parentTemplateFolder, DomNode fromParent)
 {
     // assume all templates and their containing folders are children of a root template folder
     foreach (var domNode in fromParent.LevelSubtree) // add top-level folders
     {
         if (domNode.Is <TemplateFolder>())           // this should be the root template folder of the imported DOM tree
         {
             foreach (var child in domNode.Children.ToArray())
             {
                 if (child.Is <TemplateFolder>())
                 {
                     parentTemplateFolder.Folders.Add(child.Cast <TemplateFolder>());
                 }
                 else if (child.Is <Template>())
                 {
                     parentTemplateFolder.Templates.Add(child.Cast <Template>());
                 }
             }
             break;
         }
     }
 }
Ejemplo n.º 5
0
        private bool ValidateNewFolderUri(TemplateFolder parentFolder, Uri uri)
        {
            if (uri == null)
                return false;

            foreach (var templateFolder in parentFolder.Folders)
            {
                if (templateFolder.Url == uri)
                    return false;
                if (!ValidateNewFolderUri(templateFolder, uri))
                    return false;
            }

            return true;
        }
Ejemplo n.º 6
0
        public Template SearchForTemplateByGuid(TemplateFolder parentFolder, Guid guid)
        {        
            foreach (var template in parentFolder.Templates)
            {
                if (template.Guid  == guid)
                {
                    return template;
                   
                }
            }

            foreach (var templateFolder in parentFolder.Folders)
            {
                var template = SearchForTemplateByGuid(templateFolder, guid);
                if (template != null)
                    return template;
            }

            return null;
        }
Ejemplo n.º 7
0
        protected virtual void ImportTemplates(TemplateFolder parentTemplateFolder,  DomNode fromParent)
        {
            // assume all templates and their containing folders are children of a root template folder 
            foreach (var domNode in fromParent.LevelSubtree) // add top-level folders
            {
                if (domNode.Is<TemplateFolder>()) // this should be the root template folder of the imported DOM tree
                {
                    foreach (var child in domNode.Children.ToArray())
                    {
                        if (child.Is<TemplateFolder>())
                        {                        
                            parentTemplateFolder.Folders.Add(child.Cast<TemplateFolder>());
                        }
                        else if (child.Is<Template>())
                        {

                            parentTemplateFolder.Templates.Add(child.Cast<Template>());
                        }
                    }                   
                    break;
                }
              
            }
        }