From: <bma...@us...> - 2009-05-22 14:14:54
|
Revision: 4799 http://fudaa.svn.sourceforge.net/fudaa/?rev=4799&view=rev Author: bmarchan Date: 2009-05-22 13:44:06 +0000 (Fri, 22 May 2009) Log Message: ----------- Correctif pour g?\195?\169rer correctement les exports 2D Rubar Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExporterFilter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -17,7 +17,7 @@ * pas n\xE9cessairement dans un ordre croissant. * * @author fred deniger - * @version $Id: GISDataModelAbstract.java,v 1.1 2007-01-10 08:58:47 deniger Exp $ + * @version $Id$ */ public abstract class GISDataModelAbstract implements GISDataModel { @@ -25,7 +25,8 @@ protected final GISDataModel model_; /** - * @param _attShown Les indices des seuls attributs a exposer. + * @param _attShown Les indices des seuls attributs a exposer. Peut etre <code>null</code>. Auquel cas tous les attributs sont + * expos\xE9s. * @param _model Le mod\xE8le d'origine. */ public GISDataModelAbstract(final int[] _attShown, final GISDataModel _model) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -19,7 +19,7 @@ * <b>Important</b> : Le filtre autorise des attributs qui ne sont pas dans le modele d'origine. * Pour ces attributs, les valeurs retourn\xE9es pour chaque g\xE9om\xE9trie sont nulles. * @author Fred Deniger - * @version $Id: GISDataModelFilterAdapter.java,v 1.1 2007-01-10 08:58:47 deniger Exp $ + * @version $Id$ */ public class GISDataModelFilterAdapter extends GISDataModelAbstract { @@ -146,8 +146,11 @@ final int[] geometryShown_; /** - * @param _model - * @param _idxAtt + * @param _model Le modele d'origine. + * @param _idxAtt Les indices des seuls attributs a exposer. Peut etre <code>null</code>. Auquel cas tous les attributs sont + * expos\xE9s. + * @param _idxGeom Les indices des seules g\xE9om\xE9tries \xE0 exposer. Peut etre <code>null</code>. Auquel cas toutes les g\xE9om\xE9tries sont + * expos\xE9es. */ public GISDataModelFilterAdapter(final GISDataModel _model, final int[] _idxAtt, final int[] _idxGeom) { super(_idxAtt, _model); Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -21,6 +21,7 @@ import org.fudaa.ctulu.gis.GISDataModel; import org.fudaa.ctulu.gis.GISDataModelFilterAdapter; import org.fudaa.ctulu.gis.GISLib; +import org.fudaa.dodico.commun.DodicoLib; import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract; import org.fudaa.dodico.fortran.FortranWriter; @@ -32,7 +33,7 @@ * nom du profil. * * @author fred deniger, Bertrand Marchand - * @version $Id: RubarStWriter.java,v 1.4 2007-05-04 13:47:30 deniger Exp $ + * @version $Id$ */ public class RubarStWriter extends FileOpWriterCharSimpleAbstract { @@ -60,9 +61,24 @@ return; } + profs_=((GISDataModel[])_o)[0]; GISDataModel lines=((GISDataModel[])_o)[1]; + + // Profils ou non ? + boolean bprofs=profs_!=null && profs_.getNumGeometries()!=0; // Lignes directrices ou non ? boolean bldirs=lines!=null && lines.getNumGeometries()!=0; + + if (!bprofs) { + if (bldirs) { + analyze_.addInfo(DodicoLib.getS("Aucun profil : Les lignes directrices ne seront pas export\xE9es")); + } + else { + analyze_.addInfo(DodicoLib.getS("Aucun profil \xE0 exporter")); + } + return; + } + // Si pb avec les lignes directrices => Pas d'\xE9criture de fichier. if (!prepareWrite((GISDataModel[])_o)) return; @@ -133,7 +149,20 @@ writer.writeFields(fmt); } - } catch (final IOException _evt) { + + int nbprofs=profs_.getNumGeometries(); + if (isSt_) { + analyze_.addInfo(DodicoLib.getS("{0} profils sur {1} ont \xE9t\xE9 export\xE9s", ""+nbprofs, ""+nbprofs), -1); + } + else { + analyze_.addInfo(DodicoLib.getS("{0} lignes de niveaux sur {1} ont \xE9t\xE9 export\xE9es", ""+nbprofs, ""+nbprofs), -1); + } + if (bldirs) { + int nbldirs=lines.getNumGeometries(); + analyze_.addInfo(DodicoLib.getS("{0} lignes directrices sur {1} ont \xE9t\xE9 export\xE9es", ""+nbldirs, ""+nbldirs), -1); + } + } + catch (final IOException _evt) { analyze_.manageException(_evt); } } @@ -147,7 +176,6 @@ */ private boolean prepareWrite(GISDataModel[] _mdls) { GISDataModel ldirs=_mdls[1]; - profs_=_mdls[0]; pts2lds_=null; if (ldirs==null || ldirs.getNumGeometries()==0) return true; // On ne peut rien controler sans lignes directrices. Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -14,6 +14,7 @@ import java.awt.event.ItemListener; import java.io.File; +import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JPanel; import javax.swing.JScrollPane; @@ -142,6 +143,12 @@ bgLayers.add(rbVisibleLayers_); bgLayers.add(rbSelectedGeometries_); + BuLabel lbAide=new BuLabel(FudaaLib.getS("Remarque : Les g\xE9om\xE9tries non visibles ne seront pas export\xE9es")); + lbAide.setFont(MdlResource.HELP_FONT); + lbAide.setForeground(MdlResource.HELP_FORGROUND_COLOR); + lbAide.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); + add(lbAide); + rbAllLayers_.setSelected(true); if (_preselect) rbSelectedGeometries_.setSelected(true); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExporterFilter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExporterFilter.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlCasierExporterFilter.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -7,6 +7,8 @@ */ package org.fudaa.fudaa.modeleur; +import gnu.trove.TIntArrayList; + import java.util.ArrayList; import java.util.List; @@ -16,6 +18,7 @@ import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BCalqueVisitor; +import org.fudaa.ebli.calque.ZModeleGeometry; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dCasier; /** @@ -30,6 +33,7 @@ boolean isOnlyOnSelectedLayers_; boolean isOnlyOnVisibleLayers_; boolean isOnlyOnSelectedGeometries_; + boolean isOnlyOnVisibleGeometries_=true; BArbreCalqueModel mdTree_; List<GISDataModel> zones=new ArrayList<GISDataModel>(); @@ -52,6 +56,7 @@ md=cq.modeleDonnees().getGeomData(); + // On ne retient que les g\xE9om\xE9tries s\xE9lectionn\xE9es du calque. if (isOnlyOnSelectedGeometries_) { // Si pas de g\xE9om\xE9tries selectionn\xE9es on passe. if (cq.isSelectionEmpty()) @@ -63,6 +68,20 @@ md=new GISDataModelFilterAdapter(md,null,sel); } } + + // On ne retient que les g\xE9om\xE9tries visibles du calque. + else if (isOnlyOnVisibleGeometries_) { + ZModeleGeometry mod=cq.modeleDonnees(); + TIntArrayList idx=new TIntArrayList(mod.getNombre()); + for (int id=0; id<mod.getNombre(); id++) { + if (mod.isGeometryVisible(id)) + idx.add(id); + } + if (idx.size()==0) + return true; + + md=new GISDataModelFilterAdapter(md, null, idx.toNativeArray()); + } zones.add(md); } return true; @@ -122,4 +141,11 @@ public void setTreatmentOnlySelectedGeometries(boolean _b) { isOnlyOnSelectedGeometries_=_b; } + + /** + * Le traitement s'applique uniquement aux g\xE9om\xE9tries visibles. + */ + public void setTreatmentOnlyOnVisibleGeometries(boolean _b) { + isOnlyOnVisibleGeometries_=_b; + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -20,6 +20,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.ZScene; import org.fudaa.ebli.calque.action.SceneJoinAction; import org.fudaa.ebli.calque.action.SceneSplitAction; import org.fudaa.ebli.calque.dessin.DeForme; @@ -124,7 +125,12 @@ } public void exportSelectedLayer() { - MdlProjectExportPanel pn=new MdlProjectExportPanel(getUi()); + ZScene scn=getSupport(); + boolean bpreselect= + !scn.isAtomicMode() && + !scn.isSelectionEmpty(); + + MdlProjectExportPanel pn=new MdlProjectExportPanel(getUi(),bpreselect); if (CtuluDialogPanel.isCancelResponse(pn.afficheModale(getFrame(), FudaaLib.getS("Exporter les donn\xE9es de la fen\xEAtre active")))) return; final FSigLayerFilter filter=new FSigLayerFilter(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -8,13 +8,17 @@ package org.fudaa.fudaa.modeleur; import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Font; import java.io.File; import java.util.HashMap; import java.util.Map; +import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JFileChooser; import javax.swing.JPanel; +import javax.swing.UIManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -27,6 +31,7 @@ import org.fudaa.dodico.rubar.io.RubarStCnFileFormat; import org.fudaa.dodico.telemac.io.SinusxFileFormat; import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.fudaa.modeleur.resource.MdlResource; import org.fudaa.fudaa.sig.FSigLib; import org.fudaa.fudaa.sig.layer.FSigLayerExporter; @@ -38,7 +43,7 @@ /** * Un panneau pour exporter les donn\xE9es 2D. * @author Bertrand Marchand - * @version $Id: MdlProjectImportPanel.java,v 1.1.2.1 2008/05/13 12:10:21 bmarchan Exp $ + * @version $Id$ */ public class MdlProjectExportPanel extends CtuluDialogPanel implements DocumentListener { @@ -55,7 +60,12 @@ /** Le filtre de fichier pour Rubar */ BuFileFilter fltRubar_; - public MdlProjectExportPanel(CtuluUI _ui) { + /** + * + * @param _ui L'ui. + * @param _preselect Des g\xE9om\xE9tries ont \xE9t\xE9 pr\xE9selectionn\xE9es. + */ + public MdlProjectExportPanel(CtuluUI _ui, boolean _preselect) { ui_=_ui; filters_=buildFilter2Export(); @@ -78,7 +88,7 @@ rbAllLayers_=new BuRadioButton(FudaaLib.getS("Exporter tous les calques")); rbSelectedLayers_=new BuRadioButton(FudaaLib.getS("Exporter les calques s\xE9lectionn\xE9s (et leurs sous-calques)")); rbVisibleLayers_=new BuRadioButton(FudaaLib.getS("Exporter les seuls calques visibles")); - rbSelectedGeometries_=new BuRadioButton(FudaaLib.getS("Exporter les g\xE9om\xE9tries selectionn\xE9es.")); + rbSelectedGeometries_=new BuRadioButton(FudaaLib.getS("Exporter les g\xE9om\xE9tries selectionn\xE9es")); add(rbAllLayers_); add(rbSelectedLayers_); add(rbVisibleLayers_); @@ -88,8 +98,18 @@ bgLayers.add(rbSelectedLayers_); bgLayers.add(rbVisibleLayers_); bgLayers.add(rbSelectedGeometries_); - - rbAllLayers_.doClick(); + + BuLabel lbAide=new BuLabel(FudaaLib.getS("Remarque : Les g\xE9om\xE9tries non visibles ne seront pas export\xE9es")); + lbAide.setFont(MdlResource.HELP_FONT); + lbAide.setForeground(MdlResource.HELP_FORGROUND_COLOR); + lbAide.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); + add(lbAide); + + rbAllLayers_.setSelected(true); + if (_preselect) + rbSelectedGeometries_.setSelected(true); + else + rbSelectedGeometries_.setEnabled(false); } private BuFileFilter[] buildFilter2Export() { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -7,13 +7,18 @@ */ package org.fudaa.fudaa.modeleur.resource; +import java.awt.Color; +import java.awt.Font; + +import javax.swing.JLabel; + import com.memoire.bu.BuResource; import org.fudaa.fudaa.ressource.FudaaResource; /** * Des ressources pour Fudaa-Modeleur, en particulier la traduction de langage. - * @version $Id: FSigResource.java,v 1.4 2006/09/19 15:10:20 deniger Exp $ + * @version $Id$ * @author Bertrand Marchand */ public final class MdlResource extends FudaaResource { @@ -35,5 +40,11 @@ public static String getS(final String _s, final String _v0, final String _v1) { return MDL.getString(_s, _v0, _v1); } + + /** Couleur pour un message d'aide dans les dialogues */ + public final static Color HELP_FORGROUND_COLOR=new Color(0,0,180); + + /** Font pour un message d'aide dans les dialogues */ + public final static Font HELP_FONT=new JLabel().getFont().deriveFont(Font.ITALIC | Font.BOLD); } \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/resource/MdlResource.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -31,6 +31,7 @@ import org.fudaa.ctulu.gis.factory.GISExportDataStoreFactory; import org.fudaa.ctulu.gis.gml.GISGMLZoneExporter; import org.fudaa.ctulu.gis.mif.MIFDataStoreFactory; +import org.fudaa.dodico.commun.DodicoLib; import org.fudaa.dodico.dunes.io.DunesGEOFileFormat; import org.fudaa.dodico.rubar.io.RubarSEMFileFormat; import org.fudaa.dodico.rubar.io.RubarSEMWriterGISAdapter; @@ -44,7 +45,7 @@ /** * @author fred deniger - * @version $Id: FSigLayerExporter.java,v 1.4 2007-06-14 12:01:22 deniger Exp $ + * @version $Id$ */ public abstract class FSigLayerExporter { @@ -225,15 +226,19 @@ GISDataModel mdl=new GISDataModelMultiAdapter(mdlsemis.toArray(new GISDataModel[0])); ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), new RubarSEMWriterGISAdapter(mdl), _prog).getAnalyze(); + + int nbsemis=mdl.getNumGeometries(); + ana.addInfo(DodicoLib.getS("{0} semis sur {1} ont \xE9t\xE9 export\xE9s", ""+nbsemis, ""+nbsemis), -1); + synt.getAnalyze().merge(ana); if (synt.containsFatalError()) return synt; } // Les profils et lignes directrices - if (mdlprofs.size()>0) { + if (mdlprofs.size()>0 || mdlligdir.size()>0) { ff=RubarStCnFileFormat.getInstance(); GISDataModel[] mdl=new GISDataModel[2]; - mdl[0]=new GISDataModelMultiAdapter(mdlprofs.toArray(new GISDataModel[0])); + mdl[0]=mdlprofs.size()==0 ? null:new GISDataModelMultiAdapter(mdlprofs.toArray(new GISDataModel[0])); mdl[1]=mdlligdir.size()==0 ? null:new GISDataModelMultiAdapter(mdlligdir.toArray(new GISDataModel[0])); ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), mdl, _prog).getAnalyze(); synt.getAnalyze().merge(ana); @@ -263,39 +268,6 @@ if (synt.containsFatalError()) return synt; } - // Les polylignes. -/* int nb = _filter.polyCq_.size(); - GISDataModel[] models = new GISDataModel[nb]; - FileFormatUnique ff=new RubarStCnFileFormat(); - for (int i = 0; i < nb; i++) { - models[i]=GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.polyCq_.get(i)), - new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE}); -// models[i] = new GISDataModelZoneAdapter(_filter.getCollect(_filter.polyCq_.get(i)), FuEmptyArrays.INT0); - } - if (models.length>0) { - ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), new GISDataModelMultiAdapter(models), _prog) - .getAnalyze(); - synt.getAnalyze().merge(ana); - if (synt.containsFatalError()) return synt; - } - - // Les semis => Tous dans le m\xEAme fichier. - models = new GISDataModel[_filter.mlptsCq_.size()+_filter.pointCq_.size()]; - ff=new RubarSEMFileFormat(); - int nbMlt = _filter.mlptsCq_.size(); - for (int i = 0; i < nbMlt; i++) { - models[i]=GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null); - } - int nbPts = _filter.pointCq_.size(); - for (int i = 0; i < nbPts; i++) { - models[i+nbMlt]=new GISDataModelPointMultiPointAdapter( - GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.pointCq_.get(i)), null)); - } - if (models.length>0) { - ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), - new RubarSEMWriterGISAdapter(new GISDataModelMultiAdapter(models)), _prog).getAnalyze(); - synt.getAnalyze().merge(ana); - }*/ return synt; } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2009-05-22 00:06:43 UTC (rev 4798) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2009-05-22 13:44:06 UTC (rev 4799) @@ -7,6 +7,8 @@ */ package org.fudaa.fudaa.sig.layer; +import gnu.trove.TIntArrayList; + import java.io.File; import java.util.ArrayList; import java.util.HashSet; @@ -40,8 +42,9 @@ List<ZCalqueAffichageDonneesInterface> pointCq_ = new ArrayList<ZCalqueAffichageDonneesInterface>(); List<ZCalqueAffichageDonneesInterface> polyCq_ = new ArrayList<ZCalqueAffichageDonneesInterface>(); List<ZCalqueAffichageDonneesInterface> mlptsCq_=new ArrayList<ZCalqueAffichageDonneesInterface>(); - boolean bonlyVisible_=false; + protected boolean bonlyVisible_=false; protected boolean onlySelectedGeometries_=false; + protected boolean bonlyOnVisibleGeometries_=true; /** * @@ -73,12 +76,22 @@ final GISDataModel getCollect(final ZCalqueAffichageDonneesInterface _o) { GISZoneCollection zone = ((ZModeleGeometry) _o.modeleDonnees()).getGeomData(); zone.prepareExport(); + + // On ne retient que les g\xE9om\xE9tries s\xE9lectionn\xE9es. if (onlySelectedGeometries_) { - int[] idxAttributes=new int[zone.getNbAttributes()]; - for (int i=0; i<zone.getNbAttributes(); i++) - idxAttributes[i]=i; - return new GISDataModelFilterAdapter(zone, idxAttributes, _o.getSelectedObjectInTable()); + return new GISDataModelFilterAdapter(zone, null, _o.getSelectedObjectInTable()); } + + // On ne retient que les g\xE9om\xE9tries visibles du calque. + else if (bonlyOnVisibleGeometries_) { + ZModeleGeometry md=(ZModeleGeometry)_o.modeleDonnees(); + TIntArrayList idx=new TIntArrayList(md.getNombre()); + for (int id=0; id<md.getNombre(); id++) { + if (md.isGeometryVisible(id)) + idx.add(id); + } + return new GISDataModelFilterAdapter(zone, null, idx.toNativeArray()); + } else return zone; } @@ -105,6 +118,14 @@ } /** + * Le traitement ne se fait que sur les g\xE9om\xE9tries visibles. + * @param _b True : Uniquement les g\xE9om\xE9tries visibles des calques s\xE9lectionn\xE9s sont consid\xE9r\xE9es. + */ + public void setTreatmentOnlyOnVisibleGeometries(boolean _b) { + bonlyOnVisibleGeometries_=_b; + } + + /** * Le traitement s'applique uniquement aux g\xE9om\xE9tries selectionn\xE9es. */ public void setTreatmentOnlySelectedGeometries(boolean _b) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |