private void handleBrowseButtonPressed() {
    final DirectoryDialog dialog = new DirectoryDialog(directoryPathField.getShell(), SWT.SHEET);
    dialog.setMessage("Select search directory");

    String dirName = directoryPathField.getText().trim();
    if (dirName.isEmpty()) {
      dirName = previouslyBrowsedDirectory;
    }

    if (dirName.isEmpty()) {
      dialog.setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
    } else {
      File path = new File(dirName);
      if (path.exists()) {
        dialog.setFilterPath(new Path(dirName).toOSString());
      }
    }

    String selectedDirectory = dialog.open();
    if (selectedDirectory != null) {
      previouslyBrowsedDirectory = selectedDirectory;
      directoryPathField.setText(previouslyBrowsedDirectory);
      updateProjectsList(selectedDirectory);
    }
  }