Revision 9919 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/core/symbols/MultiLayerSymbol.java

View differences:

MultiLayerSymbol.java
43 43
*
44 44
* $Id$
45 45
* $Log$
46
* Revision 1.6  2007-01-24 17:58:22  jaume
46
* Revision 1.7  2007-01-25 16:25:23  jaume
47
* *** empty log message ***
48
*
49
* Revision 1.6  2007/01/24 17:58:22  jaume
47 50
* new features and architecture error fixes
48 51
*
49 52
* Revision 1.5  2007/01/16 11:50:44  jaume
......
157 160
		if (layerIndex < 0 || layers.length < layerIndex)
158 161
			throw new IndexOutOfBoundsException(layerIndex+" < 0 or "+layerIndex+" > "+layers.length);
159 162
		int size = layers.length+1;
160
		ISymbol[] newLayers = new ISymbol[size];
161
		for (int i = 0; i < newLayers.length; i++) {
162
			if (i == layerIndex) {
163
				newLayers[i] = newLayer;
164
				i++;
165
			}
166
			if (i<newLayers.length)
167
				newLayers[i] = layers[i];
163
		ArrayList newLayers = new ArrayList();
164
		for (int i = 0; i < layers.length; i++) {
165
			newLayers.add(layers[i]);
168 166
		}
169
		layers = newLayers;
167
		newLayers.add(layerIndex, newLayer);
168
		layers = (ISymbol[]) newLayers.toArray(new ISymbol[0]);
170 169
	}
171 170
	/**
172 171
	 * TODO maybe push it up to ISymbol
......
217 216
	}
218 217

  
219 218
	public int getSymbolType() {
220
		// TODO Auto-generated method stub
221
		throw new Error("Not yet implemented!");
222

  
219
		return symbolType;
223 220
	}
224 221

  
225 222
	public boolean isSuitableFor(IGeometry geom) {
......
239 236
	public void setXMLEntity(XMLEntity xml) {
240 237
		setIsShapeVisible(xml.getBooleanProperty("isShapeVisible"));
241 238
		setDescription(xml.getStringProperty("desc"));
239
		symbolType = xml.getIntProperty("symbolType");
242 240
		layers = new ISymbol[xml.getChildrenCount()];
243 241
		for (int i = 0; i < layers.length; i++) {
244 242
			layers[i] = SymbolFactory.createFromXML(xml.getChild(i), "layer" + i);
......
264 262
	public void setMultiLayerSymbolType(int type) {
265 263
		symbolType = type;
266 264
	}
265

  
266
	public void swapLayers(int index1, int index2) {
267
		ISymbol aux1 = getLayer(index1), aux2 = getLayer(index2);
268
		layers[index2] = aux1;
269
		layers[index1] = aux2;
270
	}
267 271
}

Also available in: Unified diff