1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.actions.iface;
14
15 import java.awt.event.ActionEvent;
16
17 import javax.swing.AbstractAction;
18 import javax.swing.Action;
19
20 import com.eviware.soapui.impl.wsdl.WsdlInterface;
21 import com.eviware.soapui.support.UISupport;
22
23 /***
24 * Updates the definition of a WsdlInterface.
25 *
26 * @author Ole.Matzura
27 */
28
29 public class UpdateInterfaceAction extends AbstractAction
30 {
31 private final WsdlInterface iface;
32
33 public UpdateInterfaceAction( WsdlInterface iface )
34 {
35 super("Update Definition");
36 this.iface = iface;
37 putValue( Action.SHORT_DESCRIPTION, "Reloads the definition for this interface and its operations");
38 putValue( Action.SMALL_ICON, UISupport.createImageIcon( "/updateDefinition.gif" ));
39 putValue( Action.ACCELERATOR_KEY, UISupport.getKeyStroke( "F5" ));
40 }
41
42 public void actionPerformed(ActionEvent e)
43 {
44 if( RemoveInterfaceAction.hasDependingTests( iface ))
45 {
46 UISupport.showErrorMessage( "Cannot update Interface due to running depending tests" );
47 return;
48 }
49
50 String url = UISupport.prompt( "Refresh from specified url:", "Update Definition", iface.getDefinition());
51 if (url == null)
52 return;
53
54 boolean createRequests = UISupport.confirm( "Create default requests for new methods?", "Update Definition" );
55
56 try
57 {
58 if( iface.updateDefinition( url, createRequests ))
59 UISupport.showInfoMessage( "Update of interface successfull!", "Update Definition" );
60 else
61 UISupport.showInfoMessage( "Update of interface failed", "Update Definition" );
62 }
63 catch (Exception e1)
64 {
65 UISupport.showInfoMessage( "Failed to update interface: [" + e1 + "]", "Update Definition" );
66 e1.printStackTrace();
67 }
68 }
69 }