View Javadoc

1   package es.inteco.eni.swing;
2   
3   import java.awt.event.ActionEvent;
4   import java.awt.event.ActionListener;
5   import java.io.File;
6   import java.io.IOException;
7   
8   import javax.swing.JFileChooser;
9   import javax.swing.JOptionPane;
10  
11  import org.apache.log4j.Logger;
12  
13  import es.inteco.eni.commons.MessagesHelper;
14  import es.inteco.eni.utils.ExceptionUtils;
15  import es.inteco.eni.utils.FileUtils;
16  
17  /**
18   * Action listener para gestionar el click en el botón de cargar XML
19   * 
20   * 
21   *
22   */
23  public class LoadXmlButtonActionListener implements ActionListener{
24  	/**
25  	 * Log
26  	 */
27  	private static Logger log = Logger.getLogger(LoadXmlButtonActionListener.class);
28  	/**
29  	 * Ventana del validador
30  	 */
31  	private ENIValidator eniValidator;
32  
33  	/**
34  	 * Constructor
35  	 * @param eniValidator Ventana del validador
36  	 */
37  	public LoadXmlButtonActionListener(ENIValidator eniValidator){
38  		this.eniValidator = eniValidator;
39  	}
40  
41  	/**
42  	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
43  	 */
44  	@Override
45  	public void actionPerformed(ActionEvent e) {
46  		try{
47  			JFileChooser fc = new JFileChooser ();
48  			fc.setDialogTitle (MessagesHelper.getText("eni.windows.load.xml.filechooser.title"));
49  			//Sólo ficheros
50  			fc.setFileSelectionMode ( JFileChooser.FILES_ONLY);
51  			//Empieza en el directorio actual
52  			fc.setCurrentDirectory(eniValidator.getParentFile());
53  			//Filtra los ficheros XML
54  			EniFilter xmlFilter = new EniFilter(FileUtils.XML_EXTENSION);
55  			fc.setFileFilter (xmlFilter);
56  
57  			//Abre la ventana para seleccionar el fichero
58  			int result = fc.showOpenDialog(eniValidator);
59  
60  			if (result == JFileChooser.APPROVE_OPTION) {
61  				File fFile = fc.getSelectedFile ();
62  				// Lee el fichero
63  				String fileString = FileUtils.readFileAsString(fFile.getAbsolutePath());
64  
65  				//Limpiamos todo
66  				eniValidator.cleanAll();
67  				//Seleccionamos la pestaña de la vista XML
68  				eniValidator.getTabbedPane().setSelectedIndex(ENIValidator.XML_VIEW_TAB_INDEX);
69  				
70  				if (fileString != null){
71  					eniValidator.getXmlContentTextarea().setText (fileString);
72  				}
73  				eniValidator.setFile(fFile);
74  				eniValidator.setTitle(MessagesHelper.getText("eni.windows.title") + " - " + fFile.getAbsolutePath());
75  				eniValidator.setParentFile(fFile.getParentFile());
76  			}
77  		}catch (IOException ioe) {
78  			log.error(ExceptionUtils.stackTraceToString(ioe));
79  			JOptionPane.showMessageDialog(eniValidator, 
80  					MessagesHelper.getText("eni.load.xml.error.message"),
81  					MessagesHelper.getText("eni.load.xml.error.title"),
82  					JOptionPane.ERROR_MESSAGE);
83  		}
84  	}
85  }