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

