View Javadoc

    1   /*
    2    *  soapUI, copyright (C) 2004-2007 eviware.com
    3    *
    4    *  soapUI is free software; you can redistribute it and/or modify it under the
    5    *  terms of version 2.1 of the GNU Lesser General Public License as published by
    6    *  the Free Software Foundation.
    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.actions;
    14
    15  import java.io.File;
    16
    17  import com.eviware.soapui.impl.WorkspaceImpl;
    18  import com.eviware.soapui.impl.wsdl.WsdlProject;
    19  import com.eviware.soapui.support.UISupport;
    20  import com.eviware.soapui.support.action.support.AbstractSoapUIAction;
    21  import com.eviware.x.form.XFormDialog;
    22  import com.eviware.x.form.XFormField;
    23  import com.eviware.x.form.XFormFieldListener;
    24  import com.eviware.x.form.support.ADialogBuilder;
    25  import com.eviware.x.form.support.AField;
    26  import com.eviware.x.form.support.AForm;
    27  import com.eviware.x.form.support.AField.AFieldType;
    28
    29  /***
    30   * Action for creating a new WSDL project
    31   *
    32   * @author Ole.Matzura
    33   */
    34
    35  public class NewWsdlProjectAction extends AbstractSoapUIAction<WorkspaceImpl>
    36  {
    37  	public static final String SOAPUI_ACTION_ID = "NewWsdlProjectAction";
    38  	private XFormDialog dialog;
    39
    40  	public NewWsdlProjectAction()
    41     {
    42        super("New WSDL Project", "Creates a new WSDL Project in this workspace");
    43     }
    44
    45  	public void perform( WorkspaceImpl workspace, Object param )
    46  	{
    47     	if( dialog == null )
    48     	{
    49  			dialog = ADialogBuilder.buildDialog( Form.class );
    50  			dialog.setValue( Form.CREATEREQUEST, Boolean.toString( true ) );
    51  			dialog.getFormField( Form.INITIALWSDL ).addFormFieldListener( new XFormFieldListener(){
    52
    53  				public void valueChanged( XFormField sourceField, String newValue, String oldValue )
    54  				{
    55  					dialog.getFormField( Form.CREATEREQUEST ).setEnabled( newValue.trim().length() > 0 );
    56  				}} );
    57     	}
    58     	else
    59     	{
    60     		dialog.setValue( Form.PROJECTNAME, "" );
    61     		dialog.setValue( Form.INITIALWSDL, "" );
    62     	}
    63
    64     	if( dialog.show() )
    65     	{
    66     		try
    67     		{
    68     			WsdlProject project = workspace.createProject( dialog.getValue( Form.PROJECTNAME ));
    69     			if( project != null )
    70              {
    71     				String url = dialog.getValue( Form.INITIALWSDL ).trim();
    72     				if( url.length() > 0 )
    73     				{
    74     					if( new File( url ).exists() )
    75     						url = "file:" + url;
    76
    77        				project.importWsdl( url, dialog.getValue( Form.CREATEREQUEST ).equals( "true" ));
    78     				}
    79
    80     			   UISupport.select(project);
    81              }
    82     		}
    83     		catch (Exception ex)
    84     		{
    85     			UISupport.showErrorMessage( ex );
    86     		}
    87     	}
    88  	}
    89
    90     @AForm( name="New WSDL Project", description = "Creates a new WSDL Project in this workspace")
    91  	private class Form
    92  	{
    93  		@AField(name = "Project Name", description = "The name of the project to create", type = AFieldType.STRING )
    94  		public final static String PROJECTNAME = "Project Name";
    95
    96  		@AField(name = "Initial WSDL", description = "URL or filename of initial WSDL", type = AFieldType.FILE )
    97  		public final static String INITIALWSDL = "Initial WSDL";
    98
    99  		@AField(name = "Create Requests", description = "Create sample requests for all operations?",
    100 					type = AFieldType.BOOLEAN, enabled = false )
    101 		public final static String CREATEREQUEST = "Create Requests";
    102 	}
    103
    104
    105 }