Subversion Repository Public Repository

litesoft

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);
    }
}

Commits for litesoft/trunk/GWT_Sandbox/FormEngine/src/com/temp/client/foundation/widget/CompositeButton.java

Diff revisions: vs.
Revision Author Commited Message
632 Diff Diff GeorgeS picture GeorgeS Wed 18 Apr, 2012 18:11:29 +0000
626 GeorgeS picture GeorgeS Wed 11 Apr, 2012 19:39:41 +0000