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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package org.litesoft.GWT.forms.client.components.nonpublic;

import com.google.gwt.user.client.ui.*;
import org.litesoft.GWT.client.nonpublic.*;
import org.litesoft.GWT.client.widgets.*;
import org.litesoft.GWT.forms.client.*;
import org.litesoft.GWT.forms.client.rpc.*;
import org.litesoft.core.util.*;
import org.litesoft.rpcpassable.*;
import org.litesoft.ui.def.*;

public abstract class AbstractFormDialog extends AbstractDialog implements UiFormListener
{
    private final UiFormDef mFormDef;
    protected final String mTypeDisplayString;
    private String mRootKey;
    private final BusFormServicePeerChannel mChannel;

    private FormContainerReceiver mPanel = null;
    private UiFormHandler mFormHandler = null;
    private RPCpassable mInitializationPayload = null;

    public AbstractFormDialog( UiFormDef formDef, String pTypeDisplayString, String pRootKey,
                               BusFormServicePeerChannel channel )
    {
        super( "Form", Opaqueness.None );
        UtilsCommon.assertNotNull( "FormDef", mFormDef = formDef );
        UtilsCommon.assertNotNull( "TypeDisplayString", mTypeDisplayString = pTypeDisplayString );
        mRootKey = pRootKey;
        UtilsCommon.assertNotNull( "channel", mChannel = channel );
        initialize( createDialogTitle(), null );
    }

    protected Widget createBodyPanel()
    {
        return mPanel = new FormContainerReceiver();
    }

    public String getRootKey()
    {
        return mRootKey;
    }

    /**
     * Set the key of the Object to edit
     *
     * @param pRootKey a key of the Object to edit or <code>null</code> to create a new one
     */
    public void setRootKey( String pRootKey )
    {
        mRootKey = pRootKey;
    }

    public RPCpassable getInitializationPayload()
    {
        return mInitializationPayload;
    }

    public void setInitializationPayload(RPCpassable initializationPayload)
    {
        mInitializationPayload = initializationPayload;
    }

    public void hide()
    {
        if ( mFormHandler != null )
        {
            mFormHandler.dispose();
            mFormHandler = null;
        }
        super.hide();
    }

    public void show()
    {
        if ( mFormHandler == null )
        {
            mFormHandler = new UiFormHandler( mFormDef, mPanel, mInitializationPayload, mChannel, this );
        }
    }

    private boolean preSetReceiverWidget()
    {
        boolean initialShowing = mShowing;
        if ( !initialShowing )
        {
            setVisible( false );
            LLshow();
        }
        return initialShowing;
    }

    private void postSetReceiverWidget( boolean pReturnValueFrom_preSetReceiverWidget )
    {
        if ( !pReturnValueFrom_preSetReceiverWidget )
        {
            LLshowFini();
            setVisible( true );
        }
    }

    private class FormContainerReceiver extends ClippingSimplePanel
    {
        public FormContainerReceiver()
        {
            super( null );
            super.setWidget( new Label( "Problem Occured..." ) );
        }

        // 1st call on Form Container Rendered
        public void setWidget( Widget pWidget )
        {
            boolean zPRSWrv = preSetReceiverWidget();
            super.setWidget( pWidget );
            postSetReceiverWidget( zPRSWrv );
        }

        // 2nd call on Form Container Rendered
        public void relayout()
        {
            super.relayout();
        }
    }

    // 3rd call on Form Container Rendered
    public void formRendered( UiFormHandler pUiFormHandler, RPCpassable pServicePeerXtra )
    {
        mFormHandler.requestValues( mRootKey );
    }

    public void formValuesApplied( UiFormHandler pUiFormHandler, RPCpassable pServicePeerXtra )
    {
        setTitle( createDialogTitle() );
        mFormHandler.setFocus();
    }

    public boolean formActionRequested( UiFormHandler pUiFormHandler, String pActionID )
    {
        return false;
    }

    public void formActionSucceeded( UiFormHandler pUiFormHandler, String pActionID,
                                     RPCpassable pServicePeerXtra )
    {
    }

    public void formCloseRequested( UiFormHandler pUiFormHandler, RPCpassable pServicePeerXtra )
    {
        hide();
    }

    public void formChangeState( UiFormHandler pUiFormHandler, boolean pFormHasChanges )
    {
    }

    public void formErrorState( UiFormHandler pUiFormHandler, boolean pFormHasErrors )
    {
    }

    abstract protected String createDialogTitle();
}

Commits for litesoft/trunk/Java/GWT/OldClient/src/org/litesoft/GWT/forms/client/components/nonpublic/AbstractFormDialog.java

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