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

