comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java @ 513:e090fbd5a535

Added a mechanism to listen to changes relating to output modes of collections and artifacts. Solves a part of ISSUE-62. flys-client/trunk@1979 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 23 May 2011 14:30:54 +0000
parents e92f7ef455d6
children 830e4720caad
comparison
equal deleted inserted replaced
512:e35de49f942f 513:e090fbd5a535
32 import de.intevation.flys.client.client.event.CollectionChangeEvent; 32 import de.intevation.flys.client.client.event.CollectionChangeEvent;
33 import de.intevation.flys.client.client.event.CollectionChangeHandler; 33 import de.intevation.flys.client.client.event.CollectionChangeHandler;
34 import de.intevation.flys.client.client.event.HasParameterChangeHandler; 34 import de.intevation.flys.client.client.event.HasParameterChangeHandler;
35 import de.intevation.flys.client.client.event.HasStepBackHandlers; 35 import de.intevation.flys.client.client.event.HasStepBackHandlers;
36 import de.intevation.flys.client.client.event.HasStepForwardHandlers; 36 import de.intevation.flys.client.client.event.HasStepForwardHandlers;
37 import de.intevation.flys.client.client.event.OutputModesChangeEvent;
38 import de.intevation.flys.client.client.event.OutputModesChangeHandler;
37 import de.intevation.flys.client.client.event.ParameterChangeEvent; 39 import de.intevation.flys.client.client.event.ParameterChangeEvent;
38 import de.intevation.flys.client.client.event.ParameterChangeHandler; 40 import de.intevation.flys.client.client.event.ParameterChangeHandler;
39 import de.intevation.flys.client.client.event.StepBackEvent; 41 import de.intevation.flys.client.client.event.StepBackEvent;
40 import de.intevation.flys.client.client.event.StepBackHandler; 42 import de.intevation.flys.client.client.event.StepBackHandler;
41 import de.intevation.flys.client.client.event.StepForwardEvent; 43 import de.intevation.flys.client.client.event.StepForwardEvent;
49 51
50 52
51 public class ParameterList 53 public class ParameterList
52 extends Tab 54 extends Tab
53 implements StepBackHandler, StepForwardHandler, ParameterChangeHandler, 55 implements StepBackHandler, StepForwardHandler, ParameterChangeHandler,
54 HasParameterChangeHandler, CollectionChangeHandler 56 HasParameterChangeHandler, CollectionChangeHandler,
57 OutputModesChangeHandler
55 { 58 {
56 /** The message class that provides i18n strings.*/ 59 /** The message class that provides i18n strings.*/
57 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); 60 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
58 61
59 /** The ArtifactService used to communicate with the Artifact server. */ 62 /** The ArtifactService used to communicate with the Artifact server. */
489 addOldDatas(desc.getOldData()); 492 addOldDatas(desc.getOldData());
490 } 493 }
491 494
492 495
493 public void onCollectionChange(CollectionChangeEvent event) { 496 public void onCollectionChange(CollectionChangeEvent event) {
494 Collection c = event.getNewValue(); 497 Collection c = event.getNewValue();
495
496 Map<String, OutputMode> outs = c.getOutputModes(); 498 Map<String, OutputMode> outs = c.getOutputModes();
497 Set<String> keys = outs.keySet(); 499 Set<String> keys = outs.keySet();
498 500
501 OutputMode[] outputs = new OutputMode[outs.size()];
502
503 int idx = 0;
504 for (String outname: keys) {
505 outputs[idx++] = outs.get(outname);
506 }
507
508 updateExportModes(c, getExportModes(outputs));
509 }
510
511
512 public void onOutputModesChange(OutputModesChangeEvent event) {
513 List<ExportMode> exports = getExportModes(event.getOutputModes());
514
515 Collection c = cView.getCollection();
516
517 if (c != null) {
518 updateExportModes(c, exports);
519 }
520 }
521
522
523 protected List<ExportMode> getExportModes(OutputMode[] outs) {
499 List<ExportMode> exports = new ArrayList<ExportMode>(); 524 List<ExportMode> exports = new ArrayList<ExportMode>();
500 525
501 for (String outname: keys) { 526 if (outs == null || outs.length == 0) {
502 OutputMode out = outs.get(outname); 527 return exports;
503 528 }
529
530 for (OutputMode out: outs) {
504 if (out instanceof ExportMode) { 531 if (out instanceof ExportMode) {
505 exports.add((ExportMode) out); 532 exports.add((ExportMode) out);
506 } 533 }
507 } 534 }
508 535
509 updateExportModes(c, exports); 536 return exports;
510 } 537 }
511 538
512 539
513 protected void updateExportModes(Collection c, List<ExportMode> exports) { 540 protected void updateExportModes(Collection c, List<ExportMode> exports) {
514 int num = exports != null ? exports.size() : 0; 541 int num = exports != null ? exports.size() : 0;

http://dive4elements.wald.intevation.org