[Pkg-javascript-commits] [pdf.js] 149/204: Packages PDFViewer as a UI component.

David Prévot taffit at moszumanska.debian.org
Sat Oct 25 18:50:44 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository pdf.js.

commit b16a406f3adea369c2402e5ba504f193bdc5ab76
Author: Yury Delendik <ydelendik at mozilla.com>
Date:   Tue Sep 30 12:22:38 2014 -0500

    Packages PDFViewer as a UI component.
---
 examples/components/simpleviewer.html | 48 ++++++++++++++++++++++++++++++++++
 examples/components/simpleviewer.js   | 43 ++++++++++++++++++++++++++++++
 examples/learning/helloworld.html     |  2 +-
 examples/learning/prevnext.html       |  2 +-
 make.js                               | 46 +++++++++++++++++++++++++++++---
 web/interfaces.js                     |  6 ++++-
 web/pdf_viewer.component.js           | 32 +++++++++++++++++++++++
 web/pdf_viewer.js                     | 49 ++++++++++++++++++++++++++++++++++-
 8 files changed, 221 insertions(+), 7 deletions(-)

diff --git a/examples/components/simpleviewer.html b/examples/components/simpleviewer.html
new file mode 100644
index 0000000..b1d6c9d
--- /dev/null
+++ b/examples/components/simpleviewer.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+Copyright 2014 Mozilla Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html dir="ltr" mozdisallowselectionprint moznomarginboxes>
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+  <meta name="google" content="notranslate">
+  <title>PDF.js viewer using built components</title>
+
+  <style>
+    body {
+      background-color: #808080;
+      margin: 0;
+      padding: 0;
+    }
+  </style>
+
+  <link rel="stylesheet" href="../../build/components/pdf_viewer.css"/>
+
+  <!-- for legacy browsers -->
+  <script src="../../build/components/compatibility.js"></script>
+  <script src="../../build/pdf.js"></script>
+  <script src="../../build/components/pdf_viewer.js"></script>
+</head>
+
+<body tabindex="1">
+  <div id="viewerContainer">
+    <div id="viewer" class="pdfViewer"></div>
+  </div>
+
+  <script src="simpleviewer.js"></script>
+</body>
+</html>
+
diff --git a/examples/components/simpleviewer.js b/examples/components/simpleviewer.js
new file mode 100644
index 0000000..5488817
--- /dev/null
+++ b/examples/components/simpleviewer.js
@@ -0,0 +1,43 @@
+/* Copyright 2014 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+'use strict';
+
+if (!PDFJS.PDFViewer || !PDFJS.getDocument) {
+  alert('Please built the library and components using\n' +
+    '  `node make generic components`');
+}
+
+// If pdf.js must be execute via eval or pdf.worker.js is located at the
+// different location than pdf.js, specify workerSrc.
+//
+// PDFJS.workerSrc = '../../build/pdf.worker.js';
+
+// Some PDFs need external cmaps
+//
+// PDFJS.cMapUrl = '../../external/bcmaps/';
+// PDFJS.cMapPacked = true;
+
+var DEFAULT_URL = '../../web/compressed.tracemonkey-pldi-09.pdf';
+
+var pdfViewer = new PDFJS.PDFViewer({
+  container: document.getElementById('viewerContainer')
+});
+
+// Loading document.
+PDFJS.getDocument(DEFAULT_URL).then(function (pdfDocument) {
+  // Document loaded, specifying document for the viewer.
+  pdfViewer.setDocument(pdfDocument);
+});
diff --git a/examples/learning/helloworld.html b/examples/learning/helloworld.html
index b344746..9518127 100644
--- a/examples/learning/helloworld.html
+++ b/examples/learning/helloworld.html
@@ -31,7 +31,7 @@
 
   //
   // If pdf.js must be execute via eval or pdf.worker.js is located at the
-  // different location that pdf.js, specify workerSrc.
+  // different location than pdf.js, specify workerSrc.
   //
   // PDFJS.workerSrc = '../../build/pdf.worker.js';
 
diff --git a/examples/learning/prevnext.html b/examples/learning/prevnext.html
index 42c1f1b..4ab65d9 100644
--- a/examples/learning/prevnext.html
+++ b/examples/learning/prevnext.html
@@ -41,7 +41,7 @@
 
   //
   // If pdf.js must be execute via eval or pdf.worker.js is located at the
-  // different location that pdf.js, specify workerSrc.
+  // different location than pdf.js, specify workerSrc.
   //
   // PDFJS.workerSrc = '../../build/pdf.worker.js';
 
diff --git a/make.js b/make.js
index 278c505..3a4456f 100644
--- a/make.js
+++ b/make.js
@@ -49,7 +49,8 @@ var ROOT_DIR = __dirname + '/', // absolute path to project's root
     GH_PAGES_DIR = BUILD_DIR + 'gh-pages/',
     GENERIC_DIR = BUILD_DIR + 'generic/',
     MINIFIED_DIR = BUILD_DIR + 'minified/',
-    SINGLE_FILE_DIR = BUILD_DIR + '/singlefile/',
+    SINGLE_FILE_DIR = BUILD_DIR + 'singlefile/',
+    COMPONENTS_DIR = BUILD_DIR + 'components/',
     REPO = 'git at github.com:mozilla/pdf.js.git',
     MOZCENTRAL_PREF_PREFIX = 'pdfjs',
     FIREFOX_PREF_PREFIX = 'extensions.uriloader at pdf.js',
@@ -65,7 +66,8 @@ var DEFINES = {
   B2G: false,
   CHROME: false,
   MINIFIED: false,
-  SINGLE_FILE: false
+  SINGLE_FILE: false,
+  COMPONENTS: false
 };
 
 //
@@ -146,6 +148,43 @@ target.generic = function() {
   cleanupCSSSource(GENERIC_DIR + '/web/viewer.css');
 };
 
+target.components = function() {
+  cd(ROOT_DIR);
+  echo();
+  echo('### Creating generic components');
+
+  rm('-rf', COMPONENTS_DIR);
+  mkdir('-p', COMPONENTS_DIR);
+  mkdir('-p', COMPONENTS_DIR + 'images');
+
+  var defines = builder.merge(DEFINES, {COMPONENTS: true});
+
+  var COMPONENTS_IMAGES = [
+    'web/images/annotation-*.svg',
+    'web/images/loading-icon.gif',
+    'web/images/shadow.png',
+    'web/images/texture.png',
+  ];
+
+  var setup = {
+    defines: defines,
+    copy: [
+      [COMPONENTS_IMAGES, COMPONENTS_DIR + 'images'],
+      ['web/compatibility.js', COMPONENTS_DIR],
+    ],
+    preprocess: [
+      ['web/pdf_viewer.component.js', COMPONENTS_DIR + 'pdf_viewer.js'],
+    ],
+    preprocessCSS: [
+      ['components', 'web/pdf_viewer.css', COMPONENTS_DIR + 'pdf_viewer.css'],
+    ]
+  };
+  builder.build(setup);
+
+  cleanupJSSource(COMPONENTS_DIR + 'pdf_viewer.js');
+  cleanupCSSSource(COMPONENTS_DIR + 'pdf_viewer.css');
+};
+
 target.jsdoc = function() {
   echo();
   echo('### Generating jsdoc');
@@ -233,6 +272,7 @@ target.web = function() {
 target.dist = function() {
   target.generic();
   target.singlefile();
+  target.components();
 
   var DIST_DIR = BUILD_DIR + 'dist/';
   var DIST_REPO_URL = 'https://github.com/mozilla/pdfjs-dist';
@@ -262,7 +302,7 @@ target.dist = function() {
 
   mkdir('-p', DIST_DIR + 'web/');
   cp('-R', [
-    GENERIC_DIR + 'web/compatibility.js',
+    COMPONENTS_DIR + '*',
   ], DIST_DIR + 'web/');
 
   echo();
diff --git a/web/interfaces.js b/web/interfaces.js
index 54c2825..5f0ad04 100644
--- a/web/interfaces.js
+++ b/web/interfaces.js
@@ -1,5 +1,5 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* Copyright 2012 Mozilla Foundation
+/* Copyright 2014 Mozilla Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,6 +47,10 @@ IPDFLinkService.prototype = {
    * @param {string} hash
    */
   setHash: function (hash) {},
+  /**
+   * @param {string} action
+   */
+  executeNamedAction: function (action) {},
 };
 
 /**
diff --git a/web/pdf_viewer.component.js b/web/pdf_viewer.component.js
new file mode 100644
index 0000000..22c4838
--- /dev/null
+++ b/web/pdf_viewer.component.js
@@ -0,0 +1,32 @@
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+/* Copyright 2014 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*jshint globalstrict: false */
+/* globals PDFJS, PDFViewer */
+
+// Initializing PDFJS global object (if still undefined)
+if (typeof PDFJS === 'undefined') {
+  (typeof window !== 'undefined' ? window : this).PDFJS = {};
+}
+
+(function pdfViewerWrapper() {
+  'use strict';
+
+//#include ui_utils.js
+//#include pdf_viewer.js
+
+  PDFJS.PDFViewer = PDFViewer;
+}).call((typeof window === 'undefined') ? this : window);
diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js
index 146c02e..f5dd910 100644
--- a/web/pdf_viewer.js
+++ b/web/pdf_viewer.js
@@ -57,7 +57,7 @@ var PDFViewer = (function pdfViewer() {
   function PDFViewer(options) {
     this.container = options.container;
     this.viewer = options.viewer || options.container.firstElementChild;
-    this.linkService = options.linkService;
+    this.linkService = options.linkService || new SimpleLinkService(this);
 
     this.defaultRenderingQueue = !options.renderingQueue;
     if (this.defaultRenderingQueue) {
@@ -642,6 +642,53 @@ var PDFViewer = (function pdfViewer() {
   return PDFViewer;
 })();
 
+var SimpleLinkService = (function SimpleLinkServiceClosure() {
+  function SimpleLinkService(pdfViewer) {
+    this.pdfViewer = pdfViewer;
+  }
+  SimpleLinkService.prototype = {
+    /**
+     * @returns {number}
+     */
+    get page() {
+      return this.pdfViewer.currentPageNumber;
+    },
+    /**
+     * @param {number} value
+     */
+    set page(value) {
+      this.pdfViewer.currentPageNumber = value;
+    },
+    /**
+     * @param dest - The PDF destination object.
+     */
+    navigateTo: function (dest) {},
+    /**
+     * @param dest - The PDF destination object.
+     * @returns {string} The hyperlink to the PDF object.
+     */
+    getDestinationHash: function (dest) {
+      return '#';
+    },
+    /**
+     * @param hash - The PDF parameters/hash.
+     * @returns {string} The hyperlink to the PDF object.
+     */
+    getAnchorUrl: function (hash) {
+      return '#';
+    },
+    /**
+     * @param {string} hash
+     */
+    setHash: function (hash) {},
+    /**
+     * @param {string} action
+     */
+    executeNamedAction: function (action) {},
+  };
+  return SimpleLinkService;
+})();
+
 /**
  * PDFPage object source.
  * @class

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git



More information about the Pkg-javascript-commits mailing list