RE: [Gvsig_desarrolladores] Problema con la Simbología de la selección de varias capas.

Jorge Bellido Diez jbellido en ikt.es
Mar Abr 15 17:49:32 CEST 2008


He intentado tirar por lo de la clase FSymbol pero me ha dado fallo, normal dada mi reducida experiencia en java, así que me he optado por la solución de Jaume y lo tengo funcionando. En principio la utilidad que desarrollo solo trabaja con una ventana tipo mapa así que confio no tener complicaciones.
 
Muchas gracias Fran y Jaume.., un saludo, Jorge.
 

________________________________

De: gvsig_desarrolladores-bounces en runas.cap.gva.es [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Francisco José Peñarrubia
Enviado el: martes, 15 de abril de 2008 14:18
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] Problema con la Simbología de la selección de varias capas.


Hola

Bueno, dicen que siempre hay un roto para un descosido.... ;-).

Quizás puedes probar algo como esto: Crea una clase que herede de FSymbol y sobreescribe el método getSymbolForSelection().
Cuando asignes una leyenda, usa ese nuevo símbolo para la capa en cuestión, y podrás tener capas con un símbolo de selección distinto para cada una de ellas.

Lo malo es que si el usuario pone otra leyenda, cambiará también tu símbolo. Pero por lo menos, por código, lo puedes controlar (aunque no lo he probado, ojo).

Saludos.

Fran.

PS: Ejemplo:
package com.iver.cit.gvsig.fmap.core.v02;

import java.awt.Color;
import com.iver.cit.gvsig.fmap.core.ISymbol;

public class MySymbol extends FSymbol {

    public MySymbol() {
        // TODO Auto-generated constructor stub
    }

    public MySymbol(int tipoSymbol, Color c) {
        super(tipoSymbol, c);
        // TODO Auto-generated constructor stub
    }

    public MySymbol(int tipoSymbol) {
        super(tipoSymbol);
        // TODO Auto-generated constructor stub
    }

    @Override
    public ISymbol getSymbolForSelection() {
        // TODO Auto-generated method stub
        return super.getSymbolForSelection();
    }

}


En lugar de super.getSymbolForSelection, pon tu propio código para fijar el color que quieras.




El día 15/04/08, jaume domínguez faus <jaume.dominguez en iver.es> escribió: 

	Jorge, el color de selección es una variable global del proyecto y no se aplica uno definido a cada capa sino que ese color es el que se aplica a todas las features seleccionadas que pintes esten donde esten.
	
	Lo que pretendes, por lo que infiero de las lineas que copias, es ir cambiando ese valor antes de pintar. Bueno, eso de hacerlo, lo deberías de hacer usando LayerDrawEvent que te comunica cuando empiezan y terminan a pintarse las capas.
	
	PERO OJO! puede terminar con una fiesta de colores divertida si tienes más de una vista, puesto mientras que las capas de una vista se pintan secuencialmente, las vistas entre sí se pintan de manera independiente y paralela. Con lo cual te puedes topar que mientras se estan pintando las capas de una vista y de otra, el color de selección va variando de manera incontrolada.
	
	Piensa en ello.
	
	La versión de la calle de gvSIG tiene opciones para usar tramados, grosores de línea y usar imágenes como símbolos de punto. Pero lo que puedes hacer es lo que ves. Así que no hay otra. Estamos mejorando esto para que el juego de símbolos sea extensible tanto por un usuario como por un desarrollador. Sin embargo esto no es posible a día de hoy y hay que jugar con las posibilidades que se ofrecen.
	
	Salut! 
	
	
	Jorge Bellido Diez wrote:
	

		Hola a todos,.. Quería que se me represtase las selecciones de diferentes capas vectoriales (Capa A,B )en diferentes colores.. Casi casi he dado con ello,.. Lo que he hecho es lo siguiente: Tengo las herramientas de selección de cada capa en extensiones distintas y he colocado los siguientes comandos en el método execute
		
		       ProjectExtension pe = (ProjectExtension)PluginServices.getExtension(ProjectExtension.class);        pe.getProject().setSelectionColor(new Color(0,255,255,100));
		           Mi problema es que cuando tengo elementos seleccionados en ambas capas se me pintan ambos del color de la última herramienta de selección empleada.
		¿Cuál sería el evento o el lugar propicio donde comprobar qué layer se me está pintando y aplicar su simbología?
		¿Podría utilizar elementos más complejos de simbolización para las selecciones (entramados, línea de contorno de otro color y grosor, etc..)?
		 Gracias, un saludo;
		Jorge Bellido
		
		 
		_______________________________________________
		gvSIG_desarrolladores mailing list
		gvSIG_desarrolladores en runas.cap.gva.es
		http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
		 
		



	-- 
	Jaume Dominguez Faus
	
	Equip gvSIG 
	Web Map Service
	Web Coverage Service Web Map Context
	Simbologia Avançada
	Etiquetat Intel·ligent
	
	Iver TI
	C. Salamanca, 52
	46005 València
	Telf: 902 25 25 40 Fax: 96 316 27 16
	(Spain)
	
	
	
	Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía. 
	
	
	
	_______________________________________________
	gvSIG_desarrolladores mailing list
	gvSIG_desarrolladores en runas.cap.gva.es
	http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
	




-- 
Francisco José Peñarrubia

Equipo gvSIG
IVER T.I. S.A. 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20080415/d85b4cc6/attachment.htm


Más información sobre la lista de distribución gvSIG_desarrolladores