[Gvsig_desarrolladores] Generar ejecutable gvSIG 2.0

Joaquin del Cerro jjdelcerro.gvsig en gmail.com
Vie Abr 20 00:53:46 CEST 2012


Hola Leticia,
se me habia pasado comentar este punto...

>
> - Proyecto libFMap_dal
> Tú me comentaste lo siguiente: *"La libreria de DAL es una libreria de
> acceso a datos, con un API bien definido y **una semantica de
> funcionamiento en concreto. Si lo que quieres es que tu edicion se comporte
> de forma distinta deberias implementar esa funcionalidad a nivel del plugin
> usando la libreria standar de DAL, de forma que no interfiera con otros plugins
> que usen DAL. De todos modos, si esta justificada la modificacion que
> propones se puede ver de introducir algun cambio para poder poner el store
> en un modo especial que sea el que propongas, pero no cambiar el
> funcionamiento general para todos los stores, ya que dejarian de ir otros
> plugins." *
>
> ¿Cómo hago para implementar esa funcionalidad a nivel de plugin y no tener
> que tocar ese código? ¿Podéis hacer lo de poner el store en algún modo
> especial?
> Nosotros lo que queremos es que después de que el usuario digitalize se
> guarde dicha modificación, sin tener que esperar que el usuario pulse en
> "terminar edición". Es más que nada un cambio en la lógica porque nosotros
> siempre lo hemos hecho así y queremos que en esta versión siga siendo igual
> Si me puedes decir cómo tenemos que hacer para que esto funcione así,
> estaremos encantados de no tener que modificar vuestro código
>

Sobre esto que dices, tiene su miga.
El modelo de acceso a datos de gvSIG esta pensado para que funcione tanto
sobre una tabla de BBDD como sobre un shp. Y esto ocasiona sus problemas, ya
que ambos escenarios son muy distintos y presentan sus peculiaridades.

basicamente lo que entiendo de lo que quieres hacer es que cada vez que se
inserte una geometria esta se guarde en la BBDD. Para una BBDD esto puede
estar bien, pero con un shp los resultados serian espantosos.

De todos modos si yo lo quisiese hacer asi, mi primera aproximacion suponiendo
que tengo acceso al plugin de edicion, y puedo hacer cualquier cambio en el, seria
ir a la clase DefaultCADTool al metodo

  public Feature insertGeometry(Geometry geometry)

Y alli cuando se llama a:

  featureStore.insert(eFeature);

Intentaria forzar a que la insercion se hiciese.
Asi de pronto, podria probar a llamar a

  featureStore.finishEditing();
  featureStore.edit();

despues del insert.
Esto forzaria a que se guardase la feature en disco inmediatamente, pero
tambien se perderian las opciones de hacer/rehacer ya que ya se han escrito
en la BBDD. Ademas en un shp o cualquier proveedor de datos en memoria provacaria
que a cada insercion se reescribiese el fichero entero.

Pero al menos haciendolo ahi tendria controlados que los cambios en el
funcionamiento de escritura solo afectarian a mis herramientas de edicion,
permitiendo que el resto de herramientas de gvSIG tengan un comportamiento
acorde a lo que se penso que iba a hacer la libreria de acceso a datos.

Esta seria una primera aproximacion... habria que ver que efectos secundarios
tiene el cerrar y comenzar edicion, puede haber algun obserbador que este pendiente
de ello y haga algo que se nos escape.

Tambien habria que ver que pasa cuando modificas una geometria... hay varias herramientas
que llaman al update del store...
¿ habria que llamar tambien al finishEditing y al edit en esas herramientas ?

Supongo que habria que probarlo.


Lo que si me intersaria es ver que modificaciones habeis hecho en el DefaultFeatureStore
para hacer que os funcione, asi de pronto no se me ocurre como hacer sin que tenga
efects secundarios importantes, pero a veces es mas facil de lo que a uno le parence
las cosas y unos ojos de fuera pueden hacerlo mas facilmente que cuando estas metido
dentro. Si puedes hacerme llegar la clase, adjuntamela, no se si puedes por la lista,
si no puedes hacerlo a la lista tienes mi correo al pie de mis mensajes.


Un saludo
Joaquin


-- 
--------------------------------------
Joaquin Jose del Cerro
Development and software arquitecture manager.
jjdelcerro en gvsig.com
gvSIG Association
www.gvsig.com
www.gvsig.org




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