[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