View Javadoc

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  }