@Override
  public void actionPerformed(@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();
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)