StyleSheet Extensions management class. A SSXManager builded from cleaned HTML of a local editing page can be used to add StyleSheetExtensions objects coresponding to the CSS of that page. A SSXManager builded from a remote wiki page can be used to get the CSS coresponding to the StyleSheetExtensions objects of that page.
Example #1
0
        /// <summary>
        /// Creates a <code>SSXManager</code> from the cleaned HTML of a local editing page.
        /// </summary>
        /// <param name="pageConverter">An instance of the <code>ConversionManager</code> for this page.</param>
        /// <param name="cleanHTML">Cleaned HTML of the local page.</param>
        /// <returns>An instance of a <code>SSXManager</code>.</returns>
        public static SSXManager BuildFromLocalHTML(ConversionManager pageConverter, string cleanHTML)
        {
            SSXManager  ssxManager = new SSXManager();
            XmlDocument xmlDoc     = new XmlDocument();

            xmlDoc.LoadXml(cleanHTML);
            XmlNodeList styleNodes     = xmlDoc.GetElementsByTagName("style");
            string      pageCSSContent = "";

            foreach (XmlNode styleNode in styleNodes)
            {
                pageCSSContent += styleNode.InnerText;
            }

            XmlRpcStruct dictionary = new XmlRpcStruct();

            dictionary.Add("code", pageCSSContent);
            dictionary.Add("name", "XOfficeStyle");
            dictionary.Add("use", "currentPage");
            dictionary.Add("parse", "0");
            dictionary.Add("cache", "forbid");

            XWikiObject ssxObject = new XWikiObject();

            ssxObject.className        = SSX_CLASS_NAME;
            ssxObject.pageId           = pageConverter.States.PageFullName;
            ssxObject.objectDictionary = dictionary;

            ssxManager.pageFullName             = pageConverter.States.PageFullName;
            ssxManager.pageCSSContent           = pageCSSContent;
            ssxManager.pageStyleSheetExtensions = new List <XWikiObject>();
            ssxManager.pageStyleSheetExtensions.Add(ssxObject);
            ssxManager.pageConverter = pageConverter;
            return(ssxManager);
        }
Example #2
0
        /// <summary>
        /// Builds a <code>SSXManager</code> for a remote wiki page.
        /// </summary>
        /// <param name="pageConverter">An instance of the <code>ConversionManager</code> for this page.</param>
        /// <returns>An instance of a <code>SSXManager</code>.</returns>
        public static SSXManager BuildFromServerPage(ConversionManager pageConverter)
        {
            SSXManager ssxManager = new SSXManager();

            ssxManager.pageFullName  = pageConverter.States.PageFullName;
            ssxManager.pageConverter = pageConverter;

            List <XWikiObject> ssxObjects = ssxManager.RetrieveStyleSheetExtensions();

            ssxManager.pageStyleSheetExtensions = ssxObjects;
            StringBuilder sb = new StringBuilder();

            foreach (XWikiObject ssxObject in ssxObjects)
            {
                sb.Append(ssxObject.objectDictionary["code"]);
                sb.Append(Environment.NewLine);
            }
            ssxManager.pageCSSContent = sb.ToString();

            return(ssxManager);
        }
Example #3
0
        /// <summary>
        /// Builds a <code>SSXManager</code> for a remote wiki page.
        /// </summary>
        /// <param name="pageConverter">An instance of the <code>ConversionManager</code> for this page.</param>
        /// <returns>An instance of a <code>SSXManager</code>.</returns>
        public static SSXManager BuildFromServerPage(ConversionManager pageConverter)
        {
            SSXManager ssxManager = new SSXManager();
            ssxManager.pageFullName = pageConverter.States.PageFullName;
            ssxManager.pageConverter = pageConverter;

            List<XWikiObject> ssxObjects = ssxManager.RetrieveStyleSheetExtensions();

            ssxManager.pageStyleSheetExtensions = ssxObjects;
            StringBuilder sb = new StringBuilder();
            foreach (XWikiObject ssxObject in ssxObjects)
            {
                sb.Append(ssxObject.objectDictionary["code"]);
                sb.Append(Environment.NewLine);
            }
            ssxManager.pageCSSContent = sb.ToString();

            return ssxManager;
        }
Example #4
0
        /// <summary>
        /// Creates a <code>SSXManager</code> from the cleaned HTML of a local editing page.
        /// </summary>
        /// <param name="pageConverter">An instance of the <code>ConversionManager</code> for this page.</param>
        /// <param name="cleanHTML">Cleaned HTML of the local page.</param>
        /// <returns>An instance of a <code>SSXManager</code>.</returns>
        public static SSXManager BuildFromLocalHTML(ConversionManager pageConverter, string cleanHTML)
        {
            SSXManager ssxManager = new SSXManager();
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(cleanHTML);
            XmlNodeList styleNodes = xmlDoc.GetElementsByTagName("style");
            string pageCSSContent = "";

            foreach (XmlNode styleNode in styleNodes)
            {
                pageCSSContent += styleNode.InnerText;
            }

            XmlRpcStruct dictionary = new XmlRpcStruct();
            dictionary.Add("code", pageCSSContent);
            dictionary.Add("name", "XOfficeStyle");
            dictionary.Add("use", "currentPage");
            dictionary.Add("parse", "0");
            dictionary.Add("cache", "forbid");

            XWikiObject ssxObject = new XWikiObject();
            ssxObject.className = SSX_CLASS_NAME;
            ssxObject.pageId = pageConverter.States.PageFullName;
            ssxObject.objectDictionary = dictionary;

            ssxManager.pageFullName = pageConverter.States.PageFullName;
            ssxManager.pageCSSContent = pageCSSContent;
            ssxManager.pageStyleSheetExtensions = new List<XWikiObject>();
            ssxManager.pageStyleSheetExtensions.Add(ssxObject);
            ssxManager.pageConverter = pageConverter;
            return ssxManager;
        }