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
package com.temp.foundation.client.widget;

import com.google.gwt.dom.client.Style.*;
import com.google.gwt.event.dom.client.*;
import com.google.gwt.user.client.ui.*;
import com.temp.common.shared.utils.*;

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/foundation/client/widget/CompositeButton.java

Diff revisions: vs.
Revision Author Commited Message
965 GeorgeS picture GeorgeS Fri 01 Aug, 2014 03:20:35 +0000

!