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
package org.litesoft.mgwt.client.widgets;

import java.util.*;

import org.litesoft.commonfoundation.annotations.*;
import org.litesoft.core.util.*;
import org.litesoft.core.util.externalization.*;

import com.google.gwt.user.client.ui.*;

public abstract class AbstractOptionListWidget<T> extends Composite
{
    protected final E13nResolver mResolver;
    private final SelectedListener<T> mSelectedListener;
    private final List<T> mOptions = new ArrayList<T>();

    public AbstractOptionListWidget( @NotNull E13nResolver pResolver, @Nullable SelectedListener<T> pSelectedListener )
    {
        mResolver = pResolver;
        mSelectedListener = pSelectedListener;
    }

    public void setOptions( @Nullable T... pOptions )
    {
        setOptions( pOptions != null ? Arrays.asList( pOptions ) : null );
    }

    public void setOptions( @Nullable List<T> pOptions )
    {
        mOptions.clear();
        if ( pOptions != null )
        {
            mOptions.addAll( pOptions );
        }
        optionsUpdated( mOptions );
    }

    protected void processSelectedIndex( int pSelected )
    {
        if ( (0 <= pSelected) && (pSelected < mOptions.size()) )
        {
            T zOption = mOptions.get( pSelected );
            if ( isSelectable( zOption ) )
            {
                if ( zOption instanceof Runnable )
                {
                    ((Runnable) zOption).run();
                }
                else if ( mSelectedListener != null )
                {
                    mSelectedListener.selected( zOption );
                }
            }
        }
    }

    protected boolean isSelectable( @Nullable T pOption )
    {
        return !(pOption instanceof Selectable) || ((Selectable) pOption).isSelectable();
    }

    abstract protected void optionsUpdated( @NotNull List<T> pOptions );
}

Commits for litesoft/trunk/mobileGWT/mgwtPlus/src/org/litesoft/mgwt/client/widgets/AbstractOptionListWidget.java

Diff revisions: vs.
Revision Author Commited Message
939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

764 Diff Diff GeorgeS picture GeorgeS Thu 12 Jul, 2012 14:22:25 +0000
756 GeorgeS picture GeorgeS Mon 09 Jul, 2012 04:45:47 +0000