package com.github.czyzby.lml.parser.impl.attribute.container; import com.badlogic.gdx.scenes.scene2d.ui.Container; import com.github.czyzby.lml.parser.LmlParser; import com.github.czyzby.lml.parser.tag.LmlAttribute; import com.github.czyzby.lml.parser.tag.LmlTag; /** See {@link Container#setBackground(com.badlogic.gdx.scenes.scene2d.utils.Drawable)}. Expects a name of a drawable in * the default skin. Mapped to "background", "bg". * * @author MJ */ public class ContainerBackgroundLmlAttribute implements LmlAttribute<Container<?>> { @Override @SuppressWarnings("unchecked") public Class<Container<?>> getHandledType() { // Double cast as there were a problem with generics - SomeClass.class cannot be returned as // <Class<SomeClass<?>>, even though casting never throws ClassCastException in the end. return (Class<Container<?>>) (Object) Container.class; } @Override public void process(final LmlParser parser, final LmlTag tag, final Container<?> actor, final String rawAttributeData) { actor.setBackground(parser.getData().getDefaultSkin().getDrawable(parser.parseString(rawAttributeData, actor))); } }