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.

http://dive4elements.wald.intevation.org