void (@NotNull AnActionEvent e) { Project project = e.getRequiredData(CommonDataKeys.PROJECT); Collection<FilePath> filesPaths = ContainerUtil.sorted(getStructureFilterPaths(), HierarchicalFilePathComparator.NATURAL); String oldValue = StringUtil.join(ContainerUtil.map(filesPaths, filePath -> path2Text(filePath, false)), "\n"); MultilinePopupBuilder popupBuilder = new MultilinePopupBuilder(project, oldValue, new char[]{'\n'}); JBPopup popup = popupBuilder.createPopup(); popup.addListener(new JBPopupListener() { @Override public void onClosed(@NotNull LightweightWindowEvent event) { if (event.isOk()) { List<FilePath> selectedPaths = ContainerUtil.map(popupBuilder.getSelectedValues(), path -> text2Path(path)); if (selectedPaths.isEmpty()) { myFilterModel.setFilter(null); } else { setStructureFilter(VcsLogFilterObject.fromPaths(selectedPaths)); } } } }); popup.showUnderneathOf(getTargetComponent()); }