Package org.jboss.errai.ui.rebind.chain

Source Code of org.jboss.errai.ui.rebind.chain.SelectorReplacer

package org.jboss.errai.ui.rebind.chain;

import org.jboss.errai.ui.rebind.less.LessStyleGenerator;
import org.jboss.errai.ui.shared.chain.Command;
import org.jboss.errai.ui.shared.chain.Context;
import org.w3c.dom.Element;

import java.util.Map;

import static org.apache.commons.lang.StringUtils.isNotEmpty;
import static org.jboss.errai.ui.rebind.chain.TemplateCatalog.RESULT;

/**
* @author edewit@redhat.com
*/
public class SelectorReplacer implements Command {

  static final String MAPPING = "mapping";

  @Override
  @SuppressWarnings("unchecked")
  public void execute(Context context) {
    Map<String, String> selectorMap = (Map<String, String>) context.get(MAPPING);
    Element element = (Element) context.get(TemplateCatalog.ELEMENT);
    String selector = element.getAttribute("class");
    if (isNotEmpty(selector)) {
      final String[] classSelectors = selector.split(" ");
      for (String classSelector : classSelectors) {
        final String obfuscatedSelector = selectorMap.get(classSelector);
        if (obfuscatedSelector != null) {
          element.setAttribute("class", selector.replaceAll(classSelector, obfuscatedSelector));
          context.put(RESULT, element.getOwnerDocument());
        }
      }
    }
  }

  @Override
  public Context createInitialContext() {
    Context context = new Context();
    context.put(SelectorReplacer.MAPPING, LessStyleGenerator.getStyleMapping());

    return context;
  }
}
TOP

Related Classes of org.jboss.errai.ui.rebind.chain.SelectorReplacer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.