@Nonnull
	public FileNavigable gotoDeclaration(@Nonnull Workspace workspace,
	                                     @Nonnull WorkspaceResource resource,
	                                     @Nonnull FileBundle bundle,
	                                     @Nonnull BinaryXmlFileInfo info) {
		FilePathNode path = PathNodes.filePath(workspace, resource, bundle, info);
		return (FileNavigable) getOrCreatePathContent(path, () -> {
			// Create text/graphic for the tab to create.
			String title = textService.getFileInfoTextProvider(workspace, resource, bundle, info).makeText();
			IconProvider iconProvider = iconService.getFileInfoIconProvider(workspace, resource, bundle, info);
			DockableIconFactory graphicFactory = d -> Objects.requireNonNull(iconProvider.makeIcon(), "Missing graphic");
			if (title == null) throw new IllegalStateException("Missing title");

			// Create content for the tab.
			BinaryXmlFilePane content = binaryXmlPaneProvider.get();
			content.onUpdatePath(path);

			// Build the tab.
			Dockable dockable = createDockable(dockingManager.getPrimaryTabbedSpace(), title, graphicFactory, content);
			setupInfoContextMenu(info, content, dockable);
			return dockable;
		});
	}
Brings a {@link FileNavigable} component representing the given binary XML file into focus.
If no such component exists, one is created.

@param workspace
		Containing workspace.
@param resource
		Containing resource.
@param bundle
		Containing bundle.
@param info
		Binary XML file to go to.

@return Navigable content representing binary XML file content of the path.
recaf-ui/src/main/java/software/coley/recaf/services/navigation/Actions.java