@Nonnull
	private <T extends AbstractSearchPane> T openSearchPane(@Nonnull String titleId, @Nonnull Ikon icon, @Nonnull Instance<T> paneProvider) {
		// Place the tab in a region with other comments if possible.
		DockablePath searchPath = null;
		for (DockablePath dockablePath : dockingManager.getBento().getAllDockables()) {
			Dockable dockable = dockablePath.dockable();
			Node node = dockable.nodeProperty().get();
			if (node instanceof AbstractSearchPane) {
				searchPath = dockablePath;
				break;
			}
		}
		TabbedDockSpace space = searchPath == null ? null : (TabbedDockSpace) searchPath.space();

		T content = paneProvider.get();
		if (space != null) {
			createDockable(space, getBinding(titleId), d -> new FontIconView(icon), content);
		} else {
			Dockable dockable = createDockable(null, getBinding(titleId), d -> new FontIconView(icon), content);
			Scene originScene = dockingManager.getPrimaryTabbedSpace().getBackingRegion().getScene();
			Stage stage = dockingManager.getBento().newStageForDockable(originScene, dockable, 800, 400);
			stage.show();
			stage.requestFocus();
		}
		return content;
	}
@return New member-declaration search pane, opened in a new docking tab.
recaf-ui/src/main/java/software/coley/recaf/services/navigation/Actions.java