private JPanel buildFileNamePanel() {
		JLabel filenameLabel = new GDLabel("File name:");
		FileDropDownSelectionDataModel model = new FileDropDownSelectionDataModel(this);
		filenameTextField = new DropDownSelectionTextField<>(model);
		filenameTextField.setMatchingWindowHeight(200);
		filenameTextField.getAccessibleContext().setAccessibleName("Filename");
		filenameTextField.addCellEditorListener(new CellEditorListener() {

			@Override
			public void editingStopped(ChangeEvent e) {
				// the user has cancelled editing in the text field (i.e., they pressed ENTER)
				enterCallback();
			}

			@Override
			public void editingCanceled(ChangeEvent e) {
				// the user has committed editing from the text field (i.e, they pressed ESCAPE)
				escapeCallback();
			}
		});

		filenameTextField.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent e) {
				lastInputFocus = filenameTextField;
			}
		});

		// This is a callback when the user has made a choice from the selection window.
		selectionListener = new SelectionListener<>();
		filenameTextField.addDropDownSelectionChoiceListener(selectionListener);

		// this allows us to process the Enter keypress, which takes the current user text
		// selection and accepts that
		filenameTextField.setConsumeEnterKeyPress(false);

		filenameTextField.setName("filenameTextField");

		JLabel filterLabel = new GLabel("Type:");
		filterLabel.getAccessibleContext().setAccessibleName("Filter");
		filterCombo = new GComboBox<>();
		filterCombo.setRenderer(GListCellRenderer.createDefaultTextRenderer(
			fileFilter -> fileFilter != null ? fileFilter.getDescription() : ""));
		filterCombo.getAccessibleContext().setAccessibleName("Filter");
		filterModel = (DefaultComboBoxModel<GhidraFileFilter>) filterCombo.getModel();
		addFileFilter(GhidraFileFilter.ALL);
		filterCombo.addItemListener(e -> rescanCurrentDirectory());

		JPanel filenamePanel = new JPanel(new PairLayout(PAD, PAD));
		filenamePanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		filenamePanel.add(filenameLabel);
		filenamePanel.add(filenameTextField);
		filenamePanel.add(filterLabel);
		filenamePanel.add(filterCombo);
		filenamePanel.getAccessibleContext().setAccessibleName("Filename");
		return filenamePanel;
	}
Constructs a new ghidra file chooser

@param model the file chooser model
@param parent the parent component
Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/GhidraFileChooser.java