package scrum.client.wiki; public class Image extends AWikiElement { private String reference; private boolean thumb; private boolean thumbAlignmentLeft; public Image(String reference, boolean thumb, boolean thumbAlignmentLeft) { super(); this.reference = reference; this.thumb = thumb; this.thumbAlignmentLeft = thumbAlignmentLeft; } @Override String toHtml(HtmlContext context) { boolean external = isExternal(); StringBuilder sb = new StringBuilder(); if (external) { sb.append("<a href=\""); sb.append(reference); sb.append("\" target=\"_blank\">"); } else { String hrefOrOnclick = context.getEntityReferenceHrefOrOnclickAParameter(reference); sb.append("<a "); sb.append(hrefOrOnclick); sb.append(">"); } sb.append("<img src=\""); if (external) { sb.append(reference); } else { sb.append(context.getDownloadUrlByReference(reference)); } if (thumb) { sb.append("\" width=\"100px\" align=\""); sb.append(thumbAlignmentLeft ? "left" : "right"); } // TODO alt="label" sb.append("\">"); sb.append("</a>"); return sb.toString(); } public boolean isExternal() { return reference.startsWith("http://") || reference.startsWith("https://"); } public String getReference() { return reference; } public boolean isThumb() { return thumb; } public boolean isThumbAlignmentLeft() { return thumbAlignmentLeft; } @Override public String toString() { return "Image(" + reference + ")"; } }