1 package com.eviware.soapui.support.actions; 2 3 import java.awt.event.ActionEvent; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 7 import javax.swing.AbstractAction; 8 import javax.swing.JFileChooser; 9 import javax.swing.JOptionPane; 10 11 import org.apache.log4j.Logger; 12 13 import com.eviware.soapui.SoapUI; 14 import com.eviware.soapui.support.ExtensionFileFilter; 15 import com.eviware.soapui.support.JXmlTextArea; 16 17 /*** 18 * Saves the XML of a JXmlTextArea 19 * 20 * @author Ole.Matzura 21 */ 22 23 public class SaveXmlTextAreaAction extends AbstractAction 24 { 25 private JFileChooser chooser; 26 private final JXmlTextArea textArea; 27 private String dialogTitle; 28 private static final Logger log = Logger.getLogger( SaveXmlTextAreaAction.class ); 29 30 public SaveXmlTextAreaAction( JXmlTextArea textArea, String dialogTitle ) 31 { 32 super( "Save as.." ); 33 this.textArea = textArea; 34 this.dialogTitle = dialogTitle; 35 } 36 37 public void actionPerformed(ActionEvent e) 38 { 39 if( chooser == null ) 40 { 41 chooser = new JFileChooser(); 42 chooser.setDialogTitle( dialogTitle ); 43 chooser.setAcceptAllFileFilterUsed( true ); 44 chooser.setFileFilter( new ExtensionFileFilter( ".xml", "XML Files (*.xml)")); 45 } 46 47 if( JFileChooser.APPROVE_OPTION != chooser.showSaveDialog( SoapUI.getInstance().getFrame() )) 48 return; 49 50 try 51 { 52 FileWriter writer = new FileWriter( chooser.getSelectedFile()); 53 writer.write( textArea.getText() ); 54 55 log.info( "XML written to [" + chooser.getSelectedFile().getAbsolutePath() + "]" ); 56 writer.close(); 57 } 58 catch (IOException e1) 59 { 60 JOptionPane.showMessageDialog( SoapUI.getInstance().getFrame(), 61 "Error saving xml to file: " + e1.getMessage(), "Error saving XML", JOptionPane.ERROR_MESSAGE ); 62 } 63 } 64 }