Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java @ 3475:9b29facddbd1
Show tooltips for datacage rows.
flys-client/trunk@5169 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 08 Aug 2012 08:11:43 +0000 |
parents | 4b8b9b2ac873 |
children | b21840188264 |
comparison
equal
deleted
inserted
replaced
3474:4b8b9b2ac873 | 3475:9b29facddbd1 |
---|---|
60 converter.convertChildren(out, node); | 60 converter.convertChildren(out, node); |
61 return out; | 61 return out; |
62 } | 62 } |
63 } // I18NConverter | 63 } // I18NConverter |
64 | 64 |
65 private static Map<String, NodeConverter> converters; | 65 private static Map<String, NodeConverter> converters = new HashMap<String, NodeConverter>(); |
66 | |
67 protected void convertChildren(DataCageNode parent, Element sub) { | |
68 //System.err.println("convertChildren called"); | |
69 NodeList children = sub.getChildNodes(); | |
70 for (int i = 0, N = children.getLength(); i < N; ++i) { | |
71 Node child = children.item(i); | |
72 if (child.getNodeType() == Node.ELEMENT_NODE) { | |
73 String name = child.getLocalName(); | |
74 NodeConverter converter = converters.get(name); | |
75 if (converter == null) { | |
76 converter = I18N_CONVERTER; | |
77 } | |
78 DataCageNode son = converter.convert( | |
79 (Element)child, this); | |
80 parent.addChild(son); | |
81 } | |
82 } // for all children | |
83 } | |
84 | 66 |
85 public static final NodeConverter NAME_CONVERTER = new NameConverter(); | 67 public static final NodeConverter NAME_CONVERTER = new NameConverter(); |
86 public static final NodeConverter I18N_CONVERTER = new I18NConverter(); | 68 public static final NodeConverter I18N_CONVERTER = new I18NConverter(); |
87 | 69 |
88 static { | 70 static { |
90 converters.put("gauge", NAME_CONVERTER); | 72 converters.put("gauge", NAME_CONVERTER); |
91 converters.put("historical", NAME_CONVERTER); | 73 converters.put("historical", NAME_CONVERTER); |
92 converters.put("column", NAME_CONVERTER); | 74 converters.put("column", NAME_CONVERTER); |
93 } | 75 } |
94 | 76 |
77 | |
78 /** Trivial constructor. */ | |
95 public Converter() { | 79 public Converter() { |
96 converters = new HashMap<String, NodeConverter>(); | |
97 } | 80 } |
81 | |
98 | 82 |
99 public DataCageTree convert(Document document) { | 83 public DataCageTree convert(Document document) { |
100 logger.debug("convert called"); | 84 logger.debug("convert called"); |
101 //System.err.println(XMLUtils.toString(document)); | 85 //System.err.println(XMLUtils.toString(document)); |
102 | 86 |
103 // TODO Fetch descriptions/tooltips if any... | |
104 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); | 87 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); |
105 NodeList nodes = document.getChildNodes(); | 88 NodeList nodes = document.getChildNodes(); |
106 for (int i = 0, N = nodes.getLength(); i < N; ++i) { | 89 for (int i = 0, N = nodes.getLength(); i < N; ++i) { |
107 Node node = nodes.item(i); | 90 Node node = nodes.item(i); |
108 if (node.getNodeType() == Node.ELEMENT_NODE) { | 91 if (node.getNodeType() == Node.ELEMENT_NODE) { |
115 } | 98 } |
116 } | 99 } |
117 return roots.isEmpty() | 100 return roots.isEmpty() |
118 ? new DataCageTree() | 101 ? new DataCageTree() |
119 : new DataCageTree(roots.get(0)); | 102 : new DataCageTree(roots.get(0)); |
103 } | |
104 | |
105 protected void convertChildren(DataCageNode parent, Element sub) { | |
106 //System.err.println("convertChildren called"); | |
107 NodeList children = sub.getChildNodes(); | |
108 for (int i = 0, N = children.getLength(); i < N; ++i) { | |
109 Node child = children.item(i); | |
110 if (child.getNodeType() == Node.ELEMENT_NODE) { | |
111 String name = child.getLocalName(); | |
112 NodeConverter converter = converters.get(name); | |
113 if (converter == null) { | |
114 converter = I18N_CONVERTER; | |
115 } | |
116 DataCageNode son = converter.convert( | |
117 (Element)child, this); | |
118 parent.addChild(son); | |
119 | |
120 if (((Element)child).hasAttribute("description")) | |
121 logger.debug("nwd: " + ((Element)child).getAttribute("description")); | |
122 } | |
123 } // for all children | |
120 } | 124 } |
121 | 125 |
122 | 126 |
123 /** | 127 /** |
124 * Creates key/value pairs from Nodes Attributes. | 128 * Creates key/value pairs from Nodes Attributes. |