Ejemplo n.º 1
0
        internal static ActionBase CreateAction(Type actionType, Application application, Content context, string backUri, object parameters)
        {
            var act = TypeHandler.CreateInstance(actionType.FullName) as ActionBase;

            if (act != null)
            {
                act.Initialize(context, backUri, application, parameters);
            }

            return(act == null || !act.Visible ? null : act);
        }
Ejemplo n.º 2
0
        public TransformerContext(string transformerPath)
        {
            if (transformerPath != null)
            {
                XslCompiledTransform transform = null;
                if (transformerPath.StartsWith("/Root/") && Node.Exists(transformerPath))
                {
                    transform = new XslCompiledTransform();
                    Portal.UI.PortletFramework.Xslt.RepositoryPathResolver resolver = new Portal.UI.PortletFramework.Xslt.RepositoryPathResolver();
                    transform.Load(transformerPath, XsltSettings.Default, resolver);
                    NamespaceExtensions = resolver.ImportNamespaceCollection.Distinct().ToArray();
                }
                else if (System.IO.File.Exists(transformerPath))
                {
                    transform = new XslCompiledTransform();
                    Portal.UI.PortletFramework.Xslt.FilePathResolver resolver = new Xslt.FilePathResolver();
                    transform.Load(transformerPath, XsltSettings.Default, resolver);
                    NamespaceExtensions = resolver.ImportNamespaceCollection.Distinct().ToArray();
                }

                if (transform != null)
                {
                    XsltOutputSettings = transform.OutputSettings;
                    this.XsltEncoding  = Encoding.UTF8;
                    if (XsltOutputSettings != null && XsltOutputSettings.Encoding != null)
                    {
                        this.XsltEncoding = XsltOutputSettings.Encoding;
                    }
                    this.XsltTransformer = transform;
                }

                if (XsltArgList == null && NamespaceExtensions.Length > 0)
                {
                    XsltArgList = new XsltArgumentList();
                }

                foreach (var namespaceExtension in NamespaceExtensions)
                {
                    var typename = namespaceExtension.Substring(5);
                    var o        = XsltArgList.GetExtensionObject(namespaceExtension);
                    if (o == null)
                    {
                        var instance = TypeHandler.CreateInstance(typename);
                        XsltArgList.AddExtensionObject(namespaceExtension, instance);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        protected override string GetQueryFilter()
        {
            var originalQueryFilter = base.GetQueryFilter();

            if (SearchForm == null)
            {
                return(originalQueryFilter);
            }

            SearchForm.UpdateContent();

            DefaultQueryBuilder qBuilder;

            if (string.IsNullOrEmpty(PluginFullPath))
            {
                qBuilder = new DefaultQueryBuilder(originalQueryFilter, SearchForm.Content, EmptyQueryTerm);
            }
            else
            {
                qBuilder = TypeHandler.CreateInstance(PluginFullPath, new object[] { originalQueryFilter, SearchForm.Content }) as DefaultQueryBuilder;
            }

            var filter = qBuilder.BuildQuery(/*kv*/);

            var sb     = new StringBuilder();
            var writer = XmlWriter.Create(sb);

            writer.WriteStartDocument();
            writer.WriteStartElement("ContentMetaData");
            writer.WriteElementString("ContentType", SearchForm.Content.ContentType.Name);
            writer.WriteElementString("ContentName", SearchForm.Content.Name);
            writer.WriteStartElement("Fields");

            SearchForm.Content.ExportFieldData(writer, new ExportContext("/Root", ""));

            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.Flush();
            writer.Close();

            _state.ExportQueryFields = sb.ToString();
            PortletState.Persist(_state);

            return(filter);
        }
Ejemplo n.º 4
0
        private void CreateLayout()
        {
            switch (PortletType)
            {
            case PreviewPortletType.ContentCollectionPortlet:
                var collectionPortlet = TypeHandler.CreateInstance("SenseNet.Portal.Portlets.ContentCollectionPortlet") as ContextBoundPortlet;
                collectionPortlet.ID             = "previewedPortlet";
                collectionPortlet.BindTarget     = SenseNet.Portal.UI.PortletFramework.BindTarget.CustomRoot;
                collectionPortlet.CustomRootPath = CustomRootPath;
                collectionPortlet.RenderingMode  = RenderingMode;
                collectionPortlet.Renderer       = Renderer;
                //this.form1.Controls.Add(collectionPortlet);
                renderedContent.Controls.Add(collectionPortlet);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 5
0
        public static File CreateByBinary(IFolder parent, BinaryData binaryData)
        {
            if (parent == null)
            {
                throw new ArgumentNullException("parent");
            }

            if (binaryData == null)
            {
                return(new File(parent as Node));
            }

            File file;
            // Resolve filetype by binary-config matching
            BinaryTypeResolver resolver = new BinaryTypeResolver();

            if (!resolver.ParseBinary(binaryData))
            {
                // Unknown file type
                file = new File(parent as Node);
            }
            else
            {
                // Specific File subtype has been found
                file = TypeHandler.CreateInstance <File>(resolver.NodeType.ClassName, parent);

                var fname = binaryData.FileName.FileNameWithoutExtension;
                if (string.IsNullOrEmpty(fname))
                {
                    fname = file.Name;
                }
                else if (fname.Contains("\\"))
                {
                    fname = System.IO.Path.GetFileNameWithoutExtension(fname);
                }

                binaryData.FileName    = new BinaryFileName(fname, resolver.FileNameExtension);
                binaryData.ContentType = resolver.ContentType;
            }

            file.Binary = binaryData;
            return(file);
        }
Ejemplo n.º 6
0
        /* ===================================================================== Public methods */
        public void AddToControls(ControlCollection controls)
        {
            var portletStart = this.InnerText.IndexOf("<td>") + 4;
            var beginTable   = this.InnerText.Substring(0, portletStart);
            var portletEnd   = this.InnerText.LastIndexOf("</td>");
            var endTable     = this.InnerText.Substring(portletEnd);

            var portlet = TypeHandler.CreateInstance("SenseNet.Portal.Portlets.ContentCollectionPortlet") as ContextBoundPortlet;

            portlet.ID             = Guid.NewGuid().ToString();
            portlet.CustomRootPath = this.CustomRootPath;
            portlet.Renderer       = this.Renderer;
            portlet.RenderingMode  = SenseNet.Portal.UI.PortletFramework.RenderMode.Xslt;
            portlet.BindTarget     = BindTarget.CustomRoot;

            controls.Add(new LiteralControl {
                Text = beginTable
            });
            controls.Add(portlet);
            controls.Add(new LiteralControl {
                Text = endTable
            });
        }
Ejemplo n.º 7
0
 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
 {
     return(TypeHandler.CreateInstance(value.ToString()));
 }
Ejemplo n.º 8
0
 public object CreateInstance(string typename)
 {
     return(TypeHandler.CreateInstance(typename));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// This method collects all the available text extractors. First it builds a list of the built-in
        /// extractors than adds the dynamic ones from the setting (they can override the built-in ones).
        /// </summary>
        private Dictionary <string, ITextExtractor> LoadTextExtractors()
        {
            var extractors = new Dictionary <string, ITextExtractor>
            {
                { "contenttype", new XmlTextExtractor() },
                { "xml", new XmlTextExtractor() },
                { "doc", new DocTextExtractor() },
                { "xls", new XlsTextExtractor() },
                { "xlb", new XlbTextExtractor() },
                { "msg", new MsgTextExtractor() },
                { "pdf", new PdfTextExtractor() },
                { "docx", new DocxTextExtractor() },
                { "docm", new DocxTextExtractor() },
                { "xlsx", new XlsxTextExtractor() },
                { "xlsm", new XlsxTextExtractor() },
                { "pptx", new PptxTextExtractor() },
                { "txt", new PlainTextExtractor() },
                { "rtf", new RtfTextExtractor() }
            };

            var isCommunity = RepositoryVersionInfo.Instance != null &&
                              RepositoryVersionInfo.Instance.OfficialVersion != null &&
                              RepositoryVersionInfo.Instance.OfficialVersion.Edition == "Community";

            // add text extractors available only in the Enterprise Edition
            if (!isCommunity)
            {
                try
                {
                    extractors["pdf"] = (ITextExtractor)TypeHandler.CreateInstance(ASPOSE_PDF_TEXTEXTRACTOR_NAME);
                }
                catch (Exception ex)
                {
                    Logger.WriteWarning(EventId.Indexing.TextExtractorError, "Text extractor type could not be instatiated (Aspose Pdf extractor). " + ex);
                }
            }

            // load text extractor settings (they may override the defaults listed above)
            foreach (var field in this.Content.Fields.Values.Where(field => field.Name.StartsWith(TEXTEXTRACTORS_TEXTFIELDNAME + ".")))
            {
                var extractorName = field.GetData() as string;
                if (string.IsNullOrEmpty(extractorName))
                {
                    continue;
                }

                extractorName = extractorName.Trim('.', ' ');

                // make sure that only Enterprise customers can use the Aspose provider
                if (isCommunity && string.Compare(extractorName, ASPOSE_PDF_TEXTEXTRACTOR_NAME, StringComparison.InvariantCulture) == 0)
                {
                    continue;
                }

                try
                {
                    var extension = field.Name.Substring(field.Name.LastIndexOf('.')).Trim('.', ' ').ToLower();

                    extractors[extension] = (ITextExtractor)TypeHandler.CreateInstance(extractorName);
                }
                catch (Exception ex)
                {
                    Logger.WriteWarning(EventId.Indexing.TextExtractorError, "Text extractor type could not be instatiated: " + extractorName + " " + ex);
                }
            }

            return(extractors);
        }