Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java @ 5488:6ec7c8ebb2c9
DatacageWidget: Use ScreenLock when loading dc data, solves flys/issue1152 .
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 28 Mar 2013 09:29:42 +0100 |
parents | f2371f3aaf03 |
children | 6958479ec92d |
comparison
equal
deleted
inserted
replaced
5487:a87fe0d2c928 | 5488:6ec7c8ebb2c9 |
---|---|
22 import de.intevation.flys.client.client.FLYSConstants; | 22 import de.intevation.flys.client.client.FLYSConstants; |
23 import de.intevation.flys.client.client.event.DatacageDoubleClickHandler; | 23 import de.intevation.flys.client.client.event.DatacageDoubleClickHandler; |
24 import de.intevation.flys.client.client.event.DatacageHandler; | 24 import de.intevation.flys.client.client.event.DatacageHandler; |
25 import de.intevation.flys.client.client.services.MetaDataService; | 25 import de.intevation.flys.client.client.services.MetaDataService; |
26 import de.intevation.flys.client.client.services.MetaDataServiceAsync; | 26 import de.intevation.flys.client.client.services.MetaDataServiceAsync; |
27 import de.intevation.flys.client.client.ui.ScreenLock; | |
27 import de.intevation.flys.client.shared.model.Artifact; | 28 import de.intevation.flys.client.shared.model.Artifact; |
28 import de.intevation.flys.client.shared.model.AttrList; | 29 import de.intevation.flys.client.shared.model.AttrList; |
29 import de.intevation.flys.client.shared.model.DataCageNode; | 30 import de.intevation.flys.client.shared.model.DataCageNode; |
30 import de.intevation.flys.client.shared.model.DataCageTree; | 31 import de.intevation.flys.client.shared.model.DataCageTree; |
31 import de.intevation.flys.client.shared.model.ToLoad; | 32 import de.intevation.flys.client.shared.model.ToLoad; |
62 | 63 |
63 protected ToLoad toLoad; | 64 protected ToLoad toLoad; |
64 | 65 |
65 protected List<DatacageHandler> handlers; | 66 protected List<DatacageHandler> handlers; |
66 protected List<DatacageDoubleClickHandler> doubleHandlers; | 67 protected List<DatacageDoubleClickHandler> doubleHandlers; |
68 | |
69 /** Layout to show spinning wheel of joy. */ | |
70 protected VLayout lockScreen; | |
67 | 71 |
68 | 72 |
69 public DatacageWidget() { | 73 public DatacageWidget() { |
70 handlers = new ArrayList<DatacageHandler>(); | 74 handlers = new ArrayList<DatacageHandler>(); |
71 doubleHandlers = new ArrayList<DatacageDoubleClickHandler>(); | 75 doubleHandlers = new ArrayList<DatacageDoubleClickHandler>(); |
166 } | 170 } |
167 | 171 |
168 triggerTreeBuilding(); | 172 triggerTreeBuilding(); |
169 } | 173 } |
170 | 174 |
175 public void lockUI() { | |
176 lockScreen = ScreenLock.lockUI(this, lockScreen); | |
177 } | |
178 | |
179 /** Enable input, remove grey, remove spinning wheel of joy. */ | |
180 public void unlockUI() { | |
181 ScreenLock.unlockUI(this, lockScreen); | |
182 } | |
171 | 183 |
172 /** | 184 /** |
173 * @param handler Handler to be added (notified on add-action). | 185 * @param handler Handler to be added (notified on add-action). |
174 */ | 186 */ |
175 public DatacageWidget(Artifact artifact, User user, String outs, | 187 public DatacageWidget(Artifact artifact, User user, String outs, |
380 String locale = config.getLocale(); | 392 String locale = config.getLocale(); |
381 | 393 |
382 String artifactId = artifact.getUuid(); | 394 String artifactId = artifact.getUuid(); |
383 String userId = (user != null) ? user.identifier() : null; | 395 String userId = (user != null) ? user.identifier() : null; |
384 | 396 |
397 lockUI(); | |
398 | |
385 metaDataService.getMetaData( | 399 metaDataService.getMetaData( |
386 locale, | 400 locale, |
387 artifactId, | 401 artifactId, |
388 userId, | 402 userId, |
389 outs, | 403 outs, |
391 new AsyncCallback<DataCageTree>() { | 405 new AsyncCallback<DataCageTree>() { |
392 @Override | 406 @Override |
393 public void onFailure(Throwable caught) { | 407 public void onFailure(Throwable caught) { |
394 GWT.log("Could not load meta data."); | 408 GWT.log("Could not load meta data."); |
395 SC.warn(caught.getMessage()); | 409 SC.warn(caught.getMessage()); |
410 unlockUI(); | |
396 } | 411 } |
397 | 412 |
398 @Override | 413 @Override |
399 public void onSuccess(DataCageTree dcTree) { | 414 public void onSuccess(DataCageTree dcTree) { |
400 GWT.log("Successfully loaded meta data."); | 415 GWT.log("Successfully loaded meta data."); |
414 | 429 |
415 if (idGenerator.current() < MAX_OPEN) { | 430 if (idGenerator.current() < MAX_OPEN) { |
416 tree.openAll(); | 431 tree.openAll(); |
417 } | 432 } |
418 treeGrid.setData(tree); | 433 treeGrid.setData(tree); |
434 unlockUI(); | |
419 } | 435 } |
420 }); | 436 }); |
421 } | 437 } |
422 | 438 |
423 private static final class IdGenerator { | 439 private static final class IdGenerator { |