private @NotNull Box getText() {
    Box box = Box.createVerticalBox();
    List<String> lines = new ArrayList<>();
    ApplicationInfoEx appInfo = ApplicationInfoEx.getInstanceEx();

    @NlsSafe String appName = appInfo.getFullApplicationName();
    String edition = ApplicationNamesInfo.getInstance().getEditionName();
    if (edition != null) appName += " (" + edition + ")";
    box.add(label(appName, JBFont.h3().asBold()));
    box.add(Box.createVerticalStrut(10));
    myInfo.add(appName);

    @NotNull Pair<String, String> result = getBuildInfo(appInfo);
    lines.add(result.first);
    lines.add("");
    myInfo.add(result.second);

    LicensingFacade la = LicensingFacade.getInstance();
    if (la != null) {
      String licensedTo = la.getLicensedToMessage();
      if (licensedTo != null) {
        lines.add(licensedTo);
        myInfo.add(licensedTo);
      }

      lines.addAll(la.getLicenseRestrictionsMessages());
      myInfo.addAll(la.getLicenseRestrictionsMessages());
    }
    lines.add("");

    Properties properties = System.getProperties();
    String javaVersion = properties.getProperty("java.runtime.version", properties.getProperty("java.version", "unknown"));
    String arch = properties.getProperty("os.arch", "");
    String jcefSuffix = getJcefVersion();
    if (!jcefSuffix.isEmpty()) {
      jcefSuffix = " (" + jcefSuffix + ")";
    }
    String jreInfo = IdeBundle.message("about.box.jre", javaVersion, arch) + jcefSuffix;
    lines.add(jreInfo);
    myInfo.add(MessageFormat.format("Runtime version: {0} {1}", javaVersion, arch) + jcefSuffix);

    String vmVersion = properties.getProperty("java.vm.name", "unknown");
    String vmVendor = properties.getProperty("java.vendor", "unknown");
    String vmVendorInfo = IdeBundle.message("about.box.vm", vmVersion, vmVendor);
    lines.add(vmVendorInfo);
    lines.add("");
    myInfo.add(MessageFormat.format("VM: {0} by {1}", vmVersion, vmVendor));

    //Print extra information from plugins
    ExtensionPointName<AboutPopupDescriptionProvider> ep = new ExtensionPointName<>("com.intellij.aboutPopupDescriptionProvider");
    for (AboutPopupDescriptionProvider aboutInfoProvider : ep.getExtensions()) {
      String description = aboutInfoProvider.getDescription();
      if (description != null) {
        lines.add(description);
        lines.add("");
      }
    }

    @NlsSafe String text = String.join("<p>", lines);  // joining with paragraph separators for better-looking copied text
    box.add(label(text, getDefaultTextFont()));
    addEmptyLine(box);

    //Link to open-source projects
    HyperlinkLabel openSourceSoftware = hyperlinkLabel(IdeBundle.message("about.box.powered.by"));
    openSourceSoftware.addHyperlinkListener(new HyperlinkAdapter() {
      @Override
      protected void hyperlinkActivated(@NotNull HyperlinkEvent e) {
        showOssInfo(box);
      }
    });
    box.add(openSourceSoftware);

    //Copyright
    var year = Integer.toString(LocalDate.now().getYear());
    var copyright = hyperlinkLabel(IdeBundle.message("about.box.copyright", appInfo.getCopyrightStart(), year, appInfo.getCompanyName()));
    copyright.addHyperlinkListener(new HyperlinkAdapter() {
      @Override
      protected void hyperlinkActivated(@NotNull HyperlinkEvent e) {
        BrowserUtil.browse(appInfo.getCompanyURL());
      }
    });
    box.add(copyright);
    addEmptyLine(box);

    return box;
  }
private @NotNull Box getText()