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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)