@Override
    public @NotNull JComponent createComponent() {
      final JComponent component = myEditor.getComponent();
      if (availableImplicits.isEmpty() && myHint == null) {
        return component;
      }
      final JPanel panel = new JPanel(new BorderLayout());
      panel.add(component, BorderLayout.CENTER);
      String availableVariables = JavaBundle.message("generate.tostring.available.implicit.variables.label", StringUtil.join(availableImplicits, ", "));
      JLabel label =
        new JLabel(XmlStringUtil.wrapInHtml(
          (!availableImplicits.isEmpty() ? availableVariables + "<br/>" : "") +
          (myHint != null ? myHint : "")));
      panel.add(label, BorderLayout.SOUTH);
      return panel;
    }
@Override
    public @NotNull JComponent createComponent()