public CloudSpacesSelectionPart(
      CloudSpacesDelegate cloudSpaceServerDelegate,
      CloudFoundryServer cloudServer,
      IWizardHandle wizardHandle) {
    this.cloudSpaceServerDelegate = cloudSpaceServerDelegate;

    String serverTypeId = cloudServer.getServer().getServerType().getId();

    wizardHandle.setTitle(Messages.CloudSpacesSelectionPart_TEXT_ORG_AND_SPACE);
    wizardHandle.setDescription(DEFAULT_DESCRIPTION);
    ImageDescriptor banner = CloudFoundryImages.getWizardBanner(serverTypeId);
    if (banner != null) {
      wizardHandle.setImageDescriptor(banner);
    }
  }
  protected DebugConnectionDescriptor getSshConnectionDescriptor(
      CloudFoundryApplicationModule appModule,
      CloudFoundryServer cloudServer,
      int appInstance,
      int remoteDebugPort,
      IProgressMonitor monitor)
      throws CoreException {

    CFInfo cloudInfo = cloudServer.getBehaviour().getCloudInfo();
    if (cloudInfo instanceof CloudInfoSsh) {
      ISshClientSupport ssh = cloudServer.getBehaviour().getSshClientSupport(monitor);
      if (ssh == null) {
        return null;
      }
      try {
        printToConsole(
            appModule,
            cloudServer,
            NLS.bind(
                Messages.SshDebugLaunchConfigDelegate_CONNECTING_FOR_USER,
                appModule.getDeployedApplicationName()),
            false);

        Session session =
            ssh.connect(
                appModule.getDeployedApplicationName(),
                appInstance,
                cloudServer.getServer(),
                monitor);

        printToConsole(
            appModule,
            cloudServer,
            NLS.bind(
                Messages.SshDebugLaunchConfigDelegate_CONNECTION_SUCCESSFUL,
                appModule.getDeployedApplicationName()),
            false);

        int localDebuggerPort =
            session.setPortForwardingL(0, "localhost", remoteDebugPort); // $NON-NLS-1$

        printToConsole(
            appModule,
            cloudServer,
            NLS.bind(
                Messages.SshDebugLaunchConfigDelegate_PORT_FORWARDING_SUCCESSFUL,
                remoteDebugPort,
                localDebuggerPort),
            false);

        return new DebugConnectionDescriptor("localhost", localDebuggerPort); // $NON-NLS-1$

      } catch (JSchException e) {
        throw CloudErrorUtil.toCoreException(
            "SSH connection error " + e.getMessage()); // $NON-NLS-1$
      }
    } else {
      throw CloudErrorUtil.toCoreException(
          "Unable to resolve SSH connection information from the Cloud Foundry target. Please ensure SSH is supported."); //$NON-NLS-1$
    }
  }