You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2023/03/03 12:14:16 UTC

[causeway] branch CAUSEWAY-3366 updated: CAUSEWAY-3366: adds attribute support for pdfjsviewer

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch CAUSEWAY-3366
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3366 by this push:
     new 9e5df4c089 CAUSEWAY-3366: adds attribute support for pdfjsviewer
9e5df4c089 is described below

commit 9e5df4c089738fcad998944e8833e2c6b77a28e2
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 3 12:14:10 2023 +0000

    CAUSEWAY-3366: adds attribute support for pdfjsviewer
---
 .../pdfjs/metamodel/facet/PdfJsViewerFacet.java    |  1 +
 .../facet/PdfJsViewerFacetFromAnnotation.java      | 20 ++++++++++++++++++--
 .../metamodel/PdfjsViewer_Abstract_IntegTest.java  | 22 +++++++++++++++++-----
 ...hPdfJsViewer_IntegTest.dump_facets.approved.xml |  6 ++++++
 ...hPdfjsViewer_IntegTest.dump_facets.approved.xml |  3 +++
 .../metamodel/PlatformTransactionManagerNoop.java  | 21 ---------------------
 .../metamodel/domains/mixin/SomeViewModel_pdf.java |  3 ++-
 .../metamodel/domains/prop/SomeViewModel.java      |  3 ++-
 8 files changed, 49 insertions(+), 30 deletions(-)

diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacet.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacet.java
index 513d878fee..108c4cc9b0 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacet.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacet.java
@@ -19,6 +19,7 @@
 package org.apache.causeway.extensions.pdfjs.metamodel.facet;
 
 import org.apache.causeway.core.metamodel.facetapi.Facet;
+import org.apache.causeway.core.metamodel.facetapi.FacetWithAttributes;
 import org.apache.causeway.extensions.pdfjs.applib.config.PdfJsConfig;
 import org.apache.causeway.extensions.pdfjs.applib.spi.PdfJsViewerAdvisor;
 
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
index e8ff748480..267eb033ed 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/causeway/extensions/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
@@ -19,23 +19,31 @@
 package org.apache.causeway.extensions.pdfjs.metamodel.facet;
 
 import java.util.List;
+import java.util.function.BiConsumer;
 
 import javax.inject.Inject;
 
 import org.apache.causeway.applib.services.user.UserService;
 import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
+import org.apache.causeway.core.metamodel.facetapi.FacetWithAttributes;
 import org.apache.causeway.extensions.pdfjs.applib.annotations.PdfJsViewer;
 import org.apache.causeway.extensions.pdfjs.applib.config.PdfJsConfig;
 import org.apache.causeway.extensions.pdfjs.applib.config.Scale;
 import org.apache.causeway.extensions.pdfjs.applib.spi.PdfJsViewerAdvisor;
 
-public class PdfJsViewerFacetFromAnnotation extends PdfJsViewerFacetAbstract {
+public class PdfJsViewerFacetFromAnnotation extends PdfJsViewerFacetAbstract implements FacetWithAttributes {
+
+    private final int initialHeight;
+    private final int initialPage;
+    private final Scale initialScale;
 
     @Inject List<PdfJsViewerAdvisor> advisors;
-    @Inject UserService userService;
 
     public PdfJsViewerFacetFromAnnotation(final PdfJsConfig config, final FacetHolder holder) {
         super(config, holder);
+        initialHeight = config.getInitialHeight();
+        initialPage = config.getInitialPage();
+        initialScale = config.getInitialScale();
     }
 
     public static PdfJsViewerFacetFromAnnotation create(
@@ -90,4 +98,12 @@ public class PdfJsViewerFacetFromAnnotation extends PdfJsViewerFacetAbstract {
         return config;
     }
 
+    @Override
+    public void visitAttributes(final BiConsumer<String, Object> visitor) {
+        super.visitAttributes(visitor);
+        visitor.accept("initialScale", initialScale);
+        visitor.accept("initialHeight", initialHeight);
+        visitor.accept("initialPage", initialPage);
+    }
+
 }
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_Abstract_IntegTest.java b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_Abstract_IntegTest.java
index 3fdb2f7e84..8b29374849 100644
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_Abstract_IntegTest.java
+++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_Abstract_IntegTest.java
@@ -27,7 +27,6 @@ import javax.inject.Singleton;
 
 import org.apache.causeway.applib.services.jaxb.JaxbService;
 import org.apache.causeway.applib.services.metamodel.Config;
-import org.apache.causeway.applib.services.metamodel.DomainModel;
 import org.apache.causeway.applib.services.metamodel.MetaModelService;
 import org.apache.causeway.core.config.presets.CausewayPresets;
 import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
@@ -35,14 +34,14 @@ import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
 import org.apache.causeway.testing.integtestsupport.applib.ApprovalsOptions;
 import org.apache.causeway.testing.integtestsupport.applib.CausewayIntegrationTestAbstract;
 import org.approvaltests.Approvals;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionDefinition;
+import org.springframework.transaction.TransactionException;
+import org.springframework.transaction.TransactionStatus;
 
 public abstract class PdfjsViewer_Abstract_IntegTest extends CausewayIntegrationTestAbstract {
 
@@ -61,7 +60,20 @@ public abstract class PdfjsViewer_Abstract_IntegTest extends CausewayIntegration
         @Bean
         @Singleton
         public PlatformTransactionManager platformTransactionManager() {
-            return new PlatformTransactionManagerNoop();
+            return new PlatformTransactionManager() {
+                @Override
+                public void rollback(final TransactionStatus status) throws TransactionException {
+                }
+
+                @Override
+                public TransactionStatus getTransaction(final TransactionDefinition definition) throws TransactionException {
+                    return null;
+                }
+
+                @Override
+                public void commit(final TransactionStatus status) throws TransactionException {
+                }
+            };
         }
     }
 
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml
index 7d0e038c0c..6a38840850 100644
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml
+++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml
@@ -189,6 +189,9 @@
           </mml:facet>
           <mml:facet id="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet" fqcn="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotation">
             <mml:attr name="facet" value="PdfJsViewerFacetFromAnnotation"/>
+            <mml:attr name="initialHeight" value="1000"/>
+            <mml:attr name="initialPage" value="2"/>
+            <mml:attr name="initialScale" value="_0_75"/>
             <mml:attr name="precedence" value="DEFAULT"/>
           </mml:facet>
         </mml:facets>
@@ -1098,6 +1101,9 @@
           </mml:facet>
           <mml:facet id="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet" fqcn="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotation">
             <mml:attr name="facet" value="PdfJsViewerFacetFromAnnotation"/>
+            <mml:attr name="initialHeight" value="1000"/>
+            <mml:attr name="initialPage" value="2"/>
+            <mml:attr name="initialScale" value="_0_75"/>
             <mml:attr name="precedence" value="DEFAULT"/>
           </mml:facet>
         </mml:facets>
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml
index e9c1a4a701..8bd55dd5a0 100644
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml
+++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml
@@ -184,6 +184,9 @@
           </mml:facet>
           <mml:facet id="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet" fqcn="org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotation">
             <mml:attr name="facet" value="PdfJsViewerFacetFromAnnotation"/>
+            <mml:attr name="initialHeight" value="1000"/>
+            <mml:attr name="initialPage" value="2"/>
+            <mml:attr name="initialScale" value="_0_75"/>
             <mml:attr name="precedence" value="DEFAULT"/>
           </mml:facet>
         </mml:facets>
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PlatformTransactionManagerNoop.java b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PlatformTransactionManagerNoop.java
deleted file mode 100644
index d0bad8d2de..0000000000
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PlatformTransactionManagerNoop.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.causeway.extensions.pdfjs.metamodel;
-
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionException;
-import org.springframework.transaction.TransactionStatus;
-
-class PlatformTransactionManagerNoop implements PlatformTransactionManager {
-    @Override
-    public void rollback(final TransactionStatus status) throws TransactionException {
-    }
-
-    @Override
-    public TransactionStatus getTransaction(final TransactionDefinition definition) throws TransactionException {
-        return null;
-    }
-
-    @Override
-    public void commit(final TransactionStatus status) throws TransactionException {
-    }
-}
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/mixin/SomeViewModel_pdf.java b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/mixin/SomeViewModel_pdf.java
index 4609d901f9..1b032861cf 100644
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/mixin/SomeViewModel_pdf.java
+++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/mixin/SomeViewModel_pdf.java
@@ -7,9 +7,10 @@ import org.apache.causeway.applib.annotation.Nature;
 import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.extensions.pdfjs.applib.annotations.PdfJsViewer;
+import org.apache.causeway.extensions.pdfjs.applib.config.Scale;
 
 @Property
-@PdfJsViewer
+@PdfJsViewer(initialScale = Scale._0_75, initialHeight = 1000, initialPageNum = 2)
 @RequiredArgsConstructor
 public class SomeViewModel_pdf {
 
diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/prop/SomeViewModel.java b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/prop/SomeViewModel.java
index b7d14e350a..cd5c63e682 100644
--- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/prop/SomeViewModel.java
+++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/domains/prop/SomeViewModel.java
@@ -5,12 +5,13 @@ import org.apache.causeway.applib.annotation.Nature;
 import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.extensions.pdfjs.applib.annotations.PdfJsViewer;
+import org.apache.causeway.extensions.pdfjs.applib.config.Scale;
 
 @DomainObject(nature = Nature.VIEW_MODEL)
 public class SomeViewModel {
 
     @Property
-    @PdfJsViewer
+    @PdfJsViewer(initialScale = Scale._0_75, initialHeight = 1000, initialPageNum = 2)
     public Blob getPdf() {
         return null;
     }