Browse Source

Implement `getOperatorList` method in the `WidgetAnnotation` class to

avoid duplication in subclasses
Tim van der Meij 8 years ago
parent
commit
2512eccbf0
No known key found for this signature in database
GPG Key ID: 8C3FD2925A5F2762
  1. 51
      src/core/annotation.js

51
src/core/annotation.js

@ -646,6 +646,15 @@ class WidgetAnnotation extends Annotation { @@ -646,6 +646,15 @@ class WidgetAnnotation extends Annotation {
hasFieldFlag(flag) {
return !!(this.data.fieldFlags & flag);
}
getOperatorList(evaluator, task, renderForms) {
// Do not render form elements on the canvas when interactive forms are
// enabled. The display layer is responsible for rendering them instead.
if (renderForms) {
return Promise.resolve(new OperatorList());
}
return super.getOperatorList(evaluator, task, renderForms);
}
}
class TextWidgetAnnotation extends WidgetAnnotation {
@ -679,18 +688,11 @@ class TextWidgetAnnotation extends WidgetAnnotation { @@ -679,18 +688,11 @@ class TextWidgetAnnotation extends WidgetAnnotation {
}
getOperatorList(evaluator, task, renderForms) {
let operatorList = new OperatorList();
// Do not render form elements on the canvas when interactive forms are
// enabled. The display layer is responsible for rendering them instead.
if (renderForms) {
return Promise.resolve(operatorList);
if (renderForms || this.appearance) {
return super.getOperatorList(evaluator, task, renderForms);
}
if (this.appearance) {
return Annotation.prototype.getOperatorList.call(this, evaluator, task,
renderForms);
}
let operatorList = new OperatorList();
// Even if there is an appearance stream, ignore it. This is the
// behaviour used by Adobe Reader.
@ -756,22 +758,6 @@ class ButtonWidgetAnnotation extends WidgetAnnotation { @@ -756,22 +758,6 @@ class ButtonWidgetAnnotation extends WidgetAnnotation {
}
}
}
getOperatorList(evaluator, task, renderForms) {
let operatorList = new OperatorList();
// Do not render form elements on the canvas when interactive forms are
// enabled. The display layer is responsible for rendering them instead.
if (renderForms) {
return Promise.resolve(operatorList);
}
if (this.appearance) {
return Annotation.prototype.getOperatorList.call(this, evaluator, task,
renderForms);
}
return Promise.resolve(operatorList);
}
}
class ChoiceWidgetAnnotation extends WidgetAnnotation {
@ -814,19 +800,6 @@ class ChoiceWidgetAnnotation extends WidgetAnnotation { @@ -814,19 +800,6 @@ class ChoiceWidgetAnnotation extends WidgetAnnotation {
this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);
this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);
}
getOperatorList(evaluator, task, renderForms) {
let operatorList = new OperatorList();
// Do not render form elements on the canvas when interactive forms are
// enabled. The display layer is responsible for rendering them instead.
if (renderForms) {
return Promise.resolve(operatorList);
}
return Annotation.prototype.getOperatorList.call(this, evaluator, task,
renderForms);
}
}
class TextAnnotation extends Annotation {

Loading…
Cancel
Save