On 09/28/2010 07:00 PM, Vincent Massol wrote:
> hmmm IMO this macro should be in the xwiki-office/ directory along with the 
> other 2 projects.
>
> WDYT?

I agree. I'll create the xwiki-office directory asap and move all three 
office modules inside (importer, viewer and macro).

Thanks,
Marius

>
> 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
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to