All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.knightsoftnet.mtwidgets.client.ui.widget.resourceloader.CssResources Maven / Gradle / Ivy

package de.knightsoftnet.mtwidgets.client.ui.widget.resourceloader;

import elemental2.dom.DomGlobal;
import elemental2.dom.Element;
import elemental2.dom.HTMLLinkElement;
import elemental2.dom.NodeList;

import org.apache.commons.lang3.StringUtils;

public class CssResources {

  private static final String TAG_TYPE = "link";
  private static final String SCRIPT_TYPE = "text/css";
  private static final String REL_TYPE = "stylesheet";

  /**
   * add css script to header.
   *
   * @param scriptname style sheet file to add to header
   */
  public static void addToHeader(final String scriptname) {
    if (!CssResources.isInHeader(scriptname)) {
      final HTMLLinkElement styleLinkElement =
          (HTMLLinkElement) DomGlobal.document.createElement("link");
      styleLinkElement.rel = REL_TYPE;
      styleLinkElement.type = SCRIPT_TYPE;
      styleLinkElement.href = scriptname;
      DomGlobal.document.head.appendChild(styleLinkElement);
    }
  }

  /**
   * check if script is already in the header.
   *
   * @return true if it exists
   */
  public static boolean isInHeader(final String scriptname) {
    final NodeList linkList = DomGlobal.document.head.getElementsByTagName(TAG_TYPE);
    return linkList.asList().stream()
        .filter(element -> StringUtils.equals(((HTMLLinkElement) element).type, SCRIPT_TYPE)
            && StringUtils.equals(((HTMLLinkElement) element).rel, REL_TYPE)
            && StringUtils.contains(((HTMLLinkElement) element).href, scriptname))
        .findFirst().isPresent();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy