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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package org.litesoft.GWT.client.widgets;

import com.google.gwt.dom.client.*;
import com.google.gwt.user.client.*;
import com.google.gwt.user.client.ui.*;
import org.litesoft.GWT.client.*;
import org.litesoft.GWT.client.widgets.nonpublic.*;
import org.litesoft.core.delayed.*;
import org.litesoft.core.util.*;
import org.litesoft.logger.*;

public class OurImage extends Image implements OnBrowserEventListenable
{
    public static final Logger LOGGER = LoggerFactory.getLogger( OurImage.class );

    private String mUrl;

    public OurImage()
    {
    }

    public OurImage( String pUrl )
    {
        super( pUrl );
        mUrl = pUrl;
    }

    public OurImage size( int pWidth, int pHeight )
    {
        setWidth( pWidth );
        setHeight( pHeight );
        return this;
    }

    /**
     * Set Height of the image in pixels.
     *
     * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/objects.html#adef-height-IMG">W3C HTML Specification</a>
     */
    public void setHeight( int pPixels )
    {
        getImageElement().setHeight( pPixels );
    }

    /**
     * Set Width of the image in pixels.
     *
     * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/objects.html#adef-width-IMG">W3C HTML Specification</a>
     */
    public void setWidth( int pPixels )
    {
        getImageElement().setWidth( pPixels );
    }

    /**
     * This should have been protected in Image.java
     */
    protected ImageElement getImageElement()
    {
        return getElement().cast();
    }

    public String getUrl()
    {
        return mUrl;
    }

    public void setUrl( String pUrl )
    {
        mUrl = UtilsCommon.deNull( pUrl ).trim();
        // Stupid GWT & IE thing at:
        //      ImageSrcIE6
        //   at line: 64
        // todo: remove try/catch when Either GWT or IE is fixed
        try
        {
            super.setUrl( pUrl );
        }
        catch ( Throwable e )
        {
            LOGGER.warn.log( e, "OurImage.setUrl(), ignoring exception" );
        }
        String zElementURL = DOM.getElementProperty( getElement(), "src" );
        String zActualURL = super.getUrl();
        if ( !UtilsCommon.areNonArraysEqual( zActualURL, zElementURL ) )
        {
            LOGGER.warn.log( "OurImage.setUrl( '", mUrl, "' ), Actual ( '", zActualURL, "' ) , Element ( '",
                             zElementURL, "' )" );
            TimedRunnableManager.INSTANCE.runIn( new TimedRunnable()
            {
                public Again runOnce()
                {
                    setUrl( mUrl );
                    return null;
                }
            }, 100 );
        }
    }

    private OnBrowserEventListener mListener = null;

    public Widget getOnBrowserEventListenableWidget()
    {
        return this;
    }

    public OnBrowserEventListener getOnBrowserEventListener()
    {
        return mListener;
    }

    public void setOnBrowserEventListener( int pEventBitsToAdd, OnBrowserEventListener pListener )
    {
        if ( null != (mListener = pListener) )
        {
            sinkEvents( pEventBitsToAdd );
        }
    }

    public void clearOnBrowserEventListener()
    {
        mListener = null;
    }

    public void onBrowserEvent( Event event )
    {
        if ( mListener != null )
        {
            if ( mListener.onBrowserEvent( event ) )
            {
                return;
            }
        }
        super.onBrowserEvent( event );
    }
}

Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/OurImage.java

Diff revisions: vs.
Revision Author Commited Message
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000