[Gvsig_italian] programmazione java

Juan Lucas Dominguez Rubio jldominguez a prodevelop.es
Lun 5 Maggio 2008 08:16:20 PDT


Ciao,
 
- Non intendevo
 
XMLEntity xmle = XMLEntity.parse("nome_del_file");
 
ma:
 
XMLEntity xmle = XMLEntity.parse("contenuto_del_file");
 
cioè il tuo file contiene un testo:
 
<xml-tag>
<property key="className" value="...
...
</xml-tag>
 
e dovresti fare:
 
XMLEntity xmle = XMLEntity.parse("<xml-tag><property key...ecc ecc ecc....</xml-tag>");
 
Devi leggere il contenuto del file e metterlo tutto dentro una stringa.
 
- FLayer è un' interface, e  tutti i layer di gvSIG sono oggetti di una sotto-classe di FLyrDefault (che ovviamente implementa FLayer). La classe FLyrDefault ha un metodo setProjection(IProjection). Questo codice sarebbe valido:
 
FLayer layer = <ottenuto in qualche modo>;
FLyrDefault layer_def = (FLyrDefault) layer;
 
// quella che mi interessa
IProjection nuova_proj = CrsFactory.getCRS("EPSG:3004");
layer_def.setProjection(nuova_proj);
layer_def.setDirty(true);
 
- Comunque non mi ricordo se il metodo setDirty basta per fare un refresh della vista. Se non rocordo male io lo facevo con il metodo invalidate() della classe MapContext.
 
Ciao,
 
 
 
Juan Lucas Domínguez Rubio
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/> 

________________________________

De: gvsig_italian-bounces a lists.gvsig.org en nombre de gaghi
Enviado el: lun 05/05/2008 16:23
Para: gvsig_italian a lists.gvsig.org
Asunto: Re: [Gvsig_italian] programmazione java




che il get mi restituisce parte del .gvp lo sapevo, ma mi interessa solo la
parte relativa al layer attivo. di default quando apri un layer gvsig
imposta di default il valore "current projection" a 23030. io invece voglio
modificarlo in base ai valori dell'extent. non so se sono stato chiaro?
insomma evitare di avere una rappresentazione sbagliata del sistema di
riferimento. una volta trovato quello attualmente impostato lo confronto con
quello che dovrebbe essere. a questo punto vorrei ricaricare questi metadati
riguardo al layer con i valoi corretti e fare un refresh dell'immagine(per
questo basta settare dirty a true?).

Esiste un metodo della classe FLayer per modificare questo valore? non mi è
sembrato...
Comunque
XMLEntity xmle = XMLEntity.parse("C:\\prova.xml");
non funziona e non mi è sembrato che sia implementato in XMLEntity un metodo
del genere.

Ciao



Juan Lucas Dominguez Rubio wrote:
>
> Ciao,
> 
> I metodi getXMLEntity())  e setXMLEntity() si usano generalmente per
> salvare/caricare la descrizione del layer quando l'uttente salva/apre un
> progetto di gvSIG. Quello che hai salvato (C:\\prova.xml) è un elemento di
> un file XML con i suoi sotto-elementi, cioè un pezzo del file GVP. Nella
> classe XMLEntity c'è il metodo statico parse(String data), con cui
> dovrebbe essere possibile fare ciò che vuoi. Devi caricare l'intero file
> C:\\prova.xml in un String.  Ho trovato su internet un modo semplice di
> farlo (attach file_to_string.txt). Poi, sarebbe più o meno così:
> 
> File f = new File("c:\\prova.xml");
> String str = file2String(f);
> XMLEntity xe = XMLEntity.parse(str);
> layer.setXMLEntity(xe);
> 
> Comunque, il modo piu normale di modificare qualcosa in un layer sarebbe
> usando i suoi metodi. Modificare il file c:\\prova.xml e poi ricaricarlo
> con setXMLEntity mi sembra un po' pericoloso...cosa vuoi cambiare nel
> layer?
> 
> 
> Saluti,
> 
> Juan Lucas Domínguez Rubio
> Prodevelop SL, Valencia (España)
> Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
> http://www.prodevelop.es <http://www.prodevelop.es/>  <http://www.prodevelop.es/>
>
> ________________________________
>
> De: gvsig_italian-bounces a lists.gvsig.org en nombre de gaghi
> Enviado el: lun 05/05/2008 12:25
> Para: gvsig_italian a lists.gvsig.org
> Asunto: Re: [Gvsig_italian] programmazione java
>
>
>
>
> ciao, grazie per gli utilissimi consigli che ho ricevuto finora.
> adesso mi trovo di fronte all'ultimo(per ora).
> Devo manipolare un file xml e modificarne il valore di un tag.
>
> FLayer lyr = root.getLayer(0);
>
> File f=new File("C:\\prova.xml");
>                                 FileOutputStream fos;
>                                 try {
>                                         fos = new FileOutputStream(f);
>                                         PrintStream ps=new
> PrintStream(fos);
>                                         ps.println(lyr.getXMLEntity());
>                                 } catch (FileNotFoundException e) {
>                                         e.printStackTrace();
>                                 }
>
> Facendo in questo modo riesco a scrivere il contenuto del file xml
> restituito dal layer e metterlo in un file. quindi a leggerlo come un
> normale file di testo.
>
> Una volta svolte le operazioni che mi servono sul file vorrei
> "ricaricarlo"
> tramite il metodo setXMLEntity(XMLEntity x) e aggiornare il layer. Non so
> però come fare perchè JAVA non mi consente il casting da String a XML.
>
> Grazie e scusate l'insistenza.
> --
> View this message in context:
> http://www.nabble.com/programmazione-java-tp16935242p17056947.html
> Sent from the gvSIG Italian mailing list archive at Nabble.com.
>
> _______________________________________________
> Gvsig_italian mailing list
> Gvsig_italian a lists.gvsig.org
> https://gvsig.org/lists/mailman/listinfo/gvsig_italian
>
>
>
> public  String file2String(File f) {
>  
>       StringBuffer TextBuffer = new StringBuffer();
>       String desc;
>       char[] chars = null;
>       int c;
>       FileReader in;
>  
>       try {
>  
>         in = new FileReader( f );
>  
>         while ( ( c = in.read() ) != -1 )
>           TextBuffer.append( (char) c );
>         in.close();
>  
>       } catch ( IOException ioe ) {
>         TextBuffer.append( ioe.toString() );
>       }
>  
>       return TextBuffer.toString();
>  
>     } // end file2String
> _______________________________________________
> Gvsig_italian mailing list
> Gvsig_italian a lists.gvsig.org
> https://gvsig.org/lists/mailman/listinfo/gvsig_italian
>
>

--
View this message in context: http://www.nabble.com/programmazione-java-tp16935242p17062751.html
Sent from the gvSIG Italian mailing list archive at Nabble.com.

_______________________________________________
Gvsig_italian mailing list
Gvsig_italian a lists.gvsig.org
https://gvsig.org/lists/mailman/listinfo/gvsig_italian


-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        winmail.dat
Tipo:        application/ms-tnef
Dimensione:  12716 bytes
Descrizione: non disponibile
URL:         <http://lists.osgeo.org/pipermail/gvsig-italian/attachments/20080505/ef713033/attachment.bin>


More information about the Gvsig_italian mailing list