/** * FileOps.java * * Created on December 28, 2002, 10:44 AM * * @author E. Rajasekar */ package app.astrosoft.util; import java.awt.Color; import java.awt.Component; import java.io.*; import java.net.URI; import java.net.URISyntaxException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import app.astrosoft.exception.AstrosoftException; import app.astrosoft.pref.AstrosoftPref; import app.astrosoft.ui.AstroSoft; import app.astrosoft.ui.dlg.OptionDialog; import app.astrosoft.ui.util.UIConsts; import app.astrosoft.ui.util.UIUtil; public class FileOps { private static final Logger log = Logger.getLogger(FileOps.class.getName()); public static enum FileDialogMode {OPEN, SAVE}; /** Open's file dialog and returns selected file. * * @param as parent * @param mode FileDialogMode - open, save * @return Selected file as String */ public static String openFileDialog( Component parent, FileDialogMode mode, AstrosoftFileFilter astrosoftFileFilter ) { AstrosoftPref pref = AstroSoft.getPreferences(); String initialFile = pref.getAstrosoftFilesDir(); JFileChooser fd = new JFileChooser( initialFile ); UIUtil.setPanelBackground(fd, UIConsts.THEME_CLR); fd.setOpaque(true); fd.setFileFilter( astrosoftFileFilter ); String selectedFile = null; if (mode == FileDialogMode.OPEN){ selectedFile = showFileOpenDialog(parent, fd, astrosoftFileFilter); }else if (mode == FileDialogMode.SAVE) { selectedFile = showFileSaveDialog(parent, fd, astrosoftFileFilter); } if (selectedFile != null) { pref.setAstrosoftFilesDir(fd.getSelectedFile().getParentFile().getAbsolutePath() + File.separator); } return selectedFile; } private static String showFileSaveDialog(Component parent, JFileChooser fd, AstrosoftFileFilter fileFilter){ while (true) { int returnVal = fd.showSaveDialog(parent); if (returnVal == JFileChooser.APPROVE_OPTION){ String selectedFile = getSelectedFile(fd, fileFilter); if (new File(selectedFile).exists()){ int option = OptionDialog.showDialog(selectedFile + " already exists. \n Do you want to overwrite it ? " , JOptionPane.QUESTION_MESSAGE); if (option == JOptionPane.YES_OPTION){ return selectedFile; } }else{ return selectedFile; } //Cancel clicked break out }else{ break; } } return null; } private static String showFileOpenDialog(Component parent, JFileChooser fd, AstrosoftFileFilter fileFilter){ while(true){ int returnVal = fd.showOpenDialog(parent); if (returnVal == JFileChooser.APPROVE_OPTION){ String selectedFile = getSelectedFile(fd, fileFilter); if ( !(new File(selectedFile).exists()) ){ OptionDialog.showDialog(selectedFile + " does not exists. \n Please choose valid file. " , JOptionPane.ERROR_MESSAGE); } else { return selectedFile; } } //Cancel clicked break out else{ break; } } return null; } private static String getSelectedFile(JFileChooser fd, AstrosoftFileFilter fileFilter){ String selectedFile = ( fd.getSelectedFile( ) ).getAbsolutePath( ); String fileExtn = fileFilter.getExtension(); if ( !fileExtn.equals("*") && !selectedFile.endsWith(fileExtn)){ selectedFile = selectedFile + fileExtn; } return selectedFile; } public static int getFromFile( String filename, int row, int col ) { int value = 0; try { //File f = new File( getResourceURI("/resources/" + filename) ); //FileInputStream fis = new FileInputStream( f ); BufferedReader br = new BufferedReader( new InputStreamReader( FileOps.class.getResourceAsStream("/resources/" + filename) ) ); int lineno = 1; while ( lineno++ < row ) br.readLine( ); //String []values = br.readLine().split(","); String[] values = new String[30]; java.util.StringTokenizer st = new java.util.StringTokenizer( br.readLine( ), "," ); int i = 0; while ( st.hasMoreTokens( ) ) { values[i++] = st.nextToken( ); } value = Integer.parseInt( values[col - 1] ); //fis.close( ); } catch ( IOException e ) { e.printStackTrace( ); } return value; } public static void openDocument(String file) { Process p = null; String acrobatExecutable = AstroSoft.getPreferences().getAcrobatExecutable(); if (acrobatExecutable == AstrosoftPref.defaultAcrobatExecutable){ throw new AstrosoftException("Acrobat Executable not initialized"); } String cmd[] = {acrobatExecutable ,file }; //String cmd[] = { "open" ,file }; try { p = Runtime.getRuntime().exec(cmd); } catch (Exception e) { log.log(Level.SEVERE, "Error executing command " + cmd[0] , e); throw new AstrosoftException("Could not run acrobat, reason : " + e.getMessage()); } /*StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); try { String line = br.readLine(); while(line != null){ sb.append(line); line = br.readLine(); } }catch(IOException e){ log.log(Level.SEVERE, "Error in reading command " + cmd[0] + " output ", e); }finally{ try { br.close(); }catch(IOException ie){ log.log(Level.SEVERE, "Exception in closing command output " , ie); } }*/ } public static void main(String[] args) { /*String url = "RasiKuta.txt"; System.out.println(FileOps.getFromFile(url,1,1)); */ //System.out.println(openDocument("C:/Astrosoft/samples/astrosoft.pdf")); } }