Mercurial > mxd2map
comparison src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java @ 116:c8a1361ddd38
Improved exceptionhandlin for renderer reader.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 15 Jun 2011 18:37:27 +0200 |
parents | 59e06c405a9a |
children | 6c3d880db7c5 |
comparison
equal
deleted
inserted
replaced
115:fb93f20478cc | 116:c8a1361ddd38 |
---|---|
5 import com.esri.arcgis.carto.IFeatureRenderer; | 5 import com.esri.arcgis.carto.IFeatureRenderer; |
6 import com.esri.arcgis.display.ISymbol; | 6 import com.esri.arcgis.display.ISymbol; |
7 import com.esri.arcgis.carto.UniqueValueRenderer; | 7 import com.esri.arcgis.carto.UniqueValueRenderer; |
8 | 8 |
9 import org.w3c.dom.Element; | 9 import org.w3c.dom.Element; |
10 import java.io.IOException; | |
10 | 11 |
11 import de.intevation.mxd.utils.MapToXMLUtils; | 12 import de.intevation.mxd.utils.MapToXMLUtils; |
12 | 13 |
13 /** | 14 /** |
14 * Reads unique vaule renderer information. | 15 * Reads unique vaule renderer information. |
64 /** | 65 /** |
65 * Reads the renderer attributes. | 66 * Reads the renderer attributes. |
66 * | 67 * |
67 * @return The parent XML node. | 68 * @return The parent XML node. |
68 */ | 69 */ |
69 public Element read() | 70 public Element read() { |
70 throws Exception { | |
71 logger.debug("read()"); | 71 logger.debug("read()"); |
72 for(int i = 0; i < renderer.getClassCount() - 1; i++) { | 72 int count = 0; |
73 try { | |
74 count = renderer.getClassCount(); | |
75 } | |
76 catch(IOException ioe) { | |
77 logger.error("Could not read class count. Stopped reading renderer."); | |
78 return layer; | |
79 } | |
80 for(int i = 0; i < count - 1; i++) { | |
73 Element rendererElement = util.addRenderer(layer); | 81 Element rendererElement = util.addRenderer(layer); |
74 | 82 |
75 String value = renderer.getValue(i); | 83 try { |
76 rendererElement.setAttribute("name", renderer.esri_getClass(i)); | 84 String value = renderer.getValue(i); |
77 rendererElement.setAttribute("description", | 85 rendererElement.setAttribute("name", renderer.esri_getClass(i)); |
78 renderer.getDescription(value)); | 86 rendererElement.setAttribute("description", |
79 rendererElement.setAttribute("value", value); | 87 renderer.getDescription(value)); |
80 rendererElement.setAttribute("label", renderer.getLabel(value)); | 88 rendererElement.setAttribute("value", value); |
81 rendererElement.setAttribute( | 89 rendererElement.setAttribute("label", renderer.getLabel(value)); |
82 "field_count", | |
83 String.valueOf(renderer.getFieldCount())); | |
84 for(int j = 0; j < renderer.getFieldCount(); j++) { | |
85 rendererElement.setAttribute( | 90 rendererElement.setAttribute( |
86 "expression_field_" + j, | 91 "field_count", |
87 renderer.getField(j)); | 92 String.valueOf(renderer.getFieldCount())); |
93 for(int j = 0; j < renderer.getFieldCount(); j++) { | |
94 rendererElement.setAttribute( | |
95 "expression_field_" + j, | |
96 renderer.getField(j)); | |
97 } | |
98 rendererElement.setAttribute("expression_operator", "="); | |
99 | |
100 ISymbol sym = renderer.getSymbol(value); | |
101 MarkerSymbolReader markerReader = new MarkerSymbolReader(); | |
102 LineSymbolReader lineReader = new LineSymbolReader(); | |
103 FillSymbolReader fillReader = new FillSymbolReader(); | |
104 if(markerReader.canRead(sym)) { | |
105 markerReader.setSymbol(sym); | |
106 markerReader.setUtil(util); | |
107 markerReader.setParent(rendererElement); | |
108 markerReader.read(); | |
109 } | |
110 else if(lineReader.canRead(sym)) { | |
111 lineReader.setSymbol(sym); | |
112 lineReader.setUtil(util); | |
113 lineReader.setParent(rendererElement); | |
114 lineReader.read(); | |
115 } | |
116 else if(fillReader.canRead(sym)) { | |
117 fillReader.setSymbol(sym); | |
118 fillReader.setUtil(util); | |
119 fillReader.setParent(rendererElement); | |
120 fillReader.read(); | |
121 } | |
122 else { | |
123 logger.debug("Not a known symbol type: " + | |
124 sym.getClass().toString()); | |
125 } | |
88 } | 126 } |
89 rendererElement.setAttribute("expression_operator", "="); | 127 catch(Exception e) { |
90 | 128 logger.error( |
91 ISymbol sym = renderer.getSymbol(value); | 129 "Could not read unique value data." + |
92 MarkerSymbolReader markerReader = new MarkerSymbolReader(); | 130 e.toString()); |
93 LineSymbolReader lineReader = new LineSymbolReader(); | 131 return layer; |
94 FillSymbolReader fillReader = new FillSymbolReader(); | |
95 if(markerReader.canRead(sym)) { | |
96 markerReader.setSymbol(sym); | |
97 markerReader.setUtil(util); | |
98 markerReader.setParent(rendererElement); | |
99 markerReader.read(); | |
100 } | |
101 else if(lineReader.canRead(sym)) { | |
102 lineReader.setSymbol(sym); | |
103 lineReader.setUtil(util); | |
104 lineReader.setParent(rendererElement); | |
105 lineReader.read(); | |
106 } | |
107 else if(fillReader.canRead(sym)) { | |
108 fillReader.setSymbol(sym); | |
109 fillReader.setUtil(util); | |
110 fillReader.setParent(rendererElement); | |
111 fillReader.read(); | |
112 } | |
113 else { | |
114 logger.debug("Not a known symbol type: " + | |
115 sym.getClass().toString()); | |
116 } | 132 } |
117 } | 133 } |
118 return layer; | 134 return layer; |
119 } | 135 } |
120 } | 136 } |