You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/05/11 11:43:17 UTC

[isis] branch master updated: ISIS-3040: fixes java-script to enable pdf page printing (v2)

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 409e808721 ISIS-3040: fixes java-script to enable pdf page printing (v2)
409e808721 is described below

commit 409e8087211578568d602e977caafb2af51398cc
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed May 11 13:43:10 2022 +0200

    ISIS-3040: fixes java-script to enable pdf page printing (v2)
---
 .../java/org/apache/isis/applib/value/NamedWithMimeType.java     | 4 ++++
 .../dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java | 3 ++-
 .../extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js | 9 ++++++---
 .../extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.html     | 6 +++---
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java b/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
index 69f1abf7cd..445c047142 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
@@ -203,6 +203,10 @@ extends
             }
         }
 
+        public boolean matches(final MimeType otherMimeType) {
+            return mimeType.match(otherMimeType);
+        }
+
     }
 
 }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
index 1ce4205556..999b41342d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.value.Blob;
+import org.apache.isis.applib.value.NamedWithMimeType.CommonMimeType;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
@@ -154,7 +155,7 @@ public class PropertyLayoutMenu {
         val vm = new PropertyLayoutRepaintingVm();
         vm.setEditMe("Modify this field to see if repainting occurs...");
         samples.stream()
-                .filter(x -> x.getName().endsWith(".pdf"))
+                .filter(x -> CommonMimeType.PDF.matches(x.getMimeType()))
                 .findFirst()
                 .ifPresent(pdfBlob -> {
                     vm.setPropertyUsingAnnotation(pdfBlob);
diff --git a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
index a820f056ca..e96e26371d 100644
--- a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
+++ b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
@@ -135,7 +135,7 @@
                 pdfDoc.getPage(num).then(function(page) {
                     if (abortingPrinting) { return; }
 
-                    var viewport = page.getViewport(1);
+                    var viewport = page.getViewport({scale: 1});
                     var offScreenCanvas = $('<canvas/>')[0];
                     offScreenCanvas.width = viewport.width;
                     offScreenCanvas.height = viewport.height;
@@ -360,7 +360,10 @@
              * Get page info from document, resize canvas accordingly, and render page.
              * @param num Page number.
              */
-            function renderPage(num) {
+            function renderPage(num_) {
+	
+				const num = boundedPageNumber(num_);
+	
 				// console.log("renderPage: " + num);
 	
                 pageRendering = true;
@@ -417,7 +420,7 @@
             loadingTask.promise.then(function (pdfDoc_) {
                 pdfDoc = pdfDoc_;
                 Wicket.Event.publish(WicketStuff.PDFJS.Topic.TOTAL_PAGES, pdfDoc.numPages, {"canvasId": config.canvasId});
-                renderPage(boundedPageNumber(pageNum));
+                renderPage(pageNum);
             });
         }
     };
diff --git a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.html b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.html
index c9552dd4ec..18342391a0 100644
--- a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.html
+++ b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.html
@@ -25,10 +25,10 @@
                     <div class="row">
                         <div class="scalarValue col-sm-12">
                             <div>
-                                <span>Page: <input wicket:id="currentPage"  class="pdf-js-page-current" title="Select Page" size="1"></input> / <span wicket:id="totalPages"  class="pdf-js-page-total"></span></span>
+                                <span>Page: <input wicket:id="currentPage" class="pdf-js-page-current" title="Select Page" size="1"></input> / <span wicket:id="totalPages" class="pdf-js-page-total"></span></span>
 
-                                <button wicket:id="prevPage" disabled type="button" class="fa fa-backward btn btn-xs btn-default pdf-js-page-prev" title="Previous"></button>
-                                <button wicket:id="nextPage" disabled type="button" class="fa fa-forward btn btn-xs btn-default pdf-js-page-next" title="Next"></button>
+                                <button wicket:id="prevPage" disabled type="button" class="fa fa-angle-left btn btn-xs btn-default pdf-js-page-prev" title="Previous"></button>
+                                <button wicket:id="nextPage" disabled type="button" class="fa fa-angle-right btn btn-xs btn-default pdf-js-page-next" title="Next"></button>
 
                                 <select wicket:id="currentZoom" title="Current Zoom Level" class="pdf-js-zoom-current">
                                     <option id="pageAutoOption" value="auto" >Automatic Zoom</option>