From f39ab43fc0120b7fa97028d40acd7851de8d4a99 Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Thu, 24 Nov 2022 14:14:37 +0100 Subject: Repository moved to GitHub: https://github.com/a-sit/pdf-over --- .../signer/pdfas/PdfAs4SignaturePlaceholder.java | 78 ---------------------- 1 file changed, 78 deletions(-) delete mode 100644 pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java (limited to 'pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java') diff --git a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java b/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java deleted file mode 100644 index 04bbcfdf..00000000 --- a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java +++ /dev/null @@ -1,78 +0,0 @@ -package at.asit.pdfover.signer.pdfas; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.TreeMap; -import java.util.function.Consumer; - -import at.asit.pdfover.commons.Profile; -import at.asit.pdfover.commons.utils.ImageUtil; - -/** - * caches placeholders for signature parameters (placeholder generation is pretty slow) - */ -public final class PdfAs4SignaturePlaceholder implements Runnable { - private static TreeMap cache = new TreeMap<>( - Comparator - .comparing(PdfAs4SignatureParameter::getPdfAsSignatureProfileId) - .thenComparing((p) -> { return (p.emblem != null) ? p.emblem.getOriginalFileHash() : ""; }) - .thenComparing((p) -> { return p.signatureNote; }, Comparator.nullsFirst(String::compareTo)) - .thenComparing((p) -> { return p.targetLogoSize; }) - ); - - /** - * request a placeholder for the specified parameter asynchronously - * @param callback the callback to be invoked on completion (may also be invoked before this function returns!) - */ - public static void For(PdfAs4SignatureParameter param, Consumer callback) { - synchronized(cache) { - cache.computeIfAbsent(param, (p) -> new PdfAs4SignaturePlaceholder(p)).AddCallback(callback); - } - } - - private final PdfAs4SignatureParameter param; - private PdfAs4SignaturePlaceholder(PdfAs4SignatureParameter param) { - this.param = param; - new Thread(this).start(); - } - - private java.awt.image.BufferedImage awtImageData; - public boolean hasImage() { return ((this.awtImageData != null) && (this.swtImageData != null)); } - /** AWT image data for the placeholder */ - public java.awt.image.BufferedImage getAWTImage() { return this.awtImageData; } - private org.eclipse.swt.graphics.ImageData swtImageData; - /** SWT image data for the placeholder */ - public org.eclipse.swt.graphics.ImageData getSWTImage() { return this.swtImageData; } - - private ArrayList> callbacks = new ArrayList<>(); - private void AddCallback(Consumer c) { - synchronized (this) { - if (this.callbacks != null) - { - this.callbacks.add(c); - return; - } /* else... */ - } - /* ... else, not synchronized */ - c.accept(this); - } - - - @Override - public void run() { - if (!Profile.INVISIBLE.name().equals(this.param.getPdfAsSignatureProfileId())) { - this.awtImageData = (java.awt.image.BufferedImage) this.param.getPlaceholder(); - this.swtImageData = ImageUtil.convertToSWT(this.awtImageData); - } else { - this.awtImageData = null; - this.swtImageData = null; - } - ArrayList> _callbacks; - synchronized (this) { - _callbacks = this.callbacks; - this.callbacks = null; - } - _callbacks.forEach((c) -> c.accept(this)); - } - -} -- cgit v1.2.3