/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package jada.ngeditor.model.elements.specials;
import de.lessvoid.nifty.effects.EffectEventId;
import de.lessvoid.nifty.elements.Element;
import jada.ngeditor.model.elements.effects.GEffect;
import java.util.LinkedList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.namespace.QName;
/**
* An empty node that contains all the effects of an element
* @author cris
*/
@XmlRootElement(name="effect")
public class GEffectsNode {
private LinkedList<GEffect> effects = new LinkedList<GEffect>();
private final Element element;
//I added this because jxab is complaining
public GEffectsNode(){
element =null;
}
public GEffectsNode(Element element){
this.element = element;
}
public void addEffect(GEffect effect,EffectEventId eventType){
effect.createEffectFor(element, eventType);
this.effects.add(effect);
effect.setEventType(eventType);
}
public void removeEffect(GEffect effect){
//TODO: nifty doesn't have the support for removing effects
}
public void test(EffectEventId effectEvent){
element.startEffect(effectEvent);
}
@XmlAnyElement
public List<JAXBElement<GEffect>> getEffectsXml(){
List<JAXBElement<GEffect>> res = new LinkedList<JAXBElement<GEffect>>();
for(GEffect effect : effects){
res.add(new JAXBElement<GEffect>(new QName(effect.getEventType().toString()),GEffect.class, effect));
}
return res;
}
}