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
// This Source Code is in the Public Domain per: http://unlicense.org
package org.litesoft.GWT.forms.client.components.factories.others;

import org.litesoft.commonfoundation.typeutils.Objects;
import java.util.*;

import org.litesoft.GWT.forms.client.components.factories.*;
import org.litesoft.GWT.forms.client.nonpublic.*;
import org.litesoft.ui.def.*;
import org.litesoft.ui.def.nonpublic.*;
import org.litesoft.ui.def.nonpublic.support.*;

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

public class BaseFormComponentFactory implements FormComponentFactory
{
    public static final BaseFormComponentFactory INSTANCE = new BaseFormComponentFactory();
    private Map<UiD_Type, FormComponentFactory> mTypeToFactory = new HashMap<UiD_Type, FormComponentFactory>();

    private BaseFormComponentFactory()
    {
        addMapping( UiActionDef.TYPE, /*            */ new UiActionWidgetFactory() );
        addMapping( UiHiddenAttributeDef.TYPE, /*   */ new UiHiddenAttributeWidgetFactory() );
        addMapping( UiImageDef.TYPE, /*             */ new UiImageWidgetFactory() );
        addMapping( UiInputActionDef.TYPE, /*       */ new UiInputActionWidgetFactory() );
        addMapping( UiInputImageDef.TYPE, /*        */ new UiInputImageWidgetFactory() );
        addMapping( UiInputDef.TYPE, /*             */ new UiInputWidgetFactory() );
        addMapping( UiLabelDef.TYPE, /*             */ new UiLabelWidgetFactory() );
        addMapping( UiSpacerDef.TYPE, /*            */ new UiSpacerWidgetFactory() );
        addMapping( UiTreeMenuDef.TYPE, /*          */ new UiTreeMenuWidgetFactory() );
        addMapping( UiViewDef.TYPE, /*              */ UiViewWidgetFactory.INSTANCE );
    }

    public void addMapping( UiD_Type pUiDefType, FormComponentFactory pTypeFactory )
    {
        Object prev = assertMappingAdjustment( pUiDefType, pTypeFactory );
        if ( prev != null )
        {
            throw new IllegalStateException(
                    "Duplicate FormComponentFactory for type (" + pUiDefType + "):" + //
                    "\n    prev: " + prev + //
                    "\n     new: " + pTypeFactory );
        }
        mTypeToFactory.put( pUiDefType, pTypeFactory );
    }

    public void replaceMapping( UiD_Type pUiDefType, FormComponentFactory pTypeFactory )
    {
        Object prev = assertMappingAdjustment( pUiDefType, pTypeFactory );
        if ( prev == null )
        {
            throw new IllegalStateException(
                    "No Existing FormComponentFactory for type (" + pUiDefType + "):" + //
                    "\n     new: " + pTypeFactory );
        }
        mTypeToFactory.put( pUiDefType, pTypeFactory );
    }

    private Object assertMappingAdjustment( UiD_Type pUiDefType, FormComponentFactory pTypeFactory )
    {
        Objects.assertNotNull( "UiDefType", pUiDefType );
        Objects.assertNotNull( "TypeFactory", pTypeFactory );

        return mTypeToFactory.get( pUiDefType );
    }

    private FormComponentFactory getMapping( UiD_Type pUiDefType )
    {
        return mTypeToFactory.get( pUiDefType );
    }

    public Widget create( FormInstanceComponentHandler pComponentHandler, UiDef pUiDef,
                          FormMetaData pFormMetaData, boolean pHasHorizontalPeer )
    {
        FormComponentFactory factory = getMapping( pUiDef.getType() );
        if ( factory == null )
        {
            return new Label( "No FormComponentFactory for type: " + pUiDef.getType() );
        }
        return factory.create( pComponentHandler, pUiDef, pFormMetaData,
                               pHasHorizontalPeer );
    }
}

Commits for litesoft/trunk/Java/GWT/OldClient/src/org/litesoft/GWT/forms/client/components/factories/others/BaseFormComponentFactory.java

Diff revisions: vs.
Revision Author Commited Message
947 Diff Diff GeorgeS picture GeorgeS Fri 06 Jun, 2014 23:36:56 +0000

Correct Spelling of package!

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

804 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 12:48:51 +0000
60 Diff Diff GeorgeS picture GeorgeS Tue 24 Aug, 2010 00:37:36 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000