annotate flys-client/src/main/java/de/intevation/flys/client/shared/model/OutputSettings.java @ 1503:3304608baf35

Issue 433. Allways load original chart settings when opening the dialog. flys-client/trunk@3632 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 09 Jan 2012 17:07:17 +0000
parents c899a7ffdc8f
children bb5edff31866
rev   line source
1439
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.shared.model;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.HashMap;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.List;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import java.util.ArrayList;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 /**
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 */
1503
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
10 public class OutputSettings implements Settings, Cloneable {
1439
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 /** The output name. */
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 protected String name;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 /** The categories and settings container. */
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 protected HashMap<String, List<Property> > categories;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 public OutputSettings() {
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 this.categories = new HashMap<String, List<Property> >();
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public OutputSettings(String name) {
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 this.name = name;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 this.categories = new HashMap<String, List<Property> >();
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 public void setName(String name) {
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 this.name = name;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 public String getName() {
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 return this.name;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 public void setSettings(String category, List<Property> settings) {
1464
c899a7ffdc8f Extract and parse the output settings from describe document and add settings
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1449
diff changeset
41 if (this.categories == null) {
c899a7ffdc8f Extract and parse the output settings from describe document and add settings
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1449
diff changeset
42 this.categories = new HashMap<String, List<Property> >();
c899a7ffdc8f Extract and parse the output settings from describe document and add settings
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1449
diff changeset
43 }
1439
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 this.categories.put(category, settings);
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 public List<Property> getSettings(String category) {
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 return categories.get(category);
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 }
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52
1503
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
53 public List<String> getCategories() {
1439
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 ArrayList<String> list = new ArrayList<String>(categories.keySet());
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 return list;
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 }
1503
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
57
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
58
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
59 public Object clone() {
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
60 OutputSettings clone = new OutputSettings(this.getName());
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
61 for (String s: this.getCategories()) {
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
62 ArrayList cloneList = new ArrayList<Property>();
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
63 for(Property p: this.getSettings(s)) {
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
64 cloneList.add((Property)p.clone());
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
65 }
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
66 clone.setSettings(s, cloneList);
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
67 }
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
68 return clone;
3304608baf35 Issue 433.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1464
diff changeset
69 }
1439
4df2d9a4b9b4 Added interfaces and container for output settings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 }

http://dive4elements.wald.intevation.org