Subversion Repository Public Repository

litesoft

Diff Revisions 947 vs 948 for /trunk/GWT_Sandbox/MultiModule/common/src/org/litesoft/sandbox/infrastructure/client/internal/PanelPlaceActivityHelper.java

Diff revisions: vs.
  @@ -9,13 +9,10 @@
9 9
10 10 import java.util.*;
11 11
12 - public class PanelPlaceActivityHelper<CommonActivityParam extends CommonActivityParameter> extends ActivityFactoryRegistry
13 - {
14 - private static final Activity NULL_ACTIVITY = new AbstractActivity()
15 - {
12 + public class PanelPlaceActivityHelper<CommonActivityParam extends CommonActivityParameter> extends ActivityFactoryRegistry {
13 + private static final Activity NULL_ACTIVITY = new AbstractActivity() {
16 14 @Override
17 - public void start( AcceptsOneWidget panel )
18 - {
15 + public void start( AcceptsOneWidget panel ) {
19 16 panel.setWidget( new Label( "!" ) );
20 17 }
21 18 };
  @@ -27,53 +24,42 @@
27 24 private Place mCurrentPlace = Place.NOWHERE;
28 25 private Place mPendingAsyncPlace;
29 26
30 - public PanelPlaceActivityHelper( AcceptsOneWidget pPanel, CommonActivityParam pCommonActivityParam )
31 - {
27 + public PanelPlaceActivityHelper( AcceptsOneWidget pPanel, CommonActivityParam pCommonActivityParam ) {
32 28 mPanel = pPanel;
33 29 mCommonActivityParam = pCommonActivityParam;
34 30 }
35 31
36 - public Place getCurrentPlace()
37 - {
32 + public Place getCurrentPlace() {
38 33 return mCurrentPlace;
39 34 }
40 35
41 - public boolean isPendingAsync( Place pPlace )
42 - {
36 + public boolean isPendingAsync( Place pPlace ) {
43 37 return pPlace.equals( mPendingAsyncPlace );
44 38 }
45 39
46 - public void clearPendingAsync()
47 - {
40 + public void clearPendingAsync() {
48 41 mPendingAsyncPlace = null;
49 42 }
50 43
51 - public ActivityFactory get( Place pPlace )
52 - {
44 + public ActivityFactory get( Place pPlace ) {
53 45 return get( PlaceIdExtractor.getPlaceId( pPlace ) );
54 46 }
55 47
56 - public String getCurrentActivityMayStop()
57 - {
48 + public String getCurrentActivityMayStop() {
58 49 return mCurrentActivity.mayStop();
59 50 }
60 51
61 - public boolean activate( Place pNewPlace )
62 - {
63 - if ( !isPendingAsync( pNewPlace ) )
64 - {
52 + public boolean activate( Place pNewPlace ) {
53 + if ( !isPendingAsync( pNewPlace ) ) {
65 54 mPendingAsyncPlace = null;
66 55 ActivityFactory zFactory = get( pNewPlace );
67 - if ( zFactory == null )
68 - {
56 + if ( zFactory == null ) {
69 57 return false;
70 58 }
71 59 if ( zFactory instanceof ActivityFactory.Asynchronous ) // Un-Happy Case!
72 60 {
73 61 loadSyncFactory( (ActivityFactory.Asynchronous) zFactory, mPendingAsyncPlace = pNewPlace );
74 - }
75 - else
76 - {
62 + } else {
77 63 activate( pNewPlace, (ActivityFactory.Synchronous) zFactory );
78 64 }
79 65 }
  @@ -83,8 +69,7 @@
83 69 /**
84 70 * Activate the New Place and it's associated Activity (deactivating the current activity.
85 71 */
86 - public void activate( Place pNewPlace, ActivityFactory.Synchronous pSyncFactory )
87 - {
72 + public void activate( Place pNewPlace, ActivityFactory.Synchronous pSyncFactory ) {
88 73 Set<Throwable> zIssues = new LinkedHashSet<Throwable>();
89 74
90 75 mCurrentPlace = pNewPlace;
  @@ -101,70 +86,55 @@
101 86 // which handles the Pending Activity becoming the Current Activity.
102 87 AcceptsOneWidget zPanel = new ProtectedDisplay( zIssues, mPendingActivity );
103 88
104 - if ( !canStart( zIssues, mPendingActivity, zPanel ) )
105 - {
89 + if ( !canStart( zIssues, mPendingActivity, zPanel ) ) {
106 90 NULL_ACTIVITY.start( new ProtectedDisplay( zIssues, mPendingActivity = NULL_ACTIVITY ) ); // Can NOT fail!
107 91 }
108 92 }
109 93
110 94 @SuppressWarnings({"unchecked"})
111 - protected Activity createActivity( Collection<Throwable> pIssues, ActivityFactory.Synchronous pFactory, Place pPlace )
112 - {
113 - try
114 - {
95 + protected Activity createActivity( Collection<Throwable> pIssues, ActivityFactory.Synchronous pFactory, Place pPlace ) {
96 + try {
115 97 return pFactory.createActivity( mCommonActivityParam, pFactory.getView(), pPlace );
116 98 }
117 - catch ( Exception e )
118 - {
99 + catch ( Exception e ) {
119 100 pIssues.add( e );
120 101 }
121 102 return null;
122 103 }
123 104
124 - private boolean canStart( Set<Throwable> pIssues, Activity pActivity, AcceptsOneWidget pPanel )
125 - {
126 - try
127 - {
105 + private boolean canStart( Set<Throwable> pIssues, Activity pActivity, AcceptsOneWidget pPanel ) {
106 + try {
128 107 pActivity.start( pPanel );
129 108 return true;
130 109 }
131 - catch ( Exception e )
132 - {
110 + catch ( Exception e ) {
133 111 pIssues.add( e );
134 112 }
135 113 return false;
136 114 }
137 115
138 - private void tryCancel( Collection<Throwable> pIssues, Activity pActivity )
139 - {
140 - try
141 - {
116 + private void tryCancel( Collection<Throwable> pIssues, Activity pActivity ) {
117 + try {
142 118 pActivity.onCancel();
143 119 }
144 - catch ( Exception e )
145 - {
120 + catch ( Exception e ) {
146 121 pIssues.add( e );
147 122 }
148 123 }
149 124
150 - private void tryStop( Collection<Throwable> pIssues, Activity pActivity )
151 - {
152 - try
153 - {
125 + private void tryStop( Collection<Throwable> pIssues, Activity pActivity ) {
126 + try {
154 127 pActivity.onStop();
155 128 }
156 - catch ( Exception e )
157 - {
129 + catch ( Exception e ) {
158 130 pIssues.add( e );
159 131 }
160 132 }
161 133
162 - private void possiblyUpdateActivityAndShowWidget( Set<Throwable> pIssues, Activity pActivity, IsWidget pWidget )
163 - {
134 + private void possiblyUpdateActivityAndShowWidget( Set<Throwable> pIssues, Activity pActivity, IsWidget pWidget ) {
164 135 if ( mPendingActivity == null ) // Normal? Happy case when No Pending Activity and request is from Current Activity
165 136 {
166 - if ( pActivity == mCurrentActivity )
167 - {
137 + if ( pActivity == mCurrentActivity ) {
168 138 showWidget( pWidget );
169 139 }
170 140 return;
  @@ -177,40 +147,32 @@
177 147 mCurrentActivity = mPendingActivity;
178 148 mPendingActivity = null;
179 149 showWidget( pWidget );
180 - if ( !pIssues.isEmpty() )
181 - {
150 + if ( !pIssues.isEmpty() ) {
182 151 throw new UmbrellaException( pIssues );
183 152 }
184 153 }
185 154
186 - private void showWidget( IsWidget pWidget )
187 - {
188 - if ( mPanel != null )
189 - {
155 + private void showWidget( IsWidget pWidget ) {
156 + if ( mPanel != null ) {
190 157 mPanel.setWidget( pWidget );
191 158 }
192 159 }
193 160
194 161 @SuppressWarnings({"unchecked"})
195 - private void loadSyncFactory( final ActivityFactory.Asynchronous pAsyncFactory, final Place pPlace )
196 - {
197 - pAsyncFactory.load( mCommonActivityParam, new ActivityFactory.Asynchronous.Callback<CommonActivityParam, IsWidget, Place>()
198 - {
162 + private void loadSyncFactory( final ActivityFactory.Asynchronous pAsyncFactory, final Place pPlace ) {
163 + pAsyncFactory.load( mCommonActivityParam, new ActivityFactory.Asynchronous.Callback<CommonActivityParam, IsWidget, Place>() {
199 164 @Override
200 - public void loaded( ActivityFactory.Synchronous<CommonActivityParam, IsWidget, Place> pSynchronousFactory )
201 - {
165 + public void loaded( ActivityFactory.Synchronous<CommonActivityParam, IsWidget, Place> pSynchronousFactory ) {
202 166 switchAsyncToSync( pPlace, pAsyncFactory, pSynchronousFactory );
203 167 }
204 168 } );
205 169 }
206 170
207 - private void switchAsyncToSync( Place pPlace, ActivityFactory.Asynchronous pAsyncFactory, ActivityFactory.Synchronous pSyncFactory )
208 - {
171 + private void switchAsyncToSync( Place pPlace, ActivityFactory.Asynchronous pAsyncFactory, ActivityFactory.Synchronous pSyncFactory ) {
209 172 System.out.println( "Switched " + UtilsCommon.justSimpleName( pPlace ) + " from Async to Sync" );
210 173 boolean zStillGoing = pPlace.equals( mPendingAsyncPlace );
211 174 mPendingAsyncPlace = null;
212 - if ( replace( pAsyncFactory, pSyncFactory ) && zStillGoing )
213 - {
175 + if ( replace( pAsyncFactory, pSyncFactory ) && zStillGoing ) {
214 176 activate( pPlace, pSyncFactory );
215 177 }
216 178 }
  @@ -219,20 +181,17 @@
219 181 * Wraps our real display to prevent an Activity from taking it over if it is
220 182 * not the currentActivity.
221 183 */
222 - private class ProtectedDisplay implements AcceptsOneWidget
223 - {
184 + private class ProtectedDisplay implements AcceptsOneWidget {
224 185 private final Set<Throwable> mIssues;
225 186 private final Activity mExpectedActivity;
226 187
227 - ProtectedDisplay( Set<Throwable> pIssues, Activity pExpectedActivity )
228 - {
188 + ProtectedDisplay( Set<Throwable> pIssues, Activity pExpectedActivity ) {
229 189 mIssues = pIssues;
230 190 mExpectedActivity = pExpectedActivity;
231 191 }
232 192
233 193 @Override
234 - public void setWidget( IsWidget pWidget )
235 - {
194 + public void setWidget( IsWidget pWidget ) {
236 195 possiblyUpdateActivityAndShowWidget( mIssues, mExpectedActivity, pWidget );
237 196 }
238 197 }