Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major 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)

        Issue Links

          Activity

          Repository Revision Date User Message
          ICEsoft Public SVN Repository #19908 Wed Dec 09 12:33:50 MST 2009 carlo.guglielmin PDF-95 - Cleaned up proper logic for the Save As functionality. Now we will handle changes / no changes, Pro / No Pro version, etc
          Files Changed
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/SwingController.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #19904 Wed Dec 09 11:23:42 MST 2009 carlo.guglielmin PDF-95, PDF-91 - Added preliminary skeleton of permission checking before doing a save. Currently disabled until some StateManager work is completed. Also made a fix related to PDF-91 to ensure the ViewerComponentExample still works with the changed properties file. Also added an example called ViewerPropertiesExample that demonstrates building your own properties file and passing it into the SwingViewBuilder constructor
          Files Changed
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/SwingController.java
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/resources/MessageBundle.properties
          Commit graph ADD /icepdf/trunk/icepdf/examples/component/ViewerPropertiesExample.java
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/SwingViewBuilder.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #19899 Wed Dec 09 10:11:20 MST 2009 carlo.guglielmin PDF-95 - Force the user to choose a unique filename for the Save As functionality. Also a minor change to the FileExtensionUtils to allow for a String param, instead of just a File.
          Files Changed
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/SwingController.java
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/resources/MessageBundle.properties
          Commit graph MODIFY /icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/FileExtensionUtils.java

            People

            • Assignee:
              Carlo Guglielmin
              Reporter:
              Mark Collette
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: