litesoft
@ 632
litesoft / trunk / GWT_Sandbox / FormEngine / src / com / temp / client / foundation / widget / CompositeButton.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
package com.temp.client.foundation.widget; import com.google.gwt.event.dom.client.*; import com.temp.shared.utils.*; import com.google.gwt.dom.client.Style.Cursor; import com.google.gwt.user.client.ui.PushButton; public abstract class CompositeButton<C extends CompositeButton> extends PushButton implements HasIdOverride { protected final PushButton proxyTo; private String name; private String idOverride; public CompositeButton() { this.proxyTo = this; } public CompositeButton(String initialText) { super( initialText ); this.proxyTo = this; } @Override public String getName() { return name; } @Override public void setName(String name) { this.name = Assert.noEmpty("name", name); } @Override public String getIdOverride() { return (idOverride != null) ? idOverride : name + "Button"; } @Override public void setIdOverride(String idOverride) { this.idOverride = StringUtils.noEmpty(idOverride); } public C name(String name) { setName(name); return inheritanceLeaf(); } public C add(ClickHandler handler) { if (handler != null) { proxyTo.addClickHandler(handler); } return inheritanceLeaf(); } protected final C inheritanceLeaf() { return ObjectUtils.cast( this ); } protected static String createSafeHtmlElementWithImageUrl( String id, String safeHtmlAltToolTip, String styleName, String imageUrl ) { StringBuilder sb = new StringBuilder().append("<img"); addAttribute(sb, "id", id); addAttribute(sb, "src", imageUrl); addAttribute(sb, "alt", safeHtmlAltToolTip); addAttribute(sb, "class", styleName); addAttribute(sb, "title", safeHtmlAltToolTip); return sb.append(" border='0' />").toString(); } private static void addAttribute(StringBuilder sb, String attributeName, String safeHtmlAttributeValue) { if (null != (safeHtmlAttributeValue = StringUtils.noEmpty(safeHtmlAttributeValue))) { sb.append(' ').append(attributeName).append("='").append(safeHtmlAttributeValue).append("'"); } } public void enable() { getElement().getStyle().setCursor(Cursor.POINTER); setEnabled(true); } public void disable() { getElement().getStyle().setCursor(Cursor.AUTO); setEnabled(false); } } |