Buenas Alex.

Layer extiende AbstractLayerable (que a su vez implementa Layerable), por lo que solo tienes que hacer el casting adecuado para que funcione ;):

Layer selectedLayer = (Layer)context.getSelectedLayer(0);

.........

List<Layerable> layersToFilter = new ArrayList<Layerable>();
layersToFilter.add(selectedLayer);
Geometry fence = EnvelopeUtil.toGeometry(encuadreActual);
Map layerToFeaturesInFenceMap = context.getLayerViewPanel().layersToFeaturesInFenceMap(layersToFilter, fence);

Saludos,

Alex Mtz. de Agirre Escobar escribió:
Muchas gracias por la respuesta.
He seguido las instrucciones, y he llegado al código que se muestra a continuación:


public boolean execute(PlugInContext context) throws Exception {
//******************
//MENSAJE DE DIALOGO
//******************
DialogFactory.showInformationDialog(context.getWorkbenchFrame(), "Proyecto de exportación a dxf...",
"Diálogo de información");
//*************************************************************
//SELEECIONAR LOS ELEMENTOS DE LA CAPA DEL RECUADRO DE LA VISTA
//*************************************************************
//recuperamos el encuadre de la vista activa
Envelope encuadreActual = context.getLayerViewPanel().getViewport().getEnvelopeInModelCoordinates();
//recuperamos la capa a partir de la selección del árbol
Layer selectedLayer = _context.getSelectedLayer(0)_; --> _ERROR: "Type mismatch: cannot convert from Layerable to Layer"_

//recuperamos los elementos que cruzan con el encuadre actual
List<Layer> layersToFilter = new ArrayList<Layer>();
layersToFilter.add(selectedLayer);
Geometry fence = EnvelopeUtil.toGeometry(encuadreActual);
Map layerToFeaturesInFenceMap =
context.getLayerViewPanel()._layersToFeaturesInFenceMap_(layersToFilter, fence); --> _ERROR: "The method _ _layersToFeaturesInFenceMap(List<Layerable>, Geometry) in the type LayerViewPanel is not applicable _
_for the arguments (List<Layer>, Geometry)"_


Espero que me puedan ayudar con estos 2 errores.
Gracias de nuevo, y un saludo,
Alex.



> Date: Mon, 7 Jun 2010 11:16:42 +0200
> From: [email protected]
> To: [email protected]
> Subject: [Kosmo] Re: Consulta desarrollo
>
> Buenos días Alex.
>
> Le comento una serie de puntos sobre la funcionalidad que quiere
> implementar:
>
> 1) En primer lugar, supondré que su herramienta será un PlugIn (es
> decir, que la clase implementa la interfaz PlugIn o extiende a alguna de
> sus subclases, como AbstractPlugIn o ThreadedPlugIn).
>
> 2) En el método execute de dicha herramienta debe incluir el código que
> debe ejecutarse al pulsar el botón de la misma en la interfaz de usuario
> (o, si la tarea que desea realizar es de "larga duración", deberá
> comprobarse en dicho método execute que se cumplen todas las
> precondiciones para la ejecución de la misma en el método run(),
> recuperando a su vez los datos que necesite).
>
> En este caso, lo primero que necesitará es recuperar el encuadre de la
> vista activa (no olvide incluir en el método getCheck() /
> createEnableCheck la comprobación de que debe existir una vista activa):
>
> Envelope encuadreActual =
> context.getLayerViewPanel().getViewport().getEnvelopeInModelCoordinates();
>
> 3) Una vez obtenida dicha referencia, sería necesario recuperar de qué
> capa/s se van a seleccionar los elementos. Dependiendo de la
> funcionalidad que desea implementar, puede obtener la referencia
> directamente (si sabe de antemano de qué capa debe recuperarla), o, si
> es una herramienta válida para cualquier capa, puede obtener la
> referencia a la capa mediante la selección de la misma en el árbol de capas:
>
> a) Referencia directa por nombre (sería recomendable incluir un chequeo
> de que la capa de nombre nombreDeMiCapa existe realmente):
>
> Layer selectedLayer = JUMPWorkbench.getLayer(nombreDeMiCapa);
>
> b) Recuperarla a partir de la selección del árbol (sería recomendable
> incluir un chequeo que compruebe que existe una capa vectorial y que
> está seleccionada en el árbol)
>
> Layer selectedLayer = context.getSelectedLayer(0);
>
> 4) Recuperamos los elementos que cruzan con el encuadre actual:
>
> List<Layer> layersToFilter = new ArrayList<Layer>();
> layersToFilter.add(selectedLayer);
> Geometry fence = EnvelopeUtil.toGeometry(encuadreActual);
> Map layerToFeaturesInFenceMap =
> context.getLayerViewPanel().layersToFeaturesInFenceMap(
> layersToFilter, fence);
>
> 5) Para seleccionar los elementos puedes consultar el método
> refreshSelection(layerToFeaturesInFenceMap, context.getLayerViewPanel())
> del plugin CalculateSelectionPlugIn.
>
> Saludos,
>
>
> Alex Mtz. de Agirre Escobar escribió:
> > Buenos días!
> >
> > Estoy teniendo algunos problemas a la hora de implementar una
> > herramienta propia sobre Kosmo.
> >
> > El primer paso que debe realizar dicha herramienta es seleccionar los
> > elementos de la capa activa que se encuentren en la ventana de
> > visualización de Kosmo. Para ello, debo de llamar al evento que
> > realiza el botón de selección, y posteriormente seleccionar los
> > elementos que se encuentren dentro de las coordenadas de la ventana de
> > visualización. De momento, me conformaría con lograr dicho
> > propósito. El error que tengo en mi código es que el constructor
> > /CalculateSelectionPlugIn/ no está definido.
> >
> > Si fuese posible, les agradecería que me ayudaran a solucionar dicho
> > contratiempo.
> >
> > Gracias de antemano,
> > Alex.
> >
> > ------------------------------------------------------------------------
> > Eskura ezazu Windows Live Hotmail doanik, beti eskura edukiko duzun
> > posta elektronikoko zerbitzua. Erregistratu orain.
> > <https://signup.live.com/signup.aspx?id=60969>
>
> --
>
> Sergio Baños Calvo
>
> Jefe de desarrollos
> Sistemas Abiertos de Información Geográfica, S.L. (SAIG S.L.)
> Tlfno. móvil: 685005960
> Tlfno. fijo: (+34) 954788876
>
> E-mail: [email protected]
>

------------------------------------------------------------------------
Eskura ezazu Windows Live Hotmail doanik, beti eskura edukiko duzun posta elektronikoko zerbitzua. Erregistratu orain. <https://signup.live.com/signup.aspx?id=60969>
------------------------------------------------------------------------

_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo

--

Sergio Baños Calvo

Jefe de desarrollos
Sistemas Abiertos de Información Geográfica, S.L. (SAIG S.L.)
Tlfno. móvil: 685005960
Tlfno. fijo: (+34) 954788876

E-mail: [email protected]

_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo

Responder a