Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2011 Michael Ruflin, Andr´┐Ż Locher, Claudia von Bastian. This file is part of Tatool. Tatool is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Tatool is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Tatool. If not, see <http://www.gnu.org/licenses/>. /
 
 package ch.tatool.app.export;
 
 import java.io.File;
 import java.util.Date;
 
 
 
Exports module data into a directory chosen by the uesr.

Author(s):
Michael Ruflin
 
 public class FileDataExporter extends DataExporterImpl {
 
 	Logger logger = LoggerFactory.getLogger(FileDataExporter.class);
 
 	private String path;
 
 	private boolean relativeToHome = false;
 
 	public FileDataExporter() {
 		super();
 	}

Exports the module data to a file
 
 	public String exportData(Component parentFrameModule module,
 			int fromSessionIndexDataExporterError exporterError) {
 
 		String filename = "";
 
 		// get path
 		String path = getPath();
 
 		if (path == null) {
 			// ask the user where he wants to export the data to
 			filename = getStorageDirectory(parentFrame);
 		} else {
 			Date d = new Date();
 			SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
 					.getName());
 			String moduleName = removeSpecialCharacters(module.getName());
 
 			if () {
 				filename = System.getProperty("user.home")
 						+ System.getProperty("file.separator") + path
 						+ System.getProperty("file.separator") + moduleName
 						+ "_" + account + "_" + dateformat.format(d) + ".csv";
 			} else {
 				filename = path + System.getProperty("file.separator")
 						+ moduleName + "_" + account + "_"
 						+ dateformat.format(d) + ".csv";
 			}
 
 		}
 		
 		// create a new csv exporter
 		
 		
 		// change CSV separator for English language to comma
 			csvExport.setCSVParameters(',');
 		} else {
 			csvExport.setCSVParameters(';');
 		}
 		
 		File tmpFile = csvExport.exportData(modulefromSessionIndex);
		if (filename == null) {
			return "The export has been cancelled.";
		}
		// copy/move the file to the destination
		try {
			File moduleDataFile = new File(filename);
			FileUtils.copyFile(tmpFilemoduleDataFile);
			tmpFile.delete();
catch (IOException ioe) {
			.error("Unable to move exported file to destination"ioe);
			exporterError.setErrorReason(ioe.getMessage());
			return "Export failed.\n" + ioe.getMessage();
		}
		return null;
	}
	public static String removeSpecialCharacters(String str) {
		for (int i = 0; i < str.length(); i++) {
			if ((str.charAt(i) >= '0' && str.charAt(i) <= '9')
					|| (str.charAt(i) >= 'A' && str.charAt(i) <= 'z' || (str
							.charAt(i) == '.' || str.charAt(i) == '_')))
				sb.append(str.charAt(i));
		}
		return sb.toString();
	}
	private String getStorageDirectory(Component parentFrame) {
		JFileChooser chooser = new JFileChooser();
		chooser.setFileFilter(new FileFilter() {
			public String getDescription() {
				return "CSV (*.csv)";
			}
			public boolean accept(File f) {
				if (f.isDirectory()) {
					return true;
				}
				String extension = getExtension(f);
				if (extension != null) {
					if (extension.equals("csv")) {
						return true;
else {
						return false;
					}
				}
				return false;
			}
		});
		// chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		int returnVal = chooser.showSaveDialog(parentFrame);
		if (returnVal == .) {
			File f = chooser.getSelectedFile();
			String filename = "";
			if (f == null) {
				throw new RuntimeException();
			}
			String extension = getExtension(f);
			if (extension == null || !getExtension(f).equals("csv")) {
				filename = f + ".csv";
else {
				filename = f.getPath();
			}
			return filename;
else {
			return null;
		}
	}
	/*
	 * Get the extension of a file.
	 */
	public static String getExtension(File f) {
		String ext = null;
		String s = f.getName();
		int i = s.lastIndexOf('.');
		if (i > 0 && i < s.length() - 1) {
			ext = s.substring(i + 1).toLowerCase();
		}
		return ext;
	}
	public String getPath() {
		return ;
	}
	public void setPath(String path) {
		this. = path;
	}
	public boolean isRelativeToHome() {
	}
	public void setRelativeToHome(boolean relativeToHome) {
		this. = relativeToHome;
	}

Get the action name
	public String getExporterName() {
		return "Export";
	}
New to GrepCode? Check out our FAQ X