From: <jde...@us...> - 2012-03-28 11:04:54
|
Revision: 16627 http://pcgen.svn.sourceforge.net/pcgen/?rev=16627&view=rev Author: jdempsey Date: 2012-03-28 11:04:42 +0000 (Wed, 28 Mar 2012) Log Message: ----------- Hook up Cleanup temp files setting, allowing intermediate xml output files to be accessed after output is done. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/SettingsHandler.java Trunk/pcgen/code/src/java/pcgen/gui2/UIPropertyContext.java Trunk/pcgen/code/src/java/pcgen/gui2/prefs/OutputPanel.java Trunk/pcgen/code/src/java/pcgen/system/BatchExporter.java Trunk/pcgen/code/src/java/pcgen/system/Main.java Modified: Trunk/pcgen/code/src/java/pcgen/core/SettingsHandler.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SettingsHandler.java 2012-03-28 11:01:47 UTC (rev 16626) +++ Trunk/pcgen/code/src/java/pcgen/core/SettingsHandler.java 2012-03-28 11:04:42 UTC (rev 16627) @@ -60,8 +60,8 @@ import pcgen.gui.utils.Utility; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.PersistenceManager; +import pcgen.system.LanguageBundle; import pcgen.util.Logging; -import pcgen.system.LanguageBundle; /** * This class contains all settings-related code moved from Globals.java @@ -456,11 +456,17 @@ return classTab_SelectedListMode; } + /** + * @Deprecated Use UIPropertyContext.CLEANUP_TEMP_FILES instead. + */ public static void setCleanupTempFiles(final boolean argDoCleanup) { cleanupTempFiles = argDoCleanup; } + /** + * @Deprecated Use UIPropertyContext.CLEANUP_TEMP_FILES instead. + */ public static boolean getCleanupTempFiles() { return cleanupTempFiles; Modified: Trunk/pcgen/code/src/java/pcgen/gui2/UIPropertyContext.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui2/UIPropertyContext.java 2012-03-28 11:01:47 UTC (rev 16626) +++ Trunk/pcgen/code/src/java/pcgen/gui2/UIPropertyContext.java 2012-03-28 11:04:42 UTC (rev 16627) @@ -43,6 +43,8 @@ public static final String DEFAULT_PDF_OUTPUT_SHEET = "defaultPdfOutputSheet"; public static final String DEFAULT_HTML_OUTPUT_SHEET = "defaultHtmlOutputSheet"; public static final String SAVE_OUTPUT_SHEET_WITH_PC = "saveOutputSheetWithPC"; + /** Should we delete all temp files on exit that were generated during outputting character. */ + public static final String CLEANUP_TEMP_FILES = "cleanupTempFiles"; /** * The character property for the initial tab to open Modified: Trunk/pcgen/code/src/java/pcgen/gui2/prefs/OutputPanel.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui2/prefs/OutputPanel.java 2012-03-28 11:01:47 UTC (rev 16626) +++ Trunk/pcgen/code/src/java/pcgen/gui2/prefs/OutputPanel.java 2012-03-28 11:04:42 UTC (rev 16627) @@ -108,7 +108,7 @@ private static String in_choose = "..."; private JCheckBox printSpellsWithPC = new JCheckBox(); - private JCheckBox removeTempFiles; + private JCheckBox removeTempFiles = new JCheckBox(in_removeTemp); private JCheckBox saveOutputSheetWithPC = new JCheckBox(); private JCheckBox weaponProfPrintout; @@ -280,9 +280,6 @@ this.add(paperType); Utility.buildConstraints(c, 0, 7, 3, 1, 0, 0); - removeTempFiles = - new JCheckBox(in_removeTemp, SettingsHandler - .getCleanupTempFiles()); gridbag.setConstraints(removeTempFiles, c); this.add(removeTempFiles); @@ -404,11 +401,8 @@ Globals.selectPaper((String) paperType.getSelectedItem()); - if (SettingsHandler.getCleanupTempFiles() - || removeTempFiles.isSelected()) - { - SettingsHandler.setCleanupTempFiles(removeTempFiles.isSelected()); - } + context.setBoolean(UIPropertyContext.CLEANUP_TEMP_FILES, + removeTempFiles.isSelected()); if (SettingsHandler.getWeaponProfPrintout() != weaponProfPrintout .isSelected()) @@ -468,6 +462,9 @@ .getProperty(UIPropertyContext.DEFAULT_PDF_OUTPUT_SHEET)); saveOutputSheetWithPC.setSelected(context .getBoolean(UIPropertyContext.SAVE_OUTPUT_SHEET_WITH_PC)); + removeTempFiles.setSelected(context.initBoolean( + UIPropertyContext.CLEANUP_TEMP_FILES, true)); + printSpellsWithPC.setSelected(SettingsHandler.getPrintSpellsWithPC()); skillChoice.setSelectedIndex(SettingsHandler.getIncludeSkills()); Modified: Trunk/pcgen/code/src/java/pcgen/system/BatchExporter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/system/BatchExporter.java 2012-03-28 11:01:47 UTC (rev 16626) +++ Trunk/pcgen/code/src/java/pcgen/system/BatchExporter.java 2012-03-28 11:04:42 UTC (rev 16627) @@ -25,6 +25,7 @@ import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; +import java.io.FilenameFilter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; @@ -32,11 +33,13 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; +import pcgen.cdom.base.Constants; import pcgen.core.SettingsHandler; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.PartyFacade; import pcgen.core.facade.SourceSelectionFacade; import pcgen.core.facade.UIDelegate; +import pcgen.gui2.UIPropertyContext; import pcgen.io.ExportHandler; import pcgen.io.PCGFile; import pcgen.persistence.SourceFileLoader; @@ -241,17 +244,19 @@ handler.setMode(FOPHandler.PDF_MODE); handler.setOutputFile(outFile); handler.run(); + if (StringUtils.isNotBlank(handler.getErrorMessage())) + { + Logging.errorPrint("BatchExporter.exportCharacterToPDF failed: " //$NON-NLS-1$ + + handler.getErrorMessage()); + return false; + } } catch (IOException e) { - Logging.errorPrint("BatchExporter.exportCharacterToPDF failed", e); + Logging.errorPrint("BatchExporter.exportCharacterToPDF failed", e); //$NON-NLS-1$ return false; } - if (tempFile != null) - { - tempFile.delete(); - } return true; } @@ -338,10 +343,6 @@ return false; } - if (tempFile != null) - { - tempFile.delete(); - } return true; } @@ -382,6 +383,44 @@ } } + /** + * Remove any temporary xml files produced while outputting characters. + */ + public static void removeTemporaryFiles() + { + final boolean cleanUp = + UIPropertyContext.getInstance().initBoolean( + UIPropertyContext.CLEANUP_TEMP_FILES, true); + + if (!cleanUp) + { + return; + } + + final String aDirectory = + SettingsHandler.getTempPath() + File.separator; + new File(aDirectory).list(new FilenameFilter() + { + public boolean accept(File aFile, String aString) + { + try + { + if (aString.startsWith(Constants.TEMPORARY_FILE_NAME)) + { + final File tf = new File(aFile, aString); + tf.delete(); + } + } + catch (Exception e) + { + Logging.errorPrint("removeTemporaryFiles", e); + } + + return false; + } + }); + } + private static void printToXMLFile(File outFile, CharacterFacade character) throws IOException { Modified: Trunk/pcgen/code/src/java/pcgen/system/Main.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/system/Main.java 2012-03-28 11:01:47 UTC (rev 16626) +++ Trunk/pcgen/code/src/java/pcgen/system/Main.java 2012-03-28 11:04:42 UTC (rev 16627) @@ -514,6 +514,7 @@ public static void shutdown() { configFactory.savePropertyContexts(); + BatchExporter.removeTemporaryFiles(); PropertyContextFactory.getDefaultFactory().savePropertyContexts(); System.exit(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |