Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0 - Beta
-
Fix Version/s: 4.0 - Beta, 4.0
-
Component/s: Viewer RI
-
Labels:None
-
Environment:All
-
Assignee Priority:P2
Description
Need to show a File Save As dialog to get the path to save the altered PDF to. Then invoke saveAs(File) on the Document object.
- May have to use SwingUtilities.invokeLater() so that the ui will repaint after the dialog is closed, before doing the save operation.
- Might want to save on another thread, so that user can continue viewing or PDF. Might not want another thread, so user can't continue altering PDF while it's saving. Specifically thinking about when saving large files, or when saving to network share, how it might take a long time.
- Might want to show progress while saving.
- Might want to detect if PDF changed, and if PDF saving supported (might be pro feature), and then un-grey save-as user interface elements.
Have to decide, if:
A. Block all access to PDF while save as
B. Allow read-only viewing, while temporarily disabling further edits, while save as happening
Have to decide if want to show progress, and means of doing so:
A. Don't show progress
B. RI have progress callback, so it calls Document.saveAs(File, ProgressCallback), which it can then use to update some user interface, like the javax.swing.ProgressMonitor mechanism.
C. Same as B, except instead of ProgressMonitor popup dialog, have something more unobtrusive in the status bar, to facilitate if we use read-only viewing, from the section above.
D. RI adapt the javax.swing.ProgressMonitorInputStream into an OutputStream, and call Document.saveAs(OutputStream)
- May have to use SwingUtilities.invokeLater() so that the ui will repaint after the dialog is closed, before doing the save operation.
- Might want to save on another thread, so that user can continue viewing or PDF. Might not want another thread, so user can't continue altering PDF while it's saving. Specifically thinking about when saving large files, or when saving to network share, how it might take a long time.
- Might want to show progress while saving.
- Might want to detect if PDF changed, and if PDF saving supported (might be pro feature), and then un-grey save-as user interface elements.
Have to decide, if:
A. Block all access to PDF while save as
B. Allow read-only viewing, while temporarily disabling further edits, while save as happening
Have to decide if want to show progress, and means of doing so:
A. Don't show progress
B. RI have progress callback, so it calls Document.saveAs(File, ProgressCallback), which it can then use to update some user interface, like the javax.swing.ProgressMonitor mechanism.
C. Same as B, except instead of ProgressMonitor popup dialog, have something more unobtrusive in the status bar, to facilitate if we use read-only viewing, from the section above.
D. RI adapt the javax.swing.ProgressMonitorInputStream into an OutputStream, and call Document.saveAs(OutputStream)
Issue Links
- blocks
-
PDF-72 PDF incremental updates
- Closed
We're going to block all input, and show an hourglass while saving.