From 1ac240dcf95343fbdd4c40563203bab5fd204c8f Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Thu, 5 May 2022 14:08:07 +0200 Subject: (make an attempt to) make java close files; cf. #86 --- .../pdfover/gui/composites/PositioningComposite.java | 19 +++++++++++++++---- .../asit/pdfover/gui/composites/SignaturePanel.java | 13 +++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites') diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java index 09b310fe..40199301 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java @@ -176,16 +176,27 @@ public class PositioningComposite extends StateComposite { PositioningComposite.this.frame.add(PositioningComposite.this.viewer, BorderLayout.CENTER); } }); - } else + } else { EventQueue.invokeLater(new Runnable() { @Override public void run() { PositioningComposite.this.viewer.setDocument(document); } }); - this.numPages = document.getNumPages(); - this.scrollbar.setValues(1, 1, this.numPages + 1, 1, 1, 1); - showPage(this.numPages); + } + + if (document != null) + { + this.numPages = document.getNumPages(); + PositioningComposite.this.scrollbar.setValues(1, 1, this.numPages + 1, 1, 1, 1); + showPage(this.numPages); + } + } + + @Override + public void dispose() { + this.viewer.setDocument(null); + super.dispose(); } /** diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java index 34dd6c5e..1911ac67 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java @@ -129,8 +129,17 @@ public class SignaturePanel extends JPanel { public void setDocument(PDFFile pdf) { this.pdf = pdf; this.sigPagePos = null; - this.numPages = pdf.getNumPages(); - showPage(this.numPages); + if (pdf != null) + { + this.numPages = pdf.getNumPages(); + showPage(this.numPages); + } + else + { + this.page = 0; + this.numPages = 0; + showPage(null); + } } /** -- cgit v1.2.3