package org.madore.damlengine; import org.w3c.dom.*; public final class TodoSmileyElement extends TodoDefaultElement { public enum Type { SMILE("smile", ":-)", "Smile", "Sourire"), WINK("wink", ";-)", "Wink", "Clin d'\u0153il"), SURPRISED("surprised", ":-o", "Surprised", "Surpris"), SAD("sad", ":-(", "Sad", "Triste"), COOL("cool", "8-)", "Cool", "Cool"), BIGGRIN("biggrin", ":-D", "Big grin", "Grand sourire"), CONFUSED("confused", ":-S", "Confused", "Troubl\u00e9"), CRAZY("crazy", "%-)", "Crazy", "Fou"), NEUTRAL("neutral", ":-|", "Non-grin", "Sans sourire"), TWISTED("twisted", "8->", "Twisted", "Tordu"), CRY("cry", "\u00A6-(", "Crying", "Pleure"), EVIL("evil", ">:-(", "Evil", "Mauvais"); final String emotion; final String altText; final String enName; final String frName; Type(String emotion, String altText, String enName, String frName) { this.emotion = emotion; this.altText = altText; this.enName = enName; this.frName = frName; } } public static class Factory extends TodoElement.Factory { final Type t; public Factory(Type t) { super(); this.t = t; } @Override public TodoSmileyElement newItem(Element node, Context ctx, TodoItem caller) { return new TodoSmileyElement(t, node, ctx, caller); } } final Type t; public TodoSmileyElement(Type t, Element node, Context ctx, TodoItem caller) { super(node, ctx, caller); this.t = t; } @Override public void handleNodeOnly() { String lang = LangHelper.getLangRec(node); Element img = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "img"); img.setAttributeNS(null, "src", "data:image/png;base64," + Base64.encode(DamlEngine.class.getResourceAsStream("images/smileys/"+t.emotion+".png"))); img.setAttributeNS(null, "class", "smiley"); img.setAttributeNS(null, "alt", t.altText); img.setAttributeNS(null, "height", "15"); img.setAttributeNS(null, "width", "15"); if ( lang != null && lang.equals("en") ) img.setAttributeNS(null, "title", t.enName); else if ( lang != null && lang.equals("fr") ) img.setAttributeNS(null, "title", t.frName); node.getParentNode().replaceChild(img, node); } }