Revision 16177 branches/v10/extensions/extPublishMapserver/src/org/gvsig/publish/mapserver/model/wms/MapserverWMSLayer.java

View differences:

MapserverWMSLayer.java
43 43
import java.awt.Color;
44 44
import java.awt.geom.Rectangle2D;
45 45

  
46
import org.gvsig.publish.infoProject.IDataSourceInfo;
47
import org.gvsig.publish.infoProject.ILayerInfo;
48
import org.gvsig.publish.infoProject.ISymbolInfo;
49
import org.gvsig.publish.infoProject.datasources.IFileInfo;
50
import org.gvsig.publish.infoProject.datasources.IRasterDSInfo;
51
import org.gvsig.publish.infoProject.legends.IIntervalLegendInfo;
52
import org.gvsig.publish.infoProject.legends.ISingleSymbolLegendInfo;
53
import org.gvsig.publish.infoProject.legends.IUniqueValuesLegendInfo;
54
import org.gvsig.publish.infoProject.symbols.IFillSymbolInfo;
55
import org.gvsig.publish.infoProject.symbols.ILineSymbolInfo;
56
import org.gvsig.publish.infoProject.symbols.IMarkerSymbolInfo;
57
import org.gvsig.publish.infoProject.symbols.ITextSymbolInfo;
46
import org.gvsig.publish.infoproject.IDataSourceInfo;
47
import org.gvsig.publish.infoproject.ILayerInfo;
48
import org.gvsig.publish.infoproject.ISymbolInfo;
49
import org.gvsig.publish.infoproject.datasources.IDataBaseInfo;
50
import org.gvsig.publish.infoproject.datasources.IFileInfo;
51
import org.gvsig.publish.infoproject.datasources.IRasterDSInfo;
52
import org.gvsig.publish.infoproject.legends.IIntervalLegendInfo;
53
import org.gvsig.publish.infoproject.legends.ISingleSymbolLegendInfo;
54
import org.gvsig.publish.infoproject.legends.IUniqueValuesLegendInfo;
55
import org.gvsig.publish.infoproject.symbols.IFillSymbolInfo;
56
import org.gvsig.publish.infoproject.symbols.ILineSymbolInfo;
57
import org.gvsig.publish.infoproject.symbols.IMarkerSymbolInfo;
58
import org.gvsig.publish.infoproject.symbols.ITextSymbolInfo;
58 59
import org.gvsig.publish.mapserver.conf.MapFile.CRS;
59 60
import org.gvsig.publish.mapserver.conf.MapFile.ConfigFile;
60 61
import org.gvsig.publish.mapserver.conf.MapFile.Label;
61 62
import org.gvsig.publish.mapserver.conf.MapFile.MapClass;
62 63
import org.gvsig.publish.mapserver.conf.MapFile.MapLayer;
64
import org.gvsig.publish.mapserver.conf.MapFile.PostgisLayer;
63 65
import org.gvsig.publish.mapserver.conf.MapFile.RGB;
64 66
import org.gvsig.publish.mapserver.conf.MapFile.ShpLayer;
65 67
import org.gvsig.publish.mapserver.conf.MapFile.StyleMap;
66 68
import org.gvsig.publish.mapserver.model.Mapserver;
67 69
import org.gvsig.publish.mapserver.model.MapserverLayer;
68
import org.gvsig.publish.ogcMetadata.CommonOGCMetadata;
69
import org.gvsig.publish.ogcMetadata.LayerWMS111Metadata;
70
import org.gvsig.publish.serversModel.PublishException;
71
import org.gvsig.publish.serversModel.RemoteResource;
70
import org.gvsig.publish.ogcmetadata.CommonOGCMetadata;
71
import org.gvsig.publish.ogcmetadata.LayerWMS111Metadata;
72
import org.gvsig.publish.serversmodel.PublishException;
73
import org.gvsig.publish.serversmodel.RemoteResource;
72 74

  
73 75
import com.iver.utiles.XMLEntity;
74 76

  
......
171 173
	public void publish() throws PublishException{
172 174

  
173 175
		IDataSourceInfo dataSource = getLayerInfo().getDataSource();
174
		
176

  
175 177
		if (dataSource == null){
176
		
177
			//I must put a exception
178
			
178

  
179
			//TODO: I must put a exception
180

  
179 181
			return;
180 182
		}
181 183
		if (dataSource.getType() == IDataSourceInfo.SHAPE_TYPE){
......
212 214
		//TODO:
213 215
		//lyr.labelsizeitem = getLayerInfo().getLabeling().getLabelHeightField();
214 216
		//lyr.labelangleitem = getLayerInfo().getLabeling().getLabelRotationField();
215
		
217

  
216 218
		//PROJECTION (I must query the layer to know the shape projection)
217 219
		lyr.layercrs = new CRS(getLayerInfo().getCRS(),true);
218
				
220

  
219 221
		//CLASS
220 222
		Object source = getLayerInfo().getLegend();		
221 223
		if(source instanceof ISingleSymbolLegendInfo){
......
230 232
			IIntervalLegendInfo legend = (IIntervalLegendInfo)source;
231 233
			generateIntervalLegend(legend, lyr);			
232 234
		}
233
		
235

  
234 236
		//METADATA
235 237
		generateMetadata(lyr);
236 238

  
237 239
		//adds the layer into the map
238 240
		mapfile.add(lyr);		
239 241
	}
242
	public void generatePostGISLayer(IDataSourceInfo ds){
243
		//get the mapfile
244
		ConfigFile mapfile = getMapfile();		
245
		IDataBaseInfo db = (IDataBaseInfo)ds;
246
//		//LAYER
247
		PostgisLayer lyr = new PostgisLayer();
248
		lyr.name = getOgcMetadata().getName();
249
		//TODO: change getGeometryColumn
250
		lyr.data = db.getGeometryColumn() + " from " + db.getTableName() + " using unique " + db.getGID();
251
		lyr.host =db.getHost();
252
		lyr.user =db.getUser();
253
		lyr.pass = db.getPassword();
254
		lyr.dbname =db.getDatabaseName();
255
		lyr.port = db.getPort();
256
		lyr.type = ds.getDataType();		
257
		lyr.transparency = getLayerInfo().getOpacityPercent();
258
		lyr.dump = getLayerWmsMetadata().isQueryable();		
259
		lyr.maxscale = new Double(getLayerInfo().getMaxscale()).toString();
260
		lyr.minscale = new Double(getLayerInfo().getMinscale()).toString();
261
//		//labeling
262
		lyr.labelitem = getLayerInfo().getLabeling().getLabelField();
263
//		//TODO:
264
//		//lyr.labelsizeitem = getLayerInfo().getLabeling().getLabelHeightField();
265
//		//lyr.labelangleitem = getLayerInfo().getLabeling().getLabelRotationField();
266
//
267
//		//PROJECTION (I get the srid from the geometry_columns)
268
		lyr.layercrs = new CRS(ds.getCRS(),true);
269
//
270
//		//CLASS
271
		Object source = getLayerInfo().getLegend();		
272
		if(source instanceof ISingleSymbolLegendInfo){
273
			ISingleSymbolLegendInfo legend = (ISingleSymbolLegendInfo)source;
274
			generateSingleLegend(legend, lyr);		
275
		}
276
		if(source instanceof IUniqueValuesLegendInfo){
277
			IUniqueValuesLegendInfo legend = (IUniqueValuesLegendInfo)source;
278
			generateUniqueLegend(legend, lyr);			
279
		}
280
		if(source instanceof IIntervalLegendInfo){
281
			IIntervalLegendInfo legend = (IIntervalLegendInfo)source;
282
			generateIntervalLegend(legend, lyr);			
283
		}
284
//
285
//		//METADATA
286
		generateMetadata(lyr);
287
//
288
//		//adds the layer into the map
289
		mapfile.add(lyr);		
240 290

  
291
	}	
292
	public void generateRasterLayer(IDataSourceInfo ds){
293
		//get the mapfile
294
		ConfigFile mapfile = getMapfile();
295
		//get the raster info
296
		IRasterDSInfo iraster = (IRasterDSInfo)ds;
297
		//get the file  info 
298
		IFileInfo ifile = (IFileInfo)ds;
299

  
300
		//LAYER
301
		ShpLayer lyr = new ShpLayer();
302
		lyr.name = getOgcMetadata().getName();
303
		lyr.data = ifile.getAbsolutePath(); 
304
		lyr.type = "RASTER";
305
		lyr.transparency = getLayerInfo().getOpacityPercent();
306

  
307
		//PROJECTION
308
		lyr.layercrs = new CRS(ds.getCRS(),true);								
309

  
310
		//METADATA
311
		generateMetadata(lyr);
312

  
313
		//adds the layer into the map
314
		mapfile.add(lyr);		
315

  
316

  
317
	}
318

  
241 319
	private void generateSingleLegend(ISingleSymbolLegendInfo legend, MapLayer lyr) {
242 320
		ISymbolInfo isymbol =  legend.getSymbolInfo();		
243 321
		MapClass clase = new MapClass();
......
261 339
	 * @param lyr
262 340
	 * The layer
263 341
	 */
264
	private void generateIntervalLegend(IIntervalLegendInfo legend, ShpLayer lyr) {
342
	private void generateIntervalLegend(IIntervalLegendInfo legend, MapLayer lyr) {
265 343
		//check if is labeled
266 344
		boolean islabeled = false;
267 345
		if ( getLayerInfo().getLabeling().getLabelField() != null){
......
281 359
			lyr.addClass(clase);
282 360
		}
283 361
	}
284
	
362

  
285 363
	private void generateUniqueLegend(IUniqueValuesLegendInfo legend, MapLayer lyr) {
286 364
		//check if is labeled
287 365
		boolean islabeled = false;
......
327 405

  
328 406
	}
329 407

  
330
	public void generatePostGISLayer(IDataSourceInfo ds){
331
		//get the mapfile
332
		ConfigFile mapfile = getMapfile();
333

  
334
	}	
335
	public void generateRasterLayer(IDataSourceInfo ds){
336
		//get the mapfile
337
		ConfigFile mapfile = getMapfile();
338
		//get the raster info
339
		IRasterDSInfo iraster = (IRasterDSInfo)ds;
340
		//get the file  info 
341
		IFileInfo ifile = (IFileInfo)ds;
342

  
343
		//LAYER
344
		ShpLayer lyr = new ShpLayer();
345
		lyr.name = getOgcMetadata().getName();
346
		lyr.data = ifile.getAbsolutePath(); 
347
		lyr.type = "RASTER";
348
		lyr.transparency = getLayerInfo().getOpacityPercent();
349

  
350
		//PROJECTION
351
		lyr.layercrs = new CRS(ds.getCRS(),true);								
352

  
353
		//METADATA
354
		generateMetadata(lyr);
355

  
356
		//adds the layer into the map
357
		mapfile.add(lyr);		
358

  
359

  
360
	}
361 408
	private void generateSymbol(ITextSymbolInfo textSymbol, MapClass clase){
362 409
		clase.etiqueta = new Label();
363 410
		//TODO: change by getColor()
364 411
		Color c = textSymbol.getFontColor();
365 412
		clase.etiqueta.color = new RGB(c.getRed(), c.getGreen(), c.getBlue());
366
		
413

  
367 414
		//clase.etiqueta.size = new Double(textSymbol.getFontSize()).intValue();
368 415
		//clase.etiqueta.type = "truetype";
369 416
	}

Also available in: Unified diff