public SoapUIActionMappingList<WorkspaceImpl> getActionMappings(WorkspaceImpl workspace) {
    SoapUIActionMappingList<WorkspaceImpl> mappings = super.getActionMappings(workspace);

    SoapUIActionMapping<WorkspaceImpl> openMapping =
        mappings.getMapping(OpenClosedProjectsAction.SOAPUI_ACTION_ID);
    openMapping.setEnabled(false);
    SoapUIActionMapping<WorkspaceImpl> closeMapping =
        mappings.getMapping(CloseOpenProjectsAction.SOAPUI_ACTION_ID);
    closeMapping.setEnabled(false);

    for (Project project : workspace.getProjectList()) {
      if (project.isOpen()) {
        closeMapping.setEnabled(true);
        if (openMapping.isEnabled()) {
          break;
        }
      } else if (!project.isDisabled()) {
        openMapping.setEnabled(true);
        if (closeMapping.isEnabled()) {
          break;
        }
      }
    }

    return mappings;
  }
  public void monitorProject(Project project) {
    project.addProjectListener(projectListener);

    for (int i = 0; i < project.getTestSuiteCount(); i++) {
      monitorTestSuite(project.getTestSuiteAt(i));
    }
  }
  public void unmonitorProject(Project project) {
    project.removeProjectListener(projectListener);

    for (int c = 0; c < project.getTestSuiteCount(); c++) {
      TestSuite testSuite = project.getTestSuiteAt(c);
      unmonitorTestSuite(testSuite);
    }
  }
  @Override
  public List<Interface> importApis(Project project) {

    List<Interface> result = new ArrayList<Interface>();
    int cnt = project.getInterfaceCount();

    AddSwaggerAction importSwaggerAction = new AddSwaggerAction();
    importSwaggerAction.perform((WsdlProject) project, null);

    for (int c = cnt; c < project.getInterfaceCount(); c++) {
      result.add(project.getInterfaceAt(c));
    }

    return result;
  }
 private String determineSuggestedDirectory(Project project) {
   String currentDirectory =
       StringUtils.hasContent(project.getResourceRoot())
           ? project.getResourceRoot()
           : project.getPath();
   if (!StringUtils.hasContent(currentDirectory)) {
     return System.getProperty("user.dir", ".");
   } else if (holder.getModelItem() instanceof AbstractWsdlModelItem) {
     String expandedPath =
         PathUtils.expandPath(
             currentDirectory, ((AbstractWsdlModelItem) (holder.getModelItem())));
     return FilenameUtils.normalize(expandedPath);
   } else {
     return currentDirectory;
   }
 }
  public void init(Project project) {
    this.project = (WsdlProject) project;
    initConfig();

    project.addProjectListener(projectListener);

    for (Interface iface : project.getInterfaceList()) {
      for (String endpoint : iface.getEndpoints()) {
        // ensure we have defaults
        getEndpointDefaults(endpoint);
      }

      iface.addPropertyChangeListener(AbstractInterface.ENDPOINT_PROPERTY, propertyChangeListener);
    }

    removeUnusedEndpoints();
  }