Mercurial > dive4elements > river
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; |