hmmm IMO this macro should be in the xwiki-office/ directory along with the 
other 2 projects.

WDYT?

Thanks
-Vincent

On Sep 28, 2010, at 5:52 PM, mflorea (SVN) wrote:

> Author: mflorea
> Date: 2010-09-28 17:52:58 +0200 (Tue, 28 Sep 2010)
> New Revision: 31441
> 
> Added:
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/pom.xml
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/OfficeMacro.java
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/OfficeMacroParameters.java
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/
>   
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/components.txt
> Modified:
>   platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml
> Log:
> XWIKI-5538: Create a macro to view office attachments
> 
> 
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml        
> 2010-09-28 14:59:38 UTC (rev 31440)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml        
> 2010-09-28 15:52:58 UTC (rev 31441)
> @@ -116,5 +116,6 @@
>     <module>xwiki-rendering-macro-ruby</module>
>     <module>xwiki-rendering-macro-python</module>
>     <module>xwiki-rendering-macro-php</module>
> +    <module>xwiki-rendering-macro-office</module>
>   </modules>
> </project>
> 
> Added: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/pom.xml
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/pom.xml
>                            (rev 0)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/pom.xml
>    2010-09-28 15:52:58 UTC (rev 31441)
> @@ -0,0 +1,58 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +
> +<!--
> + *
> + * See the NOTICE file distributed with this work for additional
> + * information regarding copyright ownership.
> + *
> + * This is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU Lesser General Public License as
> + * published by the Free Software Foundation; either version 2.1 of
> + * the License, or (at your option) any later version.
> + *
> + * This software is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this software; if not, write to the Free
> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
> + *
> +-->
> +
> +<project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> +  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
> +  <parent>
> +    <artifactId>xwiki-core-rendering-macros-parent</artifactId>
> +    <groupId>org.xwiki.platform</groupId>
> +    <version>2.5-SNAPSHOT</version>
> +  </parent>
> +  <modelVersion>4.0.0</modelVersion>
> +  <artifactId>xwiki-core-rendering-macro-office</artifactId>
> +  <name>XWiki Platform - Core - Rendering - Macro - Office</name>
> +  <version>2.5-SNAPSHOT</version>
> +  <description>View office attachments (doc, ppt, xls, odt, odp, ods etc.) 
> inside wiki pages without downloading or
> +    importing them.</description>
> +  <dependencies>
> +    <dependency>
> +      <groupId>org.xwiki.platform</groupId>
> +      <artifactId>xwiki-core-office-viewer</artifactId>
> +      <version>${project.version}</version>
> +    </dependency>
> +  </dependencies>
> +  <build>
> +    <plugins>
> +      <plugin>
> +        <!-- Apply the Checkstyle configurations defined in the top level 
> pom.xml file -->
> +        <groupId>org.apache.maven.plugins</groupId>
> +        <artifactId>maven-checkstyle-plugin</artifactId>
> +      </plugin>
> +    </plugins>
> +  </build>
> +  <properties>
> +    <!-- Skip Clirr execution since this is the first release of this 
> module. Remove once XE 2.5M2 is released. -->
> +    <xwiki.clirr.skip>true</xwiki.clirr.skip>
> +  </properties>
> +</project>
> 
> 
> Property changes on: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/pom.xml
> ___________________________________________________________________
> Added: svn:keywords
>   + Author Id Revision HeadURL
> Added: svn:eol-style
>   + native
> 
> Added: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/OfficeMacro.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/OfficeMacro.java
>                           (rev 0)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/OfficeMacro.java
>   2010-09-28 15:52:58 UTC (rev 31441)
> @@ -0,0 +1,108 @@
> +/*
> + * See the NOTICE file distributed with this work for additional
> + * information regarding copyright ownership.
> + *
> + * This is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU Lesser General Public License as
> + * published by the Free Software Foundation; either version 2.1 of
> + * the License, or (at your option) any later version.
> + *
> + * This software is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this software; if not, write to the Free
> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
> + */
> +package org.xwiki.rendering.internal.macro.office;
> +
> +import java.util.Collections;
> +import java.util.List;
> +import java.util.Map;
> +
> +import org.xwiki.bridge.DocumentAccessBridge;
> +import org.xwiki.component.annotation.Component;
> +import org.xwiki.component.annotation.Requirement;
> +import org.xwiki.model.EntityType;
> +import org.xwiki.model.reference.AttachmentReference;
> +import org.xwiki.model.reference.DocumentReference;
> +import org.xwiki.model.reference.EntityReferenceResolver;
> +import org.xwiki.office.viewer.OfficeViewer;
> +import org.xwiki.rendering.block.Block;
> +import org.xwiki.rendering.macro.AbstractMacro;
> +import org.xwiki.rendering.macro.MacroExecutionException;
> +import org.xwiki.rendering.macro.office.OfficeMacroParameters;
> +import org.xwiki.rendering.transformation.MacroTransformationContext;
> +
> +/**
> + * View office attachments (doc, ppt, xls, odt, odp, ods etc.) inside wiki 
> pages without downloading or importing them.
> + * 
> + * @version $Id$
> + * @since 2.5M2
> + */
> +...@component("office")
> +public class OfficeMacro extends AbstractMacro<OfficeMacroParameters>
> +{
> +    /**
> +     * The component used to resolve the attachment string reference 
> relative to the current document reference.
> +     */
> +    @Requirement("explicit")
> +    private EntityReferenceResolver<String> 
> explicitStringEntityReferenceResolver;
> +
> +    /**
> +     * The component used to get the current document reference.
> +     */
> +    @Requirement
> +    private DocumentAccessBridge documentAccessBridge;
> +
> +    /**
> +     * The component used to view the office attachments.
> +     */
> +    @Requirement
> +    private OfficeViewer officeViewer;
> +
> +    /**
> +     * Default constructor.
> +     */
> +    public OfficeMacro()
> +    {
> +        super("Office Document Viewer", "View office attachments (doc, ppt, 
> xls, odt, odp, ods etc.) inside "
> +            + "wiki pages without downloading or importing them.", 
> OfficeMacroParameters.class);
> +
> +        setDefaultCategory(DEFAULT_CATEGORY_CONTENT);
> +    }
> +
> +    /**
> +     * {...@inheritdoc}
> +     * 
> +     * @see AbstractMacro#execute(Object, String, MacroTransformationContext)
> +     */
> +    public List<Block> execute(OfficeMacroParameters parameters, String 
> content, MacroTransformationContext context)
> +        throws MacroExecutionException
> +    {
> +        DocumentReference currentDocumentReference = 
> documentAccessBridge.getCurrentDocumentReference();
> +        AttachmentReference attachmentReference =
> +            new 
> AttachmentReference(explicitStringEntityReferenceResolver.resolve(parameters.getAttachment(),
> +                EntityType.ATTACHMENT, currentDocumentReference));
> +        Map<String, String> viewParameters =
> +            Collections.singletonMap("filterStyles", 
> String.valueOf(parameters.isFilterStyles()));
> +        try {
> +            return officeViewer.createView(attachmentReference, 
> viewParameters).getChildren();
> +        } catch (Exception e) {
> +            throw new MacroExecutionException("Failed to view office 
> attachment.", e);
> +        }
> +    }
> +
> +    /**
> +     * {...@inheritdoc}
> +     * 
> +     * @see AbstractMacro#supportsInlineMode()
> +     */
> +    public boolean supportsInlineMode()
> +    {
> +        return false;
> +    }
> +}
> 
> 
> Property changes on: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/internal/macro/office/OfficeMacro.java
> ___________________________________________________________________
> Added: svn:keywords
>   + Author Id Revision HeadURL
> Added: svn:eol-style
>   + native
> 
> Added: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/OfficeMacroParameters.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/OfficeMacroParameters.java
>                          (rev 0)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/OfficeMacroParameters.java
>  2010-09-28 15:52:58 UTC (rev 31441)
> @@ -0,0 +1,89 @@
> +/*
> + * See the NOTICE file distributed with this work for additional
> + * information regarding copyright ownership.
> + *
> + * This is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU Lesser General Public License as
> + * published by the Free Software Foundation; either version 2.1 of
> + * the License, or (at your option) any later version.
> + *
> + * This software is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this software; if not, write to the Free
> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
> + */
> +package org.xwiki.rendering.macro.office;
> +
> +import org.xwiki.properties.annotation.PropertyDescription;
> +import org.xwiki.properties.annotation.PropertyMandatory;
> +
> +/**
> + * Parameters for the {...@link 
> org.xwiki.rendering.internal.macro.office.OfficeMacro}.
> + * 
> + * @version $Id$
> + * @since 2.5M2
> + */
> +public class OfficeMacroParameters
> +{
> +    /**
> +     * The office attachment to be viewed. Use an attachment string 
> reference to specify which office file should be
> +     * viewed: {...@code file.ppt}, {...@code [email protected]}, {...@code 
> [email protected]} or {...@code wiki:[email protected]}.
> +     */
> +    private String attachment;
> +
> +    /**
> +     * Whether to filter in-line CSS styles present in the HTML content 
> produced by the OpenOffice server. Office
> +     * content is usually better integrated in the host wiki page when 
> styles are filtered.
> +     * <p>
> +     * Styles are filtered by default.
> +     */
> +    private boolean filterStyles = true;
> +
> +    /**
> +     * @return a string reference to the office attachment to be viewed
> +     */
> +    public String getAttachment()
> +    {
> +        return attachment;
> +    }
> +
> +    /**
> +     * Sets the office attachment to be viewed.
> +     * 
> +     * @param attachment an attachment string reference
> +     */
> +    @PropertyDescription("The office attachment to be viewed. Use an 
> attachment string reference to specify which "
> +        + "office file should be viewed: file.ppt, [email protected], 
> [email protected] or wiki:[email protected].")
> +    @PropertyMandatory
> +    public void setAttachment(String attachment)
> +    {
> +        this.attachment = attachment;
> +    }
> +
> +    /**
> +     * @return {...@code true} if the CSS styles present in the HTML content 
> produces by the OpenOffice server are
> +     *         filtered, {...@code false} otherwise
> +     */
> +    public boolean isFilterStyles()
> +    {
> +        return filterStyles;
> +    }
> +
> +    /**
> +     * Sets whether to filter in-line CSS styles present in the HTML content 
> produced by the OpenOffice server.
> +     * 
> +     * @param filterStyles {...@code true} to filter the CSS style present 
> in the HTML content produces by the OpenOffice
> +     *            server, {...@code false} otherwise
> +     */
> +    @PropertyDescription("Whether to filter in-line CSS styles present in 
> the HTML content produced by the OpenOffice "
> +        + "server. Office content is usually better integrated in the host 
> wiki page when styles are filtered.")
> +    public void setFilterStyles(boolean filterStyles)
> +    {
> +        this.filterStyles = filterStyles;
> +    }
> +}
> 
> 
> Property changes on: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/java/org/xwiki/rendering/macro/office/OfficeMacroParameters.java
> ___________________________________________________________________
> Added: svn:keywords
>   + Author Id Revision HeadURL
> Added: svn:eol-style
>   + native
> 
> Added: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/components.txt
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/components.txt
>                                 (rev 0)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/components.txt
>         2010-09-28 15:52:58 UTC (rev 31441)
> @@ -0,0 +1 @@
> +org.xwiki.rendering.internal.macro.office.OfficeMacro
> \ No newline at end of file
> 
> 
> Property changes on: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-office/src/main/resources/META-INF/components.txt
> ___________________________________________________________________
> Added: svn:eol-style
>   + native

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to