void (@NotNull AnActionEvent e) { new DialogWrapper(e.getProject()) { private JPanel myPanel; { init(); setResizable(false); } @Override protected Action @NotNull [] createLeftSideActions() { return new Action[]{new AbstractAction(IdeBundle.message("button.repaint.icons")) { @Override public void actionPerformed(ActionEvent e) { if (myPanel != null) { myPanel.removeAll(); fillPanel(myPanel); myPanel.revalidate(); } } }}; } @Override protected JComponent createCenterPanel() { myPanel = new JPanel(); myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS)); fillPanel(myPanel); return myPanel; } private void fillPanel(JPanel panel) { panel.add(createIconsRow(NotificationType.INFORMATION, true)); panel.add(createIconsRow(NotificationType.INFORMATION, false)); panel.add(createIconsRow(NotificationType.WARNING, true)); panel.add(createIconsRow(NotificationType.WARNING, false)); panel.add(createIconsRow(NotificationType.ERROR, true)); panel.add(createIconsRow(NotificationType.ERROR, false)); } private static @NotNull JPanel createIconsRow(@NotNull NotificationType notificationType, boolean forToolWindow) { JPanel row = new JPanel(); row.setLayout(new BoxLayout(row, BoxLayout.X_AXIS)); for (int i = 0; i <= 10; i++) { LayeredIcon icon = IdeNotificationArea.createIconWithNotificationCount(row, notificationType, i, forToolWindow); JBLabel label = new JBLabel(icon); label.setMaximumSize(new JBDimension(30, 20)); label.setMinimumSize(new JBDimension(30, 20)); row.add(label); } return row; } }.show(); }