// {{{ getPrintJob() method private static PrinterJob getPrintJob(String jobName) { job = PrinterJob.getPrinterJob(); format = new HashPrintRequestAttributeSet(); String settings = jEdit.getSettingsDirectory(); if (settings != null) { String printSpecPath = MiscUtilities.constructPath(settings, "printspec"); File filePrintSpec = new File(printSpecPath); if (filePrintSpec.exists()) { try { FileInputStream fileIn = new FileInputStream(filePrintSpec); ObjectInputStream obIn = new ObjectInputStream(fileIn); format = (HashPrintRequestAttributeSet) obIn.readObject(); } catch (Exception e) { Log.log(Log.ERROR, BufferPrinter1_4.class, e); } // for backwards compatibility, the color variable is stored also as a property if (jEdit.getBooleanProperty("print.color")) format.add(Chromaticity.COLOR); else format.add(Chromaticity.MONOCHROME); // no need to always keep the same job name for every printout. format.add(new JobName(jobName, null)); } } return job; } // }}}
// {{{ savePrintSpec() method private static void savePrintSpec() { String settings = jEdit.getSettingsDirectory(); if (settings == null) return; String printSpecPath = MiscUtilities.constructPath(settings, "printspec"); File filePrintSpec = new File(printSpecPath); try { FileOutputStream fileOut = new FileOutputStream(filePrintSpec); ObjectOutputStream obOut = new ObjectOutputStream(fileOut); obOut.writeObject(format); // for backwards compatibility, the color variable is stored also as a property Chromaticity cc = (Chromaticity) format.get(Chromaticity.class); if (cc != null) jEdit.setBooleanProperty("print.color", cc.getValue() == Chromaticity.COLOR.getValue()); } catch (Exception e) { e.printStackTrace(); } }
/** * Copy a file to another using VFS. * * @param progress the progress observer. It could be null if you don't want to monitor progress. * If not null you should probably launch this command in a WorkThread * @param sourceVFS the source VFS * @param sourceSession the VFS session * @param sourcePath the source path * @param targetVFS the target VFS * @param targetSession the target session * @param targetPath the target path * @param comp comp The component that will parent error dialog boxes * @param canStop could this copy be stopped ? * @return true if the copy was successful * @throws IOException IOException If an I/O error occurs * @since jEdit 4.3pre3 */ public static boolean copy( ProgressObserver progress, VFS sourceVFS, Object sourceSession, String sourcePath, VFS targetVFS, Object targetSession, String targetPath, Component comp, boolean canStop) throws IOException { if (progress != null) progress.setStatus("Initializing"); InputStream in = null; OutputStream out = null; try { VFSFile sourceVFSFile = sourceVFS._getFile(sourceSession, sourcePath, comp); if (sourceVFSFile == null) throw new FileNotFoundException(sourcePath); if (progress != null) { progress.setMaximum(sourceVFSFile.getLength()); } VFSFile targetVFSFile = targetVFS._getFile(targetSession, targetPath, comp); if (targetVFSFile.getType() == VFSFile.DIRECTORY) { if (targetVFSFile.getPath().equals(sourceVFSFile.getPath())) return false; targetPath = MiscUtilities.constructPath(targetPath, sourceVFSFile.getName()); } in = new BufferedInputStream( sourceVFS._createInputStream(sourceSession, sourcePath, false, comp)); out = new BufferedOutputStream(targetVFS._createOutputStream(targetSession, targetPath, comp)); boolean copyResult = IOUtilities.copyStream(IOBUFSIZE, progress, in, out, canStop); VFSManager.sendVFSUpdate(targetVFS, targetPath, true); return copyResult; } finally { IOUtilities.closeQuietly(in); IOUtilities.closeQuietly(out); } }
/** * Returns a temporary file name based on the given path. * * <p>By default jEdit first saves a file to <code>#<i>name</i>#save#</code> and then renames it * to the original file. However some virtual file systems might not support the <code>#</code> * character in filenames, so this method permits the VFS to override this behavior. * * <p>If this method returns <code>null</code>, two stage save will not be used for that * particular file (introduced in jEdit 4.3pre1). * * @param path The path name * @since jEdit 4.1pre7 */ public String getTwoStageSaveName(String path) { return MiscUtilities.constructPath(getParentOfPath(path), '#' + getFileName(path) + "#save#"); } // }}}