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
19
20
21
22
23 public class LoadXmlButtonActionListener implements ActionListener{
24
25
26
27 private static Logger log = Logger.getLogger(LoadXmlButtonActionListener.class);
28
29
30
31 private ENIValidator eniValidator;
32
33
34
35
36
37 public LoadXmlButtonActionListener(ENIValidator eniValidator){
38 this.eniValidator = eniValidator;
39 }
40
41
42
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
50 fc.setFileSelectionMode ( JFileChooser.FILES_ONLY);
51
52 fc.setCurrentDirectory(eniValidator.getParentFile());
53
54 EniFilter xmlFilter = new EniFilter(FileUtils.XML_EXTENSION);
55 fc.setFileFilter (xmlFilter);
56
57
58 int result = fc.showOpenDialog(eniValidator);
59
60 if (result == JFileChooser.APPROVE_OPTION) {
61 File fFile = fc.getSelectedFile ();
62
63 String fileString = FileUtils.readFileAsString(fFile.getAbsolutePath());
64
65
66 eniValidator.cleanAll();
67
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 }