@Override public void invoke(@NotNull Project project, @NotNull PsiFile file, @Nullable("is null when called from inspection") Editor editor, @NotNull PsiElement startElement, @NotNull PsiElement endElement) { if (editor == null || myTestingPackageName != null) { renamePackagesInDirectory(project, file.getContainingDirectory(), myTestingPackageName != null ? myTestingPackageName : myPackageName); return; } JBList list = new JBList(myPackages); list.installCellRenderer(o -> { JBLabel label = new JBLabel(o.toString()); label.setBorder(IdeBorderFactory.createEmptyBorder(2, 4, 2, 4)); return label; }); JBPopupFactory.getInstance().createListPopupBuilder(list).setTitle("Choose package name").setItemChoosenCallback(() -> { String name = (String)list.getSelectedValue(); if (name != null) { renamePackagesInDirectory(project, file.getContainingDirectory(), name); } }).createPopup().showInBestPositionFor(editor); }
list.installCellRenderer(o -> { JBLabel label = new JBLabel(o.toString(), GoIcons.PACKAGE, SwingConstants.LEFT); label.setBorder(IdeBorderFactory.createEmptyBorder(2, 4, 2, 4)); return label; });
private void performImport(@NotNull List<String> packagesToImport, @NotNull BallerinaFile file, @Nullable Editor editor) { if (packagesToImport.size() > 1 && editor != null) { JBList<String> list = new JBList<>(packagesToImport); list.installCellRenderer(o -> { JBLabel label = new JBLabel(o.toString(), BallerinaIcons.PACKAGE, SwingConstants.LEFT); label.setBorder(JBUI.Borders.empty(2, 4)); return label; }); PopupChooserBuilder popupChooserBuilder = JBPopupFactory.getInstance().createListPopupBuilder(list) .setRequestFocus(true) .setTitle("Package to import") .setItemChoosenCallback(() -> { int i = list.getSelectedIndex(); if (i < 0) { return; } performImport(file, packagesToImport.get(i)); }) .setFilteringEnabled(item -> item instanceof String ? (String) item : item.toString()); JBPopup popup = popupChooserBuilder.createPopup(); popupChooserBuilder.getScrollPane().setBorder(null); popupChooserBuilder.getScrollPane().setViewportBorder(null); popup.showInBestPositionFor(editor); } }
UIUtil.FontColor.BRIGHTER ); label.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 10)); northPanel.add(label);
warningMessage.getFont().getName(), Font.PLAIN, warningHeader.getFont().getSize() - 1)); Border paddingBorder = BorderFactory.createEmptyBorder(2, 0, 2, 0); infoMessage.setBorder(paddingBorder);