public void run(IAction action) {
		
		List<String> files=new ArrayList<String>();
		if(selection instanceof IStructuredSelection){
			IStructuredSelection str=(IStructuredSelection)selection;
			Iterator iter=str.iterator();
			while(iter.hasNext()){
				Object selected=iter.next();
				if(selected instanceof IResource){
					IResource resource=(IResource)selected;
					files.addAll(IResourceFileUtil.getFiles(resource));
				}
			}
		}
		if(files!=null && !files.isEmpty()){
			String opDir=PlatformUI.getPreferenceStore().getString(PreferenceConstants.P_OUTPUT_DIRECTORY);
			if(opDir==null || "".equals(opDir.trim())){
				InputDialog inputDialog=new InputDialog(shell, "Reports Directory", "Output directory is not set in preferences, please select. ", opDir, new FolderInputValidator());
				inputDialog.setBlockOnOpen(true);
				inputDialog.open();
				int returnCode=inputDialog.getReturnCode();
				if(returnCode==InputDialog.OK){
					opDir=inputDialog.getValue();
				}else{
					return;
				}
			}
			DriverHandler.callDriver(opDir,shell,files);
			
		}else{
			MessageDialog.openError(shell, "No Files", "No WSDL Files Exist in the selection.");
		}
		
	}