Subversion Repository Public Repository

litesoft

Diff Revisions 947 vs 948 for /trunk/GWT_Sandbox/FormEngine/src/com/temp/client/foundation/pavment/PlaceActivityManager.java

Diff revisions: vs.
  @@ -1,18 +1,16 @@
1 1 package com.temp.client.foundation.pavment;
2 2
3 3 import org.litesoft.logger.*;
4 - import com.temp.client.foundation.pavment.internal.*;
5 - import com.temp.client.foundation.util.*;
6 - import com.temp.shared.utils.ObjectUtils;
7 - import com.temp.shared.utils.StringUtils;
8 4
9 5 import com.google.gwt.event.logical.shared.*;
10 6 import com.google.gwt.place.shared.*;
11 7 import com.google.gwt.user.client.*;
12 8 import com.google.gwt.user.client.ui.*;
9 + import com.temp.client.foundation.pavment.internal.*;
10 + import com.temp.client.foundation.util.*;
11 + import com.temp.shared.utils.*;
13 12
14 - public class PlaceActivityManager<CommonActivityParam extends CommonActivityParameter> implements PlaceChangerWithCurrentUrlSupport
15 - {
13 + public class PlaceActivityManager<CommonActivityParam extends CommonActivityParameter> implements PlaceChangerWithCurrentUrlSupport {
16 14 private static final Logger LOGGER = LoggerFactory.getLogger( PlaceActivityManager.class );
17 15
18 16 private final PanelPlaceActivityHelper<CommonActivityParam> mActivityHelper;
  @@ -25,58 +23,48 @@
25 23 private Place mPendingCodePlace;
26 24 private PlaceRedirectListener mPlaceRedirectListener;
27 25
28 - public PlaceActivityManager( AcceptsOneWidget pPanel, PlaceHistoryMapper pMapper, WindowClose pWindowClose, Historian pHistorian, CommonActivityParam pCommonActivityParam )
29 - {
26 + public PlaceActivityManager( AcceptsOneWidget pPanel, PlaceHistoryMapper pMapper, WindowClose pWindowClose, Historian pHistorian,
27 + CommonActivityParam pCommonActivityParam ) {
30 28 mCommonActivityParam = (pCommonActivityParam != null) ? pCommonActivityParam : createDefaultCommonActivityParam();
31 29 mActivityHelper = new PanelPlaceActivityHelper<CommonActivityParam>( pPanel, mCommonActivityParam );
32 30 mMapper = (pMapper != null) ? pMapper : new PlaceRegistry( mCommonActivityParam );
33 31 mWindowClose = (pWindowClose != null) ? pWindowClose : new WindowCloseImpl();
34 - mWindowClose.addWindowClosingHandler( new Window.ClosingHandler()
35 - {
32 + mWindowClose.addWindowClosingHandler( new Window.ClosingHandler() {
36 33 @Override
37 - public void onWindowClosing( Window.ClosingEvent event )
38 - {
34 + public void onWindowClosing( Window.ClosingEvent event ) {
39 35 String zWarning = getLeavingCurrentPlaceWarningText();
40 - if ( zWarning != null )
41 - {
36 + if ( zWarning != null ) {
42 37 event.setMessage( zWarning );
43 38 }
44 39 }
45 40 } );
46 41 mHistorian = (pHistorian != null) ? pHistorian : new HistorianImpl();
47 - mHistorian.addValueChangeHandler( new ValueChangeHandler<String>()
48 - {
42 + mHistorian.addValueChangeHandler( new ValueChangeHandler<String>() {
49 43 @Override
50 - public void onValueChange( ValueChangeEvent<String> event )
51 - {
44 + public void onValueChange( ValueChangeEvent<String> event ) {
52 45 handleHistoryToken( event.getValue() );
53 46 }
54 47 } );
55 48 }
56 49
57 - public PlaceActivityManager( AcceptsOneWidget pPanel, CommonActivityParam pCommonActivityParam )
58 - {
50 + public PlaceActivityManager( AcceptsOneWidget pPanel, CommonActivityParam pCommonActivityParam ) {
59 51 this( pPanel, null, null, null, pCommonActivityParam );
60 52 }
61 53
62 - public PlaceActivityManager( AcceptsOneWidget pPanel )
63 - {
54 + public PlaceActivityManager( AcceptsOneWidget pPanel ) {
64 55 this( pPanel, null, null, null, null );
65 56 }
66 57
67 - public void set( PlaceRedirectListener pPlaceRedirectListener )
68 - {
58 + public void set( PlaceRedirectListener pPlaceRedirectListener ) {
69 59 mPlaceRedirectListener = pPlaceRedirectListener;
70 60 }
71 61
72 - public boolean add( ActivityStartingListener pListener )
73 - {
74 - return mActivityHelper.add(pListener);
62 + public boolean add( ActivityStartingListener pListener ) {
63 + return mActivityHelper.add( pListener );
75 64 }
76 65
77 - public boolean remove( ActivityStartingListener pListener )
78 - {
79 - return mActivityHelper.remove(pListener);
66 + public boolean remove( ActivityStartingListener pListener ) {
67 + return mActivityHelper.remove( pListener );
80 68 }
81 69
82 70 /**
  @@ -85,8 +73,7 @@
85 73 * Typically called at application start, to ensure bookmark launches work.
86 74 */
87 75 @Override
88 - public void goToCurrentUrl()
89 - {
76 + public void goToCurrentUrl() {
90 77 handleHistoryToken( mHistorian.getToken() );
91 78 }
92 79
  @@ -96,8 +83,7 @@
96 83 * @return a {@link Place} instance
97 84 */
98 85 @Override
99 - public Place getWhere()
100 - {
86 + public Place getWhere() {
101 87 return mActivityHelper.getCurrentPlace();
102 88 }
103 89
  @@ -112,24 +98,20 @@
112 98 * @return null if going to pNewPlace, !null means NOT going and why
113 99 */
114 100 @Override
115 - public GoToPlace goTo( Place pNewPlace )
116 - {
101 + public GoToPlace goTo( Place pNewPlace ) {
117 102 Place zCurrentPlace = mActivityHelper.getCurrentPlace();
118 103 pNewPlace = ObjectUtils.deNull( pNewPlace, zCurrentPlace );
119 - if ( pNewPlace.equals( zCurrentPlace ) )
120 - {
104 + if ( pNewPlace.equals( zCurrentPlace ) ) {
121 105 return GoToPlace.AlreadyThere;
122 106 }
123 - if ( pNewPlace.equals( mPendingCodePlace ) || mActivityHelper.isPendingAsync( pNewPlace ) )
124 - {
107 + if ( pNewPlace.equals( mPendingCodePlace ) || mActivityHelper.isPendingAsync( pNewPlace ) ) {
125 108 return null;
126 109 }
127 110 if ( null == mActivityHelper.get( pNewPlace ) ) // Check for Factory
128 111 {
129 112 return GoToPlace.NoActivity;
130 113 }
131 - if ( userRejectedLeavingCurrentPlace( pNewPlace ) )
132 - {
114 + if ( userRejectedLeavingCurrentPlace( pNewPlace ) ) {
133 115 return GoToPlace.CurrentActivityRejectedLeaving; // From Code, maybe the code shouldn't have allowed it!
134 116 }
135 117 mActivityHelper.clearPendingAsync();
  @@ -138,113 +120,92 @@
138 120 return null;
139 121 }
140 122
141 -
142 123 public void refreshCurrentActivity() {
143 124 mActivityHelper.refreshCurrentActivity();
144 125 }
145 126
146 - private void handleHistoryToken( String pToken )
147 - {
127 + private void handleHistoryToken( String pToken ) {
148 128 Place zWasGoingToCodePlace = mPendingCodePlace;
149 129 mPendingCodePlace = null;
150 130 mCommonActivityParam.getMessageUserSink().clearMessage();
151 131
152 132 Place zNewPlace = null;
153 133
154 - if ( null == (pToken = StringUtils.noEmpty( pToken )) )
155 - {
134 + if ( null == (pToken = StringUtils.noEmpty( pToken )) ) {
156 135 zNewPlace = PlaceRegistry.getDefaultPlace();
157 - }
158 - else
159 - {
160 - try
161 - {
162 - if ( null == (zNewPlace = mMapper.getPlace( pToken )) )
163 - {
136 + } else {
137 + try {
138 + if ( null == (zNewPlace = mMapper.getPlace( pToken )) ) {
164 139 LOGGER.info.log( "Unrecognized history token: ", pToken );
165 140 }
166 141 }
167 - catch ( RuntimeException e )
168 - {
142 + catch ( RuntimeException e ) {
169 143 LOGGER.warn.log( e, "Unable to parse history token: ", pToken );
170 144 }
171 145 }
172 - if ( mPlaceRedirectListener != null )
173 - {
174 - Place zRedirectPlace = mPlaceRedirectListener.redirect(zNewPlace);
175 - if ( (zRedirectPlace != null) && !zRedirectPlace.equals(zNewPlace) )
176 - {
177 - goTo(zRedirectPlace);
146 + if ( mPlaceRedirectListener != null ) {
147 + Place zRedirectPlace = mPlaceRedirectListener.redirect( zNewPlace );
148 + if ( (zRedirectPlace != null) && !zRedirectPlace.equals( zNewPlace ) ) {
149 + goTo( zRedirectPlace );
178 150 return;
179 151 }
180 152 }
181 153 Place zCurrentPlace = mActivityHelper.getCurrentPlace();
182 154 zNewPlace = ObjectUtils.deNull( zNewPlace, zCurrentPlace );
183 - if ( zNewPlace.equals( zCurrentPlace ) )
184 - {
155 + if ( zNewPlace.equals( zCurrentPlace ) ) {
185 156 mActivityHelper.clearPendingAsync();
186 157 return;
187 158 }
188 - if ( (zWasGoingToCodePlace != null) && !zNewPlace.equals( zWasGoingToCodePlace ) && userWantsToStopUrlChange( zNewPlace ) )
189 - {
159 + if ( (zWasGoingToCodePlace != null) && !zNewPlace.equals( zWasGoingToCodePlace ) && userWantsToStopUrlChange( zNewPlace ) ) {
190 160 mActivityHelper.clearPendingAsync();
191 161 resetURLbackTo( zCurrentPlace );
192 162 return;
193 163 }
194 - if ( !mActivityHelper.activate( zNewPlace ) )
195 - {
196 - mCommonActivityParam.getMessageUserSink().setErrorMessage( "No Activity Factory for '" + ObjectUtils.getSimpleClassName( zNewPlace ) + "' from: " + pToken );
164 + if ( !mActivityHelper.activate( zNewPlace ) ) {
165 + mCommonActivityParam.getMessageUserSink()
166 + .setErrorMessage( "No Activity Factory for '" + ObjectUtils.getSimpleClassName( zNewPlace ) + "' from: " + pToken );
197 167 resetURLbackTo( zCurrentPlace );
198 168 }
199 169 }
200 170
201 - protected boolean userWantsToStopUrlChange( Place pNewPlace )
202 - {
171 + protected boolean userWantsToStopUrlChange( Place pNewPlace ) {
203 172 return userRejectedLeavingCurrentPlace( pNewPlace );
204 173 }
205 174
206 - protected void resetURLbackTo( Place pCurrentPlace )
207 - {
175 + protected void resetURLbackTo( Place pCurrentPlace ) {
208 176 mHistorian.newItem( mMapper.getToken( pCurrentPlace ), false ); // reset the URL back to the Current Place
209 177 }
210 178
211 - protected boolean userRejectedLeavingCurrentPlace( Place newPlace )
212 - {
179 + protected boolean userRejectedLeavingCurrentPlace( Place newPlace ) {
213 180 String zWarning = getLeavingCurrentPlaceWarningText();
214 181 return (zWarning != null) && !mWindowClose.confirm( zWarning );
215 182 }
216 183
217 - protected String getLeavingCurrentPlaceWarningText()
218 - {
184 + protected String getLeavingCurrentPlaceWarningText() {
219 185 return mActivityHelper.getCurrentActivityMayStop();
220 186 }
221 187
222 188 @SuppressWarnings({"unchecked"})
223 - protected CommonActivityParam createDefaultCommonActivityParam()
224 - {
189 + protected CommonActivityParam createDefaultCommonActivityParam() {
225 190 return (CommonActivityParam) new DefaultCommonActivityParam();
226 191 }
227 192
228 193 /**
229 194 * Default implementation of CommonActivityParameter, based on {@link Window}.
230 195 */
231 - private class DefaultCommonActivityParam implements CommonActivityParameter
232 - {
196 + private class DefaultCommonActivityParam implements CommonActivityParameter {
233 197 @Override
234 - public MessageUserSink getMessageUserSink()
235 - {
198 + public MessageUserSink getMessageUserSink() {
236 199 return DialogMessageUserSink.INSTANCE;
237 200 }
238 201
239 202 @Override
240 - public Place getWhere()
241 - {
203 + public Place getWhere() {
242 204 return PlaceActivityManager.this.getWhere();
243 205 }
244 206
245 207 @Override
246 - public GoToPlace goTo( Place pNewPlace )
247 - {
208 + public GoToPlace goTo( Place pNewPlace ) {
248 209 return PlaceActivityManager.this.goTo( pNewPlace );
249 210 }
250 211 }