private LibraryChoice[] getChoicesForLibraryCombo() {
		List<LibraryChoice> list = new ArrayList<>();
		list.add(new LibraryChoice("None", null));
		FidFile selectedItem = (FidFile) fidFileComboBox.getSelectedItem();
		if (selectedItem != null) {
			try (FidDB fidDB = selectedItem.getFidDB(false)) {
				List<LibraryRecord> allLibraries = fidDB.getAllLibraries();
				for (LibraryRecord libraryRecord : allLibraries) {
					list.add(new LibraryChoice(libraryRecord.toString(), libraryRecord));
				}
			}
			catch (VersionException e) {
				// Version upgrades are not supported
				Msg.showError(this, null, "Failed to open FidDb",
					"Failed to open incompatible FidDb (may need to regenerate with this version of Ghidra): " +
						selectedItem.getPath());
			}
			catch (IOException e) {
				Msg.showError(this, null, "Failed to open FidDb",
					"Failed to open FidDb: " + selectedItem.getPath(), e);
			}
		}
		return list.toArray(new LibraryChoice[list.size()]);
	}
Dialog for gathering information to populate a fid database.
Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/plugin/PopulateFidDialog.java