package edu.ualr.oyster.gui; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.JScrollPane; import java.awt.Dimension; import javax.swing.BoxLayout; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import java.awt.BorderLayout; public class XMLSaver extends JDialog { private JTextArea jta = new JTextArea(); private JScrollPane scrollPane = new JScrollPane(jta); private JPanel buttonPane; public XMLSaver() { setBounds(100, 100, 833, 599); this.setAlwaysOnTop(true); this.setBounds(550, 300, 800, 700); getContentPane().setLayout(null); getContentPane().setLayout(new BorderLayout(0, 0)); getContentPane().add(scrollPane); { buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); { JButton okButton = new JButton("Save XML"); okButton.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { SaveFile(); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { Close(); } }); cancelButton.setSize(new Dimension(79, 23)); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } getContentPane().add(buttonPane, BorderLayout.SOUTH); } public void setXML(String str){ jta.setText(str); jta.setEditable(false); } private void SaveFile() { JFileChooser chooser = new JFileChooser(); FileFilter filter = new FileNameExtensionFilter("XML Files", "xml"); chooser.addChoosableFileFilter(filter); chooser.setDialogTitle("Save XML File"); if (chooser.showSaveDialog(chooser) == JFileChooser.APPROVE_OPTION) { File fileRunScript = chooser.getSelectedFile(); String filePath = fileRunScript.getPath(); if (!filePath.toLowerCase().endsWith(".xml")) { fileRunScript = new File(filePath + ".xml"); } // Create file if it does not exist try { boolean success = fileRunScript.createNewFile(); if (success) { // File did not exist and was created FileWriter fstream = new FileWriter(fileRunScript); BufferedWriter out = new BufferedWriter(fstream); out.write(jta.getText()); out.close(); JOptionPane .showMessageDialog(this, "File created successfully."); this.dispose(); } else { // File already exists JOptionPane.showMessageDialog( this, "XML file already exists." + "\n" + "Change Document Name!"); } } catch (Exception eRS) { // TODO: handle exception } } } private void Close() { this.dispose(); } }