/** Open an appropriate directory browser */
  private void handleURIBrowseButtonPressed() {

    String selectedResource = null;
    String path = getURIText().getText();
    FileSystemElement fileSystem = fileSystemSelectionArea.getSelectedFileSystem();

    IRemoteResourceSelectorProxy resourceSelector = fileSystem.getSelectorProxy();
    if (resourceSelector != null) {
      switch (resourceType) {
        case FILE:
          {
            URI uri =
                resourceSelector.selectFile(
                    fileSystem.getScheme(),
                    path,
                    ResourceSelectorWidgetMessages.ResourceSelectorWidget_select + sectionLabelText,
                    browseButton.getShell());
            if (uri != null) {
              selectedResource = uri.toString();
            }
            break;
          }
        case DIRECTORY:
          {
            URI uri =
                resourceSelector.selectDirectory(
                    fileSystem.getScheme(),
                    path,
                    ResourceSelectorWidgetMessages.ResourceSelectorWidget_select + sectionLabelText,
                    browseButton.getShell());
            if (uri != null) {
              selectedResource = uri.toString();
            }
            break;
          }
        default:
          ProfileLaunchPlugin.log(
              IStatus.ERROR,
              ResourceSelectorWidgetMessages.ResourceSelectorWidget_unrecognized_resourceType);
          return;
      }
    } else {
      ProfileLaunchPlugin.log(
          IStatus.ERROR,
          ResourceSelectorWidgetMessages.ResourceSelectorWidget_getSelectorProxy_returned_null);
    }

    if (selectedResource != null) {
      updateURIField(selectedResource);
    }
  }