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:35 UTC
[causeway] 02/02: 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
commit df8f5583728b18110b12ab80ae80e801999ec074
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;
}