View Javadoc

1   /*
2    *  soapui, copyright (C) 2005 Ole Matzura / eviware.com 
3    *
4    *  SoapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of the GNU Lesser General Public License as published by the Free Software Foundation; 
6    *  either version 2.1 of the License, or (at your option) any later version.
7    *
8    *  SoapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.soapui.impl.wsdl.actions.project;
14  
15  import java.awt.event.ActionEvent;
16  
17  import javax.swing.AbstractAction;
18  import javax.swing.Action;
19  import javax.swing.JOptionPane;
20  
21  import com.eviware.soapui.SoapUI;
22  import com.eviware.soapui.impl.wsdl.WsdlInterface;
23  import com.eviware.soapui.impl.wsdl.WsdlProject;
24  import com.eviware.soapui.model.iface.Operation;
25  
26  /***
27   * Removes a WsdlProject from the workspace
28   * 
29   * @author Ole.Matzura
30   */
31  
32  public class RemoveProjectAction extends AbstractAction
33  {
34     private final WsdlProject project;
35  
36  	public RemoveProjectAction( WsdlProject project)
37     {
38        super( "Remove" );
39  		this.project = project;
40        putValue( Action.SHORT_DESCRIPTION, "Removes this project from the workspace" );
41     }
42     
43     public void actionPerformed(ActionEvent e)
44  	{
45        if( JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog( SoapUI.getInstance().getFrame(), 
46              "Remove project [" + project.getName() + "] from workspace?", "Remove Project", 
47              JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE ))
48        {
49           return;
50        }
51  
52        for( int x = 0; x < project.getInterfaceCount(); x++ )
53        {
54           WsdlInterface iface = (WsdlInterface) project.getInterfaceAt(x);
55           
56           for( int c = 0; c < iface.getOperationCount(); c++ )
57           {
58              Operation operation = iface.getOperationAt( c );
59              for( int j = 0; j < operation.getRequestCount(); j++ )
60              {
61                 SoapUI.getInstance().closeTab( operation.getRequestAt( j ));
62              }
63           }
64        }
65        
66        SoapUI.getInstance().getWorkspace().removeProject( project );
67     }
68  
69  }