[Pkg-javascript-commits] [pdf.js] 66/115: Improve code structure of the annotation code
David Prévot
taffit at moszumanska.debian.org
Wed Dec 16 20:03:16 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit 8b79becad676648ba139acc5189da771060c571e
Author: Tim van der Meij <timvandermeij at gmail.com>
Date: Sat Nov 28 16:08:34 2015 +0100
Improve code structure of the annotation code
This patch improves the code structure of the annotation code.
- Create the annotation border style object in the `setBorderStyle` method instead of in the constructor. The behavior is the same as the `setBorderStyle` method is always called, thus a border style object is still always available.
- Put all data object manipulation lines in one block in the constructor. This improves readability and maintainability as it is more visible which properties are exposed.
- Simplify `appendToOperatorList` by removing the promise capability and removing an unused parameter.
- Remove some unnecessary newlines/spaces.
---
src/core/annotation.js | 61 ++++++++++++++++++--------------------------------
src/core/core.js | 2 +-
2 files changed, 23 insertions(+), 40 deletions(-)
diff --git a/src/core/annotation.js b/src/core/annotation.js
index 728b1eb..e2de1ea 100644
--- a/src/core/annotation.js
+++ b/src/core/annotation.js
@@ -14,9 +14,8 @@
*/
/* globals PDFJS, Util, isDict, isName, stringToPDFString, warn, Dict, Stream,
stringToBytes, Promise, isArray, ObjectLoader, OperatorList,
- isValidUrl, OPS, createPromiseCapability, AnnotationType,
- stringToUTF8String, AnnotationBorderStyleType, ColorSpace,
- AnnotationFlag, isInt */
+ isValidUrl, OPS, AnnotationType, stringToUTF8String,
+ AnnotationBorderStyleType, ColorSpace, AnnotationFlag, isInt */
'use strict';
@@ -119,25 +118,22 @@ var Annotation = (function AnnotationClosure() {
function Annotation(params) {
var dict = params.dict;
- var data = this.data = {};
-
- data.subtype = dict.get('Subtype').name;
this.setFlags(dict.get('F'));
- data.annotationFlags = this.flags;
-
this.setRectangle(dict.get('Rect'));
- data.rect = this.rectangle;
-
this.setColor(dict.get('C'));
- data.color = this.color;
-
- this.borderStyle = data.borderStyle = new AnnotationBorderStyle();
this.setBorderStyle(dict);
-
this.appearance = getDefaultAppearance(dict);
- data.hasAppearance = !!this.appearance;
- data.id = params.ref.num;
+
+ // Expose public properties using a data object.
+ this.data = {};
+ this.data.id = params.ref.num;
+ this.data.subtype = dict.get('Subtype').name;
+ this.data.annotationFlags = this.flags;
+ this.data.rect = this.rectangle;
+ this.data.color = this.color;
+ this.data.borderStyle = this.borderStyle;
+ this.data.hasAppearance = !!this.appearance;
}
Annotation.prototype = {
@@ -264,6 +260,7 @@ var Annotation = (function AnnotationClosure() {
* @param {Dict} borderStyle - The border style dictionary
*/
setBorderStyle: function Annotation_setBorderStyle(borderStyle) {
+ this.borderStyle = new AnnotationBorderStyle();
if (!isDict(borderStyle)) {
return;
}
@@ -316,13 +313,11 @@ var Annotation = (function AnnotationClosure() {
},
getOperatorList: function Annotation_getOperatorList(evaluator, task) {
-
if (!this.appearance) {
return Promise.resolve(new OperatorList());
}
var data = this.data;
-
var appearanceDict = this.appearance.dict;
var resourcesPromise = this.loadResources([
'ExtGState',
@@ -354,33 +349,22 @@ var Annotation = (function AnnotationClosure() {
};
Annotation.appendToOperatorList = function Annotation_appendToOperatorList(
- annotations, opList, pdfManager, partialEvaluator, task, intent) {
-
- function reject(e) {
- annotationsReadyCapability.reject(e);
- }
-
- var annotationsReadyCapability = createPromiseCapability();
-
+ annotations, opList, partialEvaluator, task, intent) {
var annotationPromises = [];
for (var i = 0, n = annotations.length; i < n; ++i) {
- if (intent === 'display' && annotations[i].viewable ||
- intent === 'print' && annotations[i].printable) {
+ if ((intent === 'display' && annotations[i].viewable) ||
+ (intent === 'print' && annotations[i].printable)) {
annotationPromises.push(
annotations[i].getOperatorList(partialEvaluator, task));
}
}
- Promise.all(annotationPromises).then(function(datas) {
+ return Promise.all(annotationPromises).then(function(operatorLists) {
opList.addOp(OPS.beginAnnotations, []);
- for (var i = 0, n = datas.length; i < n; ++i) {
- var annotOpList = datas[i];
- opList.addOpList(annotOpList);
+ for (var i = 0, n = operatorLists.length; i < n; ++i) {
+ opList.addOpList(operatorLists[i]);
}
opList.addOp(OPS.endAnnotations, []);
- annotationsReadyCapability.resolve();
- }, reject);
-
- return annotationsReadyCapability.promise;
+ });
};
return Annotation;
@@ -525,7 +509,6 @@ var AnnotationBorderStyle = (function AnnotationBorderStyleClosure() {
})();
var WidgetAnnotation = (function WidgetAnnotationClosure() {
-
function WidgetAnnotation(params) {
Annotation.call(this, params);
@@ -649,7 +632,7 @@ var TextAnnotation = (function TextAnnotationClosure() {
}
}
- Util.inherit(TextAnnotation, Annotation, { });
+ Util.inherit(TextAnnotation, Annotation, {});
return TextAnnotation;
})();
@@ -725,7 +708,7 @@ var LinkAnnotation = (function LinkAnnotationClosure() {
return url;
}
- Util.inherit(LinkAnnotation, Annotation, { });
+ Util.inherit(LinkAnnotation, Annotation, {});
return LinkAnnotation;
})();
diff --git a/src/core/core.js b/src/core/core.js
index 52ac6d5..2ab2af7 100644
--- a/src/core/core.js
+++ b/src/core/core.js
@@ -210,7 +210,7 @@ var Page = (function PageClosure() {
}
var annotationsReadyPromise = Annotation.appendToOperatorList(
- annotations, pageOpList, pdfManager, partialEvaluator, task, intent);
+ annotations, pageOpList, partialEvaluator, task, intent);
return annotationsReadyPromise.then(function () {
pageOpList.flush(true);
return pageOpList;
--
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