You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <had...@us...> - 2009-02-27 20:10:30
|
Revision: 4505 http://fudaa.svn.sourceforge.net/fudaa/?rev=4505&view=rev Author: hadouxad Date: 2009-02-27 20:10:26 +0000 (Fri, 27 Feb 2009) Log Message: ----------- * ?\195?\169criture compl?\195?\168te des donn?\195?\169es EMH (classes et interface): attention, ton fichier power amc est obsol?\195?\168te * ?\195?\169criture des attributs selon les donn?\195?\169es des fichiers (d?\195?\169crits dans le dictionnaire donn?\195?\169e) et rapport entre classe et fichier sur le mod?\195?\168le power amc. * Mise en place du syst?\195?\168me dao de persistance xml des donn?\195?\169es m?\195?\169tier: o CrueDaoParsing<T> : c'est une classe template qui accueille une structure m?\195?\169tier et la remplit/?\195?\169crit au format xml appropri?\195?\169. o DaoStructuresFormatDRSO : accueille toutes les structures interm?\195?\169diaires , les alias et les converter du parser pour g?\195?\169rer les donn?\195?\169es sous le m?\195?\170me format o CrueDaoFillInfos: remplit les informations persistantes ?\195?\160 partier des donn?\195?\169es m?\195?\169tier et inversement Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheBarrageFilEau.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheBarrageGenerique.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheEnchainement.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheNiveauxAssocies.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBranchePdc.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSaintVenant.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSeuilTransversal.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheStrickler.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHCasierMNT.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHCasierProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/writer/Crue10writer.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/CrueScenario.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.settings/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrt.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBarrageFilEau.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBranchePDC.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSaintVenant.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilLateral.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilTransversal.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtSection.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonClimM.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonFrt.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonGeoLoc.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtCInitBranche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtCInitBranchePdc.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtCInitNoeud.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtCInitSection.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtClInit.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtGeo.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtGeoBrancheSaintVenant.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtGeoCasierProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtGeoSectionIdem.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonPrtSectionProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheBarrageRhone.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSeuilLongitudinale.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHNoeudNiveauContinu.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHSectionIdem.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHSectionInterpolee.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHSectionProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHSectionSansGeometrie.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ElemOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ElemSeuil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ElemSeuilAvecPdc.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Evolution.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/InfosEMH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/LigneForce.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/LimAxeHydraulique.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/LitNomme.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/LitNumerote.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Loi.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ProfilCasier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/PtProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResCalcul.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResPrtClinit.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResPrtGeo.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResPrtGeoCasier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResPrtGeoSection.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ResPrtReseau.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/StriRefC.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/StriRefH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/StriRefZ.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/VariableOrdonnee.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ZDeYprim.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CaractEMH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSeuilLateral.java Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,84 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.awt.font.MultipleMaster; +import java.util.List; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.SingleValueConverter; +import com.thoughtworks.xstream.io.xml.DomDriver; +import main.java.org.fudaa.dodico.crue.metier.emh.EMH; + +/** + * Classe persistante qui reprend la meme structure que le fichier xml + * DRSO - Fichier des donn\xE9es du r\xE9seau (xml) + * @author Adrien Hadoux + * + */ +public class CrueDaoDRSO extends CrueDaoParsing<List<EMH>>{ + + //-- variables qui correspondent \xE0 celle du fichier xml --// + public String VersionCrue="10"; + public String Commentaire="G\xE9n\xE9r\xE9 par Fudaa "; + + /** + * la liste des noeuds + */ + private List Noeuds; + /** + * la liste des branches + */ + private List Branches; + + /** + * la liste des casiers + */ + private List Casiers; + + + /** + * la liste des sections + */ + private List Sections; + + @Override + public XStream initXmlParser(){ + XStream xstream = new XStream(new DomDriver()); + //-- initialisation du format de la structure des documents --// + (new DaoStructuresFormatDRSO()).initXmlParserForDRSO(xstream); + return xstream; + } + + @Override + public void fillInfosWith(List<EMH> data) { + + //-- etape 1: on remplit les infso des noeuds --// + Noeuds=CrueDaoFillInfos.remplirPersistanceAvecNoeudDRSO(data); + + //-- etape 2: on remplit les infso des branches --// + Branches=CrueDaoFillInfos.remplirPersistanceAvecBrancheDRSO(data); + + + //-- etape 3: on remplit les infso des casiers --// + Casiers=CrueDaoFillInfos.remplirPersistanceAvecCasierDRSO(data); + + + //-- etape 4: on remplit les infso des sections --// + Sections=CrueDaoFillInfos.remplirPersistanceAvecSectionsDRSO(data); + + + + + } + + @Override + public List<EMH> fillInfosWithPersistant() { + // TODO Auto-generated method stub + return null; + } + + + + + + + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,212 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.util.ArrayList; +import java.util.List; + +import com.lowagie.text.Section; + +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDRSO.*; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHBranche; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHCasier; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHNoeud; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHSection; +import main.java.org.fudaa.dodico.crue.metier.emh.EMH; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageFilEau; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageGenerique; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageRhone; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheEnchainement; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheNiveauxAssocies; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheOrifice; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBranchePdc; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSaintVenant; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilLongitudinale; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilTransversal; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheStrickler; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierMNT; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierProfil; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionIdem; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionInterpolee; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionProfil; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionSansGeometrie; + +/** + * Classe qui se charge de remplir les structures DAO avec els donn\xE9es m\xE9tier. + * @author Adrien Hadoux + * + */ +public class CrueDaoFillInfos { + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la premiere partie du fichier DRSO: les Noeuds. + * @param data + * @return + */ + public static List remplirPersistanceAvecNoeudDRSO(List<EMH> data){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHNoeud){ + CatEMHNoeud noeud=(CatEMHNoeud) emh; + NoeudNiveauContinu noeudPersist=new NoeudNiveauContinu(); + noeudPersist.Nom=noeud.getNom(); + listePersistante.add(noeudPersist); + } + } + return listePersistante; + } + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la deuxieme partie du fichier DRSO: les Branches. + * @param data + * @return + */ + public static List remplirPersistanceAvecBrancheDRSO(List<EMH> data){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHBranche){ + CatEMHBranche branche=(CatEMHBranche) emh; + Object branchePersist=null; + if (branche instanceof EMHBrancheBarrageFilEau) { + EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; + branchePersist=new BrancheBarrageFilEau(); + }else if (branche instanceof EMHBrancheBarrageGenerique) { + EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; + branchePersist=new BrancheBarrageGenerique(); + } + else if (branche instanceof EMHBrancheBarrageRhone) { + EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; + branchePersist=new BrancheBarrageRhone(); + }else if (branche instanceof EMHBrancheEnchainement) { + EMHBrancheEnchainement new_name = (EMHBrancheEnchainement) branche; + branchePersist=new BrancheEnchainement(); + }else if (branche instanceof EMHBrancheNiveauxAssocies) { + EMHBrancheNiveauxAssocies new_name = (EMHBrancheNiveauxAssocies) branche; + branchePersist=new BrancheNiveauxAssocies(); + }else if (branche instanceof EMHBrancheOrifice) { + EMHBrancheOrifice new_name = (EMHBrancheOrifice) branche; + branchePersist=new BrancheOrifice(); + }else if (branche instanceof EMHBranchePdc) { + EMHBranchePdc new_name = (EMHBranchePdc) branche; + branchePersist=new BranchePdc(); + }else if (branche instanceof EMHBrancheSaintVenant) { + EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; + branchePersist=new BrancheSaintVenant(); + }else if (branche instanceof EMHBrancheSeuilLongitudinale) { + EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; + branchePersist=new BrancheSeuilLateral(); + }else if (branche instanceof EMHBrancheSeuilTransversal) { + EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; + branchePersist=new BrancheSeuilTransversal(); + }else if (branche instanceof EMHBrancheStrickler) { + EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; + branchePersist=new BrancheStrickler(); + } + + + + if(branchePersist!=null){ + //-- commun --// + BrancheAbstract br=(BrancheAbstract) branchePersist; + br.Active=branche.isActive(); + br.Nom=branche.getNom(); + if(branche.getNoeudAmont()!=null) + br.NdAm=new NdAm(branche.getNoeudAmont().getNom()); + if(branche.getNoeudAval()!=null) + br.NdAv=new NdAm(branche.getNoeudAval().getNom()); + //-- on remplit les sections persistantes avec celle de la branche --// + br.Sections=CrueDaoFillInfos.remplirPersistanceAvecSectionsBrancheDRSO(branche.getListeSections()); + + listePersistante.add(br); + } + + } + } + return listePersistante; + } + + + public static List remplirPersistanceAvecCasierDRSO(List<EMH> data){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHCasier){ + CatEMHCasier casier=(CatEMHCasier)emh; + CasierAbstract casierPersist=null; + if(casier instanceof EMHCasierMNT){ + casierPersist=new CasierMNT(); + }else if(casier instanceof EMHCasierProfil){ + casierPersist= new CasierProfil(); + EMHCasierProfil casierProfil=(EMHCasierProfil) casier; + + ((CasierProfil)casierPersist).Profil= new ReferenceProfil(); + ((CasierProfil)casierPersist).Profil.NomRef=casierProfil.getNomProfil(); + } + //-- commun --// + if(casierPersist!=null){ + casierPersist.Active=casier.isActive(); + if(casier.getNoeud()!=null) + casierPersist.Noeud=new ReferenceNoeud(casier.getNoeud().getNom()); + casierPersist.Nom=casier.getNom(); + listePersistante.add(casierPersist); + } + + + } + } + + return listePersistante; + } + + + /** + * Remplit les don\xE9nes persistantes avec la liste des sections . + * @param data + * @return + */ + public static List remplirPersistanceAvecSectionsDRSO(List<EMH> data){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHSection){ + CatEMHSection section=(CatEMHSection)emh; + SectionBrancheAbstract sectionPersist=null; + if(section instanceof EMHSectionIdem){ + sectionPersist=new SectionIdem(); + }else + if(section instanceof EMHSectionInterpolee){ + sectionPersist=new SectionInterpolee(); + } + else + if(section instanceof EMHSectionProfil){ + sectionPersist=new SectionProfil(); + } + else + if(section instanceof EMHSectionSansGeometrie){ + sectionPersist=new SectionSansGeometrie(); + } + + //-- commun --// + if(sectionPersist!=null){ + sectionPersist.NomRef=section.getNom(); + sectionPersist.Pos=section.getPosition(); + sectionPersist.Xp=section.getXp(); + + listePersistante.add(sectionPersist); + } + + } + + + } + + return listePersistante; + } + + + /** + * Remplit les don\xE9nes persistantes avec la liste des sections d'une branche. + * @param data + * @return + */ + public static List remplirPersistanceAvecSectionsBrancheDRSO(List<CatEMHSection> data){ + return null; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,75 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.ObjectOutputStream; + +import main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil; + +import org.fudaa.ebli.courbe.EGAxeHorizontalPersist; +import org.fudaa.ebli.courbe.EGAxeVerticalPersist; +import org.fudaa.ebli.courbe.EGCourbePersist; +import org.fudaa.ebli.courbe.EGGroupPersist; + +import com.memoire.fu.FuLog; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; + +/** + * Classe persistante qui reprend la meme structure que le fichier xml + * OPTG - Fichier des ordres pour le pr\xE9traitement g\xE9om\xE9trique (xml). + * + * Cela permettra de persister plus facilement la donn\xE9e via xstream + * @author Adrien Hadoux + * + */ +public class CrueDaoOPTG extends CrueDaoParsing<ElemSeuil>{ + + String VersionCrue; + String Commentaire; + double RegleProfPlat; + double ReglePenteRupture; + double RegleDecal; + double RegleLargSeuil; + double ReglePdxMax; + double RegleVarPdxMax; + double ReglePenteMax; + + /** + * Prend en parametre un objet m\xE9tier correspondant: + */ + public CrueDaoOPTG(ElemSeuil element){ + //-- appel a fillInfosWith --// + fillInfosWith(element); + } + + + public XStream initXmlParser(){ + XStream xstream = new XStream(new DomDriver()); + //-- creation des alias pour que ce soit + parlant dans le xml file --// + xstream.alias("OPTG", CrueDaoOPTG.class); + return xstream; + } + + + + public void fillInfosWith(ElemSeuil data) { + // TODO Auto-generated method stub + + } + + public ElemSeuil fillInfosWithPersistant() { + // TODO Auto-generated method stub + return null; + } + + + + + + + + + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,110 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +import main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil; + +import com.memoire.fu.FuLog; +import com.thoughtworks.xstream.XStream; + +/** + * classe dao parsing qui propose et impose les m\xE9thode utiles pour simplifier le parsing xml des donn\xE9es. + * utilise le template T qui repr\xE9sente la classe \xE0 persister. + * @author Adrien Hadoux + * + */ +public abstract class CrueDaoParsing<T> { + + + /** + * Initiazlise le parser xstream avec les bons alias des noms de balises. + * @return + */ + abstract XStream initXmlParser(); + + /** + * Remplit les infos de la classe persistantesq avec les donn\xE9es m\xE9tier appropri\xE9es. + * Cette m\xE9thode est appel\xE9e dans le constructeur. + * @param data + */ + abstract void fillInfosWith(T data); + + /** + * Cr\xE9e une structure m\xE9tier \xE0 partir des informations persistantes. + * Utiliser poru le remplissage de la structure m\xE9tier apr\xE8s lecture du fichier xml. + * @return + */ + abstract T fillInfosWithPersistant(); + + /** + * Execute la persistance des donn\xE9es dans le fichier donn\xE9 en parametre. + * @return + */ + public boolean persistData(File fichier) { + boolean isOk=true; + ObjectOutputStream out=null; + try { + out = initXmlParser().createObjectOutputStream(new FileWriter(fichier)); + //--on enregistre la donn\xE9e au bon format --// + out.writeObject(this); + } catch (IOException e) { + // TODO Auto-generated catch block + FuLog.debug(e.getMessage()); + isOk=false; + } + finally{ + try { + out.close(); + return isOk; + } catch (IOException e) { + // TODO Auto-generated catch block + FuLog.debug(e.getMessage()); + } + } + return false; + } + + /** + * R\xE9cup\xE8re la donn\xE9e m\xE9tier a partir de la donn\xE9e persistante. + * @param fichier + * @return + */ + public T getPersistData(File fichier){ + //-- la data a r\xE9cup\xE9rer --// + T newData=null; + boolean isOk=true; + ObjectInputStream in=null; + try { + in = initXmlParser().createObjectInputStream(new FileReader(fichier)); + //--on charge la donn\xE9e persistante au bon format --// + CrueDaoParsing<T> dataPersistante=(CrueDaoParsing<T>) in.readObject(); + + //-- on genere la donn\xE9es m\xE9tier a partir de la donnee persistante--// + newData=dataPersistante.fillInfosWithPersistant(); + } catch (IOException e) { + // TODO Auto-generated catch block + FuLog.debug(e.getMessage()); + isOk=false; + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + FuLog.debug(e.getMessage()); + isOk=false; + } + finally{ + try { + in.close(); + return newData; + } catch (IOException e) { + // TODO Auto-generated catch block + FuLog.debug(e.getMessage()); + } + } + return null; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDRSO.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDRSO.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDRSO.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,474 @@ +package main.java.org.fudaa.dodico.crue.dao; + + + +import java.util.List; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.SingleValueConverter; +import com.thoughtworks.xstream.io.xml.DomDriver; + + +/** + * Toutes les structures dao utilis\xE9es et les inits du parser xml pour le format DRSO. + * Toutes ces structures sont n\xE9cessaires pour bien formatter le contenu xml. + * @author Adrien Hadoux + * + */ +public class DaoStructuresFormatDRSO { + + + /** + * init le parser xml avec toutes les converters et alias n\xE9cessaires + * @return + */ + public void initXmlParserForDRSO(XStream xstream ){ + //-- creation des alias pour que ce soit + parlant dans le xml file --// + xstream.alias("DRSO", CrueDaoDRSO.class); + //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// + initXmlParserNode(xstream); + initXmlParserBranche(xstream); + initXmlParserCasier(xstream); + initXmlParserSection(xstream); + + + + + } + + /** + * init parser pour les nodes et pouvoir mettre l'attribut Nom en d\xE9but de balise. + * @param xstream + */ + public void initXmlParserNode(XStream xstream ){ + //-- alias gestion pour les noeuds --// + xstream.alias("NoeudNiveauContinu", NoeudNiveauContinu.class); + //-- mettre attribut Nom comme attribut de la balise Noeud et son converter appropri\xE9 --// + //-- creation des alias pour que ce soit + parlant dans le xml file --// + xstream.useAttributeFor(NoeudNiveauContinu.class, "Nom"); + xstream.registerConverter(new NoeudNiveauContinuConverter()); + } + + /** + * Init le parser avec les infos des branches. + * @param xstream + */ + public void initXmlParserBranche(XStream xstream ){ + //-- gestion des branches --// + xstream.alias("BrancheSaintVenant", BrancheSaintVenant.class); + xstream.alias("BrancheSeuilLateral", BrancheSeuilLateral.class); + xstream.alias("BrancheStrickler", BrancheStrickler.class); + xstream.alias("BrancheOrifice", BrancheOrifice.class); + xstream.alias("BrancheSeuilTransversal", BrancheSeuilTransversal.class); + xstream.alias("BrancheBarrageFilEau", BrancheBarrageFilEau.class); + xstream.alias("BranchePdc", BranchePdc.class); + + + //-- mettre attribut Nom comme attribut de la balise branche,noeud et section et son converter appropri\xE9 --// + + + //-- mettre le nom de la branche dans la balise --// + xstream.useAttributeFor(BrancheSaintVenant.class, "Nom"); + xstream.registerConverter(new BrancheSaintVenantConverter()); + + xstream.useAttributeFor(BrancheSeuilLateral.class, "Nom"); + xstream.registerConverter(new BrancheSeuilLateralConverter()); + + xstream.useAttributeFor(BrancheStrickler.class, "Nom"); + xstream.registerConverter(new BrancheStricklerConverter()); + + xstream.useAttributeFor(BrancheOrifice.class, "Nom"); + xstream.registerConverter(new BrancheOrificeConverter()); + + xstream.useAttributeFor(BrancheSeuilTransversal.class, "Nom"); + xstream.registerConverter(new BrancheSeuilTransversalConverter()); + + xstream.useAttributeFor(BrancheBarrageFilEau.class, "Nom"); + xstream.registerConverter(new BrancheBarrageFilEauConverter()); + + xstream.useAttributeFor(BranchePdc.class, "Nom"); + xstream.registerConverter(new BranchePdcConverter()); + + xstream.useAttributeFor(BrancheBarrageGenerique.class, "Nom"); + xstream.registerConverter(new BrancheBarrageGeneriqueConverter()); + + xstream.useAttributeFor(BrancheBarrageRhone.class, "Nom"); + xstream.registerConverter(new BrancheBarrageRhoneConverter()); + + xstream.useAttributeFor(BrancheEnchainement.class, "Nom"); + xstream.registerConverter(new BrancheEnchainementConverter()); + + xstream.useAttributeFor(BrancheNiveauxAssocies.class, "Nom"); + xstream.registerConverter(new BrancheNiveauxAssociesConverter()); + + //-- gestion des noeuds des branches --// + xstream.alias("NdAm", NdAm.class); + xstream.alias("NdAv", NdAv.class); + xstream.useAttributeFor(NdAm.class, "NomRef"); + xstream.registerConverter(new NdAmConverter()); + xstream.useAttributeFor(NdAv.class, "NomRef"); + xstream.registerConverter(new NdAvConverter()); + + + + } + + /** + * Init le parser avec les infos des casiers. + * @param xstream + */ + public void initXmlParserCasier(XStream xstream ){ + xstream.alias("CasierProfil", CasierProfil.class); + xstream.alias("CasierMNT", CasierMNT.class); + xstream.alias("Profil",ReferenceProfil.class); + xstream.alias("Noeud", ReferenceNoeud.class); + + xstream.useAttributeFor(CasierProfil.class, "Nom"); + xstream.registerConverter(new CasierProfilConverter()); + + xstream.useAttributeFor(CasierMNT.class, "Nom"); + xstream.registerConverter(new CasierMNTConverter()); + + xstream.useAttributeFor(ReferenceProfil.class, "NomRef"); + xstream.registerConverter(new ReferenceProfilConverter()); + + + //-- alias et converter du noeud referenc\xE9 --// + xstream.useAttributeFor(ReferenceNoeud.class, "NomRef"); + xstream.registerConverter(new ReferenceNoeudConverter()); + + } + + /** + * Init le parser avec les infos des sections. + * @param xstream + */ + public void initXmlParserSection(XStream xstream ){ + //-- gestion des sections --// + xstream.alias("SectionIdem", SectionIdem.class); + xstream.alias("SectionSansGeometrie", SectionSansGeometrie.class); + xstream.alias("SectionProfil", SectionProfil.class); + xstream.alias("SectionInterpolee", SectionInterpolee.class); + xstream.alias("SectionPilote", SectionPilote.class); + + xstream.useAttributeFor(SectionIdem.class, "NomRef"); + xstream.registerConverter(new SectionIdemConverter()); + + xstream.useAttributeFor(SectionSansGeometrie.class, "NomRef"); + xstream.registerConverter(new SectionSansGeometrieConverter()); + + xstream.useAttributeFor(SectionProfil.class, "NomRef"); + xstream.registerConverter(new SectionProfilConverter()); + + xstream.useAttributeFor(SectionInterpolee.class, "NomRef"); + xstream.registerConverter(new SectionInterpoleeConverter()); + + + xstream.useAttributeFor(SectionPilote.class, "NomRef"); + xstream.registerConverter(new SectionPiloteConverter()); + } + + + /** + * Element possible qui soit persist\xE9 dans la liste de noeuds + */ + public static class NoeudNiveauContinu{ + public String Nom; + } + + /** + * Il faut cr\xE9er et ajouter ce converter pour inclure le nom du noeud niveau continu dans le fichier xml + */ + public class NoeudNiveauContinuConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((NoeudNiveauContinu) obj).Nom; + } + public Object fromString(String name) { + NoeudNiveauContinu n=new NoeudNiveauContinu(); + n.Nom=name; + return n; + } + public boolean canConvert(Class type) { + return type.equals(NoeudNiveauContinu.class); + } + } + + //*************************GESTION DES BRANCHES ************************* + + /** + * Element branche possible + * @author Adrien Hadoux + * + */ + public static class BrancheAbstract{ + public String Nom; + public boolean Active; + public ReferenceNoeud NdAm; + public ReferenceNoeud NdAv; + List Sections; + } + + + public static class BrancheSaintVenant extends BrancheAbstract{} + public static class BrancheSeuilLateral extends BrancheAbstract{} + public static class BrancheStrickler extends BrancheAbstract{} + public static class BrancheOrifice extends BrancheAbstract{} + public static class BrancheSeuilTransversal extends BrancheAbstract{} + public static class BrancheBarrageFilEau extends BrancheAbstract{} + public static class BranchePdc extends BrancheAbstract{} + + public static class BrancheBarrageGenerique extends BrancheAbstract{} + public static class BrancheBarrageRhone extends BrancheAbstract{} + public static class BrancheEnchainement extends BrancheAbstract{} + public static class BrancheNiveauxAssocies extends BrancheAbstract{} + /** + * le converter abstract pour les branches. + * Il faudra ensuite en d\xE9clarer un pour chaque type de branche afin de cr\xE9er le bon type de modele. + * @author Adrien Hadoux + * + */ + public abstract class BrancheConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((BrancheAbstract) obj).Nom; + } + public abstract Object fromString(String name); + public boolean canConvert(Class type) { + return type.isInstance(BrancheAbstract.class); + }} + + + + + public class BrancheSaintVenantConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheSaintVenant branche=new BrancheSaintVenant(); + branche.Nom=name; + return branche;}} + public class BrancheSeuilLateralConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheSeuilLateral branche=new BrancheSeuilLateral(); + branche.Nom=name; + return branche;}} + + public class BrancheStricklerConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheStrickler branche=new BrancheStrickler(); + branche.Nom=name; + return branche;}} + + public class BrancheOrificeConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheOrifice branche=new BrancheOrifice(); + branche.Nom=name; + return branche;}} + + public class BrancheSeuilTransversalConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheSeuilTransversal branche=new BrancheSeuilTransversal(); + branche.Nom=name; + return branche;}} + + public class BrancheBarrageFilEauConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheBarrageFilEau branche=new BrancheBarrageFilEau(); + branche.Nom=name; + return branche;}} + + public class BranchePdcConverter extends BrancheConverter { + public Object fromString(String name) { + BranchePdc branche=new BranchePdc(); + branche.Nom=name; + return branche;}} + + public class BrancheBarrageGeneriqueConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheBarrageGenerique branche=new BrancheBarrageGenerique(); + branche.Nom=name; + return branche;}} + + public class BrancheBarrageRhoneConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheBarrageRhone branche=new BrancheBarrageRhone(); + branche.Nom=name; + return branche;}} + + public class BrancheEnchainementConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheEnchainement branche=new BrancheEnchainement(); + branche.Nom=name; + return branche;}} + + public class BrancheNiveauxAssociesConverter extends BrancheConverter { + public Object fromString(String name) { + BrancheNiveauxAssocies branche=new BrancheNiveauxAssocies(); + branche.Nom=name; + return branche;}} + + + public static class ReferenceNoeud{ + public String NomRef; + + public ReferenceNoeud(String nomRef) { + NomRef = nomRef; + } + + } + + public static class NdAm extends ReferenceNoeud{ + + public NdAm(String nomRef) { + super(nomRef); + // TODO Auto-generated constructor stub + }} + public static class NdAv extends ReferenceNoeud{ + + public NdAv(String nomRef) { + super(nomRef); + // TODO Auto-generated constructor stub + }} + + public class ReferenceNoeudConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((ReferenceNoeud) obj).NomRef; + } + public Object fromString(String name) { + ReferenceNoeud n=new ReferenceNoeud(name); + + return n; } + public boolean canConvert(Class type) { + return type.isInstance(ReferenceNoeud.class); } + } + public class NdAmConverter extends ReferenceNoeudConverter{ + public Object fromString(String name) { + NdAm n=new NdAm(name); + + return n; }} + public class NdAvConverter extends ReferenceNoeudConverter{ + public Object fromString(String name) { + NdAv n=new NdAv(name); + + return n; }} + //-- gestion des sections --// + /** + * Elementsection qui se trouve dans branche, + * dispose d'une reference positionnee dans la balise de d\xE9but. + * @author Adrien Hadoux + * Pos: position. + * + */ + public static class SectionBrancheAbstract{ + public String NomRef; + public String Pos; + public double Xp; + + } + public static class SectionIdem extends SectionBrancheAbstract{} + public static class SectionInterpolee extends SectionBrancheAbstract{} + public static class SectionProfil extends SectionBrancheAbstract{} + public static class SectionSansGeometrie extends SectionBrancheAbstract{} + public static class SectionPilote extends SectionBrancheAbstract{} + /** + * le converter abstract pour les sections dans branche. + * Il faudra ensuite en d\xE9clarer un pour chaque type de section afin de cr\xE9er le bon type de modele. + * @author Adrien Hadoux + * + */ + public abstract class SectionBrancheConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((SectionBrancheAbstract) obj).NomRef; + } + public abstract Object fromString(String name); + public boolean canConvert(Class type) { + return type.isInstance(SectionBrancheAbstract.class); + }} + public class SectionIdemConverter extends SectionBrancheConverter{ + public Object fromString(String name) { + SectionIdem section=new SectionIdem(); + section.NomRef=name; + return section;}} + + public class SectionInterpoleeConverter extends SectionBrancheConverter{ + public Object fromString(String name) { + SectionInterpolee section=new SectionInterpolee(); + section.NomRef=name; + return section;}} + + public class SectionProfilConverter extends SectionBrancheConverter{ + public Object fromString(String name) { + SectionProfil section=new SectionProfil(); + section.NomRef=name; + return section;}} + + public class SectionSansGeometrieConverter extends SectionBrancheConverter{ + public Object fromString(String name) { + SectionSansGeometrie section=new SectionSansGeometrie(); + section.NomRef=name; + return section;}} + + public class SectionPiloteConverter extends SectionBrancheConverter{ + public Object fromString(String name) { + SectionPilote section=new SectionPilote(); + section.NomRef=name; + return section;}} + + + //*************************GESTION DES CASIERS ************************* + public static class CasierAbstract{ + public String Nom; + public boolean Active; + public ReferenceNoeud Noeud; + + } + /** + * la classe profil de casier inclus dans le CasierProfil. + * @author Adrien Hadoux + * + */ + public static class ReferenceProfil { + public String NomRef; + } + public static class ReferenceProfilConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((ReferenceProfil) obj).NomRef; } + public Object fromString(String name){ + ReferenceProfil pf=new ReferenceProfil(); + pf.NomRef=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(ReferenceProfil.class); + }} + + public static class CasierProfil extends CasierAbstract{ + public ReferenceProfil Profil; + } + public static class CasierMNT extends CasierAbstract{} + + public abstract class CasierAbstractConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((CasierAbstract) obj).Nom; } + public abstract Object fromString(String name); + public boolean canConvert(Class type) { + return type.isInstance(CasierAbstract.class); + }} + public class CasierProfilConverter extends CasierAbstractConverter { + public Object fromString(String name){ + CasierProfil casier=new CasierProfil(); + casier.Nom=name; + return casier; } } + + public class CasierMNTConverter extends CasierAbstractConverter { + public Object fromString(String name){ + CasierMNT casier=new CasierMNT(); + casier.Nom=name; + return casier; } } + + + //*************************GESTION DES SECTIONS ************************* + public class ReferenceSection { + public String Nom; + } + + + +} Deleted: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java 2009-02-27 08:41:57 UTC (rev 4504) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -1,25 +0,0 @@ -package main.java.org.fudaa.dodico.crue.metier.emh; - -/** - * Interface branche - * - * peut etre: - * - * EMHBranchePdc Branche 1: perte de charge singuli\xE8re - * EMHBrancheSeuilTransversal Branche 2: seuil avec prise en compte de la charge dynamique - * EMHBrancheSeuilLateral Branche 4: seuil sans prise en compte de la charge dynamique - * EMHBrancheOrifice Branche 5: orifice, clapet, vanne - * EMHBrancheStrickler Branche 6: loi d'\xE9coulement de Manning-Strickler - * EMHBrancheBarrageGenerique Branche 14: ouvrage suivant une consigne fonction d'un d\xE9bit ailleurs, ou noy\xE9 (loi pt par pt) - * EMHBrancheBarrageFilEau Branche 15: barrage suivant une consigne fonction d'un d\xE9bit ailleurs, ou noy\xE9 (De Marchi) - * EMHBrancheSaintVenant Branche 20: loi d'\xE9coulement de Saint-Venant - * EMHBrancheNiveauxAssocies Branche 12: vanne \xE0 niveaux associ\xE9s - * EMHBrancheEnchainement Liaison entre n\x9Cuds appartenant \xE0 des mod\xE8les diff\xE9rents dans le but d'un encha\xEEnement - * - * - * @author Adrien Hadoux - * - */ -public interface Branche { - -} Deleted: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CaractEMH.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CaractEMH.java 2009-02-27 08:41:57 UTC (rev 4504) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CaractEMH.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -1,13 +0,0 @@ -package main.java.org.fudaa.dodico.crue.metier.emh; - -/** - * Caract\xE9ristique EMH contenue dans EMH. - * Cat\xE9gorie d'une Entit\xE9 de Mod\xE9lisation Hydraulique : - * Branche, N\x9Cud, Section, Casier (les 4 cat\xE9gories d'EMH manipul\xE9es par le c\x9Cur de calcul) ou Ensemble (sc\xE9nario, mod\xE8le, sous-mod\xE8le, pour une vision utilisateur). - - * @author Adrien Hadoux - * - */ -public interface CaractEMH { - -} Deleted: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java 2009-02-27 08:41:57 UTC (rev 4504) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -1,5 +0,0 @@ -package main.java.org.fudaa.dodico.crue.metier.emh; - -public abstract class Casier implements CaractEMH{ - -} Copied: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java (from rev 4500, branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,74 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + +import java.util.List; + +/** + * Interface branche + * + * peut etre: + * + * EMHBranchePdc Branche 1: perte de charge singuli\xE8re + * EMHBrancheSeuilTransversal Branche 2: seuil avec prise en compte de la charge dynamique + * EMHBrancheSeuilLateral Branche 4: seuil sans prise en compte de la charge dynamique + * EMHBrancheOrifice Branche 5: orifice, clapet, vanne + * EMHBrancheStrickler Branche 6: loi d'\xE9coulement de Manning-Strickler + * EMHBrancheBarrageGenerique Branche 14: ouvrage suivant une consigne fonction d'un d\xE9bit ailleurs, ou noy\xE9 (loi pt par pt) + * EMHBrancheBarrageFilEau Branche 15: barrage suivant une consigne fonction d'un d\xE9bit ailleurs, ou noy\xE9 (De Marchi) + * EMHBrancheSaintVenant Branche 20: loi d'\xE9coulement de Saint-Venant + * EMHBrancheNiveauxAssocies Branche 12: vanne \xE0 niveaux associ\xE9s + * EMHBrancheEnchainement Liaison entre n\x9Cuds appartenant \xE0 des mod\xE8les diff\xE9rents dans le but d'un encha\xEEnement + * + * + * @author Adrien Hadoux + * + */ +public class CatEMHBranche extends EMH{ + private boolean isActive_; + private List<CatEMHSection> listeSections_; + private CatEMHNoeud noeudAmont_; + private CatEMHNoeud noeudAval_; + private String nom; + + + + public List<CatEMHSection> getListeSections() { + return listeSections_; + } + + public void setListeSections(List<CatEMHSection> listeSections) { + this.listeSections_ = listeSections; + } + + public boolean isActive() { + return isActive_; + } + + public void setActive(boolean isActive) { + this.isActive_ = isActive; + } + + public CatEMHNoeud getNoeudAmont() { + return noeudAmont_; + } + + public void setNoeudAmont(CatEMHNoeud noeudAmont) { + this.noeudAmont_ = noeudAmont; + } + + public CatEMHNoeud getNoeudAval() { + return noeudAval_; + } + + public void setNoeudAval(CatEMHNoeud noeudAval) { + this.noeudAval_ = noeudAval; + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + +} Property changes on: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java ___________________________________________________________________ Added: svn:mergeinfo + Copied: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java (from rev 4500, branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,36 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; +/** + * + * @author Adrien Hadoux + * + */ +public abstract class CatEMHCasier extends EMH{ +private boolean isActive_; +private CatEMHNoeud noeud_; +private String nom_; + + +public String getNom() { + return nom_; +} + +public void setNom(String nom) { + this.nom_ = nom; +} + +public boolean isActive() { + return isActive_; +} + +public void setActive(boolean isActive) { + this.isActive_ = isActive; +} + +public CatEMHNoeud getNoeud() { + return noeud_; +} + +public void setNoeud(CatEMHNoeud noeud) { + this.noeud_ = noeud; +} +} Property changes on: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java ___________________________________________________________________ Added: svn:mergeinfo + Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,19 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + +/** + * + * @author Adrien Hadoux + * + */ +public class CatEMHNoeud extends EMH{ + String nom_; + + public String getNom() { + return nom_; + } + + public void setNom(String nom) { + this.nom_ = nom; + } +} + Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,32 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + + +/** + * la classe section. + * @author Adrien Hadoux + * + */ +public class CatEMHSection extends EMH{ + String position; + double xp; + String nom; + + public String getNom() { + return nom; + } + public void setNom(String nom) { + this.nom = nom; + } + public String getPosition() { + return position; + } + public void setPosition(String position) { + this.position = position; + } + public double getXp() { + return xp; + } + public void setXp(double xp) { + this.xp = xp; + } +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrt.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrt.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrt.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,9 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; +/** + * + * @author Adrien Hadoux + * + */ +public interface DonCalcSansPrt extends InfosEMH{ + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBarrageFilEau.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBarrageFilEau.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBarrageFilEau.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,42 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + +import java.util.List; + +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBarrageFilEau implements DonCalcSansPrt { + + private double QLimInf; + private double QLimSup; + private Loi regimeDenove_Zam; + private List<ElemSeuil> listElt; + + public List<ElemSeuil> getListElt() { + return listElt; + } + public void setListElt(List<ElemSeuil> listElt) { + this.listElt = listElt; + } + public double getQLimInf() { + return QLimInf; + } + public void setQLimInf(double limInf) { + QLimInf = limInf; + } + public double getQLimSup() { + return QLimSup; + } + public void setQLimSup(double limSup) { + QLimSup = limSup; + } + public Loi getRegimeDenove_Zam() { + return regimeDenove_Zam; + } + public void setRegimeDenove_Zam(Loi regimeDenove_Zam) { + this.regimeDenove_Zam = regimeDenove_Zam; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheOrifice.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheOrifice.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheOrifice.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,19 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBrancheOrifice implements DonCalcSansPrt { + private ElemOrifice element; + + public ElemOrifice getElement() { + return element; + } + + public void setElement(ElemOrifice element) { + this.element = element; + } + + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBranchePDC.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBranchePDC.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBranchePDC.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,18 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBranchePDC implements DonCalcSansPrt { + private Loi pdc_DZ; + + public Loi getPdc_DZ() { + return pdc_DZ; + } + + public void setPdc_DZ(Loi pdc_DZ) { + this.pdc_DZ = pdc_DZ; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSaintVenant.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSaintVenant.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSaintVenant.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,25 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBrancheSaintVenant implements DonCalcSansPrt { +private double coeffBeta; +private double coeffRuisQdm; + + +public double getCoeffBeta() { + return coeffBeta; +} +public void setCoeffBeta(double coeffBeta) { + this.coeffBeta = coeffBeta; +} +public double getCoeffRuisQdm() { + return coeffRuisQdm; +} +public void setCoeffRuisQdm(double coeffRuisQdm) { + this.coeffRuisQdm = coeffRuisQdm; +} + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilLateral.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilLateral.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilLateral.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,29 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + +import java.util.List; + +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBrancheSeuilLateral implements DonCalcSansPrt{ + String formulePdc; + List<ElemSeuilAvecPdc> listElt; + public List<ElemSeuilAvecPdc> getListElt() { + return listElt; + } + + public void setListElt(List<ElemSeuilAvecPdc> listElt) { + this.listElt = listElt; + } + + public String getFormulePdc() { + return formulePdc; + } + + public void setFormulePdc(String formulePdc) { + this.formulePdc = formulePdc; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilTransversal.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilTransversal.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilTransversal.java 2009-02-27 20:10:26 UTC (rev 4505) @@ -0,0 +1,29 @@ +package main.java.org.fudaa.dodico.crue.metier.emh; + +import java.util.List; + +/** + * + * @author Adrien Hadoux + * + */ +public class DonCalcSansPrtBrancheSeuilTransversal implements DonCalcSansPrt { +String formulePdc; +List<ElemSeuilAvecPdc> listElt; +public List<ElemSeuilAvecPdc> getListElt() { + return listElt; +} + +public void setListElt(List<ElemSeuilAvecPdc> listElt) { + this.listElt = listElt; +} + +public String getFormulePdc() { + return formulePdc; +} + +public void setFormulePdc(String formulePdc) { + this.formulePdc = formulePdc; +} + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-c... [truncated message content] |
From: <bma...@us...> - 2009-02-27 08:42:00
|
Revision: 4504 http://fudaa.svn.sourceforge.net/fudaa/?rev=4504&view=rev Author: bmarchan Date: 2009-02-27 08:41:57 +0000 (Fri, 27 Feb 2009) Log Message: ----------- Created tag FudaaModeleur_0_12. Added Paths: ----------- tags/FudaaModeleur_0_12/ Property changes on: tags/FudaaModeleur_0_12 ___________________________________________________________________ Added: svn:ignore + eclipse_projects Added: svn:mergeinfo + /branches/Br_FudaaModeleur_TF:3445-3850 /branches/FudaaModeleur_TC1:3861-3891 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-27 08:37:36
|
Revision: 4503 http://fudaa.svn.sourceforge.net/fudaa/?rev=4503&view=rev Author: bmarchan Date: 2009-02-27 08:37:25 +0000 (Fri, 27 Feb 2009) Log Message: ----------- Chgt de version 0.11 -> 0.12 Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2009-02-27 08:36:30 UTC (rev 4502) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2009-02-27 08:37:25 UTC (rev 4503) @@ -80,12 +80,12 @@ protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); static { isMdl_.name = "Modeleur"; - isMdl_.version = "0.11"; - isMdl_.date = "2009-01-28"; + isMdl_.version = "0.12"; + isMdl_.date = "2009-02-26"; isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2009"; isMdl_.license = "GPL2"; isMdl_.languages = "fr,en"; - isMdl_.authors=new String[]{"F.Deniger, B.Marchand"}; + isMdl_.authors=new String[]{"B.Marchand, E.Martin, F.Deniger"}; isMdl_.contact="nic...@eq..."; isMdl_.http="http://www.fudaa.fr/mdl/"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-27 08:36:39
|
Revision: 4502 http://fudaa.svn.sourceforge.net/fudaa/?rev=4502&view=rev Author: bmarchan Date: 2009-02-27 08:36:30 +0000 (Fri, 27 Feb 2009) Log Message: ----------- Pb parsing fichier GML. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFeatureAdapter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionBief.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFeatureAdapter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFeatureAdapter.java 2009-02-26 21:13:43 UTC (rev 4501) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFeatureAdapter.java 2009-02-27 08:36:30 UTC (rev 4502) @@ -17,6 +17,7 @@ import org.geotools.feature.FeatureIterator; import org.geotools.feature.FeatureType; +import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Geometry; @@ -113,6 +114,14 @@ final FeatureIterator it = _coll.features(); while (it.hasNext()) { final Feature f = it.next(); + + if(indexGeomAttr!=-1) { + Integer i=(Integer) f.getAttribute(indexGeomAttr); + if (i==null) { + FuLog.error("Probleme sur le parseur, probablement du a la version Java 1.6"); + } + indexGeom.add(i); + } geom.add(f.getDefaultGeometry()); for (int i = 0; i < finalAttributeCount; i++) { @@ -148,8 +157,6 @@ else values[i].add(f.getAttribute(idxInFeature.getQuick(i))); } - if(indexGeomAttr!=-1) - indexGeom.add((Integer) f.getAttribute(indexGeomAttr)); } if (indexGeomAttr!=-1) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionBief.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionBief.java 2009-02-26 21:13:43 UTC (rev 4501) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionBief.java 2009-02-27 08:36:30 UTC (rev 4502) @@ -7,13 +7,14 @@ */ package org.fudaa.fudaa.modeleur.modeleur1d.view; -import java.awt.Container; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; +import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; @@ -51,22 +52,20 @@ public PnGestionBief(ControllerBief _controllerBief){ controllerBief_=_controllerBief; - setLayout(new BuBorderLayout()); + setLayout(new BuBorderLayout(2,2)); // Titre BuLabel lblTitre=new BuLabel("<html><b>"+FudaaLib.getS("Bief")+"</b></html>"); lblTitre.setHorizontalAlignment(BuLabel.CENTER); add(lblTitre, BuBorderLayout.NORTH); - // Body \\ - Container body=new Container(); - body.setLayout(new BuBorderLayout(2, 2)); - add(body, BuBorderLayout.CENTER); // Tableau de noms tableBiefs_=new CtuluTable(new TableBiefModel()); - body.add(new JScrollPane(tableBiefs_), BuBorderLayout.CENTER); + JScrollPane pnBiefs=new JScrollPane(tableBiefs_); + pnBiefs.setPreferredSize(new Dimension(0,150)); + add(pnBiefs, BuBorderLayout.CENTER); // Boutons \\ // Ouvrir - Container btContainer=new Container(); - btContainer.setLayout(new BuGridLayout(1, 5, 5)); + JPanel pnButtons=new JPanel(); + pnButtons.setLayout(new BuGridLayout(1, 5, 5)); btOuvrir_=new BuButton(FudaaLib.getS("Ouvrir")); btOuvrir_.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { @@ -83,7 +82,7 @@ } }); btOuvrir_.setEnabled(false); - btContainer.add(btOuvrir_); + pnButtons.add(btOuvrir_); // Supprimer JButton btSupprimer=new BuButton(FudaaLib.getS("supprimer")); btSupprimer.addActionListener(new ActionListener(){ @@ -100,7 +99,7 @@ controllerBief_.removeBief(idx); } }); - btContainer.add(btSupprimer); + pnButtons.add(btSupprimer); // Fusionner btFusionner_=new BuButton(FudaaLib.getS("Fusionner")); btFusionner_.addActionListener(new ActionListener(){ @@ -122,7 +121,7 @@ } }); btFusionner_.setEnabled(false); - btContainer.add(btFusionner_); + pnButtons.add(btFusionner_); // Dupliquer JButton btDupliquer=new BuButton(FudaaLib.getS("Dupliquer")); btDupliquer.addActionListener(new ActionListener(){ @@ -131,9 +130,9 @@ } }); btDupliquer.setEnabled(false); - btContainer.add(btDupliquer); - body.add(btContainer, BuBorderLayout.EAST); - body.setPreferredSize(body.getMinimumSize()); + btDupliquer.setVisible(false); + pnButtons.add(btDupliquer); + add(pnButtons, BuBorderLayout.EAST); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2009-02-26 21:13:43 UTC (rev 4501) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2009-02-27 08:36:30 UTC (rev 4502) @@ -7,7 +7,6 @@ */ package org.fudaa.fudaa.modeleur.modeleur1d.view; -import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -44,15 +43,11 @@ public PnGestionProfil(ControllerProfil _controllerProfil){ controllerProfil_=_controllerProfil; - setLayout(new BuBorderLayout()); + setLayout(new BuBorderLayout(2,2)); // Titre BuLabel lblTitre=new BuLabel("<html><b>"+FudaaLib.getS("Profil")+"</b></html>"); lblTitre.setHorizontalAlignment(BuLabel.CENTER); add(lblTitre, BuBorderLayout.NORTH); - // Body \\ - Container body=new Container(); - body.setLayout(new BuBorderLayout(2, 2)); - add(body, BuBorderLayout.CENTER); // Tableau de noms tableProfils_=new CtuluTable(new TableProfilModel()) { /* (non-Javadoc) @@ -65,10 +60,10 @@ } }; tableProfils_.setSelectionModel(controllerProfil_.getProfilSelectionModel()); - body.add(new JScrollPane(tableProfils_), BuBorderLayout.CENTER); + add(new JScrollPane(tableProfils_), BuBorderLayout.CENTER); // Boutons - Container btContainer=new Container(); - btContainer.setLayout(new BuGridLayout(1, 5, 5)); + JPanel pnButtons=new JPanel(); + pnButtons.setLayout(new BuGridLayout(1, 5, 5)); JButton btAjout=new BuButton(FudaaLib.getS("Ajout")); btAjout.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { @@ -76,14 +71,14 @@ } }); btAjout.setEnabled(false); - btContainer.add(btAjout); +// pnButtons.add(btAjout); JButton btSupprimer=new BuButton(FudaaLib.getS("supprimer")); btSupprimer.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { controllerProfil_.supprimerSelectedProfil(); } }); - btContainer.add(btSupprimer); + pnButtons.add(btSupprimer); JButton btFusionner=new BuButton(FudaaLib.getS("Fusionner")); btFusionner.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { @@ -91,9 +86,9 @@ } }); btFusionner.setEnabled(false); - btContainer.add(btFusionner); - body.add(btContainer, BuBorderLayout.EAST); - body.setPreferredSize(new Dimension(body.getMinimumSize().width, 350)); +// pnButtons.add(btFusionner); + add(pnButtons, BuBorderLayout.EAST); + setPreferredSize(new Dimension(getMinimumSize().width, 200)); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-26 21:13:58
|
Revision: 4501 http://fudaa.svn.sourceforge.net/fudaa/?rev=4501&view=rev Author: bmarchan Date: 2009-02-26 21:13:43 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Correction sur trac?\195?\169 d'orientation des lignes. Certaines fleches n'apparaissaient pas. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/trace/TraceLigne.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-26 19:15:42 UTC (rev 4500) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-26 21:13:43 UTC (rev 4501) @@ -20,6 +20,7 @@ import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrVecteur; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigne; @@ -211,6 +212,7 @@ GrPoint ptDest=new GrPoint(); GrPoint ptOrig=new GrPoint(); int j; + // Si c'est une polyligne on prend le dernier point si c'est un polygone, // on prend le premier (le permier et le dernier doivent \xEAtre confondus). if(modele_.isGeometryFermee(i)){ @@ -228,41 +230,31 @@ modele_.point(ptOrig, i, --j); if(j==0&&(ptOrig.x_==ptDest.x_&&ptOrig.y_==ptDest.y_)) continue; + ptOrig.autoApplique(versEcran); ptDest.autoApplique(versEcran); + // Dessin de la fleche if(showLineOrientation_){ - // La point de la fleche doit petre LISSE \\ - // Calcule du vecteur entre les deux points - double vecX=ptDest.x_-ptOrig.x_; - double vecY=ptDest.y_-ptOrig.y_; - // Normalisation et rectification de l'erreur d'arrondi. Puissance et - // racine carr\xE9 entrainent des erreurs d'arrondis visible, donc - // inutilisables. - while(vecX>10||vecY>10||vecX<-10||vecY<-10){ - vecX=vecX/2; - vecY=vecY/2; - } + GrVecteur vct=ptDest.soustraction(ptOrig); + vct.autoNormaliseXY(); + vct.autoMultiplication(20); // Cr\xE9ation d'un point interm\xE9diare - double ptInterX=ptDest.x_-vecX; - double ptInterY=ptDest.y_-vecY; - // La barre de la fleche est normale - tl.dessineTrait(_g, ptOrig.x_, ptOrig.y_, ptInterX, ptInterY); + double xorig=ptDest.x_-vct.x_; + double yorig=ptDest.y_-vct.y_; // La point est lisse int typeTrait=tl.getTypeTrait(); tl.setTypeTrait(TraceLigne.LISSE); - tl.dessineFleche(_g, (int)ptInterX, (int)ptInterY, (int)ptDest.x_, (int)ptDest.y_, 11, 5); + tl.dessinePointe(_g, (int)xorig, (int)yorig, (int)ptDest.x_, (int)ptDest.y_, 11, 5); tl.setTypeTrait(typeTrait); } - else - tl.dessineTrait(_g, ptOrig.x_, ptOrig.y_, ptDest.x_, ptDest.y_); - // Dessin du reste de la ligne - j--; + + // Dessin des segments for(;j>=0;j--){ - ptDest.initialiseAvec(ptOrig); modele_.point(ptOrig, i, j); ptOrig.autoApplique(versEcran); tl.dessineTrait(_g, ptOrig.x_, ptOrig.y_, ptDest.x_, ptDest.y_); + ptDest.initialiseAvec(ptOrig); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/trace/TraceLigne.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/trace/TraceLigne.java 2009-02-26 19:15:42 UTC (rev 4500) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/trace/TraceLigne.java 2009-02-26 21:13:43 UTC (rev 4501) @@ -345,33 +345,57 @@ if (!initialisationGraphics(_g)) { return; } + _g.drawLine(_x1, _y1, _x2, _y2); + _g.setColor(oldColor); + _g.setStroke(oldStroke); + + dessinePointe(_g, _x1, _y1, _x2, _y2, _retour, _ecart); + } + + /** + * Trac\xE9 d'une pointe de fleche uniquement, centr\xE9e sur (xpointe,ypointe). + * La direction est donn\xE9e par le deuxieme point (xorig,yorig). + * @param _g Le contexte graphique + * @param _xorig Le x du point d'origine, donnant la direction. + * @param _yorig Le y du point d'origine, donnant la direction. + * @param _xpointe Le x de la pointe de fleche. + * @param _ypointe Le y de la pointe de fleche. + * @param _ecart la distance des extremites de la fleche par rapport au segment + * @param _retour la longueur du retour de la fleche + */ + public void dessinePointe(final Graphics2D _g, final int _xorig, final int _yorig, final int _xpointe, final int _ypointe, + final int _retour, final int _ecart) { + final Color oldColor = _g.getColor(); + final Stroke oldStroke = _g.getStroke(); + if (!initialisationGraphics(_g)) { + return; + } +// _g.drawLine(_xorig, _yorig, _xpointe, _ypointe); if (model_.typeTrait_ == POINT_MARQUE) { - _g.drawLine(_x1, _y1, _x2, _y2); - _g.drawRect(_x1 - 1, _y1 - 1, 2, 2); - _g.drawRect(_x2 - 1, _y2 - 1, 2, 2); + _g.drawRect(_xorig - 1, _yorig - 1, 2, 2); + _g.drawRect(_xpointe - 1, _ypointe - 1, 2, 2); } else { - _g.drawLine(_x1, _y1, _x2, _y2); // la norme du vecteur - final double norme = CtuluLibGeometrie.getDistance(_x1, _y1, _x2, _y2); + final double norme = CtuluLibGeometrie.getDistance(_xorig, _yorig, _xpointe, _ypointe); // Si le retour de la fleche est trop grand on le diminue au 3 de la fleche if (norme == 0) { return; } final double coef = (norme - _retour) / norme; // xd et yd sont les points du traits correspondant a l'extremite des retours de la fleche - final double xd = coef * (_x2 - _x1) + _x1; - final double yd = coef * (_y2 - _y1) + _y1; + final double xd = coef * (_xpointe - _xorig) + _xorig; + final double yd = coef * (_ypointe - _yorig) + _yorig; // vecteur normal au trait - final double xn = (_y1 - _y2) / norme; - final double yn = (_x2 - _x1) / norme; + final double xn = (_yorig - _ypointe) / norme; + final double yn = (_xpointe - _xorig) / norme; // Xe et Ye sont les coordonnees d'une extremite de la fleche double xe = _ecart * xn + xd; double ye = _ecart * yn + yd; - _g.drawLine(_x2, _y2, (int) xe, (int) ye); + _g.drawLine(_xpointe, _ypointe, (int) xe, (int) ye); // Xe et Ye sont les coordonnees de l'autre extremite xe = _ecart * (-xn) + xd; ye = _ecart * (-yn) + yd; - _g.drawLine(_x2, _y2, (int) xe, (int) ye); + _g.drawLine(_xpointe, _ypointe, (int) xe, (int) ye); } _g.setColor(oldColor); _g.setStroke(oldStroke); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2009-02-26 19:15:42 UTC (rev 4500) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2009-02-26 21:13:43 UTC (rev 4501) @@ -291,7 +291,7 @@ if (pnDecimation_==null) pnDecimation_=new MdlDecimationPanel(); - CtuluCommandComposite cmd=new CtuluCommandComposite(); + CtuluCommandComposite cmd=new CtuluCommandComposite(FudaaLib.getS("D\xE9cimer")); String title; if (getScene().isAtomicMode()) @@ -324,10 +324,10 @@ mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0:1, pnDecimation_ .getNbPts(), pnDecimation_.getDistance(), cmd); } - - super.getScene().clearSelection(); } } + getScene().clearSelection(); + if(getMng()!=null) getMng().addCmd(cmd.getSimplify()); } @@ -339,7 +339,7 @@ if (pnRaffinement_==null) pnRaffinement_=new MdlRefinementPanel(); - CtuluCommandComposite cmd=new CtuluCommandComposite(); + CtuluCommandComposite cmd=new CtuluCommandComposite(FudaaLib.getS("Raffiner")); String title; if (getScene().isAtomicMode()) @@ -348,7 +348,7 @@ title=MdlResource.getS("Raffinement sur une polyligne"); if (pnRaffinement_.afficheModaleOk(pn_.getFrame(), title)) { - // Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est + // Les g\xE9om\xE9tries. On a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est // pas en mode sommet. int[] geoms=getScene().getSelectionHelper().getSelectedIndexes(); for (int i=0; i<geoms.length; i++) { @@ -372,9 +372,8 @@ mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0:1, pnRaffinement_ .getNbPts(), pnRaffinement_.getDistance(), cmd); } - - super.getScene().clearSelection(); } + getScene().clearSelection(); } if(getMng()!=null) getMng().addCmd(cmd.getSimplify()); @@ -632,7 +631,6 @@ if (mdld instanceof MdlModel2dLine) ((MdlModel2dLine)mdld).invertOrientation(getScene().sceneId2LayerId(geoms[i]), cmd); } - super.getScene().clearSelection(); if (getMng()!=null) getMng().addCmd(cmd.getSimplify()); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2009-02-26 19:15:42 UTC (rev 4500) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2009-02-26 21:13:43 UTC (rev 4501) @@ -263,7 +263,6 @@ * @param _cmd Le container de commandes. */ public void invertOrientation(final int _idxGeom, CtuluCommandContainer _cmd){ - CtuluCommandComposite cmd=new CtuluCommandComposite(); // Inversion des coordonn\xE9es LineString geom=(LineString)getGeomData().getGeometry(_idxGeom); CoordinateSequence seq=geom.getCoordinateSequence(); @@ -279,15 +278,16 @@ GISAttributeModel values=(GISAttributeModel) getDataModel(i).getObjectValueAt(_idxGeom); for(int j=0;j<values.getSize()/2;j++){ Object valTmp=values.getObjectValueAt(j); - values.setObject(j, values.getObjectValueAt(values.getSize()-1-j), cmd); - values.setObject(values.getSize()-1-j, valTmp, cmd); + values.setObject(j, values.getObjectValueAt(values.getSize()-1-j), null); + values.setObject(values.getSize()-1-j, valTmp, null); } } // Fires fireModelAction(_idxGeom, geom, ZModelListener.GEOMETRY_ACTION_MODIFY); fireAttributeValueChangeAction(this, -1, null, _idxGeom, null); + if (_cmd!=null){ - cmd.addCmd(new CtuluNamedCommand() { + _cmd.addCmd(new CtuluNamedCommand() { public void redo() { invertOrientation(_idxGeom, null); } @@ -298,7 +298,6 @@ return FudaaLib.getS("Inversion de l'orientation"); } }); - _cmd.addCmd(cmd.getSimplify()); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2009-02-26 19:15:48
|
Revision: 4500 http://fudaa.svn.sourceforge.net/fudaa/?rev=4500&view=rev Author: hadouxad Date: 2009-02-26 19:15:42 +0000 (Thu, 26 Feb 2009) Log Message: ----------- * utilisation maven 2.0: installation et et prise en main * Cr?\195?\169ation du pom.xml et cr?\195?\169ation du projet * mise en place des fichiers jeux de donn?\195?\169es crue 9 et10 + l'architecture respecte un projet basique maven 2.0 (il a ?\195?\169t?\195?\169 cr?\195?\169?\195?\169 a partir de cela) + j'ai comit?\195?\169 un fichier Readme maven qui explique les commandes de bases et le principe (l'installation,....) + j'ai comit?\195?\169 les jeux de donn?\195?\169es r?\195?\169cup?\195?\169r?\195?\169s du site (modele 3 ?\195?\160 5); # j'ai s?\195?\169par?\195?\169 les fichiers crue 9 (dc, dh) de 10 # le fichier ETU + le r?\195?\169pertoire src/main/ressources contient les jar utiles (les jars des projets fudaa et ceux de la lib de ctulu ) Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.classpath branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.project branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Description.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Etude.etu.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dcsp.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dfrt.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dlhy.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dptg.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dpti.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.drso.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.optg.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.pcal.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.pnum.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/ResHydro.drs branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/ResProfil.dlo branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/ResProfil.dpr branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/ResProfilLong.dle branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 9/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 9/Modele3.dc branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 9/Modele3.dh branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 10/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 10/Modele4.dcsp.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 10/Modele4.dptg.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 10/Modele4.drso.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 9/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 9/Modele4.dc branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 4/Crue 9/Modele4.dh branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 10/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 10/HYDROGRAMMES.DRS branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 10/ResHydro.drs branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 9/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 9/Modele5.dc branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 5/crue 9/Modele5.dh branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Readme Maven.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/PDFRenderer.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/PDFRenderer_src.zip branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/calendarbean.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/calendarbean.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/commons-logging-1.1.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/commons-logging-1.1.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/ctulu.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/db4o.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/dodico.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/ebli.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/fudaa.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/iText-2.1.4.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/iText-src-2.1.4.zip branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/jfreechart.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/jfreechart.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/junit.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/jxl.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/jxl.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/laf-plugin-50.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/laf-widget.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/liquidlnf.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/looks.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/looks.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/org-netbeans-api-visual.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/swingx-0.9.3-src.zip branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/swingx-0.9.3.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/trove.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/trove.src.zip branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/vgj.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/vgj.src.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/vrml97.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/xpp3_min-1.1.4c.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/lib/xstream-1.3.jar branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/pom.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/TransformCrue9to10.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleBase.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleEnchainement.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHScenario.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Branche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CaractEMH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Casier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/ConditionLimite.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMH.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheBarrageFilEau.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheBarrageGenerique.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheEnchainement.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheNiveauxAssocies.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBranchePdc.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSaintVenant.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSeuilLateral.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheSeuilTransversal.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheStrickler.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHCasierMNT.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHCasierProfil.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/reader/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/reader/Crue09reader.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/reader/Crue10reader.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/writer/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/writer/Crue10writer.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/writer/Crue9writer.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/App.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/CrueModele.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/CrueProjet.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/CrueScenario.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/projet/CrueSousModele.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/AppTest.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/Crue.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/CrueCommomImplementation.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/ressources/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/classes/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/maven-archiver/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/maven-archiver/pom.properties branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/surefire-reports/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/surefire-reports/TEST-test.java.org.fudaa.fudaa.crue.AppTest.xml branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/surefire-reports/test.java.org.fudaa.fudaa.crue.AppTest.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/org/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/org/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/org/fudaa/fudaa/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/org/fudaa/fudaa/crue/ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/target/test-classes/test/java/org/fudaa/fudaa/crue/AppTest.class Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.classpath =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.classpath (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.classpath 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="lib" path="lib/calendarbean.jar"/> + <classpathentry kind="lib" path="lib/calendarbean.src.jar"/> + <classpathentry kind="lib" path="lib/commons-logging-1.1.jar"/> + <classpathentry kind="lib" path="lib/commons-logging-1.1.src.jar"/> + <classpathentry kind="lib" path="lib/db4o.jar"/> + <classpathentry kind="lib" path="lib/iText-2.1.4.jar"/> + <classpathentry kind="lib" path="lib/iText-src-2.1.4.zip"/> + <classpathentry kind="lib" path="lib/jfreechart.jar"/> + <classpathentry kind="lib" path="lib/jfreechart.src.jar"/> + <classpathentry kind="lib" path="lib/junit.jar"/> + <classpathentry kind="lib" path="lib/jxl.jar"/> + <classpathentry kind="lib" path="lib/jxl.src.jar"/> + <classpathentry kind="lib" path="lib/laf-plugin-50.jar"/> + <classpathentry kind="lib" path="lib/laf-widget.jar"/> + <classpathentry kind="lib" path="lib/liquidlnf.jar"/> + <classpathentry kind="lib" path="lib/looks.jar"/> + <classpathentry kind="lib" path="lib/looks.src.jar"/> + <classpathentry kind="lib" path="lib/org-netbeans-api-visual.jar"/> + <classpathentry kind="lib" path="lib/PDFRenderer_src.zip"/> + <classpathentry kind="lib" path="lib/PDFRenderer.jar"/> + <classpathentry kind="lib" path="lib/swingx-0.9.3.jar"/> + <classpathentry kind="lib" path="lib/swingx-0.9.3-src.zip"/> + <classpathentry kind="lib" path="lib/trove.jar"/> + <classpathentry kind="lib" path="lib/trove.src.zip"/> + <classpathentry kind="lib" path="lib/vgj.jar"/> + <classpathentry kind="lib" path="lib/vgj.src.jar"/> + <classpathentry kind="lib" path="lib/vrml97.jar"/> + <classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/> + <classpathentry kind="lib" path="lib/xstream-1.3.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.5.0_16"/> + <classpathentry kind="lib" path="lib/ctulu.jar"/> + <classpathentry kind="lib" path="lib/dodico.jar"/> + <classpathentry kind="lib" path="lib/ebli.jar"/> + <classpathentry kind="lib" path="lib/fudaa.jar"/> + <classpathentry kind="output" path="target/classes"/> +</classpath> Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.project =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.project (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/.project 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>Fudaa-crue</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Description.txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Description.txt (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Description.txt 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,23 @@ + +---------------------] Modele3 [--- +PBa Jan09 sur la base de Modele2 +Mod\xE8le de test th\xE9orique utilisant les \xE9l\xE9ments de mod\xE9lisation les plus courants: +- Branches 20, 2, 4, 5, 6 +- Casiers +- Profils Saint-Venant, Strickler, ProfIdem, Distmax + + +---------------------] Modele4 [--- +PBa Jan09 sur la base de MO2009 +Mod\xE8le de test b\xE2ti d'apr\xE8s un mod\xE8le r\xE9el pour le test d'une branche 15. Il comprend: +- Le bas de la retenue +- L'\xE9vacuateur de crue portant le barrage de retenue mod\xE9lis\xE9 par une branche 15 et une CL aval en niveau +- Une partie du canal d'amen\xE9e +- Un affluent (Le Roubion) se jetant dans le canal d'amen\xE9e, et comportant une branche 1 (perte de charge singuli\xE8re mod\xE9lisant un pont) + + +---------------------] Modele5 [--- +PBa Jan09 sur la base de MO2009 +Mod\xE8le de test b\xE2ti d'apr\xE8s un mod\xE8le r\xE9el de Vieux-Rh\xF4ne. Il comprend: +- Des profils Saint-Venant avec des d\xE9finitions multiples de lits +- Des casiers de lit actif et de lit passif Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Etude.etu.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Etude.etu.xml (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Etude.etu.xml 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ETU> + <!-- Le fichier ETU rassemble les données d'une étude hydraulique. Son périmètre est l'ensemble des scénarios de l'étude --> + <!-- Révision 0 le 06/02/2009 par PBa: écriture du fichier à la main pour clarifier les idées, mais susceptible de grandes évolutions --> + <Commentaire>Commentaire ou description de l'étude</Commentaire> + <Creation>Balayn_P</Creation> + <!-- Récupération du login de session, si possible --> + <DateCreation>20090122</DateCreation> + <AuteurDerniereModif>Balayn_P</AuteurDerniereModif> + <DateDerniereModif>20090122</DateDerniereModif> + <ScenarioCourant> + <Scenario NomRef="SCMod3"/> + </ScenarioCourant> + <Repertoires> + <Repertoire Nom="FICHETUDES">C:\DATA\Crue\Modele3\</Repertoire> + <Repertoire Nom="RUNS">C:\DATA\Crue\Modele3\Resultats\</Repertoire> + <Repertoire Nom="RAPPORTS">C:\DATA\Crue\Modele3\Rapports\</Repertoire> + </Repertoires> + <FichEtudes> + <OCAL Nom="SCMod3.ocal.xml" Chemin=".\" /> + <!-- Identidfiant unique dans tout l'espace étude, donc deux fichiers ne peuvent pas porter le même nom --> + <ORES Nom="SCMod3.ores.xml" Chemin=".\" /> + <PCAL Nom="SCMod3.pcal.xml" Chemin=".\" /> + <DCLM Nom="Modele3.dclm.xml" Chemin=".\" /> + <DLHY Nom="SCMod3.dlhy.xml" Chemin=".\" /> + <OPTR Nom="MOModele3.optr.xml" Chemin=".\" /> + <OPTG Nom="MOModele3.optg.xml" Chemin=".\" /> + <OPTI Nom="MOModele3.opti.xml" Chemin=".\" /> + <PNUM Nom="MOModele3.pnum.xml" Chemin=".\" /> + <DPTI Nom="MOModele3.dpti.xml" Chemin=".\" /> + <DRSO Nom="SModele3.drso.xml" Chemin=".\" /> + <DCSP Nom="SModele3.dcsp.xml" Chemin=".\" /> + <DPTG Nom="SModele3.dptg.xml" Chemin=".\" /> + <DFRT Nom="SModele3.dfrt.xml" Chemin=".\" /> + <DRSO Nom="SMMOModele3.drso.xml" Chemin=".\" /> + <DCSP Nom="SMMOModele3.dcsp.xml" Chemin=".\" /> + <DPTG Nom="SMMOModele3.dptg.xml" Chemin=".\" /> + <DFRT Nom="SMMOModele3.dfrt.xml" Chemin=".\" /> + <DRSO Nom="MO-2.drso.xml" Chemin=".\" /> + <DCSP Nom="MO-2.dcsp.xml" Chemin=".\" /> + <DPTG Nom="MO-2.dptg.xml" Chemin=".\" /> + <DFRT Nom="MO-2.dfrt.xml" Chemin=".\" /> + <DC Nom="Modele3.dc" Chemin=".\" /> + <DH Nom="Modele3.dh" Chemin=".\" /> + </FichEtudes> + <SousModeles> + <SousModele Nom="SModele3"> + <!-- Un nom de sous-modèle commence toujours par "SM"; si tel n'est pas le cas, la chaîne est préfixée pour ce faire--> + <Type>Crue10</Type> + <Commentaire>Commentaire du sous-modèle SModele3</Commentaire> + <Creation>Balayn_P</Creation> + <DateCreation>20090122</DateCreation> + <DerniereModif>Balayn_P</DerniereModif> + <DateDerniereModif>20090122</DateDerniereModif> + <FichEtudes> + <DRSO NomRef="SModele3.drso.xml" /> + <DCSP NomRef="SModele3.dcsp.xml" /> + <DPTG NomRef="SModele3.dptg.xml" /> + <DFRT NomRef="SModele3.dfrt.xml" /> + </FichEtudes> + </SousModele> + <SousModele Nom="SMMOModele3"> + <Type>Crue10</Type> + <Commentaire>Commentaire du sous-modèle SMMOModele3</Commentaire> + <Creation>Balayn_P</Creation> + <DateCreation>20090122</DateCreation> + <DerniereModif>Balayn_P</DerniereModif> + <DateDerniereModif>20090122</DateDerniereModif> + <FichEtudes> + <DRSO NomRef="SMMOModele3.drso.xml" /> + <DCSP NomRef="SMMOModele3.dcsp.xml" /> + <DPTG NomRef="SMMOModele3.dptg.xml" /> + <DFRT NomRef="SMMOModele3.dfrt.xml" /> + </FichEtudes> + </SousModele> + <SousModele Nom="SMO-2"> + <Type>Crue10</Type> + <Commentaire>SM2</Commentaire> + <Creation>Balayn_P</Creation> + <DateCreation>20090123</DateCreation> + <DerniereModif>Balayn_P</DerniereModif> + <DateDerniereModif>20090124</DateDerniereModif> + <FichEtudes> + <DRSO NomRef="MO-2.drso.xml" /> + <DCSP NomRef="MO-2.dcsp.xml" /> + <DPTG NomRef="MO-2.dptg.xml" /> + <DFRT NomRef="MO-2.dfrt.xml" /> + </FichEtudes> + </SousModele> + </SousModeles> + <Modeles> + <Modele Nom="MOC9"> + <!-- Un nom de modèle commence toujours par "MO"; si tel n'est pas le cas, la chaîne est préfixée pour ce faire--> + <Type>Crue9</Type> + <Commentaire>Commentaire ou description du modèle</Commentaire> + <!-- Commentaires en HTML ? --> + <Creation>Balayn_P</Creation> + <DerniereModif>Balayn_P</DerniereModif> + <DateCreation>20090122</DateCreation> + <FichEtudes> + <DC NomRef="Modele3.dc" /> + <DH NomRef="Modele3.dh" /> + </FichEtudes> + </Modele> + <Modele Nom="MOModele3"> + <Type>Crue10</Type> + <Commentaire>Commentaire ou description du modèle</Commentaire> + <Creation>Balayn_P</Creation> + <DerniereModif>Balayn_P</DerniereModif> + <DateCreation>20090122</DateCreation> + <FichEtudes> + <OPTR NomRef="MOModele3.optr.xml" /> + <OPTG NomRef="MOModele3.optg.xml" /> + <OPTI NomRef="MOModele3.opti.xml" /> + <PNUM NomRef="MOModele3.pnum.xml" /> + <DPTI NomRef="MOModele3.dpti.xml" /> + </FichEtudes> + <SousModeles> + <SousModele NomRef="SModele3" /> + <SousModele NomRef="SMMOModele3" /> + </SousModeles> + </Modele> + </Modeles> + <Rapports></Rapports> + <Scenarios> + <Scenario Nom="SCC9"> + <!-- Un nom de scénario commence toujours par "SC"; si tel n'est pas le cas, la chaîne est préfixée pour ce faire--> + <Type>Crue9</Type> + <!-- Pas de prise en compte de scénario enchaîné avec Crue9, du moins dans les premières versions --> + <VersionCrue>0.0</VersionCrue> + <!-- Version du moteur Crue minimale requise: nécessaire pour Crue9 ? --> + <Commentaire>Ceci est un commentaire ou une description du scénario</Commentaire> + <Creation>Balayn_P</Creation> + <DerniereModif>Balayn_P</DerniereModif> + <DateCreation>20090122</DateCreation> + <Modeles> + <Modele NomRef="MOC9"/> + </Modeles> + </Scenario> + <Scenario Nom="SCMod3"> + <Type>Crue10</Type> + <VersionCrue>0.0</VersionCrue> + <!-- Version du moteur Crue10 minimale requise --> + <Commentaire>Ceci est un commentaire ou une description du scénario</Commentaire> + <Creation>Balayn_P</Creation> + <DerniereModif>Balayn_P</DerniereModif> + <DateCreation>20090122</DateCreation> + <FichEtudes> + <OCAL NomRef="SCMod3.ocal.xml" /> + <!-- Un scénario est défini par 5 fichiers de niveau scénario et 1 à n modèles --> + <ORES NomRef="SCMod3.ores.xml" /> + <!-- Tous les fichiers utilisés par le scénario sont identifiés par leur nom dans l'espace etude --> + <PCAL NomRef="SCMod3.pcal.xml" /> + <DCLM NomRef="Modele3.dclm.xml" /> + <DLHY NomRef="SCMod3.dlhy.xml" /> + </FichEtudes> + <Modeles> + <Modele NomRef="MOModele3"/> + </Modeles> + <Runs> + <Run Nom="20090205084210"> + <Commentaire>Description du calcul du 5 février</Commentaire> + <!-- Sur le disque chaque run est un sous-dossier du dossier scénario. Il contient les 5 fichiers d'entrée de niveau scénrio, --> + <!-- et un dossier pour chaque modèle. Chaque dossier modèle contient 4 fichiers d'entrée de niveau modèle, --> + <!-- 4 fichiers d'entrée par sous-modèle et les fichiers de résultats décrits ci-dessous. --> + <!-- Aucune info n'est nécessaire pour tous les fichiers d'entrée puisqu'un des postulats veut qu'on ne puisse pas --> + <!-- modifier un sous-modèle, un modèle ou un scénario tant qu'il y a des runs qui les référencent --> + <FichRuns> + <Modeles> + <Modele NomRef="MOModele3"> + <RPTR Nom="MOModele3.rptr.xml" /> + <RPTG Nom="MOModele3.rptg.xml" /> + <RPTI Nom="MOModele3.rpti.xml" /> + <RCAL Nom="MOModele3.rcal.xml" /> + </Modele> + </Modeles> + </FichRuns> + </Run> + <Run Nom="20090211152047"> + <Commentaire>Un autre calcul lancé le 11 février</Commentaire> + <FichRuns> + <Modeles> + <Modele NomRef="MOModele3"> + <RPTR Nom="MOModele3.rptr.xml" /> + <RPTG Nom="MOModele3.rptg.xml" /> + <RPTI Nom="MOModele3.rpti.xml" /> + <RCAL Nom="MOModele3.rcal.xml" /> + </Modele> + </Modeles> + </FichRuns> + </Run> + </Runs> + <RunCourant> + <Run NomRef="20090211152047"/> + </RunCourant> + </Scenario> + </Scenarios> + <!-- <Comparaisons></Comparaisons --> +</ETU> \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dcsp.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dcsp.xml (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dcsp.xml 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8"?> +<DCSP> + <!-- Le fichier DCSP contient les données nécessaires au calcul ne nécessitant aucun prétraitement (en particulier géométrique) d'un modèle CrueX. Son périmètre est le sous-modèle --> + <!-- Révision 0 le 04/02/2009 par PBa : écriture du fichier à la main --> + <VersionCrue>0.0</VersionCrue> <!-- Version du moteur Crue10 minimale requise --> + <Commentaire>Commentaire sur le sous-modèle</Commentaire> + + <Branches> + <BrancheSaintVenant NomRef="DRSO#B1"> + <CoefBeta>1.00</CoefBeta> <!-- valeur par défaut --> + <CoefRuisQdm>1.00</CoefRuisQdm> <!-- valeur par défaut --> + <CoefRuis>1.00</CoefRuis> <!-- valeur par défaut --> + <Sections> + <SectionProfil NomRef="DRSO#SPROF11"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SB1_00050.0"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF10"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SB1_00150.0"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF9"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SB1_00250.0"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF8"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SB1_00350.0"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF7"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SB1_00450.0"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF6A"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + </Sections> + </BrancheSaintVenant> + <BrancheSaintVenant NomRef="DRSO#B2"> + <CoefBeta>1.00</CoefBeta> + <CoefRuisQdm>1.00</CoefRuisQdm> + <CoefRuis>1.00</CoefRuis> + <Sections> + <SectionProfil NomRef="DRSO#SPROF6B"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionInterpolee NomRef="DRSO#SPROF5"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionInterpolee> + <SectionProfil NomRef="DRSO#SPROF4"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionProfil NomRef="DRSO#SPROF3A"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + </Sections> + </BrancheSaintVenant> + <BrancheSeuilTransversal NomRef="DRSO#B3"> + <FormulePdc>Borda</FormulePdc> + <ElemSeuil> + <Larg>20.0</Larg> + <Zseuil>0.60</Zseuil> + <CoefD>0.90</CoefD> + <CoefPdc>1.00</CoefPdc> + </ElemSeuil> + <ElemSeuil> + <Larg>8.0</Larg> + <Zseuil>2.20</Zseuil> + <CoefD>0.90</CoefD> + <CoefPdc>1.00</CoefPdc> + </ElemSeuil> + </BrancheSeuilTransversal> + <BrancheSaintVenant NomRef="DRSO#B4"> + <CoefBeta>1.00</CoefBeta> + <CoefRuisQdm>1.00</CoefRuisQdm> + <CoefRuis>1.00</CoefRuis> + <Sections> + <SectionProfil NomRef="DRSO#SPROF3B"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionProfil NomRef="DRSO#SPROF2"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + <SectionProfil NomRef="DRSO#SPROF1"> + <CoefPond>0.50</CoefPond> + <CoefConv>0.00</CoefConv> + <CoefDiv>0.00</CoefDiv> + </SectionProfil> + </Sections> + </BrancheSaintVenant> + <BrancheSeuilLateral NomRef="DRSO#B5"> + <FormulePdc>Borda</FormulePdc> + <ElemSeuil> + <Larg>100.0</Larg> + <Zseuil>3.78</Zseuil> + <CoefD>0.90</CoefD> + <CoefPdc>1.00</CoefPdc> + </ElemSeuil> + <ElemSeuil> + <Larg>100.0</Larg> + <Zseuil>3.82</Zseuil> + <CoefD>0.90</CoefD> + <CoefPdc>1.00</CoefPdc> + </ElemSeuil> + </BrancheSeuilLateral> + <BrancheSeuilLateral NomRef="DRSO#B7"> + <FormulePdc>Divergent</FormulePdc> + <ElemSeuil> + <Larg>100.0</Larg> + <Zseuil>3.00</Zseuil> + <CoefD>1.00</CoefD> + <CoefPdc>1.00</CoefPdc> + </ElemSeuil> + </BrancheSeuilLateral> + <BrancheOrifice NomRef="DRSO#B8"> + <ElemOrifice> + <CoefCtrLim>0.65</CoefCtrLim> + <Larg>20.0</Larg> + <Zseuil>3.00</Zseuil> + <Haut>1.50</Haut> + <CoefD>0.90</CoefD> + <Sens>Bidirect</Sens> + </ElemOrifice> + </BrancheOrifice> + </Branches> +</DCSP> \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dfrt.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dfrt.xml (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dfrt.xml 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8"?> +<DFRT> + <!-- Le fichier DFRT décrit les frottements d'un modèle CrueX. Son périmètre est le sous-modèle --> + <!-- Révision 0 le 03/02/2009 par PBa : écriture du fichier à la main --> + <VersionCrue>0.0</VersionCrue> <!-- Version du moteur Crue10 minimale requise --> + <Commentaire>Commentaire sur le sous-modèle</Commentaire> + + <StriRefC Nom="FK0">0.</StriRefC> + <StriRefZ Nom="FPROF1MAJ"> + <PointFF>0.00 15.</PointFF> <!-- Point Flottant-Flottant --> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF1MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF2MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF2MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3AMAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3AMIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3AVMAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3AVMIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3BMAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF3BMIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF4MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF4MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF6AMAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF6AMIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF7MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF7MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF8MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF8MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF9MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF9MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF10MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF10MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>10.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF11MAJ"> + <PointFF>0.00 15.</PointFF> + <PointFF>10.00 15.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROF11MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>11.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROFSTR1MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>11.00 30.</PointFF> + </StriRefZ> + <StriRefZ Nom="FPROFSTR2MIN"> + <PointFF>0.00 30.</PointFF> + <PointFF>11.00 30.</PointFF> + </StriRefZ> +</DFRT> \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dlhy.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dlhy.xml (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dlhy.xml 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<DLHY> + <!-- Le fichier DLHY décrit les lois hydrauliques de référence pour les conditions aux limites et les manoeuvres d'ouvrages d'un modèle CrueX. Son périmètre est le scénario --> + <!-- Révision 0 le 11/02/2009 par PBa : écriture du fichier à la main --> + <VersionCrue>0.0</VersionCrue> <!-- Version du moteur Crue10 minimale requise --> + <Commentaire>Commentaire sur le scénario</Commentaire> + + <Hydrogrammes> + <Hydrogramme Nom="HydrogrammeN1"> <!-- Nom unique, par exemple généré à partir du nom --> + <Nom>Hydrogramme N1</Nom> <!-- Nom donné par l'utilisateur. Par défaut, type de la loi et entité d'application --> + <VarAbscisse>Date</VarAbscisse> + <VarOrdonnee>Qapp</VarOrdonnee> + <SerieChronologique> + <PointDF>0 00 00 00 100.0</PointDF> <!-- Point Date-Flottant --> + <PointDF>0 01 00 00 100.0</PointDF> + <PointDF>0 03 00 00 125.0</PointDF> + <PointDF>0 04 00 00 150.0</PointDF> + <PointDF>0 05 00 00 200.0</PointDF> + <PointDF>0 07 00 00 400.0</PointDF> + <PointDF>0 09 00 00 450.0</PointDF> + <PointDF>0 11 00 00 480.0</PointDF> + <PointDF>0 12 00 00 500.0</PointDF> + <PointDF>0 13 00 00 480.0</PointDF> + <PointDF>0 15 00 00 450.0</PointDF> + <PointDF>0 17 00 00 400.0</PointDF> + <PointDF>0 19 00 00 200.0</PointDF> + <PointDF>0 20 00 00 150.0</PointDF> + <PointDF>0 21 00 00 125.0</PointDF> + <PointDF>0 23 00 00 100.0</PointDF> + <PointDF>0 24 00 00 100.0</PointDF> + </SerieChronologique> + </Hydrogramme> + <Hydrogramme Nom="HydrogrammeRuis1"> + <Nom>Hydrogramme Ruis 1</Nom> + <VarAbscisse>Date</VarAbscisse> + <VarOrdonnee>Qruis</VarOrdonnee> <!-- débit de ruissellement le long de l'axe hydraulique, en m2/s --> + <SerieChronologique> + <PointDF>0 00 00 00 0.0</PointDF> <!-- Point Date-Flottant --> + <PointDF>0 24 00 00 0.0</PointDF> + </SerieChronologique> + </Hydrogramme> + <Hydrogramme Nom="HydrogrammeRuis2"> + <Nom>Hydrogramme Ruis 2</Nom> + <VarAbscisse>Date</VarAbscisse> + <VarOrdonnee>Qruis</VarOrdonnee> <!-- débit de ruissellement le long de l'axe hydraulique, en m2/s --> + <SerieChronologique> + <PointDF>0 00 00 00 0.0</PointDF> <!-- Point Date-Flottant --> + <PointDF>0 24 00 00 0.0</PointDF> + </SerieChronologique> + </Hydrogramme> + </Hydrogrammes> + + <Limnigrammes> + <!-- Aucun ici --> + </Limnigrammes> + + <Tarrages> + <Tarrage Nom="TarrageN5"> + <Nom>Tarrage N5</Nom> + <VarAbscisse>Z</VarAbscisse> + <VarOrdonnee>Qapp</VarOrdonnee> + <Serie> + <PointFF>1.0 0.0</PointFF> <!-- Point Flottant-Flottant --> + <PointFF>1.5 -100.0</PointFF> + <PointFF>2.0 -150.0</PointFF> + <PointFF>2.5 -175.0</PointFF> + <PointFF>3.0 -200.0</PointFF> + <PointFF>3.5 -240.0</PointFF> + <PointFF>4.0 -300.0</PointFF> + <PointFF>4.5 -350.0</PointFF> + <PointFF>5.0 -400.0</PointFF> + <PointFF>5.5 -500.0</PointFF> + </Serie> + </Tarrage> + </Tarrages> + + <Manoeuvres> + <VannePasseDessous Nom="VannePasseDessousB8"> + <Nom>VannePasseDessous B8</Nom> + <VarAbscisse>Date</VarAbscisse> + <VarOrdonnee>OuvVersHaut</VarOrdonnee> + <SerieChronologique> + <PointDF>0 00 00 00 90.0</PointDF> <!-- Point Date-Flottant --> + <PointDF>0 05 00 00 90.0</PointDF> + <PointDF>0 06 00 00 50.0</PointDF> + <PointDF>0 24 00 00 100.0</PointDF> + </SerieChronologique> + </VannePasseDessous> + </Manoeuvres> +</DLHY> \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dptg.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dptg.xml (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modele 3/crue 10/Modele3.dptg.xml 2009-02-26 19:15:42 UTC (rev 4500) @@ -0,0 +1,774 @@ +<?xml version="1.0" encoding="UTF-8"?> +<DPTG> + <!-- Le fichier DPTG décrit les données nécessitant un prétraitement géométriques d'un modèle CrueX. Son périmètre est le sous-modèle --> + <!-- Révision 0 le 02/02/2009 par PBa: écriture du fichier à la main --> + <!-- Révision 1 le 03/02/2009 par JMB & PBa: introduction de ProfilIdemSection --> + <VersionCrue>0.0</VersionCrue> <!-- Version du moteur Crue10 minimale requise --> + <Commentaire>Commentaire sur le sous-modèle</Commentaire> + + <Branches> + <BrancheSaintVenant NomRef="DRSO#B1"> + <LongMineur>500.0</LongMineur> + </BrancheSaintVenant> + <BrancheSaintVenant NomRef="DRSO#B2"> + <LongMineur>300.0</LongMineur> + </BrancheSaintVenant> + <BrancheSaintVenant NomRef="DRSO#B4"> + <LongMineur>200.0</LongMineur> + </BrancheSaintVenant> + </Branches> + + <Sections> + <SectionIdem NomRef="DRSO#SPROF6B"> + <Dz>0.0</Dz> + </SectionIdem> + <SectionIdem NomRef="DRSO#SPROF3AM"> + <Dz>0.0</Dz> + </SectionIdem> + </Sections> + + <Geometries> + <ProfilSection Nom="PROF11"> + <Commentaire>Ceci est un commentaire optionnel sur le profil géométrique</Commentaire> + <Serie> + <PointFF>0.00 6.10</PointFF> <!-- Point Flottant-Flottant --> + <PointFF>2.00 5.10</PointFF> + <PointFF>32.00 4.10</PointFF> + <PointFF>62.00 3.10</PointFF> + <PointFF>66.00 1.10</PointFF> + <PointFF>86.00 1.10</PointFF> + <PointFF>90.00 3.10</PointFF> + <PointFF>120.00 4.10</PointFF> + <PointFF>150.00 5.10</PointFF> + <PointFF>152.00 6.10</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 6.10</LimDeb> + <LimFin>32.00 4.10</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 4.10</LimDeb> + <LimFin>62.00 3.10</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF11MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 3.10</LimDeb> + <LimFin>90.00 3.10</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF11MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 3.10</LimDeb> + <LimFin>120.00 4.10</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF11MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 4.10</LimDeb> + <LimFin>152.00 6.10</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF10"> + <Serie> + <PointFF>0.00 6.00</PointFF> + <PointFF>2.00 5.00</PointFF> + <PointFF>32.00 4.00</PointFF> + <PointFF>62.00 3.00</PointFF> + <PointFF>66.00 1.00</PointFF> + <PointFF>86.00 1.00</PointFF> + <PointFF>90.00 3.00</PointFF> + <PointFF>120.00 4.00</PointFF> + <PointFF>150.00 5.00</PointFF> + <PointFF>152.00 6.00</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 6.00</LimDeb> + <LimFin>32.00 4.00</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 4.00</LimDeb> + <LimFin>62.00 3.00</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF10MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 3.00</LimDeb> + <LimFin>90.00 3.00</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF10MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 3.00</LimDeb> + <LimFin>120.00 4.00</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF10MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 4.00</LimDeb> + <LimFin>152.00 6.00</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF9"> + <Serie> + <PointFF>0.00 5.90</PointFF> + <PointFF>2.00 4.90</PointFF> + <PointFF>32.00 3.90</PointFF> + <PointFF>62.00 2.90</PointFF> + <PointFF>66.00 0.90</PointFF> + <PointFF>86.00 0.90</PointFF> + <PointFF>90.00 2.90</PointFF> + <PointFF>120.00 3.90</PointFF> + <PointFF>150.00 4.90</PointFF> + <PointFF>152.00 5.90</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.90</LimDeb> + <LimFin>32.00 3.90</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 3.90</LimDeb> + <LimFin>62.00 2.90</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF9MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 2.90</LimDeb> + <LimFin>90.00 2.90</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF9MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 2.90</LimDeb> + <LimFin>120.00 3.90</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF9MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 3.90</LimDeb> + <LimFin>152.00 5.90</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF8"> + <Serie> + <PointFF>0.00 5.80</PointFF> + <PointFF>2.00 4.80</PointFF> + <PointFF>32.00 3.80</PointFF> + <PointFF>62.00 2.80</PointFF> + <PointFF>66.00 0.80</PointFF> + <PointFF>86.00 0.80</PointFF> + <PointFF>90.00 2.80</PointFF> + <PointFF>120.00 3.80</PointFF> + <PointFF>150.00 4.80</PointFF> + <PointFF>152.00 5.80</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.80</LimDeb> + <LimFin>32.00 3.80</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 3.80</LimDeb> + <LimFin>62.00 2.80</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF8MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 2.80</LimDeb> + <LimFin>90.00 2.80</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF8MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 2.80</LimDeb> + <LimFin>120.00 3.80</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF8MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 3.80</LimDeb> + <LimFin>152.00 5.80</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF7"> + <Serie> + <PointFF>0.00 5.70</PointFF> + <PointFF>2.00 4.70</PointFF> + <PointFF>32.00 3.70</PointFF> + <PointFF>62.00 2.70</PointFF> + <PointFF>66.00 0.70</PointFF> + <PointFF>86.00 0.70</PointFF> + <PointFF>90.00 2.70</PointFF> + <PointFF>120.00 3.70</PointFF> + <PointFF>150.00 4.70</PointFF> + <PointFF>152.00 5.70</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.70</LimDeb> + <LimFin>32.00 3.70</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 3.70</LimDeb> + <LimFin>62.00 2.70</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF7MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 2.70</LimDeb> + <LimFin>90.00 2.70</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF7MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 2.70</LimDeb> + <LimFin>120.00 3.70</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF7MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 3.70</LimDeb> + <LimFin>152.00 5.70</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF6A"> + <Serie> + <PointFF>0.00 5.60</PointFF> + <PointFF>2.00 4.60</PointFF> + <PointFF>32.00 3.60</PointFF> + <PointFF>62.00 2.60</PointFF> + <PointFF>66.00 0.60</PointFF> + <PointFF>86.00 0.60</PointFF> + <PointFF>90.00 2.60</PointFF> + <PointFF>120.00 3.60</PointFF> + <PointFF>150.00 4.60</PointFF> + <PointFF>152.00 5.60</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.60</LimDeb> + <LimFin>32.00 3.60</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 3.60</LimDeb> + <LimFin>62.00 2.60</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF6AMAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 2.60</LimDeb> + <LimFin>90.00 2.60</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF6AMIN"/> + </Lit> + <Lit> + <LimDeb>90.00 2.60</LimDeb> + <LimFin>120.00 3.60</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF6AMAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 3.60</LimDeb> + <LimFin>152.00 5.60</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF4"> + <Serie> + <PointFF>0.00 5.40</PointFF> + <PointFF>2.00 4.40</PointFF> + <PointFF>32.00 3.40</PointFF> + <PointFF>62.00 2.40</PointFF> + <PointFF>66.00 0.40</PointFF> + <PointFF>86.00 0.40</PointFF> + <PointFF>90.00 2.40</PointFF> + <PointFF>120.00 3.40</PointFF> + <PointFF>150.00 4.40</PointFF> + <PointFF>152.00 5.40</PointFF> + <Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.40</LimDeb> + <LimFin>32.00 3.40</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + <Lit> + <LimDeb>32.00 3.40</LimDeb> + <LimFin>62.00 2.40</LimFin> + <Nom>MajD</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF4MAJ"/> + </Lit> + <Lit> + <LimDeb>62.00 2.40</LimDeb> + <LimFin>90.00 2.40</LimFin> + <Nom>Mineur</Nom> + <IsActif>True</IsActif> + <IsMineur>True</IsMineur> + <Frot NomRef="DFRT#FPROF4MIN"/> + </Lit> + <Lit> + <LimDeb>90.00 2.40</LimDeb> + <LimFin>120.00 3.40</LimFin> + <Nom>MajG</Nom> + <IsActif>True</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FPROF4MAJ"/> + </Lit> + <Lit> + <LimDeb>120.00 3.40</LimDeb> + <LimFin>152.00 5.40</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef="DFRT#FK0"/> + </Lit> + </Lits> + </ProfilSection> + <ProfilSection Nom="PROF3A"> + <Serie> + <PointFF>0.00 5.30</PointFF> + <PointFF>2.00 4.30</PointFF> + <PointFF>32.00 3.30</PointFF> + <PointFF>62.00 2.30</PointFF> + <PointFF>66.00 0.30</PointFF> + <PointFF>86.00 0.30</PointFF> + <PointFF>90.00 2.30</PointFF> + <PointFF>120.00 3.30</PointFF> + <PointFF>150.00 4.30</PointFF> + <PointFF>152.00 5.30</PointFF> + </Serie> + <Lits> + <Lit> + <LimDeb>0.00 5.30</LimDeb> + <LimFin>32.00 3.30</LimFin> + <Nom>Stockage</Nom> + <IsActif>False</IsActif> + <IsMineur>False</IsMineur> + <Frot NomRef... [truncated message content] |
From: <had...@us...> - 2009-02-26 14:51:16
|
Revision: 4499 http://fudaa.svn.sourceforge.net/fudaa/?rev=4499&view=rev Author: hadouxad Date: 2009-02-26 14:51:03 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Initial import. Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2009-02-25 19:03:57
|
Revision: 4498 http://fudaa.svn.sourceforge.net/fudaa/?rev=4498&view=rev Author: hadouxad Date: 2009-02-25 19:03:51 +0000 (Wed, 25 Feb 2009) Log Message: ----------- * Mise en place du design patern decorator pour le EGModel + Cr?\195?\169ation du mod?\195?\168le inverse + prise en compte du mod?\195?\168le inverse comme action de la courbe + Persistance des donn?\195?\169es: l'inversion est persist?\195?\169 par un simple bool?\195?\169en dans EGourbePersist. Les donn?\195?\169es enregistr?\195?\169es sont celle du mod?\195?\168le initial. * Persistance des fl?\195?\168che connector et am?\195?\169lioration de l'?\195?\169diteur * Corrections de bug pour fudaa(sauvegarder, le filter,...) * am?\195?\169liorations visuel pour le viewer pdf * Gestion du format et filtre pour les volumes (extensions vol,volfin,volafin,...) o Executon et rep?\195?\169rage automatique du format depuis le superviseur o acc?\195?\168s poru la fonctionnalit?\195?\169 d'ajout de vue 2d issue du format volfin * Exportation au format volumique o Cr?\195?\169ation de MvExportToElementDataActivity qui transforme les nodes de efgrid en ?\195?\169l?\195?\169ments o Utilisation dans MvExportActSerafin.tonodeData (test si on est en format volumique ou non) * Cr?\195?\169ation de la doc des fonctionnalit?\195?\169s du lot 4 (commit?\195?\169 dans le projet aide) Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.pdf branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/GrapheTreeCellRenderer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActAbstract.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileCourbe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.pdf branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportToElementDataActivity.java Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe Inverser X et Y.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Graphe gestion Min et Max.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les echelles logarithmiques.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les volumes finis.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.odt =================================================================== (Binary files differ) Modified: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.pdf =================================================================== (Binary files differ) Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -1103,8 +1103,16 @@ } isInverse=!isInverse; + //-- on met a jour les axes --// + ajusterAxesForCourbe(); + + } + protected void ajusterAxesForCourbe(){ + this.getAxeY().ajusteFor(this); + this.getAxeX().setBounds(getXMin(), getXMax()); + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -11,9 +11,24 @@ public abstract class EGModelDecorator implements EGModel{ /** + * l'instance du modele correct avant inversion. + * C'est \xE0 partir de ce modele que va se produire l'inversion. + */ + protected final EGModel instanceModele_; + + + + public EGModelDecorator(final EGModel modeleInitial){ + + instanceModele_=modeleInitial; + } + + /** * retourme le egmodel initial * @return */ - public abstract EGModel getModeleInitial(); + public EGModel getModeleInitial(){ + return instanceModele_; + } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -17,39 +17,33 @@ */ public class EGModelDecoratorInverse extends EGModelDecorator{ - /** - * l'instance du modele correct avant inversion. - * C'est \xE0 partir de ce modele que va se produire l'inversion. - */ - private final EGModel instanceModele_; + public EGModelDecoratorInverse(final EGModel modeleInitial){ - instanceModele_=modeleInitial; + super(modeleInitial); + } - public EGModel getModeleInitial(){ - return instanceModele_; - } public boolean addValue(double _x, double _y, CtuluCommandContainer _cmd) { - return instanceModele_.addValue(_x, _y, _cmd); + return instanceModele_.addValue( _y,_x, _cmd); } public boolean addValue(double[] _x, double[] _y, CtuluCommandContainer _cmd) { - return instanceModele_.addValue(_x, _y, _cmd); + return instanceModele_.addValue( _y, _x,_cmd); } public boolean deplace(int[] idx, double _deltax, double _deltay, CtuluCommandContainer _cmd) { - return instanceModele_.deplace(idx, _deltax, _deltay, _cmd); + return instanceModele_.deplace(idx, _deltay,_deltax, _cmd); } @@ -194,14 +188,14 @@ public boolean setValue(int _i, double _x, double _y, CtuluCommandContainer _cmd) { - return instanceModele_.setValue(_i, _x, _y, _cmd); + return instanceModele_.setValue(_i, _y,_x, _cmd); } public boolean setValues(int[] _idx, double[] _x, double[] _y, CtuluCommandContainer _cmd) { - return instanceModele_.setValues(_idx, _x, _y, _cmd); + return instanceModele_.setValues(_idx, _y, _x, _cmd); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -198,10 +198,12 @@ else if("INVERSER".equals(com)){ //-- on inverse le modele --// target_.getSelectedComponent().inverserModele(); + + + target_.getModel().fireAxeContentChanged(target_.getModel().getAxeX()); - //target_.getModel().fireAxeContentChanged(target_.getModel().get); - target_.getModel().fireCourbeAspectChanged(null, false); -// target_.getModel().fireStructureChanged(); + target_.getModel().fireCourbeAspectChanged(target_.getSelectedComponent(), true); + } else if ("COPIESRC".equals(com)) { Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -1,12 +1,15 @@ package org.fudaa.ebli.visuallibrary.creator; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Component; import java.awt.Dimension; +import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; import java.awt.Stroke; +import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; @@ -15,10 +18,10 @@ import javax.swing.BorderFactory; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListModel; +import javax.swing.ImageIcon; +import javax.swing.JLabel; import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.ListCellRenderer; -import javax.swing.ListModel; +import javax.swing.UIManager; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -34,6 +37,8 @@ import org.fudaa.ebli.visuallibrary.EbliWidgetControllerActionOnly; import org.fudaa.ebli.visuallibrary.EbliWidgetWithBordure; import org.fudaa.ebli.visuallibrary.graphe.EbliWidgetCreatorGraphe; +import org.fudaa.ebli.visuallibrary.graphe.GrapheCellRenderer; +import org.fudaa.ebli.visuallibrary.graphe.GrapheTreeCellRenderer; import org.netbeans.api.visual.action.ActionFactory; import org.netbeans.api.visual.action.InplaceEditorProvider; import org.netbeans.api.visual.action.WidgetAction; @@ -218,6 +223,9 @@ if(main!=null) main.setTraceLigneModel(new TraceLigneModel(getTraceLigneModel())); + for(EbliWidget wig:getSattelite()) + wig.getTraceLigneModel().updateData(getTraceLigneModel()); + getEbliScene().refresh(); } @@ -279,6 +287,9 @@ connectionAnchor_.setStroke(stroke); connectionAnchor_.setForeground(getTraceLigneModel().getCouleur()); connectionAnchor_.setBackground(getTraceLigneModel().getCouleur()); + + + } /** @@ -314,6 +325,38 @@ } + + private static class CellArrowRenderer extends GrapheCellRenderer{ + public Component getListCellRendererComponent(JList list, + Object value, int index, boolean isSelected, + boolean cellHasFocus) { + if(!(value instanceof AnchorShape)) + return super.getListCellRendererComponent(list, value, index, isSelected, + cellHasFocus); + AnchorShape shape=(AnchorShape) value; + + ImageIcon icon=new ImageIcon(new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB)); + Graphics2D graphic=(Graphics2D) icon.getImage().getGraphics(); + graphic.translate(0, 5); + + shape.paint(graphic,false); + setIcon(icon); + + String valeur=EbliResource.EBLI.getString("Trait"); + if(value==AnchorShape.TRIANGLE_FILLED) + valeur=EbliResource.EBLI.getString("Plein"); + else + if(value==AnchorShape.TRIANGLE_HOLLOW) + valeur=EbliResource.EBLI.getString("Contour"); + else + if(value==AnchorShape.TRIANGLE_OUT) + valeur=EbliResource.EBLI.getString("Invers\xE9"); + + setText(valeur); + return super.getListCellRendererComponent(list, this, index, isSelected, + cellHasFocus); + } + } /** * Construit la bulist qui est utilis\xE9e dans le mode \xE9dition des connecteurs extr\xE9mit\xE9s de la fleche. * @param satt @@ -330,28 +373,7 @@ //-- selection par default --// selection.setSelectedIndex(1); selection.addListSelectionListener(satt); - selection.setCellRenderer(new DefaultListCellRenderer(){ - - @Override - public Component getListCellRendererComponent(JList list, - Object value, int index, boolean isSelected, - boolean cellHasFocus) { - String valeur=EbliResource.EBLI.getString("Trait"); - if(value==AnchorShape.TRIANGLE_FILLED) - valeur=EbliResource.EBLI.getString("Plein"); - else - if(value==AnchorShape.TRIANGLE_HOLLOW) - valeur=EbliResource.EBLI.getString("Contour"); - else - if(value==AnchorShape.TRIANGLE_OUT) - valeur=EbliResource.EBLI.getString("Invers\xE9"); - - return super.getListCellRendererComponent(list, valeur, index, isSelected, - cellHasFocus); - } - - }); - + selection.setCellRenderer(new CellArrowRenderer()); return selection; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/GrapheTreeCellRenderer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/GrapheTreeCellRenderer.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/GrapheTreeCellRenderer.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -16,7 +16,7 @@ /** * Tree cell Renderer classique pour afficher les icones mignature a cot\xE9 des objets * - * @author genesis + * @author Adrien Hadoux */ @SuppressWarnings("serial") public class GrapheTreeCellRenderer extends JLabel implements TreeCellRenderer { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -256,7 +256,7 @@ //-- ajotu des thumbnails si activ\xE9--// if(useThumbs) - conteneurPdf_.add(thumbscrollContainer,BorderLayout.WEST); + conteneurPdf_.add(new JScrollPane(thumbscrollContainer),BorderLayout.WEST); @@ -497,8 +497,8 @@ //-- on verifie qu'il s'agit bien d'un fichier pdf --// if(entry.getName().contains(".pdf")){ - mapEntryPdfJar_.put(entry.getName(), entry); - DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(entry.getName()); + mapEntryPdfJar_.put(entry.getName().replace(".pdf",""), entry); + DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(entry.getName().replace(".pdf","")); //-- on ajoute le node qui contient le File --// root.add(node); } @@ -516,8 +516,8 @@ //-- recuperation du no du fichier --// String nomFichierPdf=entry.getName().replace(nomRepertoire+"/","").replace("+"," "); - mapEntryPdfJar_.put(nomFichierPdf, entry); - DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(nomFichierPdf); + mapEntryPdfJar_.put(nomFichierPdf.replace(".pdf",""), entry); + DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(nomFichierPdf.replace(".pdf","")); nodeRepertoire.add(node); } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -507,12 +507,10 @@ */ public void displayHelpPDF(String url){ if(frameHelpPDF_==null){ - frameHelpPDF_=new FudaaHelpPDFViewer(url,this,true); + frameHelpPDF_=new FudaaHelpPDFViewer(url,this,false); } //-- ajout de la fenetre --//: - // this.addInternalFrame(frameHelpPDF_); - //TODO a modifier, juste pour le debugger et test - this.addInternalFrame(new FudaaHelpPDFViewer(url,this,false)); + this.addInternalFrame(frameHelpPDF_); } protected void rebuildEditionMenu(final BuMenu _dest) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActAbstract.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActAbstract.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActAbstract.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -63,6 +63,22 @@ return filterAct.process(_prog, _analyze); } + /** + * transforme la efgrid en volumique. + * @param _prog + * @param _data + * @param _analyze + * @return + */ + protected EfGridData filterToElements(final ProgressionInterface _prog, final EfGridData _data, + final CtuluAnalyze _analyze) { + final MvExportToElementDataActivity filterAct = new MvExportToElementDataActivity(_data, vects_); + setCurrentActivity(filterAct); + + return filterAct.process(_prog, _analyze); + } + + protected void addInfo(final String[] _messages, final int _nbNoeud, final int _nbEle) { addInfo(_messages, _nbNoeud); _messages[2] = MvResource.getS("Nombre d'\xE9l\xE9ments export\xE9s:"); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -17,9 +17,11 @@ import org.fudaa.dodico.ef.EfElementType; import org.fudaa.dodico.ef.EfGridData; import org.fudaa.dodico.telemac.io.SerafinFileFormat; +import org.fudaa.dodico.telemac.io.SerafinVolumeFileFormat; import org.fudaa.dodico.telemac.io.SerafinWriter; import org.fudaa.fudaa.commun.impl.FudaaPanelTaskModel; import org.fudaa.fudaa.meshviewer.MvSelectionNodeOrEltData; +import org.fudaa.fudaa.tr.post.TrPostSourceFromReader; import com.memoire.fu.FuLog; @@ -30,8 +32,13 @@ public class MvExportActSerafin extends MvExportActGrid { public static FudaaPanelTaskModel createSerafinTaskModel(final MvExportFactory _fact, final File _initFile, - final MvSelectionNodeOrEltData _selection) { - final FileFormat fmt = SerafinFileFormat.getInstance(); + final MvSelectionNodeOrEltData _selection,boolean isVolumique) { + final FileFormat fmt ; + //-- on met l'extension qui correspond le mieux au format demand\xE9 --// + if(!isVolumique) + fmt=SerafinFileFormat.getInstance(); + else + fmt=SerafinVolumeFileFormat.getInstance(); final MvExportActSerafin ser = new MvExportActSerafin(_fact.initIpobo_, _fact.iparams_); final MvExportTaskSkeleton skeleton = new MvExportTaskSkeleton(_fact.getDatas(), _fact.vects_, ser); MvExportFactory.addSingleFileChooser(skeleton, fmt, _initFile); @@ -81,6 +88,7 @@ public EfGridData toDestType(final ProgressionInterface _prog, final EfGridData _data, final CtuluAnalyze _analyze) { final EfElementType type = _data.getGrid().getEltType(); MvExportAdaptI act = null; + // le cas simple if (type == EfElementType.T3 || type == EfElementType.T3_FOR_3D) { return _data; } // le cas connu @@ -102,6 +110,13 @@ if (FuLog.isTrace()) { FuLog.trace("TRE: transform element data to node data"); } + //-- Cas volumique: on transforme le tout en volumique --// + if(_data instanceof TrPostSourceFromReader){ + TrPostSourceFromReader reader=(TrPostSourceFromReader) _data; + if(reader.isVolumique()) + return filterToElements(_prog, _data, _analyze); + } + return filterToNodes(_prog, _data, _analyze); } return _data; Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -32,6 +32,7 @@ import org.fudaa.dodico.reflux.io.CorEleBthFileFormat; import org.fudaa.dodico.rubar.io.RubarMAIFileFormat; import org.fudaa.dodico.telemac.io.SerafinFileFormat; +import org.fudaa.dodico.telemac.io.SerafinVolumeFileFormat; import org.fudaa.dodico.trigrid.TrigridFileFormat; import org.fudaa.fudaa.commun.courbe.FudaaCourbeTimeListModel; import org.fudaa.fudaa.commun.impl.FudaaGuiLib; @@ -86,6 +87,11 @@ BuFileFilter serafin_; + /** + * R\xE9serv\xE9 aux volumes finis + */ + BuFileFilter serafinVolume_; + BuFileFilter x3d_; protected final EfGridData datas_; @@ -179,8 +185,9 @@ public FudaaPanelTaskModel createExporter(final File _initFile, final BuFileFilter _filter, final MvSelectionNodeOrEltData _selection) { - if (_filter == serafin_) { - return MvExportActSerafin.createSerafinTaskModel(this, _initFile, _selection); + if (_filter == serafin_ || _filter==serafinVolume_) { + //-- on retourne un export serafin normal ou volumique selon que l'extension est volume fini --// + return MvExportActSerafin.createSerafinTaskModel(this, _initFile, _selection,(_filter==serafinVolume_)); } else if (_filter == x3d_) { return MvExportX3D.createX3dTaskModel(this, _initFile, _selection); } else if (_filter == rubarMai_) { return MvExportRubarTaskSkeleton.createRubarMaiTaskModel(this, false, @@ -202,6 +209,7 @@ FuLog.trace("no gis format to export"); } serafin_ = SerafinFileFormat.getInstance().createFileFilter(); + serafinVolume_= SerafinVolumeFileFormat.getInstance().createFileFilter(); x3d_ = new BuFileFilter("x3d"); rubarMai_ = RubarMAIFileFormat.getInstance().createFileFilter(); gridFormat_ = new HashMap(); @@ -213,6 +221,7 @@ } final List filtersList = new ArrayList(gisFormat_.size() + gridFormat_.size() + 3); filtersList.add(serafin_); + filtersList.add(serafinVolume_); filtersList.add(rubarMai_); filtersList.add(x3d_); filtersList.addAll(gisFormat_.keySet()); Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportToElementDataActivity.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportToElementDataActivity.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportToElementDataActivity.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -0,0 +1,43 @@ +package org.fudaa.fudaa.meshviewer.export; + +import org.fudaa.ctulu.CtuluActivity; +import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfNeighborMesh; + + +/** + * Exportation en transformant en \xE9l\xE9ments. + * @author Adrien Hadoux + * + */ +public class MvExportToElementDataActivity implements CtuluActivity { + + final EfGridData src_; + final InterpolationVectorContainer vects_; + + /** + * @param _src + */ + public MvExportToElementDataActivity(final EfGridData _src, final InterpolationVectorContainer _vects) { + super(); + src_ = _src; + vects_ = _vects; + } + + boolean stop_; + + public void stop() { + stop_ = true; + } + + public EfGridData process(final ProgressionInterface _prog, final CtuluAnalyze _analyze) { + + final MvExportDecoratorNodeData res = new MvExportDecoratorNodeData(src_, vects_); + if (stop_) { return null; } + return res; + + } + } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileCourbe.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileCourbe.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -10,6 +10,7 @@ import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ebli.courbe.EGCourbeChild; import org.fudaa.ebli.courbe.EGModel; +import org.fudaa.ebli.courbe.EGModelDecorator; /** * @author fred deniger @@ -39,7 +40,11 @@ @Override public void setModel(final EGModel _model) { - if (!(_model instanceof MVProfileCourbeModel)) { throw new IllegalAccessError(); } + if (!(_model instanceof MVProfileCourbeModel) ){ + + if(!(_model instanceof EGModelDecorator) ) + { throw new IllegalAccessError(); } + } super.setModel(_model); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -127,6 +127,8 @@ r.add(RubarMAIFileFormat.getInstance()); r.add(RubarDATFileFormat.getInstance()); r.add(SerafinFileFormat.getInstance()); + r.add(SerafinVolumeFileFormat.getInstance()); + r.add(INPFileFormat.getInstance()); r.add(DunesMAIFileFormat.getInstance()); return getArray(r); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -1125,6 +1125,8 @@ } + //-- recuperation de la reference vers le meme projet --// + duplic.projet_=this.projet_; return duplic; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -1615,7 +1615,7 @@ } public void setProjectSaved() { - modifyState_.clearModified(); + //modifyState_.clearModified(); } public boolean isOpened(final File _f) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java 2009-02-25 10:12:28 UTC (rev 4497) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java 2009-02-25 19:03:51 UTC (rev 4498) @@ -132,6 +132,7 @@ return FDicoLib.getS("Comparaison"); } + protected static void activeComparaison(final TrPostSource _src, final TrPostSource _toProject, final String _quickDiff, final TrPostProjet projet) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-25 10:12:31
|
Revision: 4497 http://fudaa.svn.sourceforge.net/fudaa/?rev=4497&view=rev Author: bmarchan Date: 2009-02-25 10:12:28 +0000 (Wed, 25 Feb 2009) Log Message: ----------- Nettoyage pour supprimer adh?\195?\169rence au package tr. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportTreeModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlResource.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/ZDialog.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dAxe.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dBank.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dLimiteStockage.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dTrace.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dProfile.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -50,11 +50,11 @@ InterpolationActionListener l=new InterpolationActionListener(); ButtonGroup bg=new ButtonGroup(); - rbNbPts_=new BuRadioButton(MdlResource.MDL.getString("Nombre de points supprim\xE9s entre 2 points conserv\xE9s")); + rbNbPts_=new BuRadioButton(MdlResource.getS("Nombre de points supprim\xE9s entre 2 points conserv\xE9s")); rbNbPts_.addActionListener(l); bg.add(rbNbPts_); - rbDist_=new BuRadioButton(MdlResource.MDL.getString("Distance minimale entre 2 points (m)")); + rbDist_=new BuRadioButton(MdlResource.getS("Distance minimale entre 2 points (m)")); rbDist_.addActionListener(l); bg.add(rbDist_); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -47,7 +47,6 @@ import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.FSigProjectPersistence; import org.fudaa.fudaa.sig.FSigResource; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuAbstractPreferencesPanel; import com.memoire.bu.BuBrowserPreferencesPanel; @@ -647,12 +646,12 @@ lc.setBorder(null); // rc.setBorder(new EmptyBorder(0,2,0,2)); BuTaskView taches = new BuTaskView(); - taches.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + taches.setToolTipText(MdlResource.getS("Les t\xE2ches en cours")); final BuScrollPane sp = new BuScrollPane(taches); sp.setPreferredSize(new Dimension(150, 80)); - sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + sp.setToolTipText(MdlResource.getS("Les t\xE2ches en cours")); rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp, - true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches")); + true, this).setToolTipText(MdlResource.getS("Cacher/Afficher les t\xE2ches")); mp.setTaskView(taches); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -22,7 +22,6 @@ import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeInterface; -import org.fudaa.ctulu.gis.GISDataModel; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISZoneCollection; import org.fudaa.ctulu.gui.CtuluDialogPanel; @@ -43,7 +42,6 @@ import org.fudaa.ebli.trace.TraceSurfaceModel; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuComboBox; @@ -105,7 +103,7 @@ if(calquesProfil_.containsKey(pn_.getScene().getCalqueActif().getTitle())) cbProfil_.setSelectedItem(pn_.getScene().getCalqueActif().getTitle()); if(calquesProfil_.size()==0) - setErrorText(TrResource.getS("Aucun calque de profil n'a \xE9t\xE9 trouv\xE9, l'interpolation est impossible.")); + setErrorText(MdlResource.getS("Aucun calque de profil n'a \xE9t\xE9 trouv\xE9, l'interpolation est impossible.")); Container cont=new Container(); cont.setLayout(new GridLayout(1, 2, 2, 2)); cont.add(new BuLabel(FudaaLib.getS("Calque de destination : "))); @@ -194,7 +192,7 @@ @Override public boolean valide() { if (trLayers_.getSelectionCount()==0) { - setErrorText(TrResource.getS("Vous devez s\xE9lectionner au moins 1 semis")); + setErrorText(MdlResource.getS("Vous devez s\xE9lectionner au moins 1 semis")); return false; } return true; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -29,8 +29,6 @@ import javax.swing.border.Border; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; import javax.swing.filechooser.FileFilter; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; @@ -44,7 +42,6 @@ import org.fudaa.fudaa.modeleur.MdlImplementation.MdlFileFilter; import org.fudaa.fudaa.modeleur.MdlProjectImportTreeModel.LayerNode; import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuInformationsSoftware; import com.memoire.bu.BuLabel; @@ -227,7 +224,7 @@ return false; } if (!flt_.accept(f)) { - setErrorText(TrResource.getS("Le fichier choisi n'est pas un fichier projet")); + setErrorText(MdlResource.getS("Le fichier choisi n'est pas un fichier projet")); return false; } setErrorText(null); @@ -245,7 +242,7 @@ // } } catch (IOException _exc) { - setErrorText(TrResource.getS("Le fichier n'est pas accessible")); + setErrorText(MdlResource.getS("Le fichier n'est pas accessible")); } return loader_; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportTreeModel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportTreeModel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectImportTreeModel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -7,47 +7,12 @@ */ package org.fudaa.fudaa.modeleur; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import javax.swing.JFileChooser; -import javax.swing.JTree; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.filechooser.FileFilter; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; -import com.memoire.bu.BuCheckBox; -import com.memoire.bu.BuVerticalLayout; -import com.memoire.fu.FuLog; - import org.fudaa.ctulu.CtuluArkSaver; -import org.fudaa.ctulu.CtuluLib; -import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluXmlReaderHelper; -import org.fudaa.ctulu.gui.CtuluDialogPanel; -import org.fudaa.ctulu.gui.CtuluFileChooserPanel; - -import org.fudaa.ebli.calque.BCalquePersistenceGroupe; -import org.fudaa.ebli.calque.BCalqueSaverSingle; - -import org.fudaa.fudaa.commun.save.FudaaSaveLib; import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; -import org.fudaa.fudaa.modeleur.MdlImplementation.MdlFileFilter; -import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.tr.common.TrProjectPersistence; -import org.fudaa.fudaa.tr.common.TrResource; -import org.geotools.referencing.cs.DefaultAffineCS; /** * Un modele d'arbre bas\xE9 sur un fichier projet, pour la repr\xE9sentation des calques existants dans ce fichier. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -21,7 +21,6 @@ import org.fudaa.ctulu.gis.GISDataModel; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISZoneCollection; -import org.fudaa.ctulu.gis.GISZoneCollectionGeometry; import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.CalqueGISTreeModel; @@ -38,7 +37,6 @@ import org.fudaa.ebli.trace.TraceSurface; import org.fudaa.ebli.trace.TraceSurfaceModel; import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuLabel; import com.memoire.bu.BuVerticalLayout; @@ -156,7 +154,7 @@ @Override public boolean valide() { if (trLayers_.getSelectionCount()==0) { - setErrorText(TrResource.getS("Vous devez s\xE9lectionner au moins 1 semis")); + setErrorText(MdlResource.getS("Vous devez s\xE9lectionner au moins 1 semis")); return false; } return true; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -50,11 +50,11 @@ RefinementActionListener l=new RefinementActionListener(); ButtonGroup bg=new ButtonGroup(); - rbNbPts_=new BuRadioButton(MdlResource.MDL.getString("Nombre de points ajout\xE9s entre 2 points")); + rbNbPts_=new BuRadioButton(MdlResource.getS("Nombre de points ajout\xE9s entre 2 points")); rbNbPts_.addActionListener(l); bg.add(rbNbPts_); - rbDist_=new BuRadioButton(MdlResource.MDL.getString("Distance maximale entre 2 points (m)")); + rbDist_=new BuRadioButton(MdlResource.getS("Distance maximale entre 2 points (m)")); rbDist_.addActionListener(l); bg.add(rbDist_); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlResource.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlResource.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlResource.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -24,4 +24,16 @@ super(_b); } + public static String getS(final String _s) { + return MDL.getString(_s); + } + + public static String getS(final String _s, final String _v0) { + return MDL.getString(_s, _v0); + } + + public static String getS(final String _s, final String _v0, final String _v1) { + return MDL.getString(_s, _v0, _v1); + } + } \ No newline at end of file Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -201,11 +201,11 @@ // Dans le cas contraire, on demande \xE0 l'utilisateur else{ // Pour le titre de la popup, on met le titre de la geom si possible - String titre=MdlResource.MDL.getString("Nom : "); + String titre=MdlResource.getS("Nom : "); if(zoneSource.getIndiceOf(GISAttributeConstants.TITRE)!=-1) titre+=(String) zoneSource.getValue(zoneSource.getIndiceOf(GISAttributeConstants.TITRE), _idxSource[i]); else - titre+=MdlResource.MDL.getString("sans nom"); + titre+=MdlResource.getS("sans nom"); // Instanciation de la popup ZDialog dialog =new ZDialog(calquePanel_.getEditor().getFrame(), titre); dialog.setVisible(true); @@ -295,9 +295,9 @@ String title; if (getScene().isAtomicMode()) - title=MdlResource.MDL.getString("D\xE9cimation entre 2 sommets"); + title=MdlResource.getS("D\xE9cimation entre 2 sommets"); else - title=MdlResource.MDL.getString("D\xE9cimation sur une ou plusieurs polyligne(s)"); + title=MdlResource.getS("D\xE9cimation sur une ou plusieurs polyligne(s)"); if (pnDecimation_.afficheModaleOk(pn_.getFrame(), title)) { // Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est @@ -343,9 +343,9 @@ String title; if (getScene().isAtomicMode()) - title=MdlResource.MDL.getString("Raffinement entre 2 sommets"); + title=MdlResource.getS("Raffinement entre 2 sommets"); else - title=MdlResource.MDL.getString("Raffinement sur une polyligne"); + title=MdlResource.getS("Raffinement sur une polyligne"); if (pnRaffinement_.afficheModaleOk(pn_.getFrame(), title)) { // Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -40,7 +40,6 @@ import org.fudaa.fudaa.sig.layer.FSigImageImportAction; import org.fudaa.fudaa.sig.layer.FSigLayerGroup; import org.fudaa.fudaa.sig.layer.FSigVisuPanel; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuMenu; import com.memoire.bu.BuPopupMenu; @@ -163,7 +162,7 @@ */ protected void buildImageGroup() { cqImg_ = new BGroupeCalque(); - cqImg_.setTitle(MdlResource.MDL.getString("Fond de carte")); + cqImg_.setTitle(MdlResource.getS("Fond de carte")); cqImg_.setName("gcImg"); cqImg_.setDestructible(false); addCalque(cqImg_); @@ -174,9 +173,9 @@ */ protected void buildAltiLayerGroup(boolean _build) { cqAlti_ = new BGroupeCalque(); - cqAlti_.setTitle(MdlResource.MDL.getString("Donn\xE9es altim\xE9triques")); + cqAlti_.setTitle(MdlResource.getS("Donn\xE9es altim\xE9triques")); cqAlti_.setName("gcAlti"); - cqAlti_.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Permet le stockage des donn\xE9es altim\xE9triques")); + cqAlti_.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Permet le stockage des donn\xE9es altim\xE9triques")); cqAlti_.setDestructible(false); addCalque(cqAlti_); @@ -200,9 +199,9 @@ */ protected void buildSingLayerGroup(boolean _build) { cqSing_ = new BGroupeCalque(); - cqSing_.setTitle(MdlResource.MDL.getString("Singularit\xE9s")); + cqSing_.setTitle(MdlResource.getS("Singularit\xE9s")); cqSing_.setName("gcSing"); - cqSing_.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Permet le stockage singularit\xE9s 2D")); + cqSing_.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Permet le stockage singularit\xE9s 2D")); cqSing_.setDestructible(false); addCalque(cqSing_); @@ -230,9 +229,9 @@ */ protected void buildModel1dLayerGroup(boolean _build) { cqMdl1d_ = new BGroupeCalque(); - cqMdl1d_.setTitle(MdlResource.MDL.getString("Entit\xE9s 1D")); + cqMdl1d_.setTitle(MdlResource.getS("Entit\xE9s 1D")); cqMdl1d_.setName("gcMdl1d"); - cqMdl1d_.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Stocke le mod\xE8le")); + cqMdl1d_.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Stocke le mod\xE8le")); cqMdl1d_.setDestructible(false); addCalque(cqMdl1d_); @@ -263,9 +262,9 @@ */ protected void buildBiefsLayerGroup() { cqBiefs_ = new BGroupeCalque(); - cqBiefs_.setTitle(MdlResource.MDL.getString("Biefs")); + cqBiefs_.setTitle(MdlResource.getS("Biefs")); cqBiefs_.setName("gcBiefs"); - cqBiefs_.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Les biefs")); + cqBiefs_.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Les biefs")); cqBiefs_.setDestructible(false); addCalque(cqBiefs_); } @@ -277,9 +276,9 @@ BGroupeCalque cqBief=new BGroupeCalque(); cqBief.setTitleModifiable(true); String name=BGroupeCalque.findUniqueChildName(cqBiefs_); - cqBief.setTitle(cqBiefs_.findUniqueChildTitle(MdlResource.MDL.getString("Bief"))); + cqBief.setTitle(cqBiefs_.findUniqueChildTitle(MdlResource.getS("Bief"))); cqBief.setName(name); - cqBief.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Un bief")); + cqBief.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Un bief")); cqBief.setDestructible(true); cqBiefs_.add(cqBief); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/ZDialog.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/ZDialog.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/ZDialog.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -25,7 +25,7 @@ /** * Fen\xEAtre modale pour l'obtension d'un Z. * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class ZDialog extends JDialog implements ActionListener { private JComponent text_; @@ -39,9 +39,9 @@ JPanel container=new JPanel(new BuBorderLayout(2, 2)); container.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); text_=GISAttributeConstants.BATHY.getEditor().createEditorComponent(); - JButton ok=new JButton(MdlResource.MDL.getString("Valider")); + JButton ok=new JButton(MdlResource.getS("Valider")); ok.addActionListener(this); - container.add(new BuLabel(MdlResource.MDL.getString("Valeur de Z :")), BuBorderLayout.WEST); + container.add(new BuLabel(MdlResource.getS("Valeur de Z :")), BuBorderLayout.WEST); container.add(text_, BuBorderLayout.EAST); container.add(ok, BuBorderLayout.SOUTH); add(container); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dAxe.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dAxe.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dAxe.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -36,7 +36,7 @@ setLineModel(0, new TraceLigneModel(TraceLigne.POINTILLE, 2f, new Color(0,125,0))); setLineModelOuvert(getLineModel(0)); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Axes hydrauliques")); + setTitle(MdlResource.getS("Axes hydrauliques")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dBank.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dBank.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dBank.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -35,7 +35,7 @@ setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1.5f, new Color(102,102,255))); setLineModelOuvert(getLineModel(0)); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Rives")); + setTitle(MdlResource.getS("Rives")); } public MdlLayer1dBank(FSigEditor _editor) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dLimiteStockage.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dLimiteStockage.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dLimiteStockage.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -22,7 +22,7 @@ * Un calque pour le stockage et la manipulation des lignes de constraintes. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ * */ public class MdlLayer1dLimiteStockage extends MdlLayer2dLine { @@ -39,7 +39,7 @@ setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1.5f, Color.green)); setLineModelOuvert(getLineModel(0)); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Limites de stockages")); + setTitle(MdlResource.getS("Limites de stockages")); } public MdlLayer1dLimiteStockage(FSigEditor _editor) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dTrace.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dTrace.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer1dTrace.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -37,7 +37,7 @@ setLineModelOuvert(getLineModel(0)); // _model.addListener(this); A implementer. setName(getExtName()); - setTitle(MdlResource.MDL.getString("Trace profils")); + setTitle(MdlResource.getS("Trace profils")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -41,7 +41,7 @@ super(_model,_editor); setName(getExtName()); setIconModel(0, new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, new Color(0,190,0))); - setTitle(MdlResource.MDL.getString("Semis de points")); + setTitle(MdlResource.getS("Semis de points")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -36,7 +36,7 @@ setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1.5f, new Color(204,0,0))); setLineModelOuvert(getLineModel(0)); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Lignes de contraintes")); + setTitle(MdlResource.getS("Lignes de contraintes")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -40,7 +40,7 @@ setIconModel(0, new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, new Color(153,92,0).darker())); setIconModel(1, new TraceIconModel(getIconModel(0))); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Contours d'\xE9tude")); + setTitle(MdlResource.getS("Contours d'\xE9tude")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -37,7 +37,7 @@ setLineModelOuvert(getLineModel(0)); // _model.addListener(this); A implementer. setName(getExtName()); - setTitle(MdlResource.MDL.getString("Lignes directrices")); + setTitle(MdlResource.getS("Lignes directrices")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -34,7 +34,7 @@ /** * Sp\xE9cifique, la valeur Z atomique pour les courbes de niveau. * @author Bertrand Marchand - * @version $Id:$ + * @version $Id$ */ class CalqueFindExpressionAtomicLevel extends CalqueFindExpressionAtomic { Variable varZ_; @@ -74,7 +74,7 @@ setLineModel(0, new TraceLigneModel(TraceLigne.TIRETE, 2f, Color.GRAY)); setLineModelOuvert(getLineModel(0)); - setTitle(MdlResource.MDL.getString("Lignes de niveau")); + setTitle(MdlResource.getS("Lignes de niveau")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dProfile.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dProfile.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dProfile.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -43,7 +43,7 @@ setLineModelOuvert(getLineModel(0)); // _model.addListener(this); A implementer. setName(getExtName()); - setTitle(MdlResource.MDL.getString("Profils")); + setTitle(MdlResource.getS("Profils")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -40,7 +40,7 @@ setIconModel(0, new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, new Color(0,153,153).darker())); setIconModel(1, new TraceIconModel(getIconModel(0))); setName(getExtName()); - setTitle(MdlResource.MDL.getString("Zones")); + setTitle(MdlResource.getS("Zones")); setAttributForLabels(GISAttributeConstants.LABEL); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -29,7 +29,7 @@ */ public MdlModel2dLevel(final ZModelGeometryListener _listener, final CtuluCommandContainer _cmd) { super(_listener); - GISAttributeDouble zglob=new GISAttributeDouble(MdlResource.MDL.getString("Z"),false); + GISAttributeDouble zglob=new GISAttributeDouble(MdlResource.getS("Z"),false); GISAttribute[] attrs=new GISAttribute[]{ zglob, GISAttributeConstants.ETAT_GEOM, Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportPanel.java 2009-02-25 07:11:56 UTC (rev 4496) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportPanel.java 2009-02-25 10:12:28 UTC (rev 4497) @@ -19,8 +19,8 @@ import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluFileChooserPanel; import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.fudaa.modeleur.MdlResource; import org.fudaa.fudaa.sig.FSigLib; -import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuFileFilter; import com.memoire.bu.BuLabel; @@ -70,7 +70,7 @@ * @return */ public boolean run(){ - return CtuluDialogPanel.isOkResponse(afficheModale(this, FudaaLib.getS("Exporter le bief courant"))); + return CtuluDialogPanel.isOkResponse(afficheModale(this, MdlResource.getS("Exporter le bief courant"))); } public boolean valide() { @@ -82,7 +82,7 @@ private boolean isFileOK() { final File f=fileChooser_.getFile(); if (f==null) { - setErrorText(CtuluLib.getS("Donnez un nom au fichier d'exportation")); + setErrorText(MdlResource.getS("Donnez un nom au fichier d'exportation")); return false; } // Verification de l'extension @@ -94,7 +94,7 @@ } } if (!accept) { - setErrorText(TrResource.getS("Le fichier choisi a une extension inconnue")); + setErrorText(MdlResource.getS("Le fichier choisi a une extension inconnue")); return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2009-02-25 07:12:07
|
Revision: 4496 http://fudaa.svn.sourceforge.net/fudaa/?rev=4496&view=rev Author: hadouxad Date: 2009-02-25 07:11:56 +0000 (Wed, 25 Feb 2009) Log Message: ----------- * Mise en place du design patern decorator pour le EGModel + Cr?\195?\169ation du mod?\195?\168le inverse + prise en compte du mod?\195?\168le inverse comme action de la courbe + Persistance des donn?\195?\169es: l'inversion est persist?\195?\169 par un simple bool?\195?\169en dans EGourbePersist. Les donn?\195?\169es enregistr?\195?\169es sont celle du mod?\195?\168le initial. * Persistance des fl?\195?\168che connector et am?\195?\169lioration de l'?\195?\169diteur *Mise en place du format volume fini pour le superviseur et execution automatique des fichiers depuis ce dernier Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActAbstract.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrApplicationManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator2.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceBuilder.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFilter.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFormat.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/ascenseur/Thumbs.db branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/rotation/Thumbs.db branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/translation/Thumbs.db branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.lock branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.mylyn/contexts/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.mylyn/offline/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.mylyn/repositories.xml.zip branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/com.itsolut.mantis.core/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/com.itsolut.mantis.core/repositoryConfigurations branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.history/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.safetable/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload0.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload1.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload2.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload3.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload4.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload5.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload6.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload7.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/upload8.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.epp.usagedata.recording/usagedata.csv branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.jdt.core/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.jdt.ui/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.team.cvs.core/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.ui.workbench/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.wst.jsdt.core/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.wst.jsdt.core/variablesAndContainers.dat branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.wst.jsdt.ui/ branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.wst.jsdt.ui/OpenTypeHistory.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.wst.jsdt.ui/QualifiedTypeNameHistory.xml branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/version.ini Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecorator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorInverse.java Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -60,6 +60,16 @@ // correctio long readTimeStepFrom_ = -1; + + + public SerafinNewReader(){ + this(false); + } + + public SerafinNewReader(boolean isVolumique){ + isVolumique_=isVolumique; + } + /** * @return true si on doit lire que le dernier pas de temps */ Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFilter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFilter.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFilter.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -0,0 +1,78 @@ +package org.fudaa.dodico.telemac.io; + +import java.io.File; + +import com.memoire.bu.BuFileFilter; + +/** + * Filter fichier volumes finis. + * @author Adrien Hadoux + * + */ +public class SerafinVolumeFileFilter extends BuFileFilter { + + /** + * @param _ft le format serafin + */ + public SerafinVolumeFileFilter(final SerafinVolumeFileFormat _ft) { + super(_ft.getExtensions(), _ft.getName()); + } + boolean strict_; + + public SerafinVolumeFileFilter(final SerafinVolumeFileFormat _ft, final boolean _strict) { + super( _ft.getExtensions(), _ft.getName()); + strict_ = _strict; + } + + public boolean accept(final File _d, final String _fn) { + if (_fn == null) { + return false; + } + boolean res = super.accept(_d, _fn); + if (strict_) { + return res; + } + if (!res) { + res = isOk(_fn); + } + return res; + } + + private boolean isOk(final String _name) { + if ((_name.indexOf('.') < 0)) { + return _name.startsWith("volafin") || _name.startsWith("volfin") || _name.endsWith("vol")|| _name.endsWith("volume"); + } + return false; + } + + public boolean accept(final File _f) { + if (_f == null) { + return false; + } + final String name = _f.getName(); + if (name == null) { + return false; + } + boolean res = super.accept(_f); + if (!res) { + res = isOk(name); + } + return res; + } + + /** + * @param _name le nom du fichier a tester + * @return true si c'est un fichier r\xE9sultat + */ + public boolean isResFile(final String _name) { + return _name.toLowerCase().endsWith(".vol")|| _name.endsWith(".volfin")|| _name.toLowerCase().endsWith(".volafin")|| _name.toLowerCase().endsWith(".volume"); + } + + /** + * @param _f le fichier a tester + * @return true si c'est un fichier r\xE9sultat + */ + public boolean isResFile(final File _f) { + return _f.isFile() && isResFile(_f.getName()); + } + } \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFormat.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFormat.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinVolumeFileFormat.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -0,0 +1,316 @@ +package org.fudaa.dodico.telemac.io; + +import java.io.File; + +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.dodico.dico.DicoLanguage; +import org.fudaa.dodico.ef.EfElementType; +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.ef.EfGridSource; +import org.fudaa.dodico.ef.FileFormatGridVersion; +import org.fudaa.dodico.fichiers.FileFormatSoftware; +import org.fudaa.dodico.h2d.resource.H2dResource; +import org.fudaa.dodico.h2d.type.H2dFileFormatType; + +import com.memoire.bu.BuFileFilter; + +/** + * Gestion des fichiers serafin pour les volumes + * @author Adrien Hadoux + * + */ +public class SerafinVolumeFileFormat extends FileFormatUnique implements SerafinFileFormatVersionInterface,FileFormatGridVersion { + + private static final SerafinVolumeFileFormat INSTANCE = new SerafinVolumeFileFormat(); + + /** + * Nombre de param dans le tableau IParam. + */ + public static final int IPARAM_NB = 10; + + /** + * @return le nom de la variable utilisee pour designer le fond + */ + public static String[] getCommonVariableFond() { + return new String[] { "FOND", "BOTTOM", "COTE_DU_FOND", "BOTTOM_LEVEL", "altimetrie" }; + } + + public static boolean is3DGrid(final EfGridInterface _grid) { + return _grid != null && (EfElementType.T3_FOR_3D == _grid.getEltType() || EfElementType.T6 == _grid.getEltType()); + } + + public static int getNbPlanIn3D(final int[] _iparams) { + if (_iparams != null && _iparams.length == IPARAM_NB) { return _iparams[6]; } + return 1; + } + + /** + * @return BOTTOM + */ + public static String getEnVariableFond() { + return "BOTTOM"; + } + + /** + * @return FOND + */ + public static String getFrVariableFond() { + return "FOND"; + } + + /** + * @return le singleton + */ + public static SerafinVolumeFileFormat getInstance() { + return INSTANCE; + } + + /** + * @return le nom de la variable a utiliser pour la bathymetrie. dans le langage utilise (fr ou en) + */ + public static String getStaticDefaultVariableFond() { + return SerafinFileFormat.getVariableFond(DicoLanguage.getCurrentID()); + } + + /** + * @param _dicoLanguageIdx l'identifiant du langage + * @return le nom de la variable a utiliser pour la bathymetrie. + * @see DicoLanguage#getCurrentID() + */ + public static String getVariableFond(final int _dicoLanguageIdx) { + if (_dicoLanguageIdx == DicoLanguage.ENGLISH_ID) { return getEnVariableFond(); } + return getFrVariableFond(); + } + + /** + * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou + * "unpackad form"). Teste en fait si IPARAM[1]==1. + * + * @param _s le tableau iparam utilise pour savoir si colonne ou non. + * @return FormatEnColonne + */ + public static boolean isFormatEnColonneCommon(final int[] _s) { + return _s[0] == 1 ? true : false; + } + + /** + * A partir de <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du + * 10 element vaut 1, la date est definie. + * + * @param _s talbeau iparam a tester + * @return true si Idate definie dans le projet. + */ + public static boolean isIdateDefiniCommon(final int[] _s) { + if (_s[9] == 1) { return true; } + return false; + } + + protected SerafinVolumeFileFormat() { + super(1); + extensions_ = new String[] { "vol", "volafin", "volfin", "vol3d", "vol2d", "volu" }; + id_ = "SERAFIN VOLUME"; + nom_ = "Volumes Serafin"; + description_ = H2dResource + .getS("Fichier binaire comportant le mod\xE8le num\xE9rique de terrain et des propri\xE9t\xE9s nodales"); + software_ = FileFormatSoftware.TELEMAC_IS; + type_ = H2dFileFormatType.MAILLAGE; + } + + /** + * @return true + */ + public boolean canWriteOnlyGrid() { + return true; + } + + public boolean containsGrid() { + return true; + } + + public BuFileFilter createFileFilter() { + return new SerafinVolumeFileFilter(this); + } + + public BuFileFilter createFileFilterStrict() { + return new SerafinVolumeFileFilter(this, true); + } + + /** + * @return le reader. + */ + public FileReadOperationAbstract createReader() { + return createSerafinReader(); + } + + /** + * @return le reader + */ + public SerafinNewReader createSerafinReader() { + return new SerafinNewReader(true); + } + + /** + * @return le writer + */ + public SerafinWriter createSerafinWriter() { + return new SerafinWriter(this); + } + + /** + * Lit le dernier pas de temps uniquement. + * + * @param _file le fichier a lire + * @param _prog la progression + * @return synthese de l'operation + */ + public CtuluIOOperationSynthese readLast(final File _file, final ProgressionInterface _prog) { + final SerafinNewReader r = createSerafinReader(); + r.setOnlyReadLast(true); + return r.read(_file, _prog); + } + + /** + * @return le writer. + */ + public FileWriteOperationAbstract createWriter() { + return createSerafinWriter(); + } + + public String getDefaultVariableFond() { + return getStaticDefaultVariableFond(); + } + + public int getParamNb() { + return IPARAM_NB; + } + + /** + * @return le nom de la variable utilisee pour designer le fond + */ + public String[] getVariableFond() { + return getCommonVariableFond(); + } + + public String getVersionName() { + return CtuluLibString.UN; + } + + /** + * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou + * "unpackad form"). Teste en fait si IPARAM[1]==1. + * + * @param _s le tableau iparam utilise pour savoir si colonne ou non. + * @return FormatEnColonne + */ + public boolean isFormatEnColonne(final int[] _s) { + return _s[0] == 1 ? true : false; + } + + /** + * A partir de <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du + * 10 element vaut 1, la date est definie. + * + * @param _s talbeau iparam a tester + * @return true si Idate definie dans le projet. + */ + public boolean isIdateDefini(final int[] _s) { + if (_s[9] == 1) { return true; } + return false; + } + + public CtuluIOOperationSynthese readGrid(final File _f, final ProgressionInterface _prog) { + final SerafinNewReader i = createSerafinReader(); + i.setOnlyReadLast(true); + final CtuluIOOperationSynthese r = i.read(_f, _prog); + i.setProgressReceiver(null); + final SerafinAdapter adapter = (SerafinAdapter) r.getSource(); + if (adapter == null) { return r; } + adapter.majGridFond(); + + return r; + } + + public CtuluIOOperationSynthese readListPoint(final File _f, final ProgressionInterface _prog) { + final CtuluIOOperationSynthese s = read(_f, _prog); + s.setSource(((SerafinInterface) s.getSource()).getGrid()); + return s; + } + + /** + * @param _s tableau a modifier afin de prendre en compte la date. + */ + public void setDateDefini(final int[] _s) { + _s[9] = 1; + } + + /** + * @param _s le tableau iparam a modifier pour le format colonne + */ + public void setFormatColonne(final int[] _s) { + _s[0] = 1; + } + + /** + * @param _s tableau a modifier afin de ne pas prendre en compte la date. + */ + public void unsetDateDefini(final int[] _s) { + _s[9] = 0; + } + + /** + * @param _s le tableau iparam a modifier pour ne pas etre dans le format colonne + */ + public void unsetFormatColonne(final int[] _s) { + _s[0] = 0; + } + + /** + * @param _f le fichier a ecrire. + * @param _source la source pour ecrire. + * @param _prog la barre de progression + * @return la synthese de l'operation + */ + public CtuluIOOperationSynthese write(final File _f, final SerafinInterface _source, final ProgressionInterface _prog) { + final SerafinWriter w = new SerafinWriter(this); + w.setFile(_f); + w.setProgressReceiver(_prog); + return w.write(_source); + } + + /** + * @param _f le fichier a ecrire + * @param _m le maillage a ecrire + * @param _prog la barre de progression + * @return la synthese de l'operation + */ + public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridInterface _m, final ProgressionInterface _prog) { + return write(_f, new SerafinMaillageAdapter(this, _m), _prog); + } + + public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridSource _m, final ProgressionInterface _prog) { + return write(_f, new SerafinGridSourceAdapter(_m, this, getDefaultVariableFond()), _prog); + } + + /** + * Ecrit dans le format binaire adapte au systeme OS. + * + * @param _f le fichier a ecrire. + * @param _source la source pour ecrire + * @param _prog la barre de progression + * @return la synthese de l'ecriture. + */ + public CtuluIOOperationSynthese writeSparc(final File _f, final SerafinInterface _source, + final ProgressionInterface _prog) { + final SerafinWriter w = new SerafinWriter(this); + w.setMachineSPARC(); + w.setFile(_f); + w.setProgressReceiver(_prog); + return w.write(_source); + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -67,7 +67,7 @@ // private double[] markH_; - EgCourbeDecorator decorator_; + /** * la liste des valeurs marquees @@ -101,7 +101,7 @@ iconeModel_ = new TraceIconModel(TraceIcon.RIEN, 1, Color.BLACK); lineModel_ = new TraceLigneModel(); model_ = _model; - decorator_=new EgCourbeDecoratorDefault(); + } private void buildLigneMarqueur() { @@ -435,87 +435,86 @@ return; } - //-- le decorator prend en charge le dessin de la courbe --// - decorator_.dessine(_g, this, _t); + -// final Shape oldClip = _g.getClip(); -// final int minX = _t.getMinEcranX(); -// final int adjust = 3; -// _g.setClip(minX - adjust, 0, _t.getMaxEcranX() - minX + adjust * 2, _t.getH()); -// final int nbPt = model_.getNbValues(); -// double xi, yi, xie, yie; -// boolean xiVisible; -// boolean yiVisible; -// double xpe = 0; -// double ype = 0; -// double ypeVal=0; -// boolean xpVisible = false; -// Envelope rangeDisplayed = null; -// _g.setColor(EbliLib.getAlphaColor(getAspectContour(), alpha_)); -// final boolean isAlphaChanged = EbliLib.isAlphaChanged(alpha_); -// final TraceIcon trIcon = new TraceIcon(isAlphaChanged ? new TraceIconModel(iconeModel_) : iconeModel_); -// final TraceLigne trLigne = new TraceLigne(isAlphaChanged ? new TraceLigneModel(lineModel_) : lineModel_); -// if (isAlphaChanged) { -// trIcon.setCouleur(EbliLib.getAlphaColor(trIcon.getCouleur(), alpha_)); -// trLigne.setCouleur(EbliLib.getAlphaColor(trLigne.getCouleur(), alpha_)); -// } -// for (int i = 0; i < nbPt; i++) { -// xi = model_.getX(i); -// yi = model_.getY(i); -// xie = _t.getXEcran(xi); -// yie = _t.getYEcran(yi, getAxeY()); -// xiVisible = _t.getXAxe().containsPoint(xi); -// yiVisible = getAxeY().containsPoint(yi); -// -// if (model_.isPointDrawn(i) && xiVisible && yiVisible && iconeModel_.getType() != TraceIcon.RIEN) { -// if (displayTitleOnCurve_) { -// if (rangeDisplayed == null) { -// rangeDisplayed = new Envelope(); -// } -// rangeDisplayed.expandToInclude(xi, yi); -// } -// // icone_.couleur(getAspectContour()); -// trIcon.paintIconCentre(_g, xie, yie); -// } -// if ((i > 0) && model_.isSegmentDrawn(i - 1) && (xpVisible || xiVisible || _t.getXAxe().isContained(xpe, xie))) { -// if (displayTitleOnCurve_) { -// if (rangeDisplayed == null) { -// rangeDisplayed = new Envelope(); -// } -// rangeDisplayed.expandToInclude(xi, yi); -// } -// paintSurface(_g, _t, i); -// -// if(!nuagePoints_){ -// //-- attention si le point depasse de l'\xE9cran il faut dessinner le trait jusqu'\xE0 la limite de l'axe--// -// double newyi=Math.min(yi, getAxeY().getMaximum()); -// newyi=Math.max(newyi, getAxeY().getMinimum()); -// double newyie=_t.getYEcran(newyi, getAxeY()); -// -// double newyi2=Math.min(ypeVal, getAxeY().getMaximum()); -// newyi2=Math.max(newyi2, getAxeY().getMinimum()); -// double newyie2=_t.getYEcran(newyi2, getAxeY()); -// -// trLigne.dessineTrait(_g, xie, newyie, xpe, newyie2); -// -// } -// else{ -// //-- trace un + --// -// //-- ligne | --// -// trLigne.dessineTrait(_g, xie, yie-largeurPointsNuage_/2, xie, yie+largeurPointsNuage_/2); -// //--ligne - --// -// trLigne.dessineTrait(_g, xie-largeurPointsNuage_/2, yie, xie+largeurPointsNuage_/2, yie); -// //dessineRectangle(_g, xie-largeurPointsNuage_/2, yie-largeurPointsNuage_/2, largeurPointsNuage_, largeurPointsNuage_); -// } -// } -// xpVisible = xiVisible; -// xpe = xie; -// ype = yie; -// ypeVal=yi; -// } -// _g.setClip(oldClip); -// traceMarks(_g, _t); -// traceTitle(_g, _t, rangeDisplayed); + final Shape oldClip = _g.getClip(); + final int minX = _t.getMinEcranX(); + final int adjust = 3; + _g.setClip(minX - adjust, 0, _t.getMaxEcranX() - minX + adjust * 2, _t.getH()); + final int nbPt = model_.getNbValues(); + double xi, yi, xie, yie; + boolean xiVisible; + boolean yiVisible; + double xpe = 0; + double ype = 0; + double ypeVal=0; + boolean xpVisible = false; + Envelope rangeDisplayed = null; + _g.setColor(EbliLib.getAlphaColor(getAspectContour(), alpha_)); + final boolean isAlphaChanged = EbliLib.isAlphaChanged(alpha_); + final TraceIcon trIcon = new TraceIcon(isAlphaChanged ? new TraceIconModel(iconeModel_) : iconeModel_); + final TraceLigne trLigne = new TraceLigne(isAlphaChanged ? new TraceLigneModel(lineModel_) : lineModel_); + if (isAlphaChanged) { + trIcon.setCouleur(EbliLib.getAlphaColor(trIcon.getCouleur(), alpha_)); + trLigne.setCouleur(EbliLib.getAlphaColor(trLigne.getCouleur(), alpha_)); + } + for (int i = 0; i < nbPt; i++) { + xi = model_.getX(i); + yi = model_.getY(i); + xie = _t.getXEcran(xi); + yie = _t.getYEcran(yi, getAxeY()); + xiVisible = _t.getXAxe().containsPoint(xi); + yiVisible = getAxeY().containsPoint(yi); + + if (model_.isPointDrawn(i) && xiVisible && yiVisible && iconeModel_.getType() != TraceIcon.RIEN) { + if (displayTitleOnCurve_) { + if (rangeDisplayed == null) { + rangeDisplayed = new Envelope(); + } + rangeDisplayed.expandToInclude(xi, yi); + } + // icone_.couleur(getAspectContour()); + trIcon.paintIconCentre(_g, xie, yie); + } + if ((i > 0) && model_.isSegmentDrawn(i - 1) && (xpVisible || xiVisible || _t.getXAxe().isContained(xpe, xie))) { + if (displayTitleOnCurve_) { + if (rangeDisplayed == null) { + rangeDisplayed = new Envelope(); + } + rangeDisplayed.expandToInclude(xi, yi); + } + paintSurface(_g, _t, i); + + if(!nuagePoints_){ + //-- attention si le point depasse de l'\xE9cran il faut dessinner le trait jusqu'\xE0 la limite de l'axe--// + double newyi=Math.min(yi, getAxeY().getMaximum()); + newyi=Math.max(newyi, getAxeY().getMinimum()); + double newyie=_t.getYEcran(newyi, getAxeY()); + + double newyi2=Math.min(ypeVal, getAxeY().getMaximum()); + newyi2=Math.max(newyi2, getAxeY().getMinimum()); + double newyie2=_t.getYEcran(newyi2, getAxeY()); + + trLigne.dessineTrait(_g, xie, newyie, xpe, newyie2); + + } + else{ + //-- trace un + --// + //-- ligne | --// + trLigne.dessineTrait(_g, xie, yie-largeurPointsNuage_/2, xie, yie+largeurPointsNuage_/2); + //--ligne - --// + trLigne.dessineTrait(_g, xie-largeurPointsNuage_/2, yie, xie+largeurPointsNuage_/2, yie); + //dessineRectangle(_g, xie-largeurPointsNuage_/2, yie-largeurPointsNuage_/2, largeurPointsNuage_, largeurPointsNuage_); + } + } + xpVisible = xiVisible; + xpe = xie; + ype = yie; + ypeVal=yi; + } + _g.setClip(oldClip); + traceMarks(_g, _t); + traceTitle(_g, _t, rangeDisplayed); } @@ -673,10 +672,26 @@ return listeMarqueurs_; } + + /** + * A ne pas utiliser pour la persistance, il se peut que le eg model soit un decorator. + * @return + */ public EGModel getModel() { return model_; } + /** + * Retourne le modele initial, sans decorateur. + * @return + */ + public EGModel getInitialModel() { + if(getModel() instanceof EGModelDecorator) + return ((EGModelDecorator) getModel() ).getModeleInitial(); + else + return getModel(); + } + public int getNearestIdx(final double _x) { int low = 0; int high = model_.getNbValues() - 1; @@ -1072,13 +1087,24 @@ return false; } - public EgCourbeDecorator getDecorator() { - return decorator_; + + public boolean isInverse=false; + /** + * Methode qui inverse le modele x par rapport \xE0 y + */ + public void inverserModele(){ + + if(!isInverse){ + EGModelDecoratorInverse modelInverse=new EGModelDecoratorInverse(getModel()); + setModel(modelInverse); + }else{ + //-- on lui re- set le modele --// + setModel(getInitialModel()); + } + isInverse=!isInverse; + } - public void setDecorator(EgCourbeDecorator decorator) { - this.decorator_ = decorator; - } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -40,6 +40,9 @@ //-- liste des marqueurs --// List<EGCourbeMarqueur> listeMarqueurs_; + //-- inverse ou non les x et y --// + boolean inverse=false; + public EGCourbePersist(EGCourbeChild courbe, int IdGroup) { fillInfoWith(courbe,IdGroup); } @@ -48,15 +51,15 @@ this.Idgroup=idgroupe; title_=courbe.getTitle(); this.nuagePoints=courbe.isNuagePoints(); - Xmin = courbe.getModel().getXMin(); - Xmax = courbe.getModel().getXMax(); - Ymin = courbe.getModel().getYMin(); - Ymax = courbe.getModel().getYMax(); - this.abscisses = new double[courbe.getModel().getNbValues()]; - this.ordonnees = new double[courbe.getModel().getNbValues()]; - for(int i=0;i<courbe.getModel().getNbValues();i++){ - this.abscisses[i]=courbe.getModel().getX(i); - this.ordonnees[i]=courbe.getModel().getY(i); + Xmin = courbe.getInitialModel().getXMin(); + Xmax = courbe.getInitialModel().getXMax(); + Ymin = courbe.getInitialModel().getYMin(); + Ymax = courbe.getInitialModel().getYMax(); + this.abscisses = new double[courbe.getInitialModel().getNbValues()]; + this.ordonnees = new double[courbe.getInitialModel().getNbValues()]; + for(int i=0;i<courbe.getInitialModel().getNbValues();i++){ + this.abscisses[i]=courbe.getInitialModel().getX(i); + this.ordonnees[i]=courbe.getInitialModel().getY(i); } //graphiques @@ -72,8 +75,9 @@ //-- donnees specifiques --// //-- exemple pour evol: pdt, point,variable, fichier source --// - dataSpecifiques=courbe.getModel().getPersistSpecificDatas(); - classeModel=courbe.getModel().getClass().toString(); + dataSpecifiques=courbe.getInitialModel().getPersistSpecificDatas(); + classeModel=courbe.getInitialModel().getClass().toString(); + inverse=courbe.isInverse; } @@ -118,6 +122,7 @@ courbe=new EGCourbeChild(_groupe,model); courbe.setTitle(title_); + //graphiques if(tracebox!=null) courbe.setTbox_(tracebox); @@ -131,6 +136,11 @@ if(listeMarqueurs_!=null) courbe.setMarqueurs(listeMarqueurs_); + + //-- cas courbe inverse: on lui applique le decorator model inverse --// + if(inverse) + courbe.inverserModele(); + return courbe; } Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecorator.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -0,0 +1,19 @@ +package org.fudaa.ebli.courbe; + + +/** + * Decorator pour le EGModel, + * permet de g\xE9rer sans trop de d\xE9gat des egmodel aux comportements diff\xE9rents. + * Utilise le design pattern decorator. + * @author Adrien Hadoux + * + */ +public abstract class EGModelDecorator implements EGModel{ + + /** + * retourme le egmodel initial + * @return + */ + public abstract EGModel getModeleInitial(); + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModelDecoratorInverse.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -0,0 +1,213 @@ +package org.fudaa.ebli.courbe; + +import java.util.Map; + +import org.fudaa.ctulu.CtuluCommandContainer; +import org.fudaa.ctulu.CtuluListSelectionInterface; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.palette.BPaletteInfo.InfoData; + + +/** + * Decorator pour le EGModel, inverse les x et y de la courbe. + * utilise le design pattern decorator. + * permet de g\xE9rer sans trop de d\xE9gat l'inversion des donn\xE9es. + * @author Adrien Hadoux + * + */ +public class EGModelDecoratorInverse extends EGModelDecorator{ + + /** + * l'instance du modele correct avant inversion. + * C'est \xE0 partir de ce modele que va se produire l'inversion. + */ + private final EGModel instanceModele_; + + public EGModelDecoratorInverse(final EGModel modeleInitial){ + instanceModele_=modeleInitial; + } + + + + public EGModel getModeleInitial(){ + return instanceModele_; + } + + + public boolean addValue(double _x, double _y, CtuluCommandContainer _cmd) { + + return instanceModele_.addValue(_x, _y, _cmd); + } + + + public boolean addValue(double[] _x, double[] _y, CtuluCommandContainer _cmd) { + + return instanceModele_.addValue(_x, _y, _cmd); + } + + + public boolean deplace(int[] idx, double _deltax, double _deltay, + CtuluCommandContainer _cmd) { + + return instanceModele_.deplace(idx, _deltax, _deltay, _cmd); + } + + + public EGModel duplicate() { + + return instanceModele_.duplicate(); + } + + + public void fillWithInfo(InfoData _table, CtuluListSelectionInterface pt) { + + instanceModele_.fillWithInfo(_table, pt); + } + + + public int getNbValues() { + + return instanceModele_.getNbValues(); + } + + + public Object getPersistSpecificDatas() { + + return instanceModele_.getPersistSpecificDatas(); + } + + + public String getTitle() { + + return instanceModele_.getTitle(); + } + + + public double getX(int _idx) { + + return instanceModele_.getY(_idx); + } + + + public double getXMax() { + + return instanceModele_.getYMax(); + } + + + public double getXMin() { + + return instanceModele_.getYMin(); + } + + + public double getY(int _idx) { + + return instanceModele_.getX(_idx); + } + + + public double getYMax() { + + return instanceModele_.getXMax(); + } + + + public double getYMin() { + + return instanceModele_.getXMin(); + } + + + public boolean isDuplicatable() { + + return instanceModele_.isDuplicatable(); + } + + + public boolean isModifiable() { + + return instanceModele_.isModifiable(); + } + + + public boolean isPointDrawn(int _i) { + + return instanceModele_.isPointDrawn(_i); + } + + + public boolean isRemovable() { + + return instanceModele_.isRemovable(); + } + + + public boolean isSegmentDrawn(int _i) { + + return instanceModele_.isSegmentDrawn(_i); + } + + + public boolean isTitleModifiable() { + + return instanceModele_.isTitleModifiable(); + } + + + public boolean isXModifiable() { + + return instanceModele_.isXModifiable(); + } + + + public boolean removeValue(int _i, CtuluCommandContainer _cmd) { + + return instanceModele_.removeValue(_i, _cmd); + } + + + public boolean removeValue(int[] _i, CtuluCommandContainer _cmd) { + + return instanceModele_.removeValue(_i, _cmd); + } + + + public void replayData(EGGrapheTreeModel model, Map infos, CtuluUI impl) { + instanceModele_.replayData(model, infos, impl); + + } + + + public void setPersistSpecificDatas(Object data, Map infos) { + instanceModele_.setPersistSpecificDatas(data, infos); + + } + + + public boolean setTitle(String name) { + + return instanceModele_.setTitle(name); + } + + + public boolean setValue(int _i, double _x, double _y, + CtuluCommandContainer _cmd) { + + return instanceModele_.setValue(_i, _x, _y, _cmd); + } + + + public boolean setValues(int[] _idx, double[] _x, double[] _y, + CtuluCommandContainer _cmd) { + + return instanceModele_.setValues(_idx, _x, _y, _cmd); + } + + + public void viewGenerationSource(Map infos, CtuluUI impl) { + + instanceModele_.viewGenerationSource(infos, impl); + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -139,6 +139,12 @@ //-- action origine de la courbe. --// menu_.add(new EGActionAfficheOrigineCourbe.CourbeOnly(courbe.getModel(),ui_)); + + menu_.addMenuItem(EbliResource.EBLI.getString("Inverser x et y"), "INVERSER", EbliResource.EBLI.getIcon("inverser") + , true, this); + + + //-- action replay data --// // menu_.add(new EGActionReplayDataCourbe.CourbeOnly(courbe.getModel(),ui_)); } @@ -189,6 +195,15 @@ target_.getSelectedComponent().nuagePoints_=!target_.getSelectedComponent().nuagePoints_; target_.getModel().fireCourbeAspectChanged(null, false); } + else if("INVERSER".equals(com)){ + //-- on inverse le modele --// + target_.getSelectedComponent().inverserModele(); + target_.getModel().fireAxeContentChanged(target_.getModel().getAxeX()); + //target_.getModel().fireAxeContentChanged(target_.getModel().get); + target_.getModel().fireCourbeAspectChanged(null, false); +// target_.getModel().fireStructureChanged(); + } + else if ("COPIESRC".equals(com)) { target_.getModel().duplicateCourbeForSrc(cmd_, target_.getSelectedComponent()); Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecorator.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecorator.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -1,20 +0,0 @@ -package org.fudaa.ebli.courbe; - -import java.awt.Graphics2D; - - -/** - * Interface qui s'occupe de dessiner les courbes x et y. - * @author Adrien Hadoux - * - */ -public interface EgCourbeDecorator { - - /** - * Methode qui permet de dessinner le contenu de la courbe dans le graphics. - * @param _g - * @param model - * @param _t - */ - public void dessine(final Graphics2D _g, final EGCourbe courbe, final EGRepere _t) ; -} Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorDefault.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorDefault.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -1,106 +0,0 @@ -package org.fudaa.ebli.courbe; - -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.fudaa.ebli.commun.EbliLib; -import org.fudaa.ebli.trace.TraceIcon; -import org.fudaa.ebli.trace.TraceIconModel; -import org.fudaa.ebli.trace.TraceLigne; -import org.fudaa.ebli.trace.TraceLigneModel; - -import com.vividsolutions.jts.geom.Envelope; - -/** - * Dcorator de courbe par defaut de la courbe. - * Dessine une courbe par defaut x en abscisses et y en ordonn\xE9es. - * @author Adrien Hadoux - * - */ -public class EgCourbeDecoratorDefault implements EgCourbeDecorator { - - - - public void dessine(Graphics2D _g, EGCourbe courbe, EGRepere _t) { - EGModel model=courbe.getModel(); - final Shape oldClip = _g.getClip(); - final int minX = _t.getMinEcranX(); - final int adjust = 3; - _g.setClip(minX - adjust, 0, _t.getMaxEcranX() - minX + adjust * 2, _t.getH()); - final int nbPt = model.getNbValues(); - double xi, yi, xie, yie; - boolean xiVisible; - boolean yiVisible; - double xpe = 0; - double ype = 0; - double ypeVal=0; - boolean xpVisible = false; - Envelope rangeDisplayed = null; - _g.setColor(EbliLib.getAlphaColor(courbe.getAspectContour(), courbe.getAlpha())); - final boolean isAlphaChanged = EbliLib.isAlphaChanged(courbe.getAlpha()); - final TraceIcon trIcon = new TraceIcon(isAlphaChanged ? new TraceIconModel(courbe.getIconModel()) : courbe.getIconModel()); - final TraceLigne trLigne = new TraceLigne(isAlphaChanged ? new TraceLigneModel(courbe.getLigneModel()) : courbe.getLigneModel()); - if (isAlphaChanged) { - trIcon.setCouleur(EbliLib.getAlphaColor(trIcon.getCouleur(), courbe.getAlpha())); - trLigne.setCouleur(EbliLib.getAlphaColor(trLigne.getCouleur(), courbe.getAlpha())); - } - for (int i = 0; i < nbPt; i++) { - xi = model.getX(i); - yi = model.getY(i); - xie = _t.getXEcran(xi); - yie = _t.getYEcran(yi, courbe.getAxeY()); - xiVisible = _t.getXAxe().containsPoint(xi); - yiVisible = courbe.getAxeY().containsPoint(yi); - - if (model.isPointDrawn(i) && xiVisible && yiVisible && courbe.getIconModel().getType() != TraceIcon.RIEN) { - if (courbe.displayTitleOnCurve_) { - if (rangeDisplayed == null) { - rangeDisplayed = new Envelope(); - } - rangeDisplayed.expandToInclude(xi, yi); - } - // icone_.couleur(getAspectContour()); - trIcon.paintIconCentre(_g, xie, yie); - } - if ((i > 0) && model.isSegmentDrawn(i - 1) && (xpVisible || xiVisible || _t.getXAxe().isContained(xpe, xie))) { - if (courbe.displayTitleOnCurve_) { - if (rangeDisplayed == null) { - rangeDisplayed = new Envelope(); - } - rangeDisplayed.expandToInclude(xi, yi); - } - courbe.paintSurface(_g, _t, i); - - if(!courbe.nuagePoints_){ - //-- attention si le point depasse de l'\xE9cran il faut dessinner le trait jusqu'\xE0 la limite de l'axe--// - double newyi=Math.min(yi, courbe.getAxeY().getMaximum()); - newyi=Math.max(newyi, courbe.getAxeY().getMinimum()); - double newyie=_t.getYEcran(newyi, courbe.getAxeY()); - - double newyi2=Math.min(ypeVal, courbe.getAxeY().getMaximum()); - newyi2=Math.max(newyi2, courbe.getAxeY().getMinimum()); - double newyie2=_t.getYEcran(newyi2, courbe.getAxeY()); - - trLigne.dessineTrait(_g, xie, newyie, xpe, newyie2); - - } - else{ - //-- trace un + --// - //-- ligne | --// - trLigne.dessineTrait(_g, xie, yie-courbe.largeurPointsNuage_/2, xie, yie+courbe.largeurPointsNuage_/2); - //--ligne - --// - trLigne.dessineTrait(_g, xie-courbe.largeurPointsNuage_/2, yie, xie+courbe.largeurPointsNuage_/2, yie); - //dessineRectangle(_g, xie-largeurPointsNuage_/2, yie-largeurPointsNuage_/2, largeurPointsNuage_, largeurPointsNuage_); - } - } - xpVisible = xiVisible; - xpe = xie; - ype = yie; - ypeVal=yi; - } - _g.setClip(oldClip); - courbe.traceMarks(_g, _t); - courbe.traceTitle(_g, _t, rangeDisplayed); - } - -} Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorInverse.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorInverse.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorInverse.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -1,154 +0,0 @@ -package org.fudaa.ebli.courbe; - -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.fudaa.ctulu.iterator.TickIterator; -import org.fudaa.ebli.commun.EbliLib; -import org.fudaa.ebli.trace.TraceIcon; -import org.fudaa.ebli.trace.TraceIconModel; -import org.fudaa.ebli.trace.TraceLigne; -import org.fudaa.ebli.trace.TraceLigneModel; - -import com.vividsolutions.jts.geom.Envelope; - - -/** - * Dcorator de courbe. - * Dessine une courbe eninversant x en ordonn\xE9es et y en abscisses. - * @author Adrien Hadoux - * - */ -public class EgCourbeDecoratorInverse implements EgCourbeDecorator { - - /** - * Methode qui inverse l'axe x par rapport au y. - * @param _t - */ - public EGRepere inverserAxeX( EGRepere _t,EGAxeVertical axeV) { - TickIterator iterV=axeV.axisIterator_; - - //-- recopie des parametres egaxe -// - EGAxeHorizontal axeH=new EGAxeHorizontal(axeV); - - - //-- inversion des tickIterator --// - axeH.setAxisIterator(iterV); - - EGRepere repere =_t.duplicate(new EGGrapheDuplicator()); - repere.setXAxe(axeH); - - return repere; - - } - /** - * Methode qui inverse l'axe y par rapport au x. - * @param _t - */ - public EGAxeVertical inverserAxeY( EGRepere _t) { - - TickIterator iterH=_t.getXAxe().axisIterator_; - - //-- recopie des parametres egaxe -// - EGAxeVertical axeV=new EGAxeVertical(_t.getXAxe()); - - //-- inversion des tickIterator --// - axeV.setAxisIterator(iterH); - - - return axeV; - - } - - - - public void dessine(Graphics2D _g, EGCourbe courbe, EGRepere repere) { - - //-- on inverse le repere --// - EGRepere repereInverse= inverserAxeX(repere,courbe.getAxeY()); - EGAxeVertical axeVerticalInverse=inverserAxeY(repere); - - - - EGModel model=courbe.getModel(); - final Shape oldClip = _g.getClip(); - final int minX = repereInverse.getMinEcranY(); - final int adjust = 3; - _g.setClip(minX - adjust, 0, repereInverse.getMaxEcranY() - minX + adjust * 2, repereInverse.getH()); - final int nbPt = model.getNbValues(); - double xi, yi, xie, yie; - boolean xiVisible; - boolean yiVisible; - double xpe = 0; - double ype = 0; - double ypeVal=0; - boolean xpVisible = false; - Envelope rangeDisplayed = null; - _g.setColor(EbliLib.getAlphaColor(courbe.getAspectContour(), courbe.getAlpha())); - final boolean isAlphaChanged = EbliLib.isAlphaChanged(courbe.getAlpha()); - final TraceIcon trIcon = new TraceIcon(isAlphaChanged ? new TraceIconModel(courbe.getIconModel()) : courbe.getIconModel()); - final TraceLigne trLigne = new TraceLigne(isAlphaChanged ? new TraceLigneModel(courbe.getLigneModel()) : courbe.getLigneModel()); - if (isAlphaChanged) { - trIcon.setCouleur(EbliLib.getAlphaColor(trIcon.getCouleur(), courbe.getAlpha())); - trLigne.setCouleur(EbliLib.getAlphaColor(trLigne.getCouleur(), courbe.getAlpha())); - } - for (int i = 0; i < nbPt; i++) { - xi = model.getY(i); - yi = model.getX(i); - xie = repereInverse.getXEcran(xi); - yie = repereInverse.getYEcran(yi, axeVerticalInverse); - xiVisible = repereInverse.getXAxe().containsPoint(xi); - yiVisible = axeVerticalInverse.containsPoint(yi); - - if (model.isPointDrawn(i) && xiVisible && yiVisible && courbe.getIconModel().getType() != TraceIcon.RIEN) { - if (courbe.displayTitleOnCurve_) { - if (rangeDisplayed == null) { - rangeDisplayed = new Envelope(); - } - rangeDisplayed.expandToInclude(xi, yi); - } - // icone_.couleur(getAspectContour()); - trIcon.paintIconCentre(_g, xie, yie); - } - if ((i > 0) && model.isSegmentDrawn(i - 1) && (xpVisible || xiVisible || repereInverse.getXAxe().isContained(xpe, xie))) { - if (courbe.displayTitleOnCurve_) { - if (rangeDisplayed == null) { - rangeDisplayed = new Envelope(); - } - rangeDisplayed.expandToInclude(xi, yi); - } - courbe.paintSurface(_g, repereInverse, i); - - if(!courbe.nuagePoints_){ - //-- attention si le point depasse de l'\xE9cran il faut dessinner le trait jusqu'\xE0 la limite de l'axe--// - double newyi=Math.min(yi, axeVerticalInverse.getMaximum()); - newyi=Math.max(newyi, axeVerticalInverse.getMinimum()); - double newyie=repereInverse.getYEcran(newyi, axeVerticalInverse); - - double newyi2=Math.min(ypeVal, axeVerticalInverse.getMaximum()); - newyi2=Math.max(newyi2, axeVerticalInverse.getMinimum()); - double newyie2=repereInverse.getYEcran(newyi2, axeVerticalInverse); - - trLigne.dessineTrait(_g, xie, newyie, xpe, newyie2); - - } - else{ - //-- trace un + --// - //-- ligne | --// - trLigne.dessineTrait(_g, xie, yie-courbe.largeurPointsNuage_/2, xie, yie+courbe.largeurPointsNuage_/2); - //--ligne - --// - trLigne.dessineTrait(_g, xie-courbe.largeurPointsNuage_/2, yie, xie+courbe.largeurPointsNuage_/2, yie); - //dessineRectangle(_g, xie-largeurPointsNuage_/2, yie-largeurPointsNuage_/2, largeurPointsNuage_, largeurPointsNuage_); - } - } - xpVisible = xiVisible; - xpe = xie; - ype = yie; - ypeVal=yi; - } - _g.setClip(oldClip); - courbe.traceMarks(_g, repereInverse); - courbe.traceTitle(_g, repereInverse, rangeDisplayed); - - } -} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/ascenseur/Thumbs.db =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/ascenseur/Thumbs.db ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/rotation/Thumbs.db =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/rotation/Thumbs.db ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/translation/Thumbs.db =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/ressource/volume/fleches/translation/Thumbs.db ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-24 17:31:06 UTC (rev 4495) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-25 07:11:56 UTC (rev 4496) @@ -81,8 +81,8 @@ /** * forme des contours des fleches. */ - AnchorShape shapeHead_; - AnchorShape shapeTail_; + AnchorShape shapeHead_=AnchorShape.TRIANGLE_FILLED; + AnchorShape shapeTail_=AnchorShape.NONE; /** @@ -213,7 +213,10 @@ connectionAnchor_.setBackground(getTraceLigneModel().getCouleur()); //-- synchronisation du type de trait --// + if(autreExtremite!=null) autreExtremite.setTraceLigneModel(new TraceLigneModel(getTraceLigneModel())); + if(main!=null) + main.setTraceLigneModel(new TraceLigneModel(getTraceLigneModel())); getEbliScene().refresh(); } @@ -226,24 +229,18 @@ } public void valueChanged(ListSelectionEvent e) { - - int selection=typeExtremite.getSelectedIndex(); if(selection==-1) return; //-- recupere le type de connection a positionner --// AnchorShape shape= (AnchorShape) typeExtremite.getModel().getElementAt(selection); - //-- modification de la shape --// if(connectionAnchor_!=null && shape!=null ) if(isHead) connectionAnchor_.setSourceAnchorShape(shape); else connectionAnchor_.setTargetAnchorShape(shape); - - getEbliScene().refresh(); - } } @@ -272,6 +269,18 @@ deplaceExtremitesCentre(); } + + public void setTraceLigneModel(TraceLigneModel model){ + super.setTraceLigneModel(model); + //-- on modifie le contenu du connecteur --// + TraceLigne traceligne=new TraceLigne(model); + Stroke stroke=traceligne.getStroke(); + if(stroke!=null) + connectionAnchor_.setStroke(stroke); + connectionAnchor_.setForeground(getTraceLigneModel().getCouleur()); + connectionAnchor_.setBackground(getTraceLigneModel().getCouleur()); + } + /** * repositionne les widget extremites sattelites en haut de la scene (on ne voit rien dans le tree car il n'y a pas de node enegistr\xE9e pouer cette widget). */ @@ -441,8 +450,9 @@ connectionHead_.setController(new ControllerConnection(connectionHead_)); connectionTail_=new EbliSatteliteWidget(_scene,false,connection_,false); connectionTail_.setController(new ControllerConnection(connectionTail_)); + connectionHead_.setTraceLigneModel(conteneurFleche_.getTraceLigneModel()); + connectionTail_.setTraceLigneModel(conteneurFleche_.getTraceLigneModel()); - //-- ajout des sattelites pour le conteneur principal--// conteneurFleche_.addSattelite(connectionHead_); conteneurFleche_.addSattelite(connectionTail_); @@ -478,10 +488,11 @@ connection_.setSourceAnchor(AnchorFactory.createCircularAnchor (connectionHead_, 32)); connection_.setTargetAnchor(AnchorFactory.createCircularAnchor (connectionTail_, 32)); - connection_.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED); - - - + connection_.setTargetAnchorShape(shapeHead_); + connection_.setSourceAnchorShape(shapeTail_); +// connection_.setStroke((new TraceLigne(conteneurFleche_.getTraceLigneModel()).getStroke())); +// connection_.setForeground(conteneurFleche_.getTraceLigneModel().getCouleur()); +// connection_.setBackground(conteneurFleche_.getTraceLigneModel().getCouleur()); _scene.addChild(layoutConteneur_); @@ -521,14 +532,64 @@ public Object getPersistData(Map parameters) { - // TODO Auto-generated method stub - return null; + + List paramFleches=new ArrayList(4); + + Point location1=connectionHead_.getLocation(); + if(location1==null) + location1=connectionHead_.getPreferredLocation(); + if(location1!=null) + paramFleches.add(location1); + location1=connectionTail_.getLocation(); + if(location1==null) + location1=connectionTail_.getPreferredLocation(); + if(location1!=null) + paramFleches.add(location1); + + if(connection_!=null){ + if(connection_.getTargetAnchorShape()!=null) + paramFleches.add(connection_.getTargetAnchorShape()); + if(connection_.getSourceAnchorShape()!=null) + paramFleches.add(connection_.getSourceAnchorShape()); + + } + + return paramFleches; } public void setPersistData(Object data, Map parameters) { - // TODO Auto-generated method stub - + if(data==null || !(data instanceof List)) + return; + + List persist=(List)data; + + if(persist.size()!=4) + return; + + //-- recuperation des parametres --// + Point location1=(Point) persist.get(0); + Point location2=(Point) persist.get(1); + + AnchorShape shapeTarget=(AnchorShape) persist.get(2); + AnchorShape shapeSource=(AnchorShape) persist.get(3); + + //-- positionnement --// +// connectionHead_.setPreferredLocation(location1); +// connectionTail_.setPreferredLocation(location2); +// connection_.setTargetAnchorShape(shapeTarget); +// connection_.setSourceAnchorShape(shapeSource); + locationHeadX=location1.x; + locationHeadY=location1.y; + locationTailX=location2.x; + locationTailY=location2.y; + + shapeHead_=shapeTarget; + shapeTail_=shapeSource; + + + if(conteneurFleche_!=null) + conteneurFleche_.getEbliScene().refresh(); } } Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.mylyn/repositories.xml.zip =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.mylyn/repositories.xml.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/com.itsolut.mantis.core/repositoryConfigurations =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/com.itsolut.mantis.core/repositoryConfigurations ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/fudaa/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs =================================================================== --- branches/P... [truncated message content] |
From: <bma...@us...> - 2009-02-24 17:31:18
|
Revision: 4495 http://fudaa.svn.sourceforge.net/fudaa/?rev=4495&view=rev Author: bmarchan Date: 2009-02-24 17:31:06 +0000 (Tue, 24 Feb 2009) Log Message: ----------- Tache #179 : Finalisation recherche sur attributs atomiques. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneShowLabelAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindExpressionAtomic.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/test/org/fudaa/ebli/commun/TestJEbliListeSelectionMulti.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -15,13 +15,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.fudaa.ctulu.CtuluExpr; -import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.gis.GISAttributeInterface; @@ -30,9 +24,8 @@ import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISZoneCollection; -import org.fudaa.ebli.calque.edition.ZModeleEditable; import org.fudaa.ebli.calque.find.CalqueFindActionAtomic; -import org.fudaa.ebli.calque.find.CalqueFindExpression; +import org.fudaa.ebli.calque.find.CalqueFindExpressionAtomic; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.commun.EbliListeSelectionMulti; import org.fudaa.ebli.commun.EbliListeSelectionMultiInterface; @@ -51,7 +44,6 @@ import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.ebli.trace.TraceSurface; import org.fudaa.ebli.trace.TraceSurfaceModel; -import org.nfunk.jep.Variable; import com.memoire.fu.FuLog; import com.vividsolutions.jts.algorithm.SIRtreePointInRing; @@ -72,117 +64,6 @@ */ public class ZCalqueGeometry extends ZCalqueAffichageDonneesLineAbstract implements ZModelGeometryListener { - /** - * @author Fred Deniger - * @version $Id$ - */ - private class VariableFindExpression extends CalqueFindExpression { - - Map<Variable,Integer> vars_; - Variable varX_; - Variable varY_; - List<Double> ord_=new ArrayList<Double>(50); - - public VariableFindExpression() { - super(ZCalqueGeometry.this.modeleDonnees()); - } - - public void initialiseExpr(final CtuluExpr _expr) { - if (isAtomicMode_) { - initialiseExprWhenAtomic(_expr); - return; - } - - super.initialiseExpr(_expr); - final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); - final int nb = coll.getNbAttributes(); - if (nb > 0) { - if (vars_ == null) { - vars_ = new HashMap<Variable,Integer>(nb); - } else { - vars_.clear(); - } - for (int i = 0; i < nb; i++) { - final GISAttributeInterface att = coll.getAttribute(i); - if (!att.isAtomicValue() /*&& Number.class.isAssignableFrom(att.getDataClass())*/) { - vars_.put(_expr.addVar(att.getName(), att.getLongName()), i); - } - } - } - } - - public void majVariable(final int _idx, final Variable[] _varToUpdate, final Object[] _values) { - if (isAtomicMode_) { - majVariableWhenAtomic(_idx, _varToUpdate, _values); - return; - } - - super.majVariable(_idx, _varToUpdate, _values); - if (vars_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { - final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); - for (int i = _varToUpdate.length - 1; i >= 0; i--) { - if (vars_.containsKey(_varToUpdate[i])) { - _values[i]=coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx); - } - } - } - } - - public void initialiseExprWhenAtomic(CtuluExpr _expr) { - _expr.initVar(); - _expr.getParser().getFunctionTable().remove("str"); - - - // Indice, ajout\xE9 par defaut. - _expr.removeVar("i"); - - final GISZoneCollection coll = modeleDonnees().getGeomData(); - final int nb = coll.getNbAttributes(); - if (nb > 0) { - if (vars_ == null) { - vars_ = new HashMap<Variable,Integer>(nb); - } else { - vars_.clear(); - } - for (int i = 0; i < nb; i++) { - final GISAttributeInterface att = coll.getAttribute(i); - if (att.isAtomicValue() /*&& Number.class.isAssignableFrom(att.getDataClass())*/) { - vars_.put(_expr.addVar(att.getName(), att.getLongName()),i); - } - } - } - - varX_=_expr.addVar("x","L'abscisse des sommets"); - varY_=_expr.addVar("y","L'ordonn\xE9e des sommets"); - } - - public void majVariableWhenAtomic(int _idx, Variable[] _varToUpdate, Object[] _values) { - - final GISZoneCollection coll = modeleDonnees().getGeomData(); - int ivar; - if ((ivar=CtuluLibArray.getIndex(varX_, _varToUpdate))!=-1) - _values[ivar]=getOrdinate(_idx, 0); - if ((ivar=CtuluLibArray.getIndex(varY_, _varToUpdate))!=-1) - _values[ivar]=getOrdinate(_idx, 1); - - for (int i=0; i<_varToUpdate.length; i++) { - if ((vars_.containsKey(_varToUpdate[i]))) { - _values[i]= - ((GISAttributeModel)coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx)).getObjectValues(); - } - } - } - - private Double[] getOrdinate(int _idxGeom, int _ordonnee) { - CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)modeleDonnees().getObject(_idxGeom)).getCoordinateSequence(); - ord_.clear(); - for (int i=0; i<seq.size(); i++) - ord_.add(seq.getOrdinate(i, _ordonnee)); - - return ord_.toArray(new Double[0]); - } - } - /** true si selection en mode sommets */ transient protected boolean isAtomicMode_; /** Le mod\xE8le des g\xE9om\xE9tries */ @@ -339,9 +220,11 @@ sentEvent = selectionMulti_.xor(_s); break; case EbliSelectionState.ACTION_REPLACE: - selectionMulti_.setSelection(_s); - sentEvent = true; + sentEvent = selectionMulti_.setSelection(_s); break; + case EbliSelectionState.ACTION_AND: + sentEvent = selectionMulti_.intersection(_s); + break; default: break; } @@ -375,7 +258,7 @@ } public EbliFindExpressionContainerInterface getExpressionContainer() { - return new VariableFindExpression(); + return new CalqueFindExpressionAtomic(this); } public EbliListeSelectionMultiInterface getLayerSelectionMulti() { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -15,6 +15,7 @@ import org.fudaa.ebli.calque.ZCalqueGeometry; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.commun.EbliListeSelectionMulti; +import org.fudaa.ebli.commun.EbliSelectionState; import org.fudaa.ebli.find.EbliFindComponent; import org.fudaa.ebli.find.EbliFindComponentExpr; import org.fudaa.ebli.find.EbliFindable; @@ -26,7 +27,7 @@ * Une action de recherche permettant de rechercher des geometries ou des sommets. Cette action r\xE9agit au changement de mode de * selection sommet<->geometrie. * @author Bertrand Marchand - * @version $Id:$ + * @version $Id$ */ public class CalqueFindActionAtomic extends CalqueFindActionDefault implements PropertyChangeListener { Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindExpressionAtomic.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindExpressionAtomic.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindExpressionAtomic.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -0,0 +1,150 @@ +package org.fudaa.ebli.calque.find; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.fudaa.ctulu.CtuluExpr; +import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.gis.GISAttributeInterface; +import org.fudaa.ctulu.gis.GISAttributeModel; +import org.fudaa.ctulu.gis.GISCoordinateSequenceContainerInterface; +import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.ebli.calque.ZCalqueGeometry; +import org.nfunk.jep.Variable; + +import com.vividsolutions.jts.geom.CoordinateSequence; + +/** + * Une recherche d'expression gerant le mode atomique ou global d'un calque. + * @author Bertrand Marchand + * @version $Id$ + */ +public class CalqueFindExpressionAtomic extends CalqueFindExpression { + + /** Le calque associ\xE9 */ + ZCalqueGeometry layer_; + /** La table des variables g\xE9r\xE9es par le calque */ + Map<Variable,Integer> vars_; + /** La variable X, dont le traitement est sp\xE9cial */ + Variable varX_; + /** La variable Y, dont le traitement est sp\xE9cial */ + Variable varY_; + /** Une table de stockage temporaire */ + List<Double> ord_=new ArrayList<Double>(50); + + public CalqueFindExpressionAtomic(ZCalqueGeometry _layer) { + super(_layer.modeleDonnees()); + layer_=_layer; + } + + public void initialiseExpr(final CtuluExpr _expr) { + if (layer_.isAtomicMode()) { + initialiseExprWhenAtomic(_expr); + return; + } + + super.initialiseExpr(_expr); + final GISZoneCollection coll = layer_.modeleDonnees().getGeomData(); + final int nb = coll.getNbAttributes(); + if (nb > 0) { + if (vars_ == null) { + vars_ = new HashMap<Variable,Integer>(nb); + } else { + vars_.clear(); + } + for (int i = 0; i < nb; i++) { + final GISAttributeInterface att = coll.getAttribute(i); + if (!att.isAtomicValue()) { + vars_.put(_expr.addVar(att.getName(), att.getLongName()), i); + } + } + } + } + + public void majVariable(final int _idx, final Variable[] _varToUpdate, final Object[] _values) { + if (layer_.isAtomicMode()) { + majVariableWhenAtomic(_idx, _varToUpdate, _values); + return; + } + + super.majVariable(_idx, _varToUpdate, _values); + if (vars_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { + final GISZoneCollection coll = layer_.modeleDonnees().getGeomData(); + for (int i = _varToUpdate.length - 1; i >= 0; i--) { + if (vars_.containsKey(_varToUpdate[i])) { + _values[i]=coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx); + } + } + } + } + + /** + * Initialise le container d'expressions avec des variables atomiques uniquement. + * @param _expr Le container. + */ + public void initialiseExprWhenAtomic(CtuluExpr _expr) { + _expr.initVar(); + _expr.getParser().getFunctionTable().remove("str"); + + + // Suppression de l'indice, ajout\xE9 par defaut par la classe m\xE8re. + _expr.removeVar("i"); + + final GISZoneCollection coll = layer_.modeleDonnees().getGeomData(); + final int nb = coll.getNbAttributes(); + if (nb > 0) { + if (vars_ == null) { + vars_ = new HashMap<Variable,Integer>(nb); + } else { + vars_.clear(); + } + for (int i = 0; i < nb; i++) { + final GISAttributeInterface att = coll.getAttribute(i); + if (att.isAtomicValue()) { + vars_.put(_expr.addVar(att.getName(), att.getLongName()),i); + } + } + } + + varX_=_expr.addVar("x","L'abscisse des sommets"); + varY_=_expr.addVar("y","L'ordonn\xE9e des sommets"); + } + + /** + * Le traitement pour les variables atomiques. + * @param _idx L'indice de g\xE9om\xE9trie. + * @param _varToUpdate Les variables \xE0 mettre a jour. + * @param _values Les valeurs pour chaque variable. + */ + public void majVariableWhenAtomic(int _idx, Variable[] _varToUpdate, Object[] _values) { + + final GISZoneCollection coll = layer_.modeleDonnees().getGeomData(); + int ivar; + if ((ivar=CtuluLibArray.getIndex(varX_, _varToUpdate))!=-1) + _values[ivar]=getOrdinate(_idx, 0); + if ((ivar=CtuluLibArray.getIndex(varY_, _varToUpdate))!=-1) + _values[ivar]=getOrdinate(_idx, 1); + + for (int i=0; i<_varToUpdate.length; i++) { + if ((vars_.containsKey(_varToUpdate[i]))) { + _values[i]= + ((GISAttributeModel)coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx)).getObjectValues(); + } + } + } + + protected Double[] getOrdinate(int _idxGeom, int _ordonnee) { + CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)layer_.modeleDonnees().getObject(_idxGeom)).getCoordinateSequence(); + ord_.clear(); + + if (_ordonnee==2) + layer_.modeleDonnees().getGeomData().initZCoordinate(_idxGeom); + + for (int i=0; i<seq.size(); i++) + ord_.add(seq.getOrdinate(i, _ordonnee)); + + return ord_.toArray(new Double[0]); + } +} \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindExpressionAtomic.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -31,6 +31,11 @@ idxListSelection_ = new TIntObjectHashMap(_n); } + /** + * Une op\xE9ration (and) d'intersection de la liste <code>this</code> avec une liste donn\xE9e. + * @param _selection La liste donn\xE9e. + * @return true : Si la liste <code>this</code> est modifi\xE9e par l'op\xE9ration. + */ public boolean intersection(final EbliListeSelectionMultiInterface _selection) { if ((_selection == null) || _selection.isEmpty()) { final boolean r = !isEmpty(); @@ -45,12 +50,8 @@ final CtuluListSelection thisSelection = (CtuluListSelection) it.value(); final CtuluListSelection selection = (CtuluListSelection)_selection.getSelection(idx); r |= thisSelection.intersection(selection); - if (thisSelection.remove((CtuluListSelection) it.value())) { - r = true; - if (thisSelection.isEmpty()) { - it.remove(); - } - + if (thisSelection.isEmpty()) { + it.remove(); } } return r; @@ -113,6 +114,11 @@ return true; } + /** + * Une op\xE9ration (xor) d'ajout si non existant et suppression si existant sur la liste <code>this</code> depuis une liste donn\xE9e. + * @param _selection La liste donn\xE9e. + * @return true : Si la liste <code>this</code> est modifi\xE9e par l'op\xE9ration. + */ public boolean xor(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; @@ -142,6 +148,11 @@ return r; } + /** + * Une op\xE9ration (or) d'ajout de la liste donn\xE9e \xE0 la liste <code>this</code>. + * @param _m La liste donn\xE9e. + * @return true : Si la liste <code>this</code> est modifi\xE9e par l'op\xE9ration. + */ public boolean add(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; @@ -182,6 +193,11 @@ return r; } + /** + * Une op\xE9ration de suppression de la liste donn\xE9e \xE0 la liste <code>this</code>. + * @param _m La liste donn\xE9e. + * @return true : Si la liste <code>this</code> est modifi\xE9e par l'op\xE9ration. + */ public boolean remove(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; @@ -203,6 +219,11 @@ return r; } + /** + * Une op\xE9ration de remplacement de la liste <code>this</code> par la liste donn\xE9e. + * @param _m La liste donn\xE9e. + * @return true dans tous les cas. + */ public boolean setSelection(final EbliListeSelectionMultiInterface _m) { clear(); if (_m == null) { @@ -228,6 +249,11 @@ return idxListSelection_.iterator(); } + /** + * Efface la liste avant de definir l'unique sommet. + * @param _idxGlobal L'indice global + * @param _idxSelected L'indice de sommet. + */ public void set(final int _idxGlobal, final int _idxSelected) { idxListSelection_.clear(); final CtuluListSelection l = new CtuluListSelection(); @@ -235,6 +261,11 @@ idxListSelection_.put(_idxGlobal, l); } + /** + * Ajoute un sommet a la liste. + * @param _idxGlobal L'indice global + * @param _idxSelected L'indice de sommet. + */ public void add(final int _idxGlobal, final int _idxSelected) { CtuluListSelection l = (CtuluListSelection) idxListSelection_.get(_idxGlobal); if (l == null) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -29,7 +29,8 @@ * lancement de la selection. * @param _idx L'indice de l'objet dans le calque. * @param _varToUpdate Les variables dont la valeur est a intialiser. - * @param _values Les valeurs pour les variables, dans le m\xEAme ordre. + * @param _values Les valeurs pour les variables, dans le m\xEAme ordre. Pour des variables atomiques, les valeurs sont sous + * forme d'un tableau Object[][] dont la longueur correspond au nombre d'atomiques. */ void majVariable(int _idx,Variable[] _varToUpdate, Object[] _values); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -48,7 +48,6 @@ int i=CtuluLibArray.getIndex(i_,_varToUpdate); if (i!=-1) _values[i]=CtuluLib.getDouble(_idx + 1); -// i_.setValue(CtuluLib.getDouble(_idx + 1)); } } Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/test/org/fudaa/ebli/commun/TestJEbliListeSelectionMulti.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/test/org/fudaa/ebli/commun/TestJEbliListeSelectionMulti.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/test/org/fudaa/ebli/commun/TestJEbliListeSelectionMulti.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -0,0 +1,124 @@ +/* + * @creation 24 f\xE9vr. 2009 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2009 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ebli.commun; + +import junit.framework.TestCase; + +/** + * Pour tester les listes de selection multi. + * @author Bertrand Marchand + * @version $Id:$ + */ +public class TestJEbliListeSelectionMulti extends TestCase { + + /** + * Teste les listes issues des op\xE9rations. + */ + public void testOperation() { + EbliListeSelectionMulti l; + + // and + l=getListe1(); + l.intersection(getListe2()); + assertNull(l.get(0)); + assertNotNull(l.get(1)); + assertNull(l.get(2)); + assertNotNull(l.get(5)); + assertEquals(l.getNbSelectedItem(),2); + assertEquals(l.get(5).getNbSelectedIndex(),1); + + // or + l=getListe1(); + l.add(getListe2()); + assertNotNull(l.get(0)); + assertNotNull(l.get(1)); + assertNotNull(l.get(2)); + assertNotNull(l.get(5)); + assertEquals(l.getNbSelectedItem(),8); + assertEquals(l.get(5).getNbSelectedIndex(),3); + + // remove + l=getListe1(); + l.remove(getListe2()); + assertNotNull(l.get(0)); + assertNull(l.get(1)); + assertNull(l.get(2)); + assertNotNull(l.get(5)); + assertEquals(l.getNbSelectedItem(),3); + assertEquals(l.get(5).getNbSelectedIndex(),1); + + // xor + l=getListe1(); + l.xor(getListe2()); + assertNotNull(l.get(0)); + assertNull(l.get(1)); + assertNotNull(l.get(2)); + assertNotNull(l.get(5)); + assertEquals(l.getNbSelectedItem(),6); + assertEquals(l.get(5).getNbSelectedIndex(),2); + } + + /** + * Teste la modification des listes au cours des op\xE9rations. + */ + public void testModification() { + EbliListeSelectionMulti l; + + l=getListe1(); + assertFalse(l.add(getListe3())); + assertFalse(l.add(getListe1())); + assertTrue(l.add(getListe2())); + + l=getListe1(); + assertFalse(l.intersection(getListe1())); + assertTrue(l.intersection(getListe3())); + + l=getListe3(); + assertFalse(l.intersection(getListe1())); + assertFalse(l.intersection(getListe3())); + + l=getListe1(); + assertTrue(l.remove(getListe3())); + assertFalse(l.remove(getListe3())); + + l=getListe3(); + assertFalse(l.xor(null)); + assertTrue(l.xor(getListe2())); + assertTrue(l.xor(getListe2())); + assertFalse(l.add(getListe3())); + assertFalse(l.intersection(getListe3())); + } + + EbliListeSelectionMulti getListe1() { + EbliListeSelectionMulti l=new EbliListeSelectionMulti(3); + l.add(0,1); + l.add(0,5); + l.add(1,6); + l.add(5,12); + l.add(5,1); + return l; + } + + EbliListeSelectionMulti getListe2() { + EbliListeSelectionMulti l=new EbliListeSelectionMulti(3); + l.add(2,1); + l.add(2,5); + l.add(1,6); + l.add(5,12); + l.add(5,7); + return l; + } + + EbliListeSelectionMulti getListe3() { + EbliListeSelectionMulti l=new EbliListeSelectionMulti(2); + l.add(0,1); + l.add(5,12); + l.add(5,1); + return l; + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/test/org/fudaa/ebli/commun/TestJEbliListeSelectionMulti.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneShowLabelAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneShowLabelAction.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneShowLabelAction.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -14,6 +14,7 @@ import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BCalqueVisitor; +import org.fudaa.ebli.calque.ZCalqueGeometry; import org.fudaa.ebli.calque.ZCalqueLigneBrisee; import org.fudaa.ebli.calque.ZCalqueMultiPoint; import org.fudaa.ebli.commun.EbliActionChangeState; @@ -41,10 +42,8 @@ private void applyConf(){ treeModel_.getRootCalque().apply(new BCalqueVisitor(){ public boolean visit(BCalque _cq) { - if(_cq instanceof ZCalqueLigneBrisee) - ((ZCalqueLigneBrisee)_cq).setAttributForLabels(isSelected()?GISAttributeConstants.LABEL:null); - else if(_cq instanceof ZCalqueMultiPoint) - ((ZCalqueMultiPoint)_cq).setAttributForLabels(isSelected()?GISAttributeConstants.LABEL:null); + if(_cq instanceof ZCalqueGeometry) + ((ZCalqueGeometry)_cq).setAttributForLabels(isSelected()?GISAttributeConstants.LABEL:null); return true; } }); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -28,7 +28,7 @@ /** * Un calque pour le stockage et la manipulation des donn\xE9es altim\xE9triques. * @author Bertrand Marchand - * @version $Id: MdlLayer2dCloud.java,v 1.1.2.4 2008/05/13 12:10:42 bmarchan Exp $ + * @version $Id$ */ public class MdlLayer2dCloud extends MdlLayer2dMultiPoint { @@ -42,7 +42,7 @@ setName(getExtName()); setIconModel(0, new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, new Color(0,190,0))); setTitle(MdlResource.MDL.getString("Semis de points")); - setAttributForLabels(GISAttributeConstants.BATHY); + setAttributForLabels(GISAttributeConstants.LABEL); } public MdlLayer2dCloud(FSigEditor _editor) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -22,7 +22,7 @@ /** * Un calque pour le stockage et la manipulation des lignes de constraintes. * @author Bertrand Marchand - * @version $Id: MdlLayer2dProfile.java,v 1.1.2.5 2008/05/13 12:10:43 bmarchan Exp $ + * @version $Id$ */ public class MdlLayer2dConstraintLine extends MdlLayer2dLine { @@ -37,7 +37,7 @@ setLineModelOuvert(getLineModel(0)); setName(getExtName()); setTitle(MdlResource.MDL.getString("Lignes de contraintes")); - setAttributForLabels(GISAttributeConstants.BATHY); + setAttributForLabels(GISAttributeConstants.LABEL); } public MdlLayer2dConstraintLine(FSigEditor _editor) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dConstraintLine.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dContour.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -41,7 +41,7 @@ setIconModel(1, new TraceIconModel(getIconModel(0))); setName(getExtName()); setTitle(MdlResource.MDL.getString("Contours d'\xE9tude")); - setAttributForLabels(GISAttributeConstants.BATHY); + setAttributForLabels(GISAttributeConstants.LABEL); } public MdlLayer2dContour(FSigEditor _editor) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -9,23 +9,60 @@ import java.awt.Color; +import org.fudaa.ctulu.CtuluExpr; +import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ebli.calque.BCalquePersistenceInterface; +import org.fudaa.ebli.calque.ZCalqueGeometry; import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; +import org.fudaa.ebli.calque.find.CalqueFindExpressionAtomic; +import org.fudaa.ebli.find.EbliFindExpressionContainerInterface; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.fudaa.modeleur.MdlResource; import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dLevelPersistence; import org.fudaa.fudaa.sig.layer.FSigEditor; +import org.nfunk.jep.Variable; /** * Un calque pour le stockage et la manipulation des donn\xE9es altim\xE9triques. * @author Bertrand Marchand - * @version $Id: MdlLayer2dLevel.java,v 1.1.2.8 2008/05/13 12:10:40 bmarchan Exp $ + * @version $Id$ */ public class MdlLayer2dLevel extends MdlLayer2dLine { /** + * Sp\xE9cifique, la valeur Z atomique pour les courbes de niveau. + * @author Bertrand Marchand + * @version $Id:$ + */ + class CalqueFindExpressionAtomicLevel extends CalqueFindExpressionAtomic { + Variable varZ_; + + @Override + public void initialiseExprWhenAtomic(CtuluExpr _expr) { + super.initialiseExprWhenAtomic(_expr); + + varZ_=_expr.addVar(GISAttributeConstants.BATHY.getName(), GISAttributeConstants.BATHY.getLongName()); + } + + @Override + public void majVariableWhenAtomic(int _idx, Variable[] varToUpdate, Object[] _values) { + super.majVariableWhenAtomic(_idx, varToUpdate, _values); + + int ivar=CtuluLibArray.getIndex(varZ_, varToUpdate); + if (ivar!=-1) { + _values[ivar]=getOrdinate(_idx, 2); + } + } + + public CalqueFindExpressionAtomicLevel(ZCalqueGeometry _layer) { + super(_layer); + } + + } + + /** * Constructeur. Utilise un mod\xE8le de donn\xE9es et un editeur. * @param _model Modele * @param _editor Editeur. @@ -38,7 +75,7 @@ setLineModelOuvert(getLineModel(0)); setTitle(MdlResource.MDL.getString("Lignes de niveau")); - setAttributForLabels(GISAttributeConstants.BATHY); + setAttributForLabels(GISAttributeConstants.LABEL); } public MdlLayer2dLevel(FSigEditor _editor) { @@ -54,6 +91,10 @@ return new MdlLayer2dLevelPersistence(); } + public EbliFindExpressionContainerInterface getExpressionContainer() { + return new CalqueFindExpressionAtomicLevel(this); + } + /** * Retourne le nom par defaut du calque. * @return Le nom. Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLevel.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java 2009-02-24 12:28:49 UTC (rev 4494) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java 2009-02-24 17:31:06 UTC (rev 4495) @@ -24,7 +24,7 @@ /** * Un calque pour le stockage et la manipulation des zones g\xE9om\xE9triques 2d. * @author Bertrand Marchand - * @version $Id: MdlLayer2dProfile.java,v 1.1.2.5 2008/05/13 12:10:43 bmarchan Exp $ + * @version $Id$ */ public class MdlLayer2dZone extends MdlLayer2dLine { @@ -41,7 +41,7 @@ setIconModel(1, new TraceIconModel(getIconModel(0))); setName(getExtName()); setTitle(MdlResource.MDL.getString("Zones")); - setAttributForLabels(GISAttributeConstants.BATHY); + setAttributForLabels(GISAttributeConstants.LABEL); } public MdlLayer2dZone(FSigEditor _editor) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dZone.java ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-24 12:28:52
|
Revision: 4494 http://fudaa.svn.sourceforge.net/fudaa/?rev=4494&view=rev Author: bmarchan Date: 2009-02-24 12:28:49 +0000 (Tue, 24 Feb 2009) Log Message: ----------- ZCalqueLigneBrisee derive de ZCalqueGeometry Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGISTreeModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGeometryVisitor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigGeomDataClosedLayerFilter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiPlanLayer.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfilLayer.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGISTreeModel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGISTreeModel.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGISTreeModel.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -171,7 +171,7 @@ // icon_ = EbliResource.EBLI.getIcon("draw-add-pt"); // } else { - if (((ZCalqueLigneBrisee)_userObject).getModele().isGeometryFermee(_idx)) { + if (((ZCalqueLigneBrisee)_userObject).modeleDonnees().isGeometryFermee(_idx)) { icon_=EbliResource.EBLI.getIcon("draw-polygon"); } else { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGeometryVisitor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGeometryVisitor.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/CalqueGeometryVisitor.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -60,11 +60,11 @@ // } else if (_cq instanceof ZCalqueLigneBrisee && (mask_&GISLib.MASK_POLYLINE)!=0) { boolean bok=((ZCalqueLigneBrisee) _cq).modeleDonnees().getNombre() > 0; - return bok && ((ZCalqueLigneBrisee)_cq).getModele().getNbPolyligne()!=0; + return bok && ((ZCalqueLigneBrisee)_cq).modeleDonnees().getNbPolyligne()!=0; } else if (_cq instanceof ZCalqueLigneBrisee && (mask_&GISLib.MASK_POLYGONE)!=0) { boolean bok=((ZCalqueLigneBrisee)_cq).modeleDonnees().getNombre() > 0; - return bok && ((ZCalqueLigneBrisee)_cq).getModele().getNbPolygone()!=0; + return bok && ((ZCalqueLigneBrisee)_cq).modeleDonnees().getNbPolygone()!=0; } return false; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -7,10 +7,8 @@ */ package org.fudaa.ebli.calque; -import gnu.trove.TDoubleArrayList; import gnu.trove.TIntArrayList; import gnu.trove.TIntObjectIterator; -import gnu.trove.TObjectIntHashMap; import java.awt.Color; import java.awt.FontMetrics; @@ -21,10 +19,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.StringTokenizer; import org.fudaa.ctulu.CtuluExpr; -import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; @@ -36,8 +32,6 @@ import org.fudaa.ctulu.gis.GISZoneCollection; import org.fudaa.ebli.calque.edition.ZModeleEditable; import org.fudaa.ebli.calque.find.CalqueFindActionAtomic; -import org.fudaa.ebli.calque.find.CalqueFindActionDefault; -import org.fudaa.ebli.calque.find.CalqueFindComponentPolygone; import org.fudaa.ebli.calque.find.CalqueFindExpression; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.commun.EbliListeSelectionMulti; @@ -47,11 +41,10 @@ import org.fudaa.ebli.commun.EbliUIProperties; import org.fudaa.ebli.find.EbliFindActionInterface; import org.fudaa.ebli.find.EbliFindExpressionContainerInterface; -import org.fudaa.ebli.find.EbliFindExpressionDefault; -import org.fudaa.ebli.find.EbliFindable; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrSegment; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigne; @@ -191,7 +184,7 @@ } /** true si selection en mode sommets */ - transient private boolean isAtomicMode_; + transient protected boolean isAtomicMode_; /** Le mod\xE8le des g\xE9om\xE9tries */ protected ZModeleGeometry modele_; /** La selection a utilise dans le mode selection sommets */ @@ -217,10 +210,6 @@ surfModel_=new TraceSurfaceModel(TraceSurface.INVISIBLE, Color.BLACK,null); } -// public EbliFindActionInterface getFinder() { -// return new CalqueGISFind(this); -// } - protected EbliListeSelectionMulti creeSelectionMulti() { return new EbliListeSelectionMulti(modeleDonnees().getNombre() / 2); } @@ -894,20 +883,45 @@ } final GrPoint pt=new GrPoint(); + final GrSegment poly = new GrSegment(new GrPoint(), new GrPoint()); final GrBoite bPoly = new GrBoite(new GrPoint(), new GrPoint()); + for (int i = modele_.getNombre() - 1; i >= 0; i--) { if (!modele_.isGeometryVisible(i)) continue; modele_.getDomaineForGeometry(i, bPoly); if (bPoly.contientXY(_pt)||bPoly.distanceXY(_pt)<distanceReel) { - for (int j=modele_.getNbPointForGeometry(i)-1; j>=0; j--) { - modele_.point(pt, i, j); - if (pt.distanceXY(_pt)<distanceReel) { - final CtuluListSelection r=new CtuluListSelection(1); - r.setSelectionInterval(i, i); - return r; + + if (modele_.isGeometryReliee(i)) { + for (int j=modele_.getNbPointForGeometry(i)-1; j>0; j--) { + modele_.point(poly.e_, i, j); + modele_.point(poly.o_, i, j-1); + if (poly.distanceXY(_pt)<distanceReel) { + final CtuluListSelection r=new CtuluListSelection(1); + r.setSelectionInterval(i, i); + return r; + } } + if (modele_.isGeometryFermee(i)) { + modele_.point(poly.e_, i, 0); + modele_.point(poly.o_, i, modele_.getNbPointForGeometry(i)-1); + if (poly.distanceXY(_pt)<distanceReel) { + final CtuluListSelection r=new CtuluListSelection(1); + r.setSelectionInterval(i, i); + return r; + } + } } + else { + for (int j=modele_.getNbPointForGeometry(i)-1; j>=0; j--) { + modele_.point(pt, i, j); + if (pt.distanceXY(_pt)<distanceReel) { + final CtuluListSelection r=new CtuluListSelection(1); + r.setSelectionInterval(i, i); + return r; + } + } + } } } return null; @@ -1171,7 +1185,7 @@ return r; } - private LineString createLineFromSelection(final int _i, final CtuluListSelectionInterface _selection, final int _nbSelected) { + protected LineString createLineFromSelection(final int _i, final CtuluListSelectionInterface _selection, final int _nbSelected) { final GISCoordinateSequenceContainerInterface geom = (GISCoordinateSequenceContainerInterface) modele_.getGeomData().getGeometry(_i); final Coordinate[] cs = new Coordinate[_nbSelected]; final int[] idx = _selection.getSelectedIndex(); @@ -1185,11 +1199,14 @@ if (isSelectionEmpty()) { return null; } - // en mode normal (pas de vertex selectionne), on renvoie la ligne s\xE9lectionn\xE9e + // en mode normal (pas de vertex selectionne), on renvoie la ligne s\xE9lectionn\xE9e, si ligne. Sinon null. if (!isAtomicMode()) { -// return getLayerSelection().getNbSelectedIndex() == 1 ? (LineString) modele_.getGeomData().getGeometry( -// getLayerSelection().getMaxIndex()) : null; - throw new UnsupportedOperationException("Can't create line from vertices"); + if (getLayerSelection().getNbSelectedIndex() == 1) { + GISCoordinateSequenceContainerInterface geom=(GISCoordinateSequenceContainerInterface) + modeleDonnees().getGeomData().getGeometry(getLayerSelection().getMaxIndex()); + if (geom instanceof LineString) return (LineString)geom; + } + return null; } // mode vertex final EbliListeSelectionMultiInterface select = getLayerSelectionMulti(); @@ -1204,7 +1221,7 @@ return createLineFromSelection(i, selection, nbSelected); } else if (nbSelected >= 2) { - final int nbPointForLigne = modele_.getNbPointForGeometry(i); + final int nbPointForLigne = modeleDonnees().getNbPointForGeometry(i); final int[] res = CtuluListSelection.isSelectionContiguous(select.getSelection(i), nbPointForLigne); if (res == null) { return null; @@ -1212,7 +1229,21 @@ // selection normale if (res[0] < res[1]) { return createLineFromSelection(i, selection, nbSelected); + } else if (modeleDonnees().isGeometryFermee(i)) { + final Coordinate[] cs = new Coordinate[nbSelected]; + int csi = 0; + final CoordinateSequence seq = ((GISCoordinateSequenceContainerInterface)modeleDonnees() + .getGeomData().getGeometry(i)).getCoordinateSequence(); + for (int j = res[0]; j < nbPointForLigne; j++) { + cs[csi++] = seq.getCoordinate(j); + } + for (int j = 0; j <= res[1]; j++) { + cs[csi++] = seq.getCoordinate(j); + } + return GISGeometryFactory.INSTANCE.createLineString(cs); + } + } } else if (select.getNbListSelected() == 2) { final int[] idx = select.getIdxSelected(); @@ -1220,8 +1251,10 @@ final CtuluListSelectionInterface selection2 = select.getSelection(idx[1]); if (selection1.getNbSelectedIndex() == 1 && selection2.getNbSelectedIndex() == 1) { final Coordinate[] cs = new Coordinate[2]; - cs[0] = ((Geometry)modele_.getGeomData().getGeometry(idx[0])).getCoordinates()[selection1.getMaxIndex()]; - cs[1] = ((Geometry)modele_.getGeomData().getGeometry(idx[1])).getCoordinates()[selection2.getMaxIndex()]; + cs[0] = ((GISCoordinateSequenceContainerInterface) + modeleDonnees().getGeomData().getGeometry(idx[0])).getCoordinateSequence().getCoordinate(selection1.getMaxIndex()); + cs[1] = ((GISCoordinateSequenceContainerInterface) + modeleDonnees().getGeomData().getGeometry(idx[1])).getCoordinateSequence().getCoordinate(selection2.getMaxIndex()); return GISGeometryFactory.INSTANCE.createLineString(cs); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -7,54 +7,24 @@ */ package org.fudaa.ebli.calque; -import gnu.trove.TIntArrayList; -import gnu.trove.TIntObjectIterator; -import gnu.trove.TObjectIntHashMap; - import java.awt.Color; import java.awt.FontMetrics; -import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; -import org.fudaa.ctulu.CtuluExpr; -import org.fudaa.ctulu.CtuluLib; -import org.fudaa.ctulu.CtuluLibArray; -import org.fudaa.ctulu.CtuluListSelection; -import org.fudaa.ctulu.CtuluListSelectionInterface; -import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISAttributeModel; -import org.fudaa.ctulu.gis.GISGeometryFactory; -import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISZoneCollection; -import org.fudaa.ebli.calque.edition.ZModeleEditable; -import org.fudaa.ebli.calque.find.CalqueFindExpression; import org.fudaa.ebli.commun.EbliLib; -import org.fudaa.ebli.commun.EbliListeSelectionMulti; -import org.fudaa.ebli.commun.EbliListeSelectionMultiInterface; -import org.fudaa.ebli.commun.EbliSelectionMode; -import org.fudaa.ebli.commun.EbliSelectionState; import org.fudaa.ebli.commun.EbliUIProperties; import org.fudaa.ebli.controle.BSelecteurLineModel; -import org.fudaa.ebli.find.EbliFindExpressionContainerInterface; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.geometrie.GrSegment; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; -import org.nfunk.jep.Variable; -import com.memoire.fu.FuLog; -import com.vividsolutions.jts.algorithm.SIRtreePointInRing; -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.CoordinateSequence; -import com.vividsolutions.jts.geom.Envelope; -import com.vividsolutions.jts.geom.LineString; -import com.vividsolutions.jts.geom.LinearRing; - /** * Un calque g\xE9rant des lignes bris\xE9es, ouvertes ou ferm\xE9es \xE0 un niveau global ou atomique.<p> * Le niveau atomique des lignes bris\xE9es est le niveau points. Le calque s'appuie sur un mod\xE8le @@ -63,73 +33,14 @@ * @author Fred Deniger * @version $Id$ */ -public class ZCalqueLigneBrisee extends ZCalqueAffichageDonneesLineAbstract implements ZModelGeometryListener { +public class ZCalqueLigneBrisee extends ZCalqueGeometry { - /** - * @author Fred Deniger - * @version $Id$ - */ - private class VariableNonAtomicFindExpression extends CalqueFindExpression { - - TObjectIntHashMap varAtt_; - - public VariableNonAtomicFindExpression() { - super(ZCalqueLigneBrisee.this.getModele()); - } - - public void initialiseExpr(final CtuluExpr _expr) { - super.initialiseExpr(_expr); - final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); - final int nb = coll.getNbAttributes(); - if (nb > 0) { - if (varAtt_ == null) { - varAtt_ = new TObjectIntHashMap(nb); - } else { - varAtt_.clear(); - } - for (int i = 0; i < nb; i++) { - final GISAttributeInterface att = coll.getAttribute(i); - if (!att.isAtomicValue() && Number.class.isAssignableFrom(att.getDataClass())) { - varAtt_.put(_expr.addVar(att.getName(), att.getLongName()), i); - } - } - } - - } - - public void majVariable(final int _idx, final Variable[] _varToUpdate, final Object[] _values) { - super.majVariable(_idx, _varToUpdate, _values); - if (varAtt_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { - final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); - for (int i = _varToUpdate.length - 1; i >= 0; i--) { - if (varAtt_.containsKey(_varToUpdate[i])) { - _values[i]=CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) - .getObjectValueAt(_idx)).doubleValue()); - } - } - } - } - - } - - /** - * true si edition de points. - */ - transient private boolean isAtomicMode_; - + /** Le modele d'icone pour les lignes ouvertes */ protected TraceIconModel iconeModelOuvert_; - + /** Le modele de lignes pour les lignes ouvertes */ protected TraceLigneModel ligneModelOuvert_; - - protected ZModeleLigneBrisee modele_; - /** La selection a utilise dans le mode selection de points de polygone. */ - protected EbliListeSelectionMulti selectionMulti_; - /** Pour le trac\xE9 de la selection en mode atomique. */ - protected ZSelectionTrace traceAtomic_; /** On dessine une fl\xE8che sur chaque ligne pour indiquer le sens de celle-ci. */ protected boolean showLineOrientation_; - /** L'attribut utilis\xE9 pour afficher les labels */ - protected GISAttributeInterface attrLabels_=null; /** * @@ -142,6 +53,7 @@ * @param _modele le modele du calque */ public ZCalqueLigneBrisee(final ZModeleLigneBrisee _modele) { + super(_modele); modele_ = _modele; if(modele_!=null) modele_.addModelListener(this); @@ -162,10 +74,6 @@ } } - protected EbliListeSelectionMulti creeSelectionMulti() { - return new EbliListeSelectionMulti(modeleDonnees().getNombre() / 2); - } - protected void initTrace(final TraceLigneModel _ligne, final int _idxPoly) { final int idx = modele_.isGeometryFermee(_idxPoly) ? 0 : 1; _ligne.updateData(getLineModel(idx)); @@ -188,130 +96,6 @@ } - protected void paintSelectionMulti(final Graphics _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran, - final GrBoite _clipReel) { - if ((isRapide()) || (isSelectionEmpty())) { - return; - } - final GrBoite clip = _clipReel; - if (!getDomaine().intersectXY(clip)) { - return; - } - Color cs = _trace.getColor(); - if (isAttenue()) { - cs = attenueCouleur(cs); - } - _g.setColor(cs); - final TraceIcon ic = _trace.getIconeInterne(); - final TIntObjectIterator it = selectionMulti_.getIterator(); - final GrPoint p = new GrPoint(); - final GrMorphisme versEcran = _versEcran; - for (int i = selectionMulti_.getNbListSelected(); i-- > 0;) { - it.advance(); - final CtuluListSelectionInterface s = (CtuluListSelectionInterface) it.value(); - if (!s.isEmpty()) { - final int idxPoly = it.key(); - final int min = s.getMinIndex(); - for (int j = s.getMaxIndex(); j >= min; j--) { - if (s.isSelected(j)) { - modele_.point(p, idxPoly, j); - if (clip.contientXY(p)) { - p.autoApplique(versEcran); - ic.paintIconCentre(this, _g, p.x_, p.y_); - } - - } - } - } - } - } - - public boolean changeSelection(final GrPoint _pt, final int _tolerancePixel, final int _action) { - if (!isSelectable()) return false; - - if (isAtomicMode_) { - final EbliListeSelectionMulti l = selectionMulti(_pt, _tolerancePixel, false); - changeSelectionMulti(l, _action); - if ((l == null) || (l.isEmpty())) { - return false; - } - return true; - } - return super.changeSelection(_pt, _tolerancePixel, _action); - } - - public boolean changeSelection(final LinearRing _poly, final int _action, final int _mode) { - if (!isSelectable()) return false; - - if (isAtomicMode_) { - final EbliListeSelectionMulti l = selectionMulti(_poly); - changeSelectionMulti(l, _action); - if ((l == null) || (l.isEmpty())) { - return false; - } - return true; - } - return super.changeSelection(_poly, _action, _mode); - } - - public void changeSelectionMulti(final EbliListeSelectionMulti _s, final int _action) { - // Si la selection de modif est nulle, seule l'action de remplacement - // est concernee. - if (selectionMulti_ == null) { - selectionMulti_ = creeSelectionMulti(); - } - boolean sentEvent = false; - switch (_action) { - case EbliSelectionState.ACTION_ADD: - sentEvent = selectionMulti_.add(_s); - break; - case EbliSelectionState.ACTION_DEL: - sentEvent = selectionMulti_.remove(_s); - break; - case EbliSelectionState.ACTION_XOR: - sentEvent = selectionMulti_.xor(_s); - break; - case EbliSelectionState.ACTION_REPLACE: - selectionMulti_.setSelection(_s); - sentEvent = true; - break; - default: - break; - } - if (sentEvent) { - fireSelectionEvent(); - } - } - - public void clearSelection() { - if (!isSelectable()) return; - - // dans le mode edition de noeuds - if (isAtomicMode_) { - if (selectionMulti_ != null && !selectionMulti_.isEmpty()) { - - selectionMulti_.clear(); - fireSelectionEvent(); - } - } else { - super.clearSelection(); - } - } - - /** - * @return true si le modele contient des polygones. - */ - public boolean containsPolygone() { - return modele_.containsPolygone(); - } - - public EbliFindExpressionContainerInterface getExpressionContainer() { - if (isAtomicMode_) { - return new CalqueFindExpression(modele_); - } - return new VariableNonAtomicFindExpression(); - } - public TraceIconModel getIconModel(final int _idx) { if (_idx == 1) { return iconeModelOuvert_; @@ -319,10 +103,6 @@ return iconModel_; } - public EbliListeSelectionMultiInterface getLayerSelectionMulti() { - return selectionMulti_; - } - public TraceLigneModel getLineModel(final int _idx) { if (_idx == 1) { return ligneModelOuvert_; @@ -330,66 +110,10 @@ return ligneModel_; } - /** - * @return Modele - */ - public ZModeleLigneBrisee getModele() { - return modele_; - } - - public int getNbSelected() { - if (isSelectionEmpty()) { - return 0; - } - if (isAtomicMode_) { - return selectionMulti_.getNbListSelected(); - } - return super.getNbSelected(); - } - public int getNbSet() { return 2; } - public int[] getSelectedIndex() { - if (isSelectionEmpty()) { - return null; - } - if (isAtomicMode_) { - return selectionMulti_.getIdxSelected(); - } - return super.getSelectedIndex(); - } - - public int[] getSelectedObjectInTable() { - if (isSelectionEmpty()) { - return null; - } - if (!isAtomicMode_) { - return super.getSelectedObjectInTable(); - } - final EbliListeSelectionMultiInterface multi = getLayerSelectionMulti(); - int nb = 0; - // 20 points par lignes - final TIntArrayList list = new TIntArrayList(modele_.getNombre() * 20); - final int nbLigne = modele_.getNombre(); - for (int i = 0; i < nbLigne; i++) { - final CtuluListSelectionInterface sel = multi.getSelection(i); - if (sel != null) { - final int max = sel.getMaxIndex(); - for (int j = sel.getMinIndex(); j <= max; j++) { - if (sel.isSelected(j)) { - list.add(nb + j); - } - } - - } - nb += modele_.getNbPointForGeometry(i); - } - - return list.toNativeArray(); - } - public String getSetTitle(final int _idx) { if (_idx == 0) { return EbliLib.getS("Lignes ferm\xE9es"); @@ -397,43 +121,6 @@ return EbliLib.getS("Lignes ouvertes"); } - public GrBoite getDomaineOnSelected() { - if (isSelectionEmpty()) { - return null; - } - final Envelope env = new Envelope(); - if (isAtomicMode_) { - final EbliListeSelectionMultiInterface multi = getLayerSelectionMulti(); - final TIntObjectIterator it = multi.getIterator(); - final Coordinate c = new Coordinate(); - for (int i = multi.getNbListSelected(); i-- > 0;) { - it.advance(); - final CtuluListSelectionInterface atomSel = (CtuluListSelectionInterface) it.value(); - final LineString g = (LineString) modele_.getGeomData().getGeometry(it.key()); - final int max = atomSel.getMaxIndex(); - for (int j = atomSel.getMinIndex(); j <= max; j++) { - if (atomSel.isSelected(j)) { - g.getCoordinateSequence().getCoordinate(j, c); - env.expandToInclude(c); - } - } - } - - } else { - final CtuluListSelectionInterface sel = getLayerSelection(); - final int max = sel.getMaxIndex(); - for (int i = sel.getMinIndex(); i <= max; i++) { - if (sel.isSelected(i)) { - env.expandToInclude(modele_.getGeomData().getGeometry(i).getEnvelopeInternal()); - } - } - } - final GrBoite r = new GrBoite(); - r.ajuste(env.getMaxX(), env.getMaxY(), 0); - r.ajuste(env.getMinX(), env.getMinY(), 0); - return r; - } - public void initFrom(final EbliUIProperties _p) { if (_p != null) { super.initFrom(_p); @@ -446,75 +133,7 @@ } } - public void inverseSelection() { - if (!isSelectable()) return; - - if (!isAtomicMode_) { -// super.inverseSelection(); - if (isSelectionEmpty()) { - return; - } - initSelection(); - selection_.inverse(modeleDonnees().getNombre()); - for (int i=0; i<modele_.getNombre(); i++) { - if (!modele_.isGeometryVisible(i)) selection_.remove(i); - } - fireSelectionEvent(); - return; - } - if (isSelectionEmpty()) { - return; - } - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - final CtuluListSelection s = selectionMulti_.get(i); - if (s != null) { - s.inverse(modele_.getNbPointForGeometry(i)); - } - } - fireSelectionEvent(); - } - /** - * @return true si on est dans le mode edition de noeuds - */ - public boolean isAtomicMode() { - return isAtomicMode_; - } - - /** - * D\xE9finit l'attribut atomique pris pour afficher les labels. - * @param _att L'attribut. Si Null : Pas d'affichage de labels. - */ - public void setAttributForLabels(GISAttributeInterface _att) { - if (_att==null || !_att.isAtomicValue()) - attrLabels_=null; - else - attrLabels_=_att; - repaint(); - } - - public boolean isConfigurable() { - return true; - } - - public boolean isPaletteModifiable() { - return false; - } - - /** - * Indique si la s\xE9lection est vide. - * @return true Si aucun objet ni aucun point en mode atomique selectionn\xE9. - */ - public boolean isSelectionEmpty() { - return isAtomicMode_ ? selectionMulti_ == null ? true : selectionMulti_.isEmpty() : super.isSelectionEmpty(); - } - - public boolean isTitleModifiable() { - return true; - } - - /** * @param _modele Modele */ public void modele(final ZModeleLigneBrisee _modele) { @@ -529,8 +148,8 @@ } } - public ZModeleDonnees modeleDonnees() { - return getModele(); + public ZModeleLigneBrisee modeleDonnees() { + return (ZModeleLigneBrisee)modele_; } /** @@ -680,7 +299,7 @@ // Enfin les labels sur les atomiques. if (attrLabels_!=null && !isRapide()) { - GISZoneCollection geomData = getModele().getGeomData(); + GISZoneCollection geomData = modeleDonnees().getGeomData(); int idxLabels=geomData.getIndiceOf(attrLabels_); if (idxLabels!=-1) { @@ -740,308 +359,6 @@ } } - public void paintSelection(final Graphics2D _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran, - final GrBoite _clipReel) { - if (isSelectionEmpty()) return; - - if (isAtomicMode_) { - if (traceAtomic_==null) { - Color cg=attenueCouleur(_trace.getColor()); - Color cs=_trace.getColor(); - traceAtomic_=new ZSelectionTrace(cg,cs); - } - CtuluListSelection containers=new CtuluListSelection(selectionMulti_.getIdxSelection()); - paintSelectionSimple(_g, traceAtomic_, _versEcran, _clipReel, containers); - paintSelectionMulti(_g, traceAtomic_, _versEcran, _clipReel); - } else { - paintSelectionSimple(_g, _trace, _versEcran, _clipReel, selection_); - } - - } - - public void paintSelectionSimple(final Graphics _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran, - final GrBoite _clipReel, CtuluListSelection _containers) { - if ((isRapide()) || (isSelectionEmpty())) { - return; - } - final GrBoite clip = _clipReel; - if (getDomaine() == null || !getDomaine().intersectXY(clip)) { - return; - } - final GrMorphisme versEcran = _versEcran; - Color cs = _trace.getColor(); - if (isAttenue()) { - cs = attenueCouleur(cs); - } - _g.setColor(cs); - final TraceLigne tlSelection = _trace.getLigne(); - final TraceIcon ic = _trace.getIcone(); - final int nb = Math.min(_containers.getMaxIndex(), modele_.getNombre() - 1); - - final GrBoite bPoly = new GrBoite(); - bPoly.e_ = new GrPoint(); - bPoly.o_ = new GrPoint(); - for (int i = nb; i >= 0; i--) { - if (!_containers.isSelected(i)) { - continue; - } - modele_.getDomaineForGeometry(i, bPoly); - // Si la boite du polygone n'est pas dans la boite d'affichage on passe - if (bPoly.intersectionXY(clip) == null) { - continue; - } - final int nbPoints = modele_.getNbPointForGeometry(i); - final GrPoint ptOri = new GrPoint(); - modele_.point(ptOri, i, nbPoints - 1); - ptOri.autoApplique(versEcran); - ic.paintIconCentre(this, _g, ptOri.x_, ptOri.y_); - final GrPoint ptDest = new GrPoint(); - for (int j = nbPoints - 2; j >= 0; j--) { - // le point de dest est initialise - modele_.point(ptDest, i, j); - ptDest.autoApplique(versEcran); - ic.paintIconCentre(this, _g, ptDest.x_, ptDest.y_); - tlSelection.dessineTrait((Graphics2D) _g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_); - ptOri.initialiseAvec(ptDest); - } - if (modele_.isGeometryFermee(i)) { - modele_.point(ptOri, i, nbPoints - 1); - ptOri.autoApplique(versEcran); - tlSelection.dessineTrait((Graphics2D) _g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_); - } - } - - } - - public void selectAll() { - if (!isVisible() || !isSelectable()) return; - - if (!isAtomicMode_) { -// super.selectAll(); - initSelection(); - selection_.addInterval(0, modele_.getNombre() - 1); - for (int i=0; i<modele_.getNombre(); i++) { - if (!modele_.isGeometryVisible(i)) selection_.remove(i); - } - fireSelectionEvent(); - return; - } - if (selectionMulti_ == null) { - selectionMulti_ = creeSelectionMulti(); - } - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - - CtuluListSelection s = selectionMulti_.get(i); - if (s == null) { - s = new CtuluListSelection(modele_.getNbPointForGeometry(i)); - selectionMulti_.set(i, s); - } - s.setSelectionInterval(0, modele_.getNbPointForGeometry(i) - 1); - } - fireSelectionEvent(); - } - - public CtuluListSelection selection(final GrPoint _pt, final int _tolerance) { - if (modele_.getNombre() == 0) { - return null; - } - final GrBoite bClip = getDomaine(); - if (bClip == null) { - return null; - } - final double distanceReel = GrMorphisme.convertDistanceXY(getVersReel(), _tolerance); - if ((!bClip.contientXY(_pt)) && (bClip.distanceXY(_pt) > distanceReel)) { - return null; - } - - // bClip = getClipReel(getGraphics()); - final GrSegment poly = new GrSegment(new GrPoint(), new GrPoint()); - final GrBoite bPoly = new GrBoite(new GrPoint(), new GrPoint()); - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - - modele_.getDomaineForGeometry(i, bPoly); - if (bPoly.contientXY(_pt)||bPoly.distanceXY(_pt)<distanceReel) { - for (int j=modele_.getNbPointForGeometry(i)-1; j>0; j--) { - modele_.point(poly.e_, i, j); - modele_.point(poly.o_, i, j-1); - if (poly.distanceXY(_pt)<distanceReel) { - final CtuluListSelection r=new CtuluListSelection(1); - r.setSelectionInterval(i, i); - return r; - } - } - if (modele_.isGeometryFermee(i)) { - modele_.point(poly.e_, i, 0); - modele_.point(poly.o_, i, modele_.getNbPointForGeometry(i)-1); - if (poly.distanceXY(_pt)<distanceReel) { - final CtuluListSelection r=new CtuluListSelection(1); - r.setSelectionInterval(i, i); - return r; - } - } - } - } - return null; - } - - public CtuluListSelection selection(final LinearRing _poly, final int _mode) { - if (modele_.getNombre() == 0 || !isVisible()) { - return null; - } - final Envelope polyEnv = _poly.getEnvelopeInternal(); - final GrBoite domaineBoite = getDomaine(); - final Envelope domaine = new Envelope(domaineBoite.e_.x_, domaineBoite.o_.x_, domaineBoite.e_.y_, - domaineBoite.o_.y_); - // si l'envelop du polygone n'intersect pas le domaine, il n'y a pas de - // selection - if (!polyEnv.intersects(domaine)) { - return null; - } - - final SIRtreePointInRing tester = new SIRtreePointInRing(_poly); - final Coordinate c = new Coordinate(); - final CtuluListSelection r = creeSelection(); - final GrPoint p = new GrPoint(); - final GrBoite bPoly = new GrBoite(new GrPoint(), new GrPoint()); - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - - modele_.getDomaineForGeometry(i, bPoly); - // si le poly est dans dans le poly de selection - boolean selected = false; - if (_mode == EbliSelectionMode.MODE_ALL) { - if (polyEnv.contains(bPoly.e_.x_, bPoly.e_.y_) && polyEnv.contains(bPoly.o_.x_, bPoly.o_.y_)) { - selected = true; - for (int j = modele_.getNbPointForGeometry(i) - 1; (j >= 0) && selected; j--) { - modele_.point(p, i, j); - c.x = p.x_; - c.y = p.y_; - if (!tester.isInside(c)) { - selected = false; - } - } - } - } else if (_mode == EbliSelectionMode.MODE_ONE) { - if (polyEnv.intersects(bPoly.getEnv())) { - for (int j = modele_.getNbPointForGeometry(i) - 1; (j >= 0) && !selected; j--) { - modele_.point(p, i, j); - c.x = p.x_; - c.y = p.y_; - if (GISLib.isSelectedEnv(c, _poly, polyEnv, tester)) { - selected = true; - } - } - } - - } else if (_mode == EbliSelectionMode.MODE_CENTER) { - final CoordinateSequence coordinateSequence = modele_.getGeomData().getCoordinateSequence(i); - c.x = GISLib.getMoyX(coordinateSequence); - c.y = GISLib.getMoyY(coordinateSequence); - selected = GISLib.isSelectedEnv(c, _poly, polyEnv, tester); - - } - if (selected) { - r.add(i); - } - } - if (r.isEmpty()) { - return null; - } - return r; - } - - public EbliListeSelectionMulti selectionMulti(final GrPoint _ptReel, final int _tolerancePixel, boolean _inDepth) { - final GrMorphisme versReel = getVersReel(); - GrBoite bClip = getDomaine(); - if (bClip == null || (!bClip.contientXY(_ptReel)) && (bClip.distanceXY(_ptReel) > _tolerancePixel)) { - return null; - } - final double distanceReel = GrMorphisme.convertDistanceXY(versReel, _tolerancePixel); - bClip = getClipReel(getGraphics()); - final GrPoint p = new GrPoint(); - final GrBoite btLigne = new GrBoite(); - - EbliListeSelectionMulti sel=null; - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - - modele_.getDomaineForGeometry(i, btLigne); - if (btLigne.contientXY(_ptReel) || btLigne.distanceXY(_ptReel) < distanceReel) { - for (int j = modele_.getNbPointForGeometry(i) - 1; j >= 0; j--) { - modele_.point(p, i, j); - if (bClip.contientXY(p) && (p.distanceXY(_ptReel) < distanceReel)) { - if (sel==null) - sel = new EbliListeSelectionMulti(1); - sel.add(i, j); - if (!_inDepth) - return sel; - } - } - } - } - return sel; - } - - public EbliListeSelectionMulti selectionMulti(final LinearRing _poly) { - if (modele_.getNombre() == 0 || !isVisible()) { - return null; - } - final Envelope polyEnv = _poly.getEnvelopeInternal(); - final GrBoite domaineBoite = getDomaine(); - final Envelope domaine = new Envelope(domaineBoite.e_.x_, domaineBoite.o_.x_, domaineBoite.e_.y_, - domaineBoite.o_.y_); - // si l'envelop du polygone n'intersect pas le domaine, il n'y a pas de - // selection - if (!polyEnv.intersects(domaine)) { - return null; - } - final EbliListeSelectionMulti r = creeSelectionMulti(); - final GrPoint p = new GrPoint(); - final SIRtreePointInRing tester = new SIRtreePointInRing(_poly); - final Coordinate c = new Coordinate(); - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - if (!modele_.isGeometryVisible(i)) continue; - - CtuluListSelection l = null; - final int nbPt = modele_.getNbPointForGeometry(i); - for (int j = nbPt - 1; j >= 0; j--) { - modele_.point(p, i, j); - c.x = p.x_; - c.y = p.y_; - if ((polyEnv.contains(c)) && (tester.isInside(c))) { - if (l == null) { - l = new CtuluListSelection(nbPt); - } - l.add(j); - } - } - if (l != null) { - r.set(i, l); - } - } - if (r.isEmpty()) { - return null; - } - return r; - } - - /** - * D\xE9finit que les modifications d'objets auront lieu en mode atomique. - * @param _new true : Modifications en mode atomique. - * @return true si l'appel a produit un changement de mode. - */ - public boolean setAtomicMode(final boolean _new) { - if (_new != isAtomicMode_) { - isAtomicMode_ = _new; - firePropertyChange("mode", !isAtomicMode_, isAtomicMode_); - clearSelection(); - return true; - } - return false; - } - public void setLineModelOuvert(final TraceLigneModel _model) { if (_model == null) { return; @@ -1054,160 +371,4 @@ firePropertyChange(BSelecteurLineModel.PROPERTY + "open", null, ligneModelOuvert_); } - public boolean setSelection(final int[] _idx) { - if (!isSelectable()) return false; - - // Aucun controle n'est fait sur la visibilit\xE9 ou non des objets d'indices pass\xE9s. - if (!isAtomicMode_) { - return super.setSelection(_idx); - } - // TODO : Traitement a faire si on est en mode atomique. - FuLog.warning("EBL:ZCalqueLigneBrisee.setSelection() can't be called in atomic mode"); - return false; - } - - public boolean selectNext() { - if (!isAtomicMode_) { - return super.selectNext(); - } - // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. - else { - if (selectionMulti_==null) - return false; - if (selectionMulti_.getNbListSelected()!=1) - return false; - - int idxGeom=selectionMulti_.getIdxSelected()[0]; - - CtuluListSelection s=selectionMulti_.get(idxGeom); - if (s==null) - return false; - int idx=s.getMaxIndex(); - if (idx>=getModele().getNbPointForGeometry(idxGeom)-1) - return false; - s.setSelectionInterval(idx+1,idx+1); - fireSelectionEvent(); - return true; - } - } - - public boolean selectPrevious() { - if (!isAtomicMode_) { - return super.selectPrevious(); - } - // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. - else { - if (selectionMulti_==null) - return false; - if (selectionMulti_.getNbListSelected()!=1) - return false; - - int idxGeom=selectionMulti_.getIdxSelected()[0]; - - CtuluListSelection s=selectionMulti_.get(idxGeom); - if (s==null) - return false; - int idx=s.getMinIndex(); - if (idx<=0) - return false; - s.setSelectionInterval(idx-1,idx-1); - fireSelectionEvent(); - return true; - } - } - - public boolean setTitle(final String _title) { - final boolean r = super.setTitle(_title); - if (r && modele_ != null && modele_.getGeomData() != null) { - modele_.getGeomData().setTitle(_title, null); - } - return r; - } - - private LineString createLineFromSelection(final int _i, final CtuluListSelectionInterface _selection, final int _nbSelected) { - final LineString geom = (LineString) getModele().getGeomData().getGeometry(_i); - final Coordinate[] cs = new Coordinate[_nbSelected]; - final int[] idx = _selection.getSelectedIndex(); - for (int j = 0; j < _nbSelected; j++) { - cs[j] = geom.getCoordinateN(idx[j]); - } - return GISGeometryFactory.INSTANCE.createLineString(cs); - } - - public LineString getSelectedLine() { - if (isSelectionEmpty()) { - return null; - } - // en mode normal (pas de vertex selectionne), on renvoie la ligne s\xE9lectionn\xE9e - if (!isAtomicMode()) { - return getLayerSelection().getNbSelectedIndex() == 1 ? (LineString) getModele().getGeomData().getGeometry( - getLayerSelection().getMaxIndex()) : null; - } - // mode vertex - final EbliListeSelectionMultiInterface select = getLayerSelectionMulti(); - // mode vertex - // la selection se situe dans la meme ligne - if (select.getNbListSelected() == 1) { - final int i = select.getIdxSelected()[0]; - final CtuluListSelectionInterface selection = select.getSelection(i); - final int nbSelected = selection.getNbSelectedIndex(); - // deux sommets s\xE9lectionn\xE9s: on choisit la ligne en les 2 sommets - if (nbSelected == 2) { - return createLineFromSelection(i, selection, nbSelected); - - } else if (nbSelected >= 2) { - final int nbPointForLigne = getModele().getNbPointForGeometry(i); - final int[] res = CtuluListSelection.isSelectionContiguous(select.getSelection(i), nbPointForLigne); - if (res == null) { - return null; - } - // selection normale - if (res[0] < res[1]) { - return createLineFromSelection(i, selection, nbSelected); - } else if (getModele().isGeometryFermee(i)) { - final Coordinate[] cs = new Coordinate[nbSelected]; - int csi = 0; - final LineString string = (LineString) getModele().getGeomData().getGeometry(i); - for (int j = res[0]; j < nbPointForLigne; j++) { - cs[csi++] = string.getCoordinateN(j); - } - for (int j = 0; j <= res[1]; j++) { - cs[csi++] = string.getCoordinateN(j); - } - return GISGeometryFactory.INSTANCE.createLineString(cs); - - } - - } - } else if (select.getNbListSelected() == 2) { - final int[] idx = select.getIdxSelected(); - final CtuluListSelectionInterface selection1 = select.getSelection(idx[0]); - final CtuluListSelectionInterface selection2 = select.getSelection(idx[1]); - if (selection1.getNbSelectedIndex() == 1 && selection2.getNbSelectedIndex() == 1) { - final Coordinate[] cs = new Coordinate[2]; - cs[0] = ((LineString) getModele().getGeomData().getGeometry(idx[0])).getCoordinateN(selection1.getMaxIndex()); - cs[1] = ((LineString) getModele().getGeomData().getGeometry(idx[1])).getCoordinateN(selection2.getMaxIndex()); - return GISGeometryFactory.INSTANCE.createLineString(cs); - } - } - return null; - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.AttributeListener#attributeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int) - */ - public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) { - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.AttributeListener#attributeValueChangeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int, java.lang.Object) - */ - public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) { - /* A chaque changement de valeur d'un attribut, tout est redessin\xE9. On - * pourrai faire quelque chose de plus optimis\xE9 comme un repaint seulement - * quand la valeur de visibilit\xE9 est modifi\xE9 et pas dans les autres cas. - */ - repaint(); - } - } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -42,5 +42,6 @@ */ public void valueChanged(TreeSelectionEvent e) { setEnabled(scene_.canUseAtomicMode()); + setSelected(isEnabled() && scene_.isAtomicMode()); } } \ No newline at end of file Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -0,0 +1,161 @@ +/* + * @creation 23 f\xE9vr. 2009 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2009 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ebli.calque.find; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +import org.fudaa.ctulu.CtuluListSelection; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; +import org.fudaa.ebli.calque.ZCalqueGeometry; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.commun.EbliListeSelectionMulti; +import org.fudaa.ebli.find.EbliFindComponent; +import org.fudaa.ebli.find.EbliFindComponentExpr; +import org.fudaa.ebli.find.EbliFindable; +import org.nfunk.jep.Variable; + +import com.memoire.fu.FuLog; + +/** + * Une action de recherche permettant de rechercher des geometries ou des sommets. Cette action r\xE9agit au changement de mode de + * selection sommet<->geometrie. + * @author Bertrand Marchand + * @version $Id:$ + */ + +public class CalqueFindActionAtomic extends CalqueFindActionDefault implements PropertyChangeListener { + /** Le panneau de recherche par formule recup\xE9r\xE9 pour \xEAtre mis a jour en cas de changement de mode de selection */ + EbliFindComponentExpr exprComp_; + /** Le panneau de recherche par polygone recup\xE9r\xE9 pour \xEAtre mis a jour en cas de changement de mode de selection */ + CalqueFindComponentPolygone polyComp_; + + /** + * Cr\xE9ation de l'action + * @param _item Le calque associ\xE9 \xE0 la recherche. + */ + public CalqueFindActionAtomic(ZCalqueGeometry _calque) { + super(_calque); + // Attention : L'instance ne doit pas \xEAtre cr\xE9\xE9e plus d'une fois par calque, car elle ecoute un changement de propri\xE9t\xE9 + // sur ce calque. + _calque.addPropertyChangeListener("mode",this); + } + + public boolean find(final Object _idx, final String _action, final int _selOption, final EbliFindable _parent) { + if (_action.startsWith(CalqueFindComponentPolygone.getID())) { + return findPolygone(_idx, _action, _selOption, _parent); + } + final String exp = (String) _idx; + final EbliListeSelectionMulti selection = createSelection(exp, _action, _selOption); + return selection == null ? false : ((ZCalqueAffichageDonnees)layer_).changeSelection(selection, _selOption); + } + + /** + * Cr\xE9e une selection de sommet ou de geometries, suivant qu'on est en mode atomique ou en mode global. + * @param _idx La chaine utilis\xE9e pour la recherche (indexs ou formule) + * @param _action L'onglet a partir duquel on effectue la recherche + * @param _selOption L'option de selection (ajout, suppression, etc). + * @return + */ + protected EbliListeSelectionMulti createSelection(final String _idx, final String _action, final int _selOption) { + EbliListeSelectionMulti selection = null; + if ("IDX".equals(_action)) { + final int[] idx = getIndex(_idx); + if (idx != null && !((ZCalqueGeometry)layer_).isAtomicMode()) { + selection = new EbliListeSelectionMulti(idx.length); + for (int i : idx) { + selection.set(i,new CtuluListSelection(0)); + } + } + } else if ("EXPR".equals(_action)) { + if (FuLog.isTrace()) { + FuLog.trace("find from expression"); + } + if (expr_.getParser().hasError()) { + return null; + } + final int nb = getNbValuesToTest(); + selection = new EbliListeSelectionMulti(nb); + final Variable[] vars =expr_.findUsedVar(); + final Object[] values=new Object[vars.length]; +// CtuluListSelection old = null; +// if (_selOption == EbliSelectionState.ACTION_AND || _selOption == EbliSelectionState.ACTION_DEL) { +// old = getOldSelection(); +// } +// final int min = old == null ? 0 : old.getMinIndex(); +// final int max = old == null ? nb - 1 : old.getMaxIndex(); + final int min = 0; + final int max = nb - 1; + + + for (int idxGeom = max; idxGeom >= min; idxGeom--) { +// if (old == null || old.isSelected(i)) { + if (vars!=null) { + exprFiller_.majVariable(idxGeom, vars, values); + + // Mode atomique. + if (((ZCalqueGeometry)layer_).isAtomicMode()) { + int nbAtomics=((ZCalqueGeometry)layer_).modeleDonnees().getNbPointForGeometry(idxGeom); + for (int iat=0; iat<nbAtomics; iat++) { + for (int j=0; j<vars.length; j++) { + vars[j].setValue(((Object[])values[j])[iat]); + } + final int val=(int)expr_.getParser().getValue(); + if (val==1) { + selection.add(idxGeom, iat); + } + } + } + + // Mode global + else { + for (int j=0; j<vars.length; j++) { + vars[j].setValue(values[j]); + } + final int val=(int)expr_.getParser().getValue(); + if (val==1) { + // La liste des sous objets est vide, mais pr\xE9sente. + selection.set(idxGeom,new CtuluListSelection(0)); + } + } + } + // } + } + } + return selection; + } + + + protected EbliFindComponent buildExprComp() { + exprComp_=(EbliFindComponentExpr)super.buildExprComp(); + exprComp_.setFindOnAtomic(((ZCalqueGeometry)layer_).isAtomicMode()); + + return exprComp_; + } + + protected EbliFindComponent buildPolygoneComponent(final EbliFindable _parent) { + polyComp_ = new CalqueFindComponentPolygone(((ZEbliCalquesPanel) _parent).getDonneesCalque()); + polyComp_.setFindOnAtomic(((ZCalqueGeometry)layer_).isAtomicMode()); + return polyComp_; + } + + public void propertyChange(PropertyChangeEvent _evt) { + if ("mode".equals(_evt.getPropertyName())) { + boolean isAtomic=((Boolean)_evt.getNewValue()).booleanValue(); + + buildExpr(); + if (exprComp_!=null) { + exprComp_.setExpr(expr_); + exprComp_.setFindOnAtomic(isAtomic); + } + + if (polyComp_!=null) + polyComp_.setFindOnAtomic(isAtomic); + } + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -292,7 +292,7 @@ final FSigLineSingleModel modele = new FSigLineSingleModel(_s); if (tmp_ == null) { initZoom_ = panel_.getVueCalque().getViewBoite(); - tmp_ = new ZCalqueLigneBrisee(); + tmp_ = new ZCalqueLigneBrisee(modele); tmp_.setDestructible(true); final TraceIconModel model = new TraceIconModel(TraceIcon.PLUS_DOUBLE, 4, Color.RED); tmp_.setIconModel(0, model); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -71,7 +71,7 @@ final CalqueGISTreeModel.LayerNode node = (CalqueGISTreeModel.LayerNode) _tree.getSelectionPath() .getLastPathComponent(); final ZCalqueLigneBrisee cq = (ZCalqueLigneBrisee) node.getUserObject(); - return (LineString) cq.getModele().getGeomData().getGeometry(node.getIdxGeom()); + return (LineString) cq.modeleDonnees().getGeomData().getGeometry(node.getIdxGeom()); } String getSelectedLineTitle(final JTree _tree) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -26,7 +26,7 @@ * pendant toute la dur\xE9e de sa vie. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class BiefsImporterFromModeleur2d { @@ -95,7 +95,7 @@ BCalque[] sousCalques=rootCalque_.getCalques()[names_.get(_name)].getCalques(); for (int j=0; j<sousCalques.length; j++) if (sousCalques[j] instanceof FSigLayerLineEditable) - modelsBief.add(((FSigLayerLineEditable)sousCalques[j]).getModele()); + modelsBief.add(((FSigLayerLineEditable)sousCalques[j]).modeleDonnees()); // Importation du bief \\ return new BiefImporterFromModels(modelsBief.toArray(new ZModeleLigneBrisee[0])).getBief(); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigGeomDataClosedLayerFilter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigGeomDataClosedLayerFilter.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigGeomDataClosedLayerFilter.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -76,7 +76,7 @@ public GISZoneCollectionLigneBrisee[] getGeomClosedData() { final GISZoneCollectionLigneBrisee[] res = new GISZoneCollectionLigneBrisee[r_.size()]; for (int i = res.length - 1; i >= 0; i--) { - res[i] = (GISZoneCollectionLigneBrisee) ((ZCalqueLigneBrisee) r_.get(i)).getModele().getGeomData(); + res[i] = (GISZoneCollectionLigneBrisee) ((ZCalqueLigneBrisee) r_.get(i)).modeleDonnees().getGeomData(); } return res; } @@ -84,7 +84,7 @@ public GISDataModel[] getGeomClosedDataModel() { final GISDataModel[] res = new GISDataModel[r_.size()]; for (int i = res.length - 1; i >= 0; i--) { - res[i] = new GISDataModelZoneAdapter(((ZCalqueLigneBrisee) r_.get(i)).getModele().getGeomData(), null); + res[i] = new GISDataModelZoneAdapter(((ZCalqueLigneBrisee) r_.get(i)).modeleDonnees().getGeomData(), null); } return res; } @@ -92,7 +92,7 @@ public GISZoneCollectionLigneBrisee[] getGeomData() { final GISZoneCollectionLigneBrisee[] res = new GISZoneCollectionLigneBrisee[polyligne_.size()]; for (int i = res.length - 1; i >= 0; i--) { - res[i] = (GISZoneCollectionLigneBrisee) ((ZCalqueLigneBrisee) polyligne_.get(i)).getModele().getGeomData(); + res[i] = (GISZoneCollectionLigneBrisee) ((ZCalqueLigneBrisee) polyligne_.get(i)).modeleDonnees().getGeomData(); } return res; } @@ -100,7 +100,7 @@ public GISDataModel[] getGeomDataModel() { final GISDataModel[] res = new GISDataModel[polyligne_.size()]; for (int i = res.length - 1; i >= 0; i--) { - res[i] = new GISDataModelZoneAdapter(((ZCalqueLigneBrisee) polyligne_.get(i)).getModele().getGeomData(), null); + res[i] = new GISDataModelZoneAdapter(((ZCalqueLigneBrisee) polyligne_.get(i)).modeleDonnees().getGeomData(), null); } return res; } @@ -125,7 +125,7 @@ } if (_cq instanceof ZCalqueLigneBrisee) { counter_.init(); - final ZModeleGeometry geom = ((ZCalqueLigneBrisee) _cq).getModele(); + final ZModeleGeometry geom = ((ZCalqueLigneBrisee) _cq).modeleDonnees(); geom.getGeomData().accept(counter_); nbPointTotal_ += counter_.nbPoint_; if (counter_.nbPolygones_ > 0) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerLine.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerLine.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -19,10 +19,6 @@ */ public class FSigLayerLine extends ZCalqueLigneBrisee { - public FSigLayerLine() { - super(); - } - /** * @param _modele */ Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiPlanLayer.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiPlanLayer.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiPlanLayer.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -50,7 +50,7 @@ } public TrSiProfilModel.Zone getZone() { - return (TrSiProfilModel.Zone) ((ZModeleLigneBriseeDefault) getModele()).getGeomData(); + return (TrSiProfilModel.Zone) ((ZModeleLigneBriseeDefault) modeleDonnees()).getGeomData(); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfilLayer.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfilLayer.java 2009-02-24 12:27:25 UTC (rev 4493) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfilLayer.java 2009-02-24 12:28:49 UTC (rev 4494) @@ -209,7 +209,7 @@ return; } final int idx = getLayerSelection... [truncated message content] |
From: <bma...@us...> - 2009-02-24 12:27:30
|
Revision: 4493 http://fudaa.svn.sourceforge.net/fudaa/?rev=4493&view=rev Author: bmarchan Date: 2009-02-24 12:27:25 +0000 (Tue, 24 Feb 2009) Log Message: ----------- Pb a l'utilisation des actions a la place de boutons. On repasse en mode gestion par bouton Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java 2009-02-23 22:38:17 UTC (rev 4492) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java 2009-02-24 12:27:25 UTC (rev 4493) @@ -229,10 +229,13 @@ } } }; - BuToolToggleButton bt; - - CalqueAtomicSelectionAction act=new CalqueAtomicSelectionAction(scene_); - _target.add(act.buildToolButton(EbliComponentFactory.INSTANCE)); + BuToolToggleButton bt = new BuToolToggleButton(); + bt.setActionCommand(ATOM_ACTION); + bt.setIcon(EbliResource.EBLI.getToolIcon("draw-atom")); + bt.setToolTipText(EbliLib.getS("Mode <SOMMET>")); + decoreButton(bt); + _target.add(bt); + /* * bt = new BuToolToggleButton(); bt.setActionCommand("MODE_EDIT"); * bt.setIcon(EbliResource.EBLI.getToolIcon("draw-edit")); decoreButton(bt); group.add(bt); _target.add(bt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2009-02-23 22:38:23
|
Revision: 4492 http://fudaa.svn.sourceforge.net/fudaa/?rev=4492&view=rev Author: deniger Date: 2009-02-23 22:38:17 +0000 (Mon, 23 Feb 2009) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinAdapter.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinGridSourceAdapter.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinInterface.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageAdapter.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapter.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapterAbstract.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReaderInfo.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinWriter.java branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/TestJSerafin.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportSerafinFormatAdapter.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrCourbeTemporelleManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrEvolutionManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceFromReader.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceReaderCommonAbstract.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceReaderComposite.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceReaderInterface.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceReaderReflux.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceReaderSerafin.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceRubar.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostActionFusionGraphes.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/supg_column.volfin branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/volfin Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinAdapter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinAdapter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinAdapter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -28,6 +28,20 @@ public class SerafinAdapter implements SerafinInterface { /** + * @return the isVolumique + */ + public boolean isVolumique() { + return isVolumique_; + } + + /** + * @param _isVolumique the isVolumique to set + */ + public void setVolumique(boolean _isVolumique) { + isVolumique_ = _isVolumique; + } + + /** * Les donnees sont stockees par pas de temps puis par variables. donneesParTemps_[0] pas de temps 1 variables 1 * donneesParTemps_[1] pas de temps 1 variables 2 ..... donneesParTemps_[Nbv1-1] pas de temps 1 variables Nbv1 * donneesParTemps_[Nbv1] pas de temps 2 variables 1 @@ -61,6 +75,9 @@ private String[] uniteVariables_; SerafinNewReaderInfo info_; int[] ipoboFr_; + + private boolean isVolumique_; + /** * rien. */ @@ -71,9 +88,7 @@ } protected boolean majGridFond(final int _timeStep) { - if (_timeStep < 0) { - return false; - } + if (_timeStep < 0) { return false; } final String[] fond = SerafinFileFormat.getCommonVariableFond(); int numVariable = -1; for (int i = 0; i < fond.length; i++) { @@ -82,9 +97,7 @@ break; } } - if (numVariable < 0) { - return false; - } + if (numVariable < 0) { return false; } try { maillage_ = new EfGridBathyAdapter(new EfDataNode(getDonnees(_timeStep, numVariable)), maillage_); } catch (final IOException _evt) { @@ -97,11 +110,11 @@ } public boolean containsElementData() { - return false; + return isVolumique_; } public boolean containsNodeData() { - return true; + return !isVolumique_; } /** @@ -110,27 +123,23 @@ * @return toutes les valeurs dans l'ordre donne des point. */ public double[] getDonnees(final int _pasTemps, final int _numVariable) throws IOException { - if (nbv1_ <= 0) { - return null; - } - if (info_ != null) { - return info_.getDouble(_numVariable, _pasTemps); - } + if (nbv1_ <= 0) { return null; } + if (info_ != null) { return info_.getDouble(_numVariable, _pasTemps); } return donneesParTemps_[_pasTemps * nbv1_ + _numVariable]; } - public double getEltValue(final int _valueIdx, final int _eltIdx, final int _timeStep) { - return 0; - } + // public double getEltValue(final int _valueIdx, final int _eltIdx, final int _timeStep) { + // return 0; + // } + // + // public String getEltValueId(final int _valueIdx) { + // return null; + // } + // + // public int getEltValueNb() { + // return 0; + // } - public String getEltValueId(final int _valueIdx) { - return null; - } - - public int getEltValueNb() { - return 0; - } - public FileFormat getFileFormat() { return SerafinFileFormat.getInstance(); } @@ -205,9 +214,7 @@ } public double getTimeStep(final int _i) { - if (temps_ == null) { - return 0; - } + if (temps_ == null) { return 0; } return temps_[_i]; } @@ -249,12 +256,8 @@ * @return Donnees */ public double getValue(final int _numVariable, final int _pasTemps, final int _i) throws IOException { - if (nbv1_ <= 0) { - return 0; - } - if (info_ != null) { - return info_.getDouble(_numVariable, _pasTemps)[_i]; - } + if (nbv1_ <= 0) { return 0; } + if (info_ != null) { return info_.getDouble(_numVariable, _pasTemps)[_i]; } return donneesParTemps_[_pasTemps * nbv1_ + _numVariable][_i]; } @@ -300,7 +303,7 @@ } public boolean isElement(final int _idx) { - return false; + return isVolumique_; } /** Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinGridSourceAdapter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinGridSourceAdapter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinGridSourceAdapter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -44,11 +44,11 @@ } public boolean containsElementData() { - return false; + return isVolumique(); } public boolean containsNodeData() { - return true; + return !isVolumique(); } public double getEltValue(final int _valueIdx, final int _eltIdx, final int _timeStep) { @@ -86,9 +86,7 @@ public int[] getIpoboInitial() { if (source_.getGrid().getFrontiers() == null) { source_.getGrid().computeBord(null, null); - if (source_.getGrid().getFrontiers() == null) { - return null; - } + if (source_.getGrid().getFrontiers() == null) { return null; } } return source_.getGrid().getFrontiers().getIpobo(source_.getGrid().getPtsNb()); } @@ -96,9 +94,7 @@ public int[] getIpoboFr() { if (source_.getGrid().getFrontiers() == null) { source_.getGrid().computeBord(null, null); - if (source_.getGrid().getFrontiers() == null) { - return null; - } + if (source_.getGrid().getFrontiers() == null) { return null; } } return source_.getGrid().getFrontiers().getArray(); } @@ -128,6 +124,10 @@ .getGrid().getPtZ(_ptIdx) : source_.getValue(_numVariable - 1, _pasTemps, _ptIdx)); } + public boolean isVolumique() { + return false; + } + public String getValueId(final int _i) { return fondInValue_ ? source_.getValueId(_i) : (_i == 0 ? fond_ : source_.getValueId(_i)); } @@ -137,7 +137,7 @@ } public boolean isElement(final int _idx) { - return false; + return isVolumique(); } /** Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinInterface.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinInterface.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinInterface.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -84,4 +84,9 @@ int getTimeStepNb(); double getTimeStep(int _i); + + /** + * @return true si les r\xE9sultats sont d\xE9finies aux \xE9l\xE9ments + */ + boolean isVolumique(); } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageAdapter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageAdapter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageAdapter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -129,9 +129,7 @@ * @return M */ public String getUnite(final int _i) { - if (_i == 0) { - return "M"; - } + if (_i == 0) { return "M"; } return null; } @@ -178,9 +176,7 @@ * @param _pasTemps le pas de temps (doit etre = \xE0 0) */ public double getValue(final int _numVariable, final int _pasTemps, final int _i) { - if (_pasTemps != 0) { - return 0; - } + if (_pasTemps != 0) { return 0; } if (_numVariable == 0) { return maill_.getPtZ(_i); } else if ((bottom_ != null) && (_numVariable == 1)) { @@ -190,6 +186,10 @@ } } + public boolean isVolumique() { + return false; + } + /** * */ Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -3,13 +3,14 @@ * @modification $Date: 2007-01-10 09:04:27 $ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne -* @mail de...@fu... + * @mail de...@fu... */ package org.fudaa.dodico.telemac.io; import org.fudaa.ctulu.collection.CtuluCollectionDouble; import org.fudaa.dodico.ef.EfGridInterface; + /** * @author deniger * @version $Id: SerafinMaillageBuilderAdapter.java,v 1.11 2007-01-10 09:04:27 deniger Exp $ @@ -21,69 +22,69 @@ /** * Par defaut le format colonne est choisi. + * * @param _ft la verison * @param _m le maillage support */ public SerafinMaillageBuilderAdapter(final SerafinFileFormatVersionInterface _ft, final EfGridInterface _m) { - super(_ft,_m); + super(_ft, _m); } - public final double getFirstTimeStep(){ + + public final double getFirstTimeStep() { return firstTimeStep_; } - public double getTimeStep(final int _i){ + + public double getTimeStep(final int _i) { return firstTimeStep_; } /** * */ - public int getTimeStepNb(){ + public int getTimeStepNb() { return 1; } /** * Ne renvoie que les donnees pour le fond ou pour la friction si definie. + * * @param _numVariable le numero de la variable * @param _i l'index du point * @param _pasTemps le pas de temps (doit etre = \xE0 0) */ - public double getValue(final int _numVariable,final int _pasTemps,final int _i){ - if (_pasTemps != 0) { - return 0; - } + public double getValue(final int _numVariable, final int _pasTemps, final int _i) { + if (_pasTemps != 0) { return 0; } return values_[_numVariable].getValue(_i); } - - public String getValueId(final int _i){ + public String getValueId(final int _i) { return valuesName_[_i]; } - public int getValueNb(){ + public int getValueNb() { return values_ == null ? 0 : values_.length; } - - - - public boolean isElement(final int _idx){ - return false; + public boolean isVolumique() { + return isVolumique_; } - public final void setFirstTimeStep(final double _firstTimeStep){ + public final void setFirstTimeStep(final double _firstTimeStep) { firstTimeStep_ = _firstTimeStep; } + boolean isVolumique_; + /** * @param _title les noms des valeurs a ajoutees * @param _values les valeurs en chaque point * @param _units les unites */ - public void setValues(final String[] _title,final CtuluCollectionDouble[] _values,final String[] _units){ + public void setValues(final String[] _title, final CtuluCollectionDouble[] _values, final String[] _units) { valuesName_ = _title; values_ = _values; units_ = _units; + isVolumique_ = _values != null && _values[0] != null && _values[0].getSize() == getGrid().getEltNb(); } - } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapterAbstract.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapterAbstract.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinMaillageBuilderAdapterAbstract.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -42,25 +42,13 @@ } public boolean containsElementData() { - return false; + return isVolumique(); } public boolean containsNodeData() { - return true; + return !isVolumique(); } - public double getEltValue(final int _valueIdx, final int _eltIdx, final int _timeStep) { - return 0; - } - - public String getEltValueId(final int _valueIdx) { - return null; - } - - public int getEltValueNb() { - return 0; - } - /** * */ @@ -87,9 +75,7 @@ public int[] getIpoboInitial() { if (maill_.getFrontiers() == null) { maill_.computeBord(null, null); - if (maill_.getFrontiers() == null) { - return null; - } + if (maill_.getFrontiers() == null) { return null; } } return maill_.getFrontiers().getIpobo(maill_.getPtsNb()); } @@ -97,9 +83,7 @@ public int[] getIpoboFr() { if (maill_.getFrontiers() == null) { maill_.computeBord(null, null); - if (maill_.getFrontiers() == null) { - return null; - } + if (maill_.getFrontiers() == null) { return null; } } return maill_.getFrontiers().getArray(); } @@ -121,7 +105,7 @@ } public boolean isElement(final int _idx) { - return false; + return isVolumique(); } /** Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReader.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -38,9 +38,24 @@ */ public class SerafinNewReader extends FileReadOperationAbstract { + /** + * @return the isVolumique + */ + public boolean isVolumique() { + return isVolumique_; + } + + /** + * @param _isVolumique the isVolumique to set + */ + public void setVolumique(boolean _isVolumique) { + isVolumique_ = _isVolumique; + } + FileInputStream in_; NativeNIOHelper helper_; File file_; + boolean isVolumique_; boolean onlyReadLast_; // correctio long readTimeStepFrom_ = -1; @@ -255,17 +270,19 @@ * utilise pour chaque pas de temps. Il y a NPPOIN1 entier par variable et Nbv1 variable. Rappel:les entiers * prennent 4 octets. Rappel:chaque enregistrement est entoure par des entiers d'ou les 4 */ + // TODO fred ici comment savoir si volumique ou resultat aux noeud. + int nbVar = isVolumique_ ? nelem1 : npoin1; if (SerafinFileFormat.isFormatEnColonneCommon(iparam)) { /* - * Dans le cas colonne, on a TEMPS : TEMPS+4 variable1 : 4+NPPOIN1*4+4 variablei : 4+NPPOIN1*4+4 pour chaque - * variable soit: tempo= 4+4+Nbv1*(4+NPPOINT*4+4) d'ou + * Dans le cas colonne, on a TEMPS : TEMPS+4 variable1 : 4+NPPOIN14+4 variablei : 4+NPPOIN14+4 pour chaque + * variable soit: tempo= 4+4+Nbv1(4+NPPOINT4+4) d'ou */ - tempo = 12 + 4 * nbv1 * npoin1 + 8 * nbv1; + tempo = 12 + 4 * nbv1 * nbVar + 8 * nbv1; } else { /* - * Temps,variable1,variablei,... soit 4+(NPPOIN1*4)*Nbv1+4 + * Temps,variable1,variablei,... soit 4+(NPPOIN14)Nbv1+4 */ - tempo = 12 + 4 * nbv1 * npoin1; + tempo = 12 + 4 * nbv1 * nbVar; } // nb d'octets restants a lire divise par nb octets par pas de temps. @@ -283,7 +300,7 @@ final boolean isFormatColonne = SerafinFileFormat.isFormatEnColonneCommon(iparam); final ProgressionUpdater up = new ProgressionUpdater(progress_); up.setValue(7, nbPasTempsEstime, 30, 70); - info = new SerafinNewReaderInfo(npoin1, helper_.getCurrentPosition(), file_); + info = new SerafinNewReaderInfo(nbVar, helper_.getCurrentPosition(), file_, isVolumique_); info.setColonne(isFormatColonne); info.setTimeEnrLength(tempo); info.setOrder(helper_.getOrder()); Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReaderInfo.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReaderInfo.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinNewReaderInfo.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -20,37 +20,46 @@ */ public class SerafinNewReaderInfo { + ByteBuffer buffer_; + + FileChannel channel_; + final File file_; private final long firstTimeStepPos_; private boolean isColonne_; + final int nbValues_; + int nbVar_; + ByteBuffer oneDouble_; private ByteOrder order_; private long timeEnrLength_; - ByteBuffer buffer_; - FileChannel channel_; - int nbPoint_; - final File file_; - int nbVar_; + final boolean volumique_; /** - * @param _nbPoint + * @param _nbValue le nombre de valeur definies. Peut etre le nombre de noeud ou le nombre d'element si resultat + * volumique. * @param _channel */ - public SerafinNewReaderInfo(final int _nbPoint, final long _pos, final File _file) { + public SerafinNewReaderInfo(final int _nbValue, final long _pos, final File _file, boolean _volumique) { super(); - nbPoint_ = _nbPoint; + nbValues_ = _nbValue; file_ = _file; firstTimeStepPos_ = _pos; + volumique_=_volumique; } - private void createChannel() throws IOException { - if (channel_ == null) { - channel_ = new FileInputStream(file_).getChannel(); + public void close() { + if (channel_ == null) { return; } + try { + + channel_.close(); + } catch (final IOException e) { + e.printStackTrace(); } } protected ByteBuffer createBuffer() { if (buffer_ == null) { - buffer_ = ByteBuffer.allocateDirect(4 * nbPoint_); + buffer_ = ByteBuffer.allocateDirect(4 * nbValues_); if (order_ != null) { buffer_.order(order_); } @@ -68,46 +77,12 @@ return oneDouble_; } - public void close() { + private void createChannel() throws IOException { if (channel_ == null) { - return; + channel_ = new FileInputStream(file_).getChannel(); } - try { - - channel_.close(); - } catch (final IOException e) { - e.printStackTrace(); - } } - ByteBuffer oneDouble_; - - public synchronized double getDouble(final int _nbV, final int _timeStep, final int _idxPt) throws IOException { - createChannel(); - createBufferOneDouble(); - long pos = firstTimeStepPos_ + _timeStep * timeEnrLength_; - if (isColonne_) { - // [Seq][t][Seq]+([Seq]pt0,pt1,...[Seq])*nbV1+ [Seq] - // les 12 correspondent a la sequence pour le pas de temps - // ensuite chaque variables demande 2 entier (seq) +nbPoint valeurs - pos += 12 + _nbV * (8 + nbPoint_ * 4) + 4; - } else { - // [Seq][t][v0 in x0][vo in x1][vo in x2]... [Seq] - pos += 4 + 4 + (_nbV * nbPoint_ * 4); - } - pos += _idxPt * 4; - channel_.position(pos); - oneDouble_.rewind(); - channel_.read(oneDouble_); - oneDouble_.rewind(); - return oneDouble_.getFloat(); - } - - public int getTimeStepAvailable() throws IOException { - final long size = channel_ == null ? file_.length() : channel_.size(); - return (int) ((size - firstTimeStepPos_) / timeEnrLength_); - } - /** * @param _nbV le nombre de variable * @param _timeStep le pas de temps @@ -123,24 +98,43 @@ // [Seq][t][Seq]+([Seq]pt0,pt1,...[Seq])*nbV1+ [Seq] // les 12 correspondent a la sequence pour le pas de temps // ensuite chaque variables demande 2 entier (seq) +nbPoint valeurs - pos += 12L + _nbV * (8L + nbPoint_ * 4L) + 4L; + pos += 12L + _nbV * (8L + nbValues_ * 4L) + 4L; } else { // [Seq][t][v0 in x0][vo in x1][vo in x2]... [Seq] - pos += 4L + 4L + (_nbV * nbPoint_ * 4L); + pos += 4L + 4L + (_nbV * nbValues_ * 4L); } - final double[] r = new double[nbPoint_]; - if (!channel_.isOpen()) { - return null; - } + final double[] r = new double[nbValues_]; + if (!channel_.isOpen()) { return null; } channel_.position(pos); channel_.read(buffer_); buffer_.rewind(); - for (int i = 0; i < nbPoint_; i++) { + for (int i = 0; i < nbValues_; i++) { r[i] = buffer_.getFloat(); } return r; } + public synchronized double getDouble(final int _nbV, final int _timeStep, final int _idxPt) throws IOException { + createChannel(); + createBufferOneDouble(); + long pos = firstTimeStepPos_ + _timeStep * timeEnrLength_; + if (isColonne_) { + // [Seq][t][Seq]+([Seq]pt0,pt1,...[Seq])*nbV1+ [Seq] + // les 12 correspondent a la sequence pour le pas de temps + // ensuite chaque variables demande 2 entier (seq) +nbPoint valeurs + pos += 12 + _nbV * (8 + nbValues_ * 4) + 4; + } else { + // [Seq][t][v0 in x0][vo in x1][vo in x2]... [Seq] + pos += 4 + 4 + (_nbV * nbValues_ * 4); + } + pos += _idxPt * 4; + channel_.position(pos); + oneDouble_.rewind(); + channel_.read(oneDouble_); + oneDouble_.rewind(); + return oneDouble_.getFloat(); + } + public final long getFirstTimeStepPos() { return firstTimeStepPos_; } @@ -153,6 +147,18 @@ return timeEnrLength_; } + public int getTimeStepAvailable() throws IOException { + final long size = channel_ == null ? file_.length() : channel_.size(); + return (int) ((size - firstTimeStepPos_) / timeEnrLength_); + } + + /** + * @return the volumique + */ + public boolean isVolumique() { + return volumique_; + } + public final void setColonne(final boolean _isColonne) { isColonne_ = _isColonne; } Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinWriter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinWriter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinWriter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -33,7 +33,8 @@ import org.fudaa.dodico.h2d.resource.H2dResource; /** - * Classe permettant d'ecrire un fichier serafin (utilise un buffer pour l'ecriture). + * TODO a modifier pour prendre en compte l'aspect volumique. Classe permettant d'ecrire un fichier serafin (utilise un + * buffer pour l'ecriture). * * @version $Id: SerafinWriter.java,v 1.34 2007-05-04 13:47:27 deniger Exp $ * @author Fred Deniger @@ -65,12 +66,8 @@ */ private boolean isDoubleToFloatError(final double _d) { final double d = _d > 0 ? _d : -_d; - if (d > Float.MAX_VALUE) { - return true; - } - if ((d > 0) && (d < Float.MIN_VALUE)) { - return true; - } + if (d > Float.MAX_VALUE) { return true; } + if ((d > 0) && (d < Float.MIN_VALUE)) { return true; } return false; } @@ -234,10 +231,9 @@ final int nbv1 = _donnees.getValueNb(); final int nelem = maillage.getEltNb(); final int npt = maillage.getPtsNb(); + final int nbValues = _donnees.isVolumique() ? nelem : npt; final int nppel = maillage.getElement(0).getPtNb(); - if (stop_) { - return; - } + if (stop_) { return; } final int[] iparam = _donnees.getIparam(); final boolean isIdateDefini = version_.isIdateDefini(iparam); final boolean isFormatColonne = version_.isFormatEnColonne(iparam); @@ -248,9 +244,9 @@ } final long tailleIkle1 = 8L + 4L * nelem * nppel; final long tailleX1 = 8L + npt * 4L; - long tailleTemps = 12L + 4L * nbv1 * npt; + long tailleTemps = 12L + 4L * nbv1 * nbValues; if (isFormatColonne) { - tailleTemps = 12L + 4L * nbv1 * npt + 8L * nbv1; + tailleTemps = 12L + 4L * nbv1 * nbValues + 8L * nbv1; } tailleTotale_ = tailleDebut + tailleIkle1 + tailleX1 * 3L + nbPasTemps * tailleTemps; // TITRE @@ -265,9 +261,7 @@ _out.writeRecord(); // TEXTi LUNITi writeVariables(_donnees, _out, nbv1); - if (stop_) { - return; - } + if (stop_) { return; } // IPARAM // tIA tableau d'entier tempo writeIparam(_out, iparam); @@ -287,9 +281,7 @@ // H2dElement[] elems= maillage.getElts(); EfElement eltIndex; for (int i = 0; i < nelem; i++) { - if (stop_) { - return; - } + if (stop_) { return; } eltIndex = maillage.getElement(i); for (int j = 0; j < nppel; j++) { _out.writeInteger(eltIndex.getPtIndex(j) + 1); @@ -298,22 +290,16 @@ _out.writeRecord(); lu = updateProg(lu + tailleIkle1); writeIpobo(_donnees, _out, npt); - if (stop_) { - return; - } + if (stop_) { return; } lu = updateProg(lu + tailleX1); // H2dPoint[] pts = maillage.getPts(); // X1 writeNodesX(_out, maillage, npt); - if (stop_) { - return; - } + if (stop_) { return; } lu = updateProg(lu + tailleX1); // Y1 writeNodesY(_out, maillage, npt); - if (stop_) { - return; - } + if (stop_) { return; } lu = updateProg(lu + tailleX1); // double[] tDA = donnees_.getPasDeTemps(); for (int t = 0; t < nbPasTemps; t++) { @@ -330,7 +316,7 @@ if (isFormatColonne) { _out.writeRecord(); } - for (int j = 0; j < npt; j++) { + for (int j = 0; j < nbValues; j++) { tD = getCorrectDoubleValue(_donnees.getValue(i, t, j)); if (isDoubleToFloatError(tD)) { analyze_.addError("Erreur de conversion lors de l'\xE9criture des Donn\xE9es", t); @@ -353,9 +339,7 @@ private void writeNodesY(final FortranBinaryOutputStream _out, final EfGridInterface _maillage, final int _npt) throws IOException { for (int i = 0; i < _npt; i++) { - if (stop_) { - return; - } + if (stop_) { return; } final double tD = getCorrectDoubleValue(_maillage.getPtY(i)); if (isDoubleToFloatError(tD)) { analyze_.addError(H2dResource.getS("Erreur de conversion lors de l'\xE9criture des Y"), i); @@ -369,9 +353,7 @@ private void writeNodesX(final FortranBinaryOutputStream _out, final EfGridInterface _maillage, final int _npt) throws IOException { for (int i = 0; i < _npt; i++) { - if (stop_) { - return; - } + if (stop_) { return; } final double tD = getCorrectDoubleValue(_maillage.getPtX(i)); if (isDoubleToFloatError(tD)) { analyze_.addError(H2dResource.getS("Erreur de conversion lors de l'\xE9criture des X"), i); @@ -388,9 +370,7 @@ final int[] ipobo = _inter.getIpoboInitial(); // IPOBO for (int i = 0; i < _npt; i++) { - if (stop_) { - return; - } + if (stop_) { return; } _out.writeInteger(ipobo[i]); } _out.writeRecord(); Modified: branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/TestJSerafin.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/TestJSerafin.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/TestJSerafin.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -50,6 +50,25 @@ interfaceTest((SerafinInterface) s.getSource()); } + public void testVolfin() { + File f = getFile("supg_column.volfin"); + final SerafinNewReader r = new SerafinNewReader(); + r.setFile(f); + r.setVolumique(true); + final CtuluIOOperationSynthese s = r.read(); + s.printAnalyze(); + assertFalse(s.containsFatalError()); + SerafinInterface t = (SerafinInterface) s.getSource(); + System.err.println(t.getTitre()); + try { + double[] values = t.getReadingInfo().getDouble(0, 0); + assertEquals(t.getGrid().getEltNb(), values.length); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + protected void interfaceTest(final SerafinInterface _t) { assertNotNull(_t); // TITRE @@ -169,6 +188,10 @@ final int nbTimeStep = initTimeStep + 100; SerafinInterface newInter = new SerafinInterface() { + public boolean isVolumique() { + return r.isVolumique(); + } + public boolean isElement(int _idx) { return r.isElement(_idx); } @@ -191,7 +214,7 @@ public double getValue(int _numVariable, int _pasTemps, int _ptIdx) throws IOException { if (_pasTemps < initTimeStep) { return r.getValue(_numVariable, _pasTemps, _ptIdx); } - return Math.random() ; + return Math.random(); } public String getUnite(int _i) { @@ -208,7 +231,7 @@ public double getTimeStep(int _i) { if (_i < initTimeStep) return r.getTimeStep(_i); - return maxTime + (1+_i - initTimeStep) * delta; + return maxTime + (1 + _i - initTimeStep) * delta; } public SerafinNewReaderInfo getReadingInfo() { Added: branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/supg_column.volfin =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/supg_column.volfin ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/volfin =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/volfin ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -213,9 +213,9 @@ // x = xmax - 6 - _g.getFontMetrics().stringWidth(str); // } tbox_.paintBox(_g, xie,y, str); - int widthBox=5; - if(tbox_.currentWidth_!=-1) - widthBox=tbox_.currentWidth_; +// int widthBox=5; +// if(tbox_.currentWidth_!=-1) +// widthBox=tbox_.currentWidth_; new TraceLigne(marqueur.model_).dessineTrait(_g, xie/*+widthBox/2*/,y , xie/*+widthBox/2*/, ymax); @@ -520,16 +520,16 @@ } - public boolean isNuagePoints_() { + public boolean isNuagePoints() { return nuagePoints_; } - public void setNuagePoints_(boolean nuagePoints_) { - this.nuagePoints_ = nuagePoints_; + public void setNuagePoints(boolean _nuagePoints) { + this.nuagePoints_ = _nuagePoints; } - public boolean setNuagePointEtApplique(boolean nuagePOints){ - setNuagePoints_(nuagePoints_); + public boolean setNuagePointEtApplique(boolean _nuagePOints){ + setNuagePoints(nuagePoints_); fireCourbeAspectChanged(false); //fireCourbeContentChanged(); return true; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -76,7 +76,7 @@ return target_.getFont(); } if (_key == EGCourbeConfigureTarget.PROP_NUAGE_POINTS) { - return target_.isNuagePoints_(); + return target_.isNuagePoints(); } return null; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbePersist.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -47,7 +47,7 @@ private void fillInfoWith(EGCourbeChild courbe,int idgroupe){ this.Idgroup=idgroupe; title_=courbe.getTitle(); - this.nuagePoints=courbe.isNuagePoints_(); + this.nuagePoints=courbe.isNuagePoints(); Xmin = courbe.getModel().getXMin(); Xmax = courbe.getModel().getXMax(); Ymin = courbe.getModel().getYMin(); @@ -95,10 +95,10 @@ /** * Generate the proper curve in the appropriate group. - * @param groupe + * @param _groupe * @return */ -public EGCourbeChild generateCourbe(EGGroup groupe,Map infos){ +public EGCourbeChild generateCourbe(EGGroup _groupe,Map _infos){ //EGModel model=new EGCourbeModelDefault(abscisses,ordonnees); EGModel model=null; if(classeModel!=null) @@ -109,27 +109,13 @@ //-- ajotu des coordonnees --// model.addValue(abscisses, ordonnees, new CtuluCommandManager()); - - - - //-- donnees specifiques --// - infos.put("GROUPE", groupe); - infos.put("DEFAULTY", ordonnees); - model.setPersistSpecificDatas(dataSpecifiques, infos); + _infos.put("GROUPE", _groupe); + _infos.put("DEFAULTY", ordonnees); + model.setPersistSpecificDatas(dataSpecifiques, _infos); EGCourbeChild courbe=null; - - //-- Verifie dans le cas de rejoue des donnees, il faut peut etre ne pas ajouter la courbe --// -// if(infos.get("MODELREPLAY")!=null && infos.get("MODELREPLAY") instanceof EGCourbeChild){ -// -// //-- on remplace le model par le model rejouee et deja ajout\xE9--// -// courbe=(EGCourbeChild) infos.get("MODELREPLAY"); -// infos.remove("MODELREPLAY"); -// }else{ - - courbe=new EGCourbeChild(groupe,model); -// } + courbe=new EGCourbeChild(_groupe,model); courbe.setTitle(title_); //graphiques @@ -140,7 +126,7 @@ if(tLigneMarqueur_!=null) courbe.setLigneMark(tLigneMarqueur_); - courbe.setNuagePoints_(this.nuagePoints); + courbe.setNuagePoints(this.nuagePoints); if(listeMarqueurs_!=null) courbe.setMarqueurs(listeMarqueurs_); @@ -149,16 +135,16 @@ } - public String getTitle_() { + public String getTitle() { return title_; } - public void setTitle_(String title_) { - this.title_ = title_; + public void setTitle(String _title) { + this.title_ = _title; } public int getIdgroup() { return Idgroup; } - public void setIdgroup(int idgroup) { - Idgroup = idgroup; + public void setIdgroup(int _idgroup) { + Idgroup = _idgroup; } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportActSerafin.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -47,6 +47,8 @@ int language_ = DicoLanguage.getCurrentID(); + boolean volumique_; + public MvExportActSerafin(final int[] _initIpobo, final int[] _iparams) { super(SerafinFileFormat.getInstance()); iparams_ = _iparams; @@ -58,7 +60,7 @@ protected CtuluIOOperationSynthese writeExport(final File[] _dest, final EfGridData _last, final ProgressionInterface _prog) { final MvExportSerafinFormatAdapter adapter = new MvExportSerafinFormatAdapter(selectedVar_, _last, - selectedTimeStep_, language_); + selectedTimeStep_, language_, volumique_); if (filter_ == null && initIpobo_ != null) { adapter.setInitIpobo(initIpobo_); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportSerafinFormatAdapter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportSerafinFormatAdapter.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportSerafinFormatAdapter.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -25,19 +25,30 @@ */ public class MvExportSerafinFormatAdapter extends SerafinMaillageBuilderAdapterAbstract { - final CtuluVariable[] var_; final EfGridData data_; - double[] timeStep_; + int[] initIpobo_; + final boolean isVolumique_; + // pour eviter de recalculer a chaque fois les donn\xE9es. + EfData old_; + int oldTime_ = -1; + int oldVar_ = -1; + double[] timeStep_; + + + + final CtuluVariable[] var_; + /** * @param _var * @param _data */ public MvExportSerafinFormatAdapter(final CtuluVariable[] _var, final EfGridData _data, final double[] _ts, - final int _language) { + final int _language, boolean _volumique) { super((SerafinFileFormatVersionInterface) (SerafinFileFormat.getInstance().getLastVersionInstance(null)), _data .getGrid()); + isVolumique_ = _volumique; var_ = _var == null ? new CtuluVariable[0] : _var; data_ = _data; timeStep_ = var_.length == 0 ? FuEmptyArrays.DOUBLE0 : _ts; @@ -66,16 +77,9 @@ public double getTimeStep(final int _i) { return timeStep_[_i]; } - public int getTimeStepNb() { return timeStep_.length; } - - // pour eviter de recalculer a chaque fois les donn\xE9es. - EfData old_; - int oldVar_ = -1; - int oldTime_ = -1; - public double getValue(final int _numVariable, final int _pasTemps, final int _ptIdx) throws IOException { if (_numVariable != oldVar_ || _pasTemps != oldTime_ || old_ == null) { oldTime_ = _pasTemps; @@ -93,6 +97,10 @@ return valuesName_.length; } + public boolean isVolumique() { + return isVolumique_; + } + public void setInitIpobo(final int[] _initIpobo) { initIpobo_ = _initIpobo; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java 2009-02-23 17:38:31 UTC (rev 4491) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java 2009-02-23 22:38:17 UTC (rev 4492) @@ -80,903 +80,883 @@ * @version $Id: MvProfileTreeModel.java,v 1.12 2007-06-13 14:46:13 deniger Exp $ */ public class MvProfileTreeModel extends EGGrapheTreeModel implements Target { - FudaaCourbeTimeListModel timeModel_; - EfLineIntersectionsResultsMng resNode_; - EfLineIntersectionsResultsBuilder builderNode_; - EfLineIntersectionsResultsBuilder builderMesh_; - EfLineIntersectionsResultsMng resMesh_; + FudaaCourbeTimeListModel timeModel_; + EfLineIntersectionsResultsMng resNode_; + EfLineIntersectionsResultsBuilder builderNode_; + EfLineIntersectionsResultsBuilder builderMesh_; + EfLineIntersectionsResultsMng resMesh_; - EfLineIntersectionsCorrectionTester tester_; + EfLineIntersectionsCorrectionTester tester_; - /** - * Ligne initialement utilis\xE9e pour la creation de la courbe - */ - LineString initLineNode; - LineString initLineMesh; + /** + * Ligne initialement utilis\xE9e pour la creation de la courbe + */ + LineString initLineNode; + LineString initLineMesh; + public MvProfileTarget target_; - public MvProfileTarget target_; + public MvProfileTreeModel(final MvProfileTarget _target, final EfLineIntersectionsCorrectionTester _tester) { + super(); + timeModel_ = _target.getTimeModel(); + tester_ = _tester; + target_ = _target; + } - public MvProfileTreeModel(final MvProfileTarget _target, final EfLineIntersectionsCorrectionTester _tester) { - super(); - timeModel_ = _target.getTimeModel(); - tester_ = _tester; - target_ = _target; - } + public MvProfileTreeModel(final MvProfileTreeModel _model) { + super(); + timeModel_ = _model.target_.getTimeModel(); + tester_ = _model.tester_; + target_ = _model.target_; + } - public MvProfileTreeModel(final MvProfileTreeModel _model) { - super(); - timeModel_ = _model.target_.getTimeModel(); - tester_ = _model.tester_; - target_ = _model.target_; - } + /** + * ACHTUNG! Constructuer uniquement utilis\xE9 pour la serialization des graphes!! Il faut imp\xE9rativement initialiser la + * variable target_ avec un ProfilDapter apres coup avec le trpostsource qui convient + */ + public MvProfileTreeModel() { + tester_ = new MvProfileCoteTester(); - /** - * ACHTUNG! Constructuer uniquement utilis\xE9 pour la serialization des graphes!! Il faut imp\xE9rativement initialiser la - * variable target_ avec un ProfilDapter apres coup avec le trpostsource qui convient - */ - public MvProfileTreeModel() { - tester_ = new MvProfileCoteTester(); + } - } + public void setNodesResults(final EfLineIntersectionsResultsMng _resNode, + final EfLineIntersectionsResultsBuilder _builderNode) { + resNode_ = _resNode; + builderNode_ = _builderNode; + if (builderNode_ != null) initLineNode = builderNode_.getInitLine(); - public void setNodesResults(final EfLineIntersectionsResultsMng _resNode, - final EfLineIntersectionsResultsBuilder _builderNode) { - resNode_ = _resNode; - builderNode_ = _builderNode; - if(builderNode_!=null ) - initLineNode=builderNode_.getInitLine(); + } + public EfLineIntersectionsResultsBuilder getBuilderFor(final CtuluVariable _v) { + return target_.getData().isElementVar(_v) ? builderMesh_ : builderNode_; + } - } + public void setMeshesResults(final EfLineIntersectionsResultsMng _resMeshes, + final EfLineIntersectionsResultsBuilder _builderMeshes) { + resMesh_ = _resMeshes; + builderMesh_ = _builderMeshes; + if (builderMesh_ != null) initLineMesh = builderMesh_.getInitLine(); - public EfLineIntersectionsResultsBuilder getBuilderFor(final CtuluVariable _v) { - return target_.getData().isElementVar(_v) ? builderMesh_ : builderNode_; - } + } - public void setMeshesResults(final EfLineIntersectionsResultsMng _resMeshes, - final EfLineIntersectionsResultsBuilder _builderMeshes) { - resMesh_ = _resMeshes; - builderMesh_ = _builderMeshes; - if(builderMesh_!=null ) - initLineMesh=builderMesh_.getInitLine(); + public EfLineIntersectionsResultsMng getResMesh() { + return resMesh_; + } - } + public H2dVariableType[] getVariables() { - public EfLineIntersectionsResultsMng getResMesh() { - return resMesh_; - } + final List values = getShownVar(); - public H2dVariableType[] getVariables() { + return null; + } - final List values = getShownVar(); + @Override + public boolean isStructureModifiable() { + return true; + } - return null; - } + public void updateTimeStep(final int[] _idx, final ProgressionInterface _prog) { + blockEvents_ = true; + final FudaaCourbeTimeListModel newModel = target_.getTimeModel(); - @Override - public boolean isStructureModifiable() { - return true; - } + if (newModel != null) { + final boolean structureChanged = newModel.getSize() != timeModel_.getSize(); + // timeModel_.updateFrom(newModel); + if (structureChanged) { + timeModel_.fireStructureChanged(); + } else { + timeModel_.fireContentChanged(); + } + blockEvents_ = false; + BuLib.invokeLater(new Runnable() { - public void updateTimeStep(final int[] _idx, final ProgressionInterface _prog) { - blockEvents_ = true; - final FudaaCourbeTimeListModel newModel = target_.getTimeModel(); + public void run() { + fireCourbeContentChanged(null, true); + if (structureChanged) { + final EGObject[] cs = getSelectedObjects(); + if (cs != null) { + for (int i = 0; i < cs.length; i++) { - if (newModel != null) { - final boolean structureChanged = newModel.getSize() != timeModel_.getSize(); - // timeModel_.updateFrom(newModel); - if (structureChanged) { - timeModel_.fireStructureChanged(); - } else { - timeModel_.fireContentChanged(); - } - blockEvents_ = false; - BuLib.invokeLater(new Runnable() { + if (cs[i] instanceof MvProfileCourbeTime) { + ((MvProfileCourbeTime) cs[i]).selection_.setSelectionInterval(timeModel_.getSize() - 1, timeModel_ + .getSize() - 1); + } + } + } + } + } - public void run() { - fireCourbeContentChanged(null, true); - if (structureChanged) { - final EGObject[] cs = getSelectedObjects(); - if (cs != null) { - for (int i = 0; i < cs.length; i++) { + }); + } - if (cs[i] instanceof MvProfileCourbeTime) { - ((MvProfileCourbeTime) cs[i]).selection_.setSelectionInterval(timeModel_.getSize() - 1, timeModel_ - .getSize() - 1); - } - } - } - } - } + } - }); - } + /** + * Rejoue les donn\xE9es de la polyligne avec les nouvelles infos. Si boolean ecraser est a false, Cree sune nouvelle + * courbe avec le mod\xE8le qui convient. Dans le cas ou ecraser est \xE0 true, on ecrase les infos du modele par ceux des + * param d'entree. Version r\xE9serv\xE9s aux points r\xE9els + * + * @param _model + * @param _src + * @param _idxToAdd + * @param _cmd + * @param _prog + * @param newVariable + * @param ecraser + */ + public void replayPoints(TrPostCommonImplementation impl, TrPostVisuPanel vue2d, MVProfileCourbeModel _model, + final TrPostSource _src, final GISZoneCollectionPoint points, final CtuluCommandContainer _cmd, + final ProgressionInterface _prog, H2dVariableType newVariable, int newTimeStep, boolean ecraser) { + LineString polyligne = new LineString(points, new GeometryFactory()); + // -- ajout de la variable --// + final MvProfileCourbeGroup groupVar = getGroup(newVariable, true); - } + // -- on cree la nouvelle courbe pour la variable correspondante --// + MvProfileTarget target = new TrPostProfileAction.ProfileAdapter(_src, impl.getCurrentProject()); + MvProfileBuilder builder = new MvProfileBuilderFromLine(target, impl, polyligne, vue2d, new MvProfileCoteTester()); + // -- intersectionResultI --// + EfLineIntersectionsResultsI res = builder.getDefaultRes(_model.variable_, impl.getMainProgression()); + // -- EfLineIntersectionsResultsBuilder --// + EfLineIntersectionsResultsBuilder efbuilder = new EfLineIntersectionsResultsBuilder(polyligne, _model.res_, + new MvProfileCoteTester()); + MVProfileCourbeModel newModele = new MVProfileCourbeModel(newVariable, _src, newTimeStep, efbuilder, impl + .getMainProgression()); - /** - * Rejoue les donn\xE9es de la polyligne avec les nouvelles infos. - * Si boolean ecraser est a false, Cree sune nouvelle courbe avec le mod\xE8le qui convient. - * Dans le cas ou ecraser est \xE0 true, on ecrase les infos du modele par ceux des param d'entree. - * Version r\xE9serv\xE9s aux points r\xE9els - * @param _model - * @param _src - * @param _idxToAdd - * @param _cmd - * @param _prog - * @param newVariable - * @param ecraser - */ - public void replayPoints(TrPostCommonImplementation impl,TrPostVisuPanel vue2d,MVProfileCourbeModel _model,final TrPostSource _src, final GISZoneCollectionPoint points, final CtuluCommandContainer _cmd, - final ProgressionInterface _prog, H2dVariableType newVariable,int newTimeStep, boolean ecraser) { - LineString polyligne=new LineString(points,new GeometryFactory()); - //-- ajout de la variable --// - final MvProfileCourbeGroup groupVar = getGroup(newVariable, true); + // -- titre --// + String title = newVariable.toString() + CtuluLibString.ESPACE; + if (newVariable.getCommonUnit() != null) title += "(" + newVariable.getCommonUnit() + ")" + CtuluLibString.ESPACE; + title += _src.getTimeStep(newTimeStep); + // -- on ajoute les extremites du segment choisi --// + title += ", P1(" + format(polyligne.getCoordinateN(0).x, 2) + ";" + format(polyligne.getCoordinateN(0).y, 2) + ")" + + ";" + "P" + polyligne.getNumPoints() + "(" + + format(polyligne.getCoordinateN(polyligne.getNumPoints() - 1).x, 2) + ";" + + format(polyligne.getCoordinateN(polyligne.getNumPoints() - 1).y, 2) + ")"; + newModele.setTitle(title); - //-- on cree la nouvelle courbe pour la variable correspondante --// - MvProfileTarget target=new TrPostProfileAction.ProfileAdapter(_src,impl.getCurrentProject()); - MvProfileBuilder builder=new MvProfileBuilderFromLine(target,impl,polyligne,vue2d,new MvProfileCoteTester()); - //-- intersectionResultI --// - EfLineIntersectionsResultsI res=builder.getDefaultRes(_model.variable_, impl.getMainProgression()); - //-- EfLineIntersectionsResultsBuilder --// - EfLineIntersectionsResultsBuilder efbuilder=new EfLineIntersectionsResultsBuilder(polyligne,_model.res_,new MvProfileCoteTester()); - MVProfileCourbeModel newModele=new MVProfileCourbeModel(newVariable,_src,newTimeStep,efbuilder,impl.getMainProgression()); + // -- creation de la nouvelle courbe --// + MvProfileCourbeTime newchild = new MvProfileCourbeTime(groupVar, newModele, target.getTimeModel()); + groupVar.addEGComponent(newchild); - //-- titre --// - String title=newVariable.toString() + CtuluLibString.ESPACE ; - if(newVariable.getCommonUnit()!=null) - title+="("+newVariable.getCommonUnit()+")"+ CtuluLibString.ESPACE ; - title+=_src.getTimeStep(newTimeStep); - //-- on ajoute les extremites du segment choisi --// - title+=", P1("+format(polyligne.getCoordinateN(0).x,2)+";"+format(polyligne.getCoordinateN(0).y,2)+")"+";"+"P"+polyligne.getNumPoints()+"("+format(polyligne.getCoordinateN(polyligne.getNumPoints()-1).x,2)+";"+format(polyligne.getCoordinateN(polyligne.getNumPoints()-1).y,2)+")"; - newModele.setTitle(title); + // -- si ecraser, on supprime la courbe --// + if (ecraser) { + this.removeModele(_model, _cmd); - //-- creation de la nouvelle courbe --// - MvProfileCourbeTime newchild = new MvProfileCourbeTime(groupVar, newModele, target.getTimeModel()); - groupVar.addEGComponent(newchild); + } + fireStructureChanged(); + } - //-- si ecraser, on supprime la courbe --// - if(ecraser){ - this.removeModele(_model,_cmd); + public void replayPoints(TrPostCommonImplementation impl, TrPostVisuPanel vue2d, MVProfileCourbeModel _model, + final TrPostSource _src, final int[] _idxToAdd, final CtuluCommandContainer _cmd, + final ProgressionInterface _prog, H2dVariableType newVariable, int newTimeStep, boolean ecraser) { + // -- creation de la polyligne --// + GISZoneCollectionPoint points = new GISZoneCollectionPoint(); + for (int i = 0; i < _idxToAdd.length; i++) + points.add(_src.getGrid().getPtX(_idxToAdd[i]), _src.getGrid().getPtY(_idxToAdd[i]), 0); - } + replayPoints(impl, vue2d, _model, _src, points, _cmd, _prog, newVariable, newTimeStep, ecraser); + } + public void replayPoints(TrPostCommonImplementation impl, TrPostVisuPanel vue2d, MVProfileCourbeModel _model, + final TrPostSource _src, final List<GrPoint> _idxToAdd, final CtuluCommandContainer _cmd, + final ProgressionInterface _prog, H2dVariableType newVariable, int newTimeStep, boolean ecraser) { + // -- creation de la polyligne --// + GISZoneCollectionPoint points = new GISZoneCollectionPoint(); + for (GrPoint point : _idxToAdd) + points.add(point.x_, point.y_, point.z_); - fireStructureChanged(); - } + replayPoints(impl, vue2d, _model, _src, points, _cmd, _prog, newVariable, newTimeStep, ecraser); + } - - - public void replayPoints(TrPostCommonImplementation impl,TrPostVisuPanel vue2d,MVProfileCourbeModel _model,final TrPostSource _src, final int[] _idxToAdd, final CtuluCommandContainer _cmd, - final ProgressionInterface _prog, H2dVariableType newVariable,int newTimeStep, boolean ecraser) { - //-- creation de la polyligne --// - GISZoneCollectionPoint points=new GISZoneCollectionPoint(); - for(int i=0;i<_idxToAdd.length;i++) - points.add(_src.getGrid().getPtX(_idxToAdd[i]),_src.getGrid().getPtY(_idxToAdd[i]),0); - - replayPoints(impl, vue2d, _model, _src, points, _cmd, _prog, newVariable, newTimeStep, ecraser); - } - - public void replayPoints(TrPostCommonImplementation impl,TrPostVisuPanel vue2d,MVProfileCourbeModel _model,final TrPostSource _src, final List<GrPoint> _idxToAdd, final CtuluCommandContainer _cmd, - final ProgressionInterface _prog, H2dVariableType newVariable,int newTimeStep, boolean ecraser) { - //-- creation de la polyligne --// - GISZoneCollectionPoint points=new GISZoneCollectionPoint(); - for(GrPoint point:_idxToAdd) - points.add(point.x_,point.y_,point.z_); - - replayPoints(impl, vue2d, _model, _src, points, _cmd, _prog, newVariable, newTimeStep, ecraser); - } + /** + * Methode qui supprime la courbe pour son modele du profil spatial. Supprime \xE9galement le groupe de variable si ce + * dernier ne contient pas d'autres courbes. + * + * @param model de la courbe a supprimer + * @param mng + */ + public void removeModele(MVProfileCourbeModel model, CtuluCommandContainer mng) { + model.isRemovable_ = true; + // -- on recupere le groupe du modele --// + final MvProfileCourbeGroup groupVar = getGroup(model.getVariable(), false); + EGCourbeChild[] liste = new EGCourbeChild[1]; + boolean trouve = false; + for (int i = groupVar.getChildCount() - 1; !trouve && i >= 0; i--) { + final MVProfileCourbeModel res = (MVProfileCourbeModel) groupVar.getCourbeAt(i).getModel(); + if (res == model) { + liste[0] = groupVar.getCourbeAt(i); + trouve = true; + } + } + if (trouve) removeCurves(liste, mng); - /** - * Methode qui supprime la courbe pour son modele du profil spatial. - * Supprime \xE9galement le groupe de variable si ce dernier ne contient pas d'autres courbes. - * @param model de la courbe a supprimer - * @param mng - */ - public void removeModele(MVProfileCourbeModel model,CtuluCommandContainer mng){ - model.isRemovable_=true; - //-- on recupere le groupe du modele --// - final MvProfileCourbeGroup groupVar = getGroup(model.getVariable(), false); - EGCourbeChild[] liste=new EGCourbeChild[1]; - boolean trouve=false; - for (int i = groupVar.getChildCount() - 1;!trouve && i >= 0; i--) { - final MVProfileCourbeModel res = (MVProfileCourbeModel) groupVar.getCourbeAt(i).getModel(); - if (res==model) { - liste[0]=groupVar.getCourbeAt(i); - trouve=true; - } - } - if(trouve) - removeCurves(liste,mng ); + // -- test si le groupe ne contient rien, on le degage --// + if (groupVar.getEGChilds() == null || groupVar.getEGChilds().length == 0) { + this.remove(groupVar); - //-- test si le groupe ne contient rien, on le degage --// - if(groupVar.getEGChilds()==null || groupVar.getEGChilds().length==0){ - this.remove(groupVar); + } + } - } - } + public String format(double value, int nbChiffresSignificatifs) { + String forme = "#."; + for (int i = 0; i < nbChiffresSignificatifs; i++) + forme += "0"; + DecimalFormat df = new DecimalFormat(forme); + return df.format(value); + } - public String format(double value,int nbChiffresSignificatifs){ - String forme="#."; - for(int i=0;i<nbChiffresSignificatifs;i++) - forme+="0"; - DecimalFormat df = new DecimalFormat(forme); - return df.format(value); - } + MvProfileGridPalette paletteGrid_; + public EfLineIntersectionsResultsI[] getDefaultRes() { + return new EfLineIntersectionsResultsI[] { resNode_ == null ? null : resNode_.getDefaultRes(), + resMesh_ == null ? null : resMesh_.getDefaultRes() }; + } - MvProfileGridPalette paletteGrid_; + public static LineString createLineString(final EfLineIntersectionsResultsMng _res) { + if (_res == null) { return null; } + return createLineString(_res.getDefaultRes()); + } - public EfLineIntersectionsResultsI[] getDefaultRes() { - return new EfLineIntersectionsResultsI[] { resNode_ == null ? null : resNode_.getDefaultRes(), - resMesh_ == null ? null : resMesh_.getDefaultRes() }; - } + private static LineString createLineString(final EfLineIntersectionsResultsI _res) { + final Coordinate[] cs = new Coordinate[_res.getNbIntersect()]; + for (int i = cs.length - 1; i >= 0; i--) { + final EfLineIntersection intersect = _res.getIntersect(i); + cs[i] = new Coordinate(intersect.getX(), intersect.getY()); + } + return GISGeometryFactory.INSTANCE.createLineString(cs); + } - public static LineString createLineString(final EfLineIntersectionsResultsMng _res) { - if (_res == null) { return null; } - return createLineString(_res.getDefaultRes()); - } + /** + * Recherche le bon groupe pour les profils spatiaux. peut creer le groupe si booleen est a true. + * + * @param _v + * @param _create + * @return + */ + public MvProfileCourbeGroup getGroup(final CtuluVariable _v, final boolean _create) { + for (int i = getNbEGObject() - 1; i >= 0; i--) { + final EGGroup g = getGroup(i); + if ((g instanceof MvProfileCourbeGroup) && ((MvProfileCourbeGroup) g).getVar() == _v) { return (MvProfileCourbeGroup) g; } + } + if (_create) { + final MvProfileCourbeGroup g = MvProfileFillePanel.createGroupFor(_v); + super.add(g); + return g; + } + return null; - private static LineString createLineString(final EfLineIntersectionsResultsI _res) ... [truncated message content] |
From: <had...@us...> - 2009-02-23 17:38:36
|
Revision: 4491 http://fudaa.svn.sourceforge.net/fudaa/?rev=4491&view=rev Author: hadouxad Date: 2009-02-23 17:38:31 +0000 (Mon, 23 Feb 2009) Log Message: ----------- - fleches - echelles logarithmiques pour les graphes - inversion x et y Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueGrille.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/sig/layer/FSigGrillePalette.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesLigneConfigure.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecorator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EgCourbeDecoratorInverse.java Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesLigneConfigure.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesLigneConfigure.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesLigneConfigure.java 2009-02-23 17:38:31 UTC (rev 4491) @@ -0,0 +1,47 @@ +/* + * @creation 9 nov. 06 + * @modification $Date: 2007-06-05 08:58:38 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque; + +import org.fudaa.ebli.controle.BSelecteurInterface; +import org.fudaa.ebli.controle.BSelecteurLineModel; +import org.fudaa.ebli.trace.TraceLigneModel; + +/** + * @author fred deniger + * @version $Id: ZCalqueAffichageDonneesTraceConfigure.java,v 1.3 2007-06-05 08:58:38 deniger Exp $ + */ +public class ZCalqueAffichageDonneesLigneConfigure extends BCalqueConfigureSectionAbstract { + + final int idx_; + final String propLine_; + + public ZCalqueAffichageDonneesLigneConfigure(final ZCalqueAffichageDonneesAbstract _target, final int _idx) { + super(_target, _target.getSetTitle(_idx)); + idx_ = _idx; + propLine_ = BSelecteurLineModel.getProperty(idx_); + } + + protected ZCalqueAffichageDonneesAbstract getCq() { + return (ZCalqueAffichageDonneesAbstract) target_; + } + + public boolean setProperty(final String _key, final Object _newProp) { + return getCq().setLineModel(idx_, (TraceLigneModel) _newProp); + } + + public Object getProperty(final String _key) { + return getCq().getLineModel(idx_); + } + + public BSelecteurInterface[] createSelecteurs() { + final BSelecteurLineModel selecteurLineModel = new BSelecteurLineModel(propLine_); + selecteurLineModel.setTitle(((ZCalqueAffichageDonneesAbstract) target_).getSetTitle(idx_)); + return new BSelecteurInterface[] { selecteurLineModel }; + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueGrille.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueGrille.java 2009-02-23 16:32:31 UTC (rev 4490) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZCalqueGrille.java 2009-02-23 17:38:31 UTC (rev 4491) @@ -1,1053 +1,1086 @@ -/* - * @file BCalqueGrille.java - * @creation 1998-09-03 - * @modification $Date: 2008-02-20 10:14:40 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ebli.calque; - -import gnu.trove.TDoubleArrayList; -import gnu.trove.TIntArrayList; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Insets; -import java.util.ArrayList; -import java.util.List; - -import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.CtuluListSelection; -import org.fudaa.ctulu.iterator.NumberIterator; -import org.fudaa.ctulu.iterator.TickIterator; -import org.fudaa.ebli.commun.EbliLib; -import org.fudaa.ebli.commun.EbliUIProperties; -import org.fudaa.ebli.geometrie.GrBoite; -import org.fudaa.ebli.geometrie.GrMorphisme; -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.trace.TraceLigne; -import org.fudaa.ebli.trace.TraceLigneModel; - -import com.vividsolutions.jts.geom.LineString; -import com.vividsolutions.jts.geom.LinearRing; - -/** - * Un calque d'affichage d'une grille. - * - * @version $Revision: 1.11.6.1 $ $Date: 2008-02-20 10:14:40 $ by $Author: bmarchan $ - * @author Guillaume Desnoix - */ -public class ZCalqueGrille extends ZCalqueAffichageDonnees { - // Proprietes - // private GrBoite boite_; - boolean drawGrid_; - boolean drawX_ = true; - boolean drawY_ = true; - // Envelope customBounds_; - // boolean useCustom_; - - int nbGraduationX_ = 10; - int nbGraduationY_ = 10; - - // -- sous graduations --// - int nbSousGraduationX_ = 3; - // -- sous graduations --// - int nbSousGraduationY_ = 3; - - private TraceLigneModel traceGraduations_ = new TraceLigneModel(TraceLigne.TIRETE, 1, Color.black); - private TraceLigneModel traceSousGraduations_ = new TraceLigneModel(TraceLigne.TIRETE, (float) 0.5, Color.gray); - - final BVueCalque vue_; - - /** - * Indique la facon de calculer les graduations. pour l'axe des x. - */ - boolean modeAutomatiqueX_ = false; - /** - * Indique la facon de calculer les graduations. pour l'axe des y. - */ - boolean modeAutomatiqueY_ = false; - - /** - * Indique si on utilise par taille de pas ou par nombre de graduations - */ - boolean modeLongueurPasX_ = false; - boolean modeLongueurPasY_ = false; - - /** - * Valeur du pas que devront suivrent tous les traits de la grilles si on en mode taille pas. - */ - double valeurPasX_; - double valeurPasY_; - - boolean drawSousGrilleX_ = false; - boolean drawSousGrilleY_ = false; - - // boolean modeLongueurPasSousGradX_ = false; - // boolean modeLongueurPasSousGradY_ = false; - // - // double valeurPasSousGradX_; - // double valeurPasSousGradY_; - -// private Color couleurSousGraduation_ = Color.blue; - - public ZCalqueGrille(final BVueCalque _vue) { - super(); - vue_ = _vue; - setDestructible(false); - setName("cqGrille"); - setTitle(EbliLib.getS("Grille")); - // setForeground(new Color(204, 153, 0)); - setForeground(Color.BLACK); - } - - public void paintAllInImage(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, - final GrBoite _clipReel) { - // super.paintAllInImage(_g, _versEcran, _versReel, _clipReel); - } - - public void changeZoom(double minx, double miny, double maxx, double maxy) { - vue_.changeViewBoite(this, new GrBoite(new GrPoint(minx, miny, 0), new GrPoint(maxx, maxy, 0)), false); - } - - public int getNbXGraduations() { - return nbGraduationX_; - } - - public int getNbYGraduations() { - return nbGraduationY_; - } - - public int getNbXSousGraduations() { - return nbSousGraduationX_; - } - - public int getNbYSousGraduations() { - return nbSousGraduationY_; - } - - - /** - * Accesseur de la propriete <I>boite</I>. Elle donne la position, la taille, le domaine de la grille. - */ - // public GrBoite getBoite() { - // return boite_; - // } - public GrBoite getDomaine() { - return null; - // GrBoite r = null; - // if (isVisible()) { - // GrBoite d = null; - // d = super.getDomaine(); - // r = getBoite(); - // if (d != null) { - // if (r == null) { - // r = d; - // } else { - // r = r.union(d); - // } - // } - // } - // return r; - } - - public GrBoite getDomaineOnSelected() { - return getDomaine(); - } - - public boolean isCouleurModifiable() { - return true; - } - - public int getTiretLength() { - return 3; - } - - public void paintDonnees(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, - final GrBoite _clipReel) { - GrBoite domaine = vue_.getAbstractCalque().getDomaine(); - final GrBoite zv = _clipReel.intersectionXY(domaine); - // GrBoite domaine = vue_.getViewBoite(); - // final GrBoite zv = domaine; - - if (zv == null) { return; } - // updateBounds(zv); - final GrBoite targetBoite = new GrBoite(); - targetBoite.ajuste(0, 0, 0); - // la boite d'affichage - - if (!_versEcran.isSame(getVersEcran())) { return; } - targetBoite.ajuste(getWidth(), getHeight(), 0); - final Color old = _g.getColor(); - final Font oldFont = _g.getFont(); - // la fonte - final Font font = getFont(); - if (font != null) { - _g.setFont(font); - } - final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); - final TDoubleArrayList xValue = new TDoubleArrayList(20); - final TIntArrayList xStrWidth = new TIntArrayList(20); - final List xString = new ArrayList(20); - - final boolean isXPainted = drawX_ && zv.getMinX() < zv.getMaxX() && nbGraduationX_ > 0; - - if (isXPainted) { - computeXValues(zv, _g, xValue, xStrWidth, xString); - } - double yMax = 0; - final TDoubleArrayList yValue = new TDoubleArrayList(20); - final TIntArrayList yStrWidth = new TIntArrayList(20); - final List yString = new ArrayList(20); - final boolean isYPainted = drawY_ && zv.getMinY() < zv.getMaxY() && nbGraduationY_ > 0; - if (isYPainted) { - yMax = computeYValues(_g, zv, yValue, yStrWidth, yString); - } - - // boolean rapide = isRapide(); - final GrMorphisme versEcran = _versEcran; - final int tiret = getTiretLength(); - final int marge = 1; - int absyAxe = (int) (targetBoite.getMinX() + yMax + 2 * marge + tiret); - final int margeBas = (font == null ? 0 : font.getSize()) + 2 * marge + tiret; - int ordxAxe = (int) (targetBoite.getMaxY() - margeBas); - vue_.setUserInsets(new Insets(3, absyAxe + 5, margeBas + 5, 3)); - - final GrBoite ecranBoite = domaine.applique(_versEcran); - if (ecranBoite.getMinX() - 5 > absyAxe) { - absyAxe = (int) (ecranBoite.getMinX() - 5); - } - if (ecranBoite.getMaxY() + 5 < ordxAxe) { - ordxAxe = (int) (ecranBoite.getMaxY() + 5); - } - if (isXPainted) { - fillXZone(_g, targetBoite, absyAxe, ordxAxe, ecranBoite); - - } - - // l'axe des x - final double maxXForAxe = ecranBoite.getMaxX() - marge; - - // l'axe des y - final double minYForAxe = ecranBoite.getMinY() + marge; - // les graduation en x - - final int ascent = fm == null ? 0 : fm.getAscent(); - final int ordXString = ordxAxe + tiret + ascent; - if (isXPainted) { - drawXAxe(_g, zv, xValue, versEcran, absyAxe, ordxAxe, maxXForAxe); - drawXGraduations(_g, targetBoite, xValue, xStrWidth, xString, absyAxe, ordxAxe, ecranBoite, minYForAxe, - ordXString); - } - - // y - - if (isYPainted) { - fillYZone(_g, targetBoite, absyAxe, ecranBoite); - drawYaxe(_g, zv, xValue, yValue, versEcran, absyAxe, ordxAxe, minYForAxe); - drawYGraduations(_g, yValue, yStrWidth, yString, versEcran, marge, absyAxe, ordxAxe, ecranBoite, maxXForAxe); - } - _g.setColor(old); - _g.setFont(oldFont); - } - - void fillXZone(final Graphics2D _g, final GrBoite _targetBoite, final int _absyAxe, final int _ordxAxe, - final GrBoite _ecranBoite) { - if (_ecranBoite.getMaxX() > _ordxAxe) { - _g.setColor(vue_.getBackground()); - _g.fillRect(_absyAxe, _ordxAxe, (int) _targetBoite.getMaxX() - _absyAxe, (int) _targetBoite.getMaxY() - _ordxAxe); - } - } - - private void fillYZone(final Graphics2D _g, final GrBoite _targetBoite, final int _absyAxe, final GrBoite _ecranBoite) { - if (_ecranBoite.getMinX() < _absyAxe) { - _g.setColor(vue_.getBackground()); - _g.fillRect(0, 0, _absyAxe, (int) _targetBoite.getMaxY()); - } - } - - protected void drawYGraduations(final Graphics2D _g, final TDoubleArrayList _yValue, final TIntArrayList _yStrWidth, - final List _yString, final GrMorphisme _versEcran, final int _marge, final int _absyAxe, final int _ordxAxe, - final GrBoite _ecranBoite, final double _maxXForAxe) { - final int nb = _yString.size(); - final int tiret = getTiretLength(); - final Font font = getFont(); - final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); - final int ascent = fm == null ? 0 : fm.getAscent(); - int idxStr = -1; - final Color fg = getDrawColor(); - final Color subColor = getSubColor(); - GrPoint tmpSousGrille_ = new GrPoint(); - double longueurMoyenne = 0; - TraceLigne tl = new TraceLigne(traceGraduations_); - TraceLigne t1sousGrad = new TraceLigne(traceSousGraduations_); - for (int i = 0; i < nb; i++) { - tmp_.y_ = _yValue.getQuick(i); - tmp_.autoApplique(_versEcran); - if (tmp_.y_ > _ordxAxe) { - continue; - } - if (tmp_.y_ < _ecranBoite.getMinY()) { - break; - } - // le tiret - // tl_.setTypeTrait(TraceLigne.LISSE); - // tl_.setCouleur(fg); - final int w = _yStrWidth.getQuick(i); - tl.dessineTrait(_g, _absyAxe, tmp_.y_, _absyAxe - (w > 0 ? tiret : tiret - 2), tmp_.y_); - if (w > 0 && (tmp_.y_ < idxStr || idxStr < 0)) { - _g.setColor(fg); - _g.drawString((String) _yString.get(i), (_absyAxe - w - tiret - _marge), (int) (tmp_.y_ + ascent / 2D)); - idxStr = (int) (tmp_.y_ - ascent / 2D - 3D); - } - - // // -- on trace ou non les sous graduations --// - // if ((w > 0 || i == nb - 2) && drawSousGrilleY_ && i > 0 && i < nb - 1) { - // int valNextPotable = -1; - // for (int j = i + 1; valNextPotable == -1 && j < _yStrWidth.size(); j++) - // if (_yStrWidth.getQuick(j) > 0) valNextPotable = j; - // - // if (i == nb - 2) { - // // -- la fin il faut creer le nouveau - // valNextPotable = nb - 1; - // _yValue.set(valNextPotable, _yValue.get(i) + longueurMoyenne); - // } - // - // if (valNextPotable != -1) { - // - // tmpSousGrille_.y_ = _yValue.getQuick(valNextPotable); - // tmpSousGrille_.autoApplique(_versEcran); - // double distanceEntre2Trait = Math.abs(tmpSousGrille_.y_ - tmp_.y_); - // int nbSousGrilles = 0; - // int taillePasSousgrille = 0; - // if (!this.modeLongueurPasSousGradY_) { - // // -- on trace des nombre de cesure --// - // nbSousGrilles = this.getNbYSousGraduations(); - // if (nbSousGrilles != 0) taillePasSousgrille = (int) ((distanceEntre2Trait) / nbSousGrilles); - // } else { - // // -- on trace des pas par longueur --// - // double ratio = (_yValue.getQuick(valNextPotable) - _yValue.getQuick(i)); - // if (ratio != 0) ratio = this.valeurPasSousGradY_ / ratio; - // - // taillePasSousgrille = (int) (ratio * distanceEntre2Trait); - // if (taillePasSousgrille != 0) nbSousGrilles = (int) (distanceEntre2Trait / taillePasSousgrille); - // } - // // -- si on a des bons pas et nb de grilles --// - // if (nbSousGrilles > 0 && taillePasSousgrille > 0 && taillePasSousgrille < distanceEntre2Trait) { - // - // for (int k = 0; k < nbSousGrilles + 1; k++) { - // // -- on trace un trait de couleur de subgrid --// - // // t1sousGrad.setTypeTrait(TraceLigne.POINTILLE); - // // t1sousGrad.setEpaisseur((float) 0.1); - // // t1sousGrad.setCouleur(this.couleurSousGraduation_); - // double longueur = ((k) * taillePasSousgrille); - // tmpSousGrille_.autoApplique(_versEcran); - // t1sousGrad.dessineTrait(_g, _absyAxe, tmp_.y_ + longueur, _maxXForAxe, tmp_.y_ + longueur); - // } - // longueurMoyenne = (int) (_yValue.getQuick(valNextPotable) - _yValue.getQuick(i)); - // } - // - // } - // } - - if (drawGrid_ && w > 0) { - // tl.setTypeTrait(TraceLigne.TIRETE); - // tl.setEpaisseur(1); - // tl.setCouleur(subColor); - tl.dessineTrait(_g, _absyAxe, tmp_.y_, _maxXForAxe, tmp_.y_); - } - } - } - - private Color getSubColor() { - Color subColor = attenueCouleur(getForeground()); - if (isAttenue()) { - subColor = attenueCouleur(subColor); - } - return subColor; - } - - private Color getDrawColor() { - Color fg = getForeground(); - if (isAttenue()) { - fg = attenueCouleur(fg); - } - return fg; - } - - final GrPoint tmp_ = new GrPoint(); - - private void drawXGraduations(final Graphics2D _g, final GrBoite _targetBoite, final TDoubleArrayList _xValue, - final TIntArrayList _xStrWidth, final List _xString, final int _absyAxe, final int _ordxAxe, - final GrBoite _ecranBoite, final double _minYForAxe, final int _ordXString) { - - // final Color fg = getDrawColor(); - // final Color subColor = getSubColor(); - int idxStr = -1; - final GrMorphisme versEcran = getVersEcran(); - final int tiret = getTiretLength(); - final TraceLigne gtl = new TraceLigne(traceGraduations_); - final TraceLigne gtlsousGrad = new TraceLigne(traceSousGraduations_); - // pour desinner les petites graduations - gtl.setTypeTrait(TraceLigne.LISSE); - gtlsousGrad.setTypeTrait(TraceLigne.LISSE); - - GrPoint tmpSousGrille = new GrPoint(); - double longueurMoyenne = 0; - final int nb = _xString.size(); - for (int i = 0; i < nb; i++) { - tmp_.x_ = _xValue.getQuick(i); - tmp_.autoApplique(versEcran); - if (tmp_.x_ < _absyAxe) { - continue; - } - if (tmp_.x_ > _ecranBoite.getMaxX()) { - break; - } - final int w = _xStrWidth.getQuick(i); - if (w > 0 || drawSousGrilleX_) { - TraceLigne lg = gtl; - if (w <= 0) { - lg = gtlsousGrad; - - } - lg.setTypeTrait(TraceLigne.LISSE); - lg.dessineTrait(_g, tmp_.x_, _ordxAxe, tmp_.x_, _ordxAxe + (w > 0 ? tiret : tiret - 2)); - } - if (w > 0) { - final int start = (int) (tmp_.x_ - w / 2D); - if (start > idxStr + 1 && start + w < _targetBoite.getMaxX()) { - _g.setColor(gtl.getCouleur()); - _g.drawString((String) _xString.get(i), start, _ordXString); - idxStr = start + w; - } - } - - // // -- on trace ou non les sous graduations --// - // if ((w > 0 || i == nb - 2) && drawSousGrilleX_ && i < nb - 1) { - // int valNextPotable = -1; - // for (int j = i + 1; valNextPotable == -1 && j < _xStrWidth.size(); j++) - // if (_xStrWidth.getQuick(j) > 0) valNextPotable = j; - // if (i == nb - 2) { - // // -- la fin il faut creer le nouveau - // valNextPotable = nb - 1; - // _xValue.set(valNextPotable, _xValue.get(i) + longueurMoyenne); - // } - // if (valNextPotable != -1) { - // - // tmpSousGrille.x_ = _xValue.getQuick(valNextPotable); - // tmpSousGrille.autoApplique(versEcran); - // double distanceEntre2Trait = Math.abs(tmpSousGrille.x_ - tmp_.x_); - // int nbSousGrilles = 0; - // int taillePasSousgrille = 0; - // if (!this.modeLongueurPasSousGradX_) { - // // -- on trace des nombre de cesure --// - // nbSousGrilles = this.getNbXSousGraduations(); - // if (nbSousGrilles != 0) taillePasSousgrille = (int) ((distanceEntre2Trait) / nbSousGrilles); - // } else { - // // -- on trace des pas par longueur --// - // double ratio = (_xValue.getQuick(valNextPotable) - _xValue.getQuick(i)); - // if (ratio != 0) ratio = this.valeurPasSousGradX_ / ratio; - // - // taillePasSousgrille = (int) (ratio * distanceEntre2Trait); - // if (taillePasSousgrille != 0) nbSousGrilles = (int) (distanceEntre2Trait / taillePasSousgrille); - // } - // // -- si on a des bons pas et nb de grilles --// - // if (nbSousGrilles > 0 && taillePasSousgrille > 0 && taillePasSousgrille < distanceEntre2Trait) { - // - // for (int k = 0; k < nbSousGrilles + 1; k++) { - // // -- on trace un trait de couleur de subgrid --// - // // gtlsousGrad.setTypeTrait(TraceLigne.POINTILLE); - // // gtlsousGrad.setEpaisseur((float) 0.1); - // // gtlsousGrad.setCouleur(this.couleurSousGraduation_); - // double longueur = ((k) * taillePasSousgrille); - // tmpSousGrille.autoApplique(versEcran); - // gtlsousGrad.dessineTrait(_g, tmp_.x_ + longueur, _ordxAxe, tmp_.x_ + longueur, _minYForAxe); - // } - // - // longueurMoyenne = (int) (_xValue.getQuick(valNextPotable) - _xValue.getQuick(i)); - // } - // - // } - // } - if (drawGrid_) { - TraceLigne l = null; - if (w > 0) { - gtl.getModel().updateData(traceGraduations_); - l = gtl; - } else if (drawSousGrilleX_) { - gtlsousGrad.getModel().updateData(traceSousGraduations_); - l = gtlsousGrad; - } - if (l != null) l.dessineTrait(_g, tmp_.x_, _ordxAxe, tmp_.x_, _minYForAxe); - } - - } - } - - private void drawYaxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue, - final TDoubleArrayList _yValue, final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, - final double _minYForAxe) { - int minYDraw = _ordxAxe; - int maxYDraw = (int) _minYForAxe; - - // if (useCustom_) { - // tmp_.y_ = _zv.getMinY(); - // if (_yValue.size() > 0) { - // tmp_.y_ = Math.min(_yValue.get(0), tmp_.y_); - // } - // tmp_.autoApplique(_versEcran); - // tmp_.y_ = Math.floor(tmp_.y_); - // if (tmp_.y_ > minYDraw) { - // minYDraw = (int) tmp_.y_; - // } - // tmp_.y_ = _zv.getMaxY(); - // if (_yValue.size() > 1) { - // tmp_.y_ = Math.max(_yValue.get(_yValue.size() - 1), tmp_.y_); - // } - // tmp_.autoApplique(_versEcran); - // tmp_.y_ = Math.ceil(tmp_.y_); - // if (tmp_.y_ < maxYDraw) { - // maxYDraw = (int) tmp_.y_; - // } - // } - tl_.setCouleur(getDrawColor()); - tl_.setTypeTrait(TraceLigne.LISSE); - tl_.dessineTrait(_g, _absyAxe, minYDraw, _absyAxe, maxYDraw); - } - - final TraceLigne tl_ = new TraceLigne(); - - private void drawXAxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue, - final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, final double _maxXForAxe) { - int minXDraw = _absyAxe; - int maxXDraw = (int) _maxXForAxe; - - tl_.setCouleur(getDrawColor()); - tl_.setTypeTrait(TraceLigne.LISSE); - tl_.dessineTrait(_g, minXDraw, _ordxAxe, maxXDraw, _ordxAxe); - } - - private void computeXValues(final GrBoite _zv, final Graphics2D _g, final TDoubleArrayList _xValue, - final TIntArrayList _xStrWidth, final List _xString) { - - final Font font = getFont(); - if (font != null) { - _g.setFont(font); - } - final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); - TickIterator it = createXTickIterator(_zv); - if (it == null) return; - // _it= - while (it.hasNext()) { - final double x = it.currentValue(); - _xValue.add(x); - - if (font == null || !it.isMajorTick()) { - _xStrWidth.add(0); - _xString.add(CtuluLibString.EMPTY_STRING); - } else { - final String currentLabel = it.currentLabel(); - _xStrWidth.add(fm.stringWidth(currentLabel)); - _xString.add(currentLabel); - } - it.next(); - } - } - - private TickIterator createXTickIterator(final GrBoite _zv) { - NumberIterator it = new NumberIterator(); - it.setMaxFractionDigits(2); - if (!modeAutomatiqueX_) { - if (modeLongueurPasX_) { - it.initExactFromDist(_zv.getMinX(), _zv.getMaxX(), this.valeurPasX_, nbSousGraduationX_); - } else { - it.initExact(_zv.getMinX(), _zv.getMaxX(), getNbXGraduations(), nbSousGraduationX_); - } - } else { - it.init(_zv.getMinX(), _zv.getMaxX(), getNbXGraduations()); - } - return it; - } - - private TickIterator createYIterator(final GrBoite _zv) { - NumberIterator it = new NumberIterator(); - it.setMaxFractionDigits(2); - // -- mode manuel --// - if (!modeAutomatiqueY_) { - if (modeLongueurPasY_) { - it.initExactFromDist(_zv.getMinY(), _zv.getMaxY(), this.valeurPasY_, nbSousGraduationY_); - } else { - it.initExact(_zv.getMinY(), _zv.getMaxY(), getNbYGraduations(), nbSousGraduationY_); - } - } else { - it.init(_zv.getMinY(), _zv.getMaxY(), getNbYGraduations()); - } - return it; - } - - public boolean isModeAutomatiqueX() { - return modeAutomatiqueX_; - } - - public void setModeAutomatiqueX(boolean modeAutomatiqueX) { - this.modeAutomatiqueX_ = modeAutomatiqueX; - } - - public boolean isModeAutomatiqueY() { - return modeAutomatiqueY_; - } - - public void setModeAutomatiqueY(boolean modeAutomatiqueY) { - this.modeAutomatiqueY_ = modeAutomatiqueY; - } - - // /** - // * Remplit les graduations correctement: nb cesures= nombre de trait sur l'ecran que ce soit pour le mode par taille - // * de pas ou par nb de cesures. - // * - // * @param nbGraduations - // * @param min - // * @param max - // * @param _xValue - // * @param _xStrWidth - // * @param _xString - // */ - // private double fillGraduations(Graphics2D _g, int nbGraduations, double min, double max, - // final TDoubleArrayList _xValue, final TIntArrayList _xStrWidth, final List _xString, FontMetrics fm) { - // - // // -- distance tot a couvrir --// - // final double distance = max - min;// e - // final int taillePas = Math.max(1, (int) (distance / nbGraduations)); - // double yMax = 0; - // - // NumberIteratorGraduationsFixe _it = new NumberIteratorGraduationsFixe(); - // _it.init(min, max, nbGraduations); - // - // while (_it.hasNext()) { - // final double x = _it.currentValue(); - // _xValue.add(x); - // final String currentLabel = _it.currentLabel(); - // int stringWidth = fm.stringWidth(currentLabel); - // _xStrWidth.add(stringWidth); - // if (stringWidth > yMax) { - // yMax = stringWidth; - // } - // _xString.add(currentLabel); - // - // _it.next(); - // } - // - // return yMax; - // - // } - // - // /** - // * Remplit les graduations correctement: nb cesures= nombre de trait sur l'ecran que ce soit pour le mode par taille - // * de pas ou par nb de cesures. - // * - // * @param nbGraduations - // * @param min - // * @param max - // * @param _xValue - // * @param _xStrWidth - // * @param _xString - // */ - // private double fillGraduationsWithPas(Graphics2D _g, double pas, double min, double max, - // final TDoubleArrayList _xValue, final TIntArrayList _xStrWidth, final List _xString, FontMetrics fm) { - // DecimalFormat df = new DecimalFormat("#.0"); - // // -- distance tot a couvrir --// - // final double distance = max - min; - // final double taillePas = pas; - // if (pas == 0) return 0; - // int nbGraduations = (int) (distance / taillePas); - // double yMax = 0; - // - // for (int i = 0; i < nbGraduations + 1; i++) { - // double cesure = (min + (taillePas * (i))); - // _xValue.add(cesure); - // String currentLabel; - // - // currentLabel = df.format(cesure); - // - // String chiffreApresVirgule = currentLabel.substring(currentLabel.lastIndexOf(",") + 1); - // if (chiffreApresVirgule.equals("0")) currentLabel = "" + (int) cesure; - // _xString.add(currentLabel); - // _xStrWidth.add(fm.stringWidth(currentLabel)); - // final double stringWidth = fm == null ? 0 : fm.getStringBounds(currentLabel, _g).getWidth(); - // if (stringWidth > yMax) { - // yMax = stringWidth; - // } - // - // if (i == nbGraduations) { - // if (cesure < max) nbGraduations++;// ATTENTION boucle infinie ! - // } - // if (i > 100) break;// a enlever bugfix temporaire. - // - // } - // return yMax; - // - // } - - private double computeYValues(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _yValue, - final TIntArrayList _yStrWidth, final List _yString) { - final Font font = getFont(); - if (font != null) { - _g.setFont(font); - } - final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); - double yMax = 0; - TickIterator it = createYIterator(_zv); - - if (it == null) return 0; - - while (it.hasNext()) { - - final double x = it.currentValue(); - _yValue.add(x); - if (font == null || !it.isMajorTick()) { - _yStrWidth.add(0); - _yString.add(CtuluLibString.EMPTY_STRING); - } else { - final String currentLabel = it.currentLabel(); - final double stringWidth = fm == null ? 0 : fm.getStringBounds(currentLabel, _g).getWidth(); - if (stringWidth > yMax) { - yMax = stringWidth; - } - _yStrWidth.add((int) stringWidth); - _yString.add(currentLabel); - } - it.next(); - } - return yMax; - } - - // private void updateBounds(final GrBoite _zv) { - // if (useCustom_ && customBounds_ != null) { - // _zv.o_.x_ = Math.max(_zv.o_.x_, customBounds_.getMinX()); - // _zv.e_.x_ = Math.min(_zv.e_.x_, customBounds_.getMaxX()); - // _zv.o_.y_ = Math.max(_zv.o_.y_, customBounds_.getMinY()); - // _zv.e_.y_ = Math.min(_zv.e_.y_, customBounds_.getMaxY()); - // } - // } - - // Icon - /** - * Dessin de l'icone. - * - * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il - * est ignore ici. - * @param _g le graphics sur lequel dessiner l'icone - * @param _x lieu cible de l'icone (x) - * @param _y lieu cible de l'icone (y) - */ - public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) { - super.paintIcon(_c, _g, _x, _y); - Color fg = getForeground(); - if (isAttenue()) { - fg = attenueCouleur(fg); - } - _g.setColor(fg); - final int w = getIconWidth(); - final int h = getIconHeight(); - for (int i = 6; i < w - 2; i += 8) { - _g.drawLine(_x + i, _y + 1, _x + i, _y + h - 1); - } - for (int j = 6; j < h - 2; j += 8) { - _g.drawLine(_x + 1, _y + j, _x + w - 1, _y + j); - } - } - - public void paintSelection(final Graphics2D _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran, - final GrBoite _clipReel) {} - - public CtuluListSelection selection(final GrPoint _pt, final int _tolerance) { - return null; - } - - public CtuluListSelection selection(final LinearRing _poly, final int _mode) { - return null; - } - - public LineString getSelectedLine() { - return null; - } - - /** - * Affectation de la propriete <I>boite</I>. - */ - // public void setBoite(final GrBoite _v) { - // if (boite_ != _v) { - // final GrBoite vp = boite_; - // boite_ = _v; - // firePropertyChange("boite", vp, _v); - // } - // } - public void setVisible(final boolean _v) { - // if (_v && boite_ == null) { - // boite_ = vue_.getAbstractCalque().getDomaine(); - // } - if (!_v) { - vue_.setUserInsets(null); - super.setVisible(false); - } else { - super.setVisible(_v); - } - firePropertyChange("grille", true, false); - - } - - public boolean isDrawGrid() { - return drawGrid_; - } - - public void setDrawGrid(final boolean _drawGrid) { - if (_drawGrid != drawGrid_) { - drawGrid_ = _drawGrid; - grilleChanged(); - } - } - - // public boolean isUseCustom() { - // return useCustom_; - // } - // - // public void setUseCustom(final boolean _useCustom) { - // if (useCustom_ != _useCustom) { - // useCustom_ = _useCustom; - // repaint(); - // } - // } - // - // public Envelope getCustomBounds() { - // return customBounds_ == null ? null : new Envelope(customBounds_); - // } - // - // public void setCustomBounds(final Envelope _customBounds) { - // if (customBounds_ != _customBounds) { - // customBounds_ = _customBounds; - // repaint(); - // } - // } - - public boolean isDrawX() { - return drawX_; - } - - public void setDrawX(final boolean _drawX) { - if (drawX_ != _drawX) { - drawX_ = _drawX; - grilleChanged(); - } - } - - public boolean isDrawY() { - return drawY_; - } - - public void setDrawY(final boolean _drawY) { - if (drawY_ != _drawY) { - drawY_ = _drawY; - grilleChanged(); - } - } - - public void setDrawSousGrilleY(final boolean _drawY) { - if (drawSousGrilleY_ != _drawY) { - drawSousGrilleY_ = _drawY; - grilleChanged(); - } - } - - public void setDrawSousGrilleX(final boolean _drawX) { - if (drawSousGrilleX_ != _drawX) { - drawSousGrilleX_ = _drawX; - grilleChanged(); - } - } - - private void grilleChanged() { - repaint(); - firePropertyChange("grille", true, false); - } - - @Override - public EbliUIProperties saveUIProperties() { - final EbliUIProperties res = super.saveUIProperties(); - res.put("graduation.x.nb", getNbXGraduations()); - res.put("graduation.y.nb", getNbYGraduations()); - res.put("graduation.x.visible", isDrawX()); - res.put("graduation.y.visible", isDrawY()); - res.put("grille.visible", isDrawGrid()); - return res; - } - - @Override - public void initFrom(EbliUIProperties _p) { - super.initFrom(_p); - if (_p.isDefined("graduation.x.nb")) { - setNbGraduationX(_p.getInteger("graduation.x.nb")); - } - if (_p.isDefined("graduation.y.nb")) { - setNbGraduationX(_p.getInteger("graduation.y.nb")); - } - if (_p.isDefined("graduation.y.visible")) { - setDrawY(_p.getBoolean("graduation.y.visible")); - } - if (_p.isDefined("graduation.x.visible")) { - setDrawX(_p.getBoolean("graduation.x.visible")); - } - if (_p.isDefined("grille.visible")) { - setDrawGrid(_p.getBoolean("grille.visible")); - } - } - - public void setNbGraduationX(final int _nbGraduationX) { - if (_nbGraduationX > 0 /* && nbGraduationX_ != _nbGraduationX */) { - nbGraduationX_ = _nbGraduationX; - modeLongueurPasX_ = false; - grilleChanged(); - } - } - - public void setLenghtStepsX(final double _lenghtSteps) { - GrBoite boite = vue_.getViewBoite(); - if (_lenghtSteps == 0) return; - double max = boite.getMaxX(); - int nbGraduationsX = (int) (max / _lenghtSteps); - if (nbGraduationsX + 1 > 0 /* && nbGraduationsX+1!=nbGraduationX_ */) { - nbGraduationX_ = nbGraduationsX; - valeurPasX_ = _lenghtSteps; - modeLongueurPasX_ = true; - grilleChanged(); - } - - } - - public void setLenghtStepsY(final double _lenghtSteps) { - GrBoite boite = vue_.getViewBoite(); - if (_lenghtSteps == 0) return; - int nbGraduationsY = (int) (boite.getMaxY() / _lenghtSteps); - if (nbGraduationsY > 0 /* && nbGraduationsY!=nbGraduationY_ */) { - nbGraduationY_ = nbGraduationsY; - valeurPasY_ = _lenghtSteps; - modeLongueurPasY_ = true; - grilleChanged(); - } - - } - - public void setNbGraduationY(final int _nbGraduationY) { - if (_nbGraduationY > 0 /* && nbGraduationY_ != _nbGraduationY */) { - nbGraduationY_ = _nbGraduationY; - modeLongueurPasY_ = false; - grilleChanged(); - } - } - - // public void setLenghtStepsSousGradX(final double _lenghtSteps) { - // GrBoite boite = vue_.getViewBoite(); - // if (_lenghtSteps == 0) return; - // int nbSousGraduationsX = (int) (boite.getMaxY() / _lenghtSteps); - // if (nbSousGraduationsX > 0) { - // nbSousGraduationX_ = nbSousGraduationsX; - // valeurPasSousGradX_ = _lenghtSteps; - // modeLongueurPasSousGradX_ = true; - // grilleChanged(); - // } - // - // } - - public void setNbGraduationSousGradX(final int _nbGraduation) { - if (_nbGraduation + 1 > 0) { - nbSousGraduationX_ = _nbGraduation + 1; - // modeLongueurPasSousGradX_ = false; - grilleChanged(); - } - } - - // public void setLenghtStepsSousGradY(final double _lenghtSteps) { - // GrBoite boite = vue_.getViewBoite(); - // if (_lenghtSteps == 0) return; - // int nbSousGraduationsY = (int) (boite.getMaxY() / _lenghtSteps); - // if (nbSousGraduationsY > 0) { - // nbSousGraduationY_ = nbSousGraduationsY; - // valeurPasSousGradY_ = _lenghtSteps; - // modeLongueurPasSousGradY_ = true; - // grilleChanged(); - // } - // - // } - - public void setNbGraduationSousGradY(final int _nbGraduation) { - if (_nbGraduation + 1 > 0) { - nbSousGraduationY_ = _nbGraduation + 1; - // modeLongueurPasSousGradY_ = false; - grilleChanged(); - } - } - - public boolean isModeLongueurPasX() { - return modeLongueurPasX_; - } - - public void setModeLongueurPasX(boolean _modeLongueurPasX) { - this.modeLongueurPasX_ = _modeLongueurPasX; - } - - public double getValeurPasX_() { - return valeurPasX_; - } - - public void setValeurPasX_(int valeurPasX_) { - this.valeurPasX_ = valeurPasX_; - } - - public double getValeurPasY_() { - return valeurPasY_; - } - - public void setValeurPasY_(int valeurPasY_) { - this.valeurPasY_ = valeurPasY_; - } - - // public double getValeurPasSousGradX_() { - // return valeurPasSousGradX_; - // } - // - // public void setValeurPasSousGradX_(int valeurPasSousGradX_) { - // this.valeurPasSousGradX_ = valeurPasSousGradX_; - // } - - // public double getValeurPasSousGradY_() { - // return valeurPasSousGradY_; - // } - // - // public void setValeurPasSousGradY_(int valeurPasSousGradY_) { - // this.valeurPasSousGradY_ = valeurPasSousGradY_; - // } - - public TraceLigneModel getTraceGraduations_() { - return traceGraduations_; - } - - public void modifieTraceGraduations(TraceLigneModel _traceGraduations) { - this.traceGraduations_.updateData(_traceGraduations); - grilleChanged(); - } - - public TraceLigneModel getTraceSousGraduations_() { - return traceSousGraduations_; - } - - public void modifieSousGraduations(TraceLigneModel _traceSousGraduations) { - this.traceSousGraduations_.updateData(_traceSousGraduations); - grilleChanged(); - } - -} +/* + * @file BCalqueGrille.java + * @creation 1998-09-03 + * @modification $Date: 2008-02-20 10:14:40 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque; + +import gnu.trove.TDoubleArrayList; +import gnu.trove.TIntArrayList; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.util.ArrayList; +import java.util.List; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.CtuluListSelection; +import org.fudaa.ctulu.iterator.NumberIterator; +import org.fudaa.ctulu.iterator.TickIterator; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.commun.EbliUIProperties; +import org.fudaa.ebli.geometrie.GrBoite; +import org.fudaa.ebli.geometrie.GrMorphisme; +import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.trace.TraceLigne; +import org.fudaa.ebli.trace.TraceLigneModel; + +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.LinearRing; + +/** + * Un calque d'affichage d'une grille. + * + * @version $Revision: 1.11.6.1 $ $Date: 2008-02-20 10:14:40 $ by $Author: bmarchan $ + * @author Guillaume Desnoix + */ +public class ZCalqueGrille extends ZCalqueAffichageDonnees { + /** + * caratere visible de l'axe x + */ + public static final String AXIS_X_VISIBLE = "axis.x.visible"; + /** + * caratere visible de l'axe y + */ + public static final String AXIS_Y_VISIBLE = "axis.y.visible"; + /** + * propriete pour la taille des graduations sur l'axe x + */ + public static final String GRADUATION_X_LENGTH = "graduation.x.length"; + /** + * propriete pour le calcul automatique le nombre de graduation sur l'axe x + */ + public static final String GRADUATION_X_MODE_AUTO = "graduation.x.auto"; + /** + * propriete pour le nombre de graduation sur l'axe x + */ + public static final String GRADUATION_X_MODE_LENGTH = "graduation.x.mode.length"; + /** + * propriete pour le nombre de graduation sur l'axe x + */ + public static final String GRADUATION_X_NB = "graduation.x.nb"; + /** + * propriete pour la taille des graduations sur l'axe y + */ + public static final String GRADUATION_Y_LENGTH = "graduation.y.length"; + /** + * propriete pour le nombre de graduation sur l'axe y + */ + public static final String GRADUATION_Y_MODE_AUTO = "graduation.y.auto"; + /** + * propriete pour le nombre de graduation sur l'axe y + */ + public static final String GRADUATION_Y_MODE_LENGTH = "graduation.y.mode.length"; + /** + * propriete pour le nombre de graduation sur l'axe y + */ + public static final String GRADUATION_Y_NB = "graduation.y.nb"; + + /** + * caratere visible de la grille + */ + public static final String GRID_VISIBLE = "grille.visible"; + /** + * propriete pour le nombre de graduation mineure sur l'axe x + */ + public static final String MINOR_GRADUATION_X_NB = "minor.graduation.x.nb"; + /** + * visibilite des graduations mineures de l'axe x + */ + public static final String MINOR_GRADUATION_X_VISIBLE = "minor.graduation.x.visible"; + /** + * propriete pour le nombre de graduation mineure sur l'axe y + */ + public static final String MINOR_GRADUATION_Y_NB = "minor.graduation.y.nb"; + /** + * visibilite des graduations mineures de l'axe y + */ + public static final String MINOR_GRADUATION_Y_VISIBLE = "minor.graduation.y.visible"; + private TraceLigneModel traceSousGraduations_; + private boolean xMinorDraw_ = false; + boolean yMinorDraw_ = false; + private boolean yModeLongueur_ = false; + /** + * Indique si on utilise par taille de pas ou par nombre de graduations + */ + boolean xModeLongueur_ = false; + boolean gridDraw_; + final TraceLigne tl_ = new TraceLigne(); + + final GrPoint tmp_ = new GrPoint(); + final BVueCalque vue_; + + boolean xDraw_ = true; + boolean yDraw_ = true; + /** + * Valeur du pas que devront suivrent tous les traits de la grilles si on en mode taille pas. + */ + double xLength_; + double yLength_; + + // -- sous graduations --// + int xMinorGraduationNb_ = 3; + int yMinorGraduationNb_ = 3; + + /** + * Indique la facon de calculer les graduations. pour l'axe des x. + */ + boolean xModeAuto_ = false; + /** + * Indique la facon de calculer les graduations. pour l'axe des y. + */ + boolean yModeAuto_ = false; + + int xNbGraduation_ = 10; + int yNbGraduation_ = 10; + + public ZCalqueGrille(final BVueCalque _vue) { + super(); + vue_ = _vue; + setDestructible(false); + setName("cqGrille"); + setTitle(EbliLib.getS("Grille")); + setForeground(Color.BLACK); + traceSousGraduations_ = new TraceLigneModel(TraceLigne.TIRETE, 0.5F, Color.GRAY); + ligneModel_ = new TraceLigneModel(TraceLigne.LISSE, 1F, Color.BLACK); + } + + // boolean modeLongueurPasSousGradX_ = false; + // boolean modeLongueurPasSousGradY_ = false; + // + // double valeurPasSousGradX_; + // double valeurPasSousGradY_; + + // private Color couleurSousGraduation_ = Color.blue; + + private void computeXValues(final GrBoite _zv, final Graphics2D _g, final TDoubleArrayList _xValue, + final TIntArrayList _xStrWidth, final List _xString) { + + final Font font = getFont(); + if (font != null) { + _g.setFont(font); + } + final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); + TickIterator it = createXTickIterator(_zv); + if (it == null) { + return; + } + // _it= + while (it.hasNext()) { + final double x = it.currentValue(); + _xValue.add(x); + + if (font == null || !it.isMajorTick()) { + _xStrWidth.add(0); + _xString.add(CtuluLibString.EMPTY_STRING); + } else { + final String currentLabel = it.currentLabel(); + _xStrWidth.add(fm.stringWidth(currentLabel)); + _xString.add(currentLabel); + } + it.next(); + } + } + + private double computeYValues(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _yValue, + final TIntArrayList _yStrWidth, final List _yString) { + final Font font = getFont(); + if (font != null) { + _g.setFont(font); + } + final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); + double yMax = 0; + TickIterator it = createYIterator(_zv); + + if (it == null) { + return 0; + } + + while (it.hasNext()) { + + final double x = it.currentValue(); + _yValue.add(x); + if (font == null || !it.isMajorTick()) { + _yStrWidth.add(0); + _yString.add(CtuluLibString.EMPTY_STRING); + } else { + final String currentLabel = it.currentLabel(); + final double stringWidth = fm == null ? 0 : fm.getStringBounds(currentLabel, _g).getWidth(); + if (stringWidth > yMax) { + yMax = stringWidth; + } + _yStrWidth.add((int) stringWidth); + _yString.add(currentLabel); + } + it.next(); + } + return yMax; + } + + private TickIterator createXTickIterator(final GrBoite _zv) { + NumberIterator it = new NumberIterator(); + it.setMaxFractionDigits(2); + if (!xModeAuto_) { + if (xModeLongueur_) { + it.initExactFromDist(_zv.getMinX(), _zv.getMaxX(), this.xLength_, xMinorGraduationNb_ + 1); + } else { + it.initExact(_zv.getMinX(), _zv.getMaxX(), getNbXGraduations(), xMinorGraduationNb_ + 1); + } + } else { + it.init(_zv.getMinX(), _zv.getMaxX(), getNbXGraduations()); + } + return it; + } + + private TickIterator createYIterator(final GrBoite _zv) { + NumberIterator it = new NumberIterator(); + it.setMaxFractionDigits(2); + // -- mode manuel --// + if (!yModeAuto_) { + if (isYModeLongueur()) { + it.initExactFromDist(_zv.getMinY(), _zv.getMaxY(), this.yLength_, yMinorGraduationNb_ + 1); + } else { + it.initExact(_zv.getMinY(), _zv.getMaxY(), getNbYGraduations(), yMinorGraduationNb_ + 1); + } + } else { + it.init(_zv.getMinY(), _zv.getMaxY(), getNbYGraduations()); + } + return it; + } + + private void drawXAxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue, + final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, final double _maxXForAxe) { + int minXDraw = _absyAxe; + int maxXDraw = (int) _maxXForAxe; + + tl_.setCouleur(getDrawColor()); + tl_.setTypeTrait(TraceLigne.LISSE); + tl_.dessineTrait(_g, minXDraw, _ordxAxe, maxXDraw, _ordxAxe); + } + + private void drawYaxe(final Graphics2D _g, final GrBoite _zv, final TDoubleArrayList _xValue, + final TDoubleArrayList _yValue, final GrMorphisme _versEcran, final int _absyAxe, final int _ordxAxe, + final double _minYForAxe) { + int minYDraw = _ordxAxe; + int maxYDraw = (int) _minYForAxe; + + tl_.setCouleur(getDrawColor()); + tl_.setTypeTrait(TraceLigne.LISSE); + tl_.dessineTrait(_g, _absyAxe, minYDraw, _absyAxe, maxYDraw); + } + + private void fillYZone(final Graphics2D _g, final GrBoite _targetBoite, final int _absyAxe, + final GrBoite _ecranBoite) { + if (_ecranBoite.getMinX() < _absyAxe) { + _g.setColor(vue_.getBackground()); + _g.fillRect(0, 0, _absyAxe, (int) _targetBoite.getMaxY()); + } + } + + private Color getDrawColor() { + Color fg = ligneModel_.getCouleur(); + if (isAttenue()) { + fg = attenueCouleur(fg); + } + return fg; + } + + private void grilleChanged() { + repaint(); + firePropertyChange("grille", true, false); + } + + private void grilleChanged(String _prop, boolean newValue) { + repaint(); + firePropertyChange(_prop, !newValue, newValue); + } + + private void grilleChanged(String _prop, double oldValue, double newValue) { + repaint(); + firePropertyChange(_prop, oldValue, newValue); + } + + private void grilleChanged(String _prop, int oldValue, int newValue) { + repaint(); + firePropertyChange(_prop, oldValue, newValue); + } + + void fillXZone(final Graphics2D _g, final GrBoite _targetBoite, final int _absyAxe, final int _ordxAxe, + final GrBoite _ecranBoite) { + if (_ecranBoite.getMaxX() > _ordxAxe) { + _g.setColor(vue_.getBackground()); + _g.fillRect(_absyAxe, _ordxAxe, (int) _targetBoite.getMaxX() - _absyAxe, (int) _targetBoite.getMaxY() + - _ordxAxe); + } + } + + protected void drawYGraduations(final Graphics2D _g, final TDoubleArrayList _yValue, + final TIntArrayList _yStrWidth, final List _yString, final GrMorphisme _versEcran, final int _marge, + final int _absyAxe, final int _ordxAxe, final GrBoite _ecranBoite, final double _maxXForAxe) { + final int nb = _yString.size(); + final int tiret = getTiretLength(); + final Font font = getFont(); + final FontMetrics fm = font == null ? null : _g.getFontMetrics(font); + final int ascent = fm == null ? 0 : (fm.getAscent() - fm.getDescent()); + int idxStr = -1; + final Color fg = getDrawColor(); + tl_.getModel().updateData(ligneModel_); + for (int i = 0; i < nb; i++) { + tmp_.y_ = _yValue.getQuick(i); + tmp_.autoApplique(_versEcran); + if (tmp_.y_ > _ordxAxe) { + continue; + } + if (tmp_.y_ < _ecranBoite.getMinY()) { + break; + } + final int w = _yStrWidth.getQuick(i); + boolean drawGrad = w > 0 || isYMinorDraw(); + if (w <= 0) { + tl_.getModel().updateData(traceSousGraduations_); + } else { + tl_.getModel().updateData(ligneModel_); + } + if (drawGrad) { + int oldType = tl_.getTypeTrait(); + tl_.setTypeTrait(TraceLigne.LISSE); + tl_.dessineTrait(_g, _absyAxe, tmp_.y_, _absyAxe - (w > 0 ? tiret : tiret - 2), tmp_.y_); + tl_.setTypeTrait(oldType); + } + if (w > 0 && (tmp_.y_ < idxStr || idxStr < 0)) { + _g.setColor(fg); + _g.drawString((String) _yString.get(i), (_absyAxe - w - tiret - _marge), (int) (tmp_.y_ + ascent / 2D)); + idxStr = (int) (tmp_.y_ - ascent / 2D - 3D); + } + + if (gridDraw_ && drawGrad) { + tl_.dessineTrait(_g, _absyAxe, tmp_.y_, _maxXForAxe, tmp_.y_); + } + } + } + + private void drawXGraduations(final Graphics2D _g, final GrBoite _targetBoite, final TDoubleArrayList _xValue, + final TIntArrayList _xStrWidth, final List _xString, final int _absyAxe, final int _ordxAxe, + final GrBoite _ecranBoite, final double _minYForAxe, final int _ordXString) { + + int idxStr = -1; + final GrMorphisme versEcran = getVersEcran(); + final int tiret = getTiretLength(); + // tl_.getModel().updateData(ligneModel_); + // final TraceLigne gtlsousGrad = new TraceLigne(traceSousGraduations_.buildCopy()); + + final int nb = _xString.size(); + final Color fg = getDrawColor(); + for (int i = 0; i < nb; i++) { + tmp_.x_ = _xValue.getQuick(i); + tmp_.autoApplique(versEcran); + if (tmp_.x_ < _absyAxe) { + continue; + } + if (tmp_.x_ > _ecranBoite.getMaxX()) { + break; + } + + final int w = _xStrWidth.getQuick(i); + + if (w <= 0) { + tl_.getModel().updateData(traceSousGraduations_); + } else { + tl_.getModel().updateData(ligneModel_); + } + boolean drawGrad = w > 0 || isXMinorDraw(); + if (drawGrad) { + int oldType = tl_.getTypeTrait(); + tl_.setTypeTrait(TraceLigne.LISSE); + tl_.dessineTrait(_g, tmp_.x_, _ordxAxe, tmp_.x_, _ordxAxe + (w > 0 ? tiret : tiret - 2)); + tl_.setTypeTrait(oldType); + } + if (w > 0) { + final int start = (int) (tmp_.x_ - w / 2D); + if (start > idxStr + 1 && start + w < _targetBoite.getMaxX()) { + _g.setColor(fg); + _g.drawString((String) _xString.get(i), start, _ordXString); + idxStr = start + w; + } + } + if (gridDraw_ && drawGrad) { + tl_.dessineTrait(_g, tmp_.x_, _ordxAxe, tmp_.x_, _minYForAxe); + } + + } + } + + /** + * @return the drawSousGrilleY_ + */ + protected boolean isYMinorDraw() { + return yMinorDraw_; + } + + public void changeZoom(double minx, double miny, double maxx, double maxy) { + vue_.changeViewBoite(this, new GrBoite(new GrPoint(minx, miny, 0), new GrPoint(maxx, maxy, 0)), false); + } + + /** + * Accesseur de la propriete <I>boite</I>. Elle donne la position, la taille, le domaine de la grille. + */ + // public GrBoite getBoite() { + // return boite_; + // } + public GrBoite getDomaine() { + return null; + // GrBoite r = null; + // if (isVisible()) { + // GrBoite d = null; + // d = super.getDomaine(); + // r = getBoite(); + // if (d != null) { + // if (r == null) { + // r = d; + // } else { + // r = r.union(d); + // } + // } + // } + // return r; + } + + public GrBoite getDomaineOnSelected() { + return getDomaine(); + } + + /** + * + */ + @Override + public TraceLigneModel getLineModel(int _idx) { + return _idx == 0 ? super.ligneModel_ : traceSousGraduations_; + } + + public int getNbSet() { + return 2; + } + + public int getNbXGraduations() { + return xNbGraduation_; + } + + public int getNbYGraduations() { + return yNbGraduation_; + } + + public Object getProperty(String _name) { + if (GRID_VISIBLE.equals(_name)) { + return Boolean.valueOf(gridDraw_); + } + if (AXIS_X_VISIBLE.equals(_name)) { + return Boolean.valueOf(xDraw_); + } + if (AXIS_Y_VISIBLE.equals(_name)) { + return Boolean.valueOf(yDraw_); + } + if (GRADUATION_X_MODE_AUTO.equals(_name)) { + return Boolean.valueOf(xModeAuto_); + } + if (GRADUATION_Y_MODE_AUTO.equals(_name)) { + return Boolean.valueOf(yModeAuto_); + } + if (MINOR_GRADUATION_Y_VISIBLE.equals(_name)) { + return Boolean.valueOf(yMinorDraw_); + } + if (MINOR_GRADUATION_X_VISIBLE.equals(_name)) { + return Boolean.valueOf(xMinorDraw_); + } + if (GRADUATION_X_MODE_LENGTH.equals(_name)) { + return Boolean.valueOf(xModeLongueur_); + } + if (GRADUATION_Y_MODE_LENGTH.equals(_name)) { + return Boolean.valueOf(yModeLongueur_); + } + if (GRADUATION_X_LENGTH.equals(_name)) { + return Double.valueOf(xLength_); + } + if (GRADUATION_Y_LENGTH.equals(_name)) { + return Double.valueOf(yLength_); + } + if (GRADUATION_X_NB.equals(_name)) { + return Integer.valueOf(xNbGraduation_); + } + if (GRADUATION_Y_NB.equals(_name)) { + return Integer.valueOf(yNbGraduation_); + } + if (MINOR_GRADUATION_X_NB.equals(_name)) { + return Integer.valueOf(xMinorGraduationNb_); + } + if (MINOR_GRADUATION_Y_NB.equals(_name)) { + return Integer.valueOf(yMinorGraduationNb_); + } + return null; + } + + public LineString getSelectedLine() { + return null; + } + + /** + * + */ + @Override + public String getSetTitle(int _idx) { + return EbliLib.getS(_idx == 0 ? "Graduations principales" : "Graduations mineures"); + } + + public int getTiretLength() { + return 3; + } + + public double getValeurPasX() { + return xLength_; + } + + public double getValeurPasY() { + return yLength_; + } + + public int getXMinorGraduationNb() { + return xMinorGraduationNb_; + } + + public int getYMinorGraduationNb() { + return yMinorGraduationNb_; + } + + @Override + public void initFrom(EbliUIProperties _p) { + super.initFrom(_p); + if (_p.isDefined(GRADUATION_X_NB)) { + setNbGraduationX(_p.getInteger(GRADUATION_X_NB)); + } + if (_p.isDefined(GRADUATION_Y_NB)) { + setNbGraduationY(_p.getInteger(GRADUATION_Y_NB)); + } + if (_p.isDefined(AXIS_Y_VISIBLE)) { + setDrawY(_p.getBoolean(AXIS_Y_VISIBLE)); + } + if (_p.isDefined(AXIS_X_VISIBLE)) { + setDrawX(_p.getBoolean(AXIS_X_VISIBLE)); + } + if (_p.isDefined(GRID_VISIBLE)) { + setDrawGrid(_p.getBoolean(GRID_VISIBLE)); + } + if (_p.isDefined(GRADUATION_X_MODE_AUTO)) { + setGraduationXModeAuto(_p.getBoolean(GRADUATION_X_MODE_AUTO)); + } + if (_p.isDefined(GRADUATION_Y_MODE_AUTO)) { + setGraduationYModeAuto(_p.getBoolean(GRADUATION_Y_MODE_AUTO)); + } + if (_p.isDefined(GRADUATION_X_MODE_LENGTH)) { + setModeLongueurX(_p.getBoolean(GRADUATION_X_MODE_LENGTH)); + } + if (_p.isDefined(GRADUATION_Y_MODE_LENGTH)) { + setModeLongueurY(_p.getBoolean(GRADUATION_Y_MODE_LENGTH)); + } + if (_p.isDefined(GRADUATION_X_LENGTH)) { + setXLength(_p.getDouble(GRADUATION_X_LENGTH)); + } + if (_p.isDefined(GRADUATION_Y_LENGTH)) { + setYLength(_p.getDouble(GRADUATION_Y_LENGTH)); + } + if (_p.isDefined(MINOR_GRADUATION_X_VISIBLE)) { + setXMinorDraw(_p.getBoolean(MINOR_GRADUATION_X_VISIBLE)); + } + if (_p.isDefined(MINOR_GRADUATION_Y_VISIBLE)) { + setYMinorDraw(_p.getBoolean(MINOR_GRADUATION_Y_VISIBLE)); + } + if (_p.isDefined(MINOR_GRADUATION_X_NB)) { + setXMinorGraduationNb(_p.getInteger(MINOR_GRADUATION_X_NB)); + } + if (_p.isDefined(MINOR_GRADUATION_Y_NB)) { + setYMinorGraduationNb(_p.getInteger(MINOR_GRADUATION_Y_NB)); + } + } + + public boolean isCouleurModifiable() { + return true; + } + + public boolean isDrawGrid() { + return gridDraw_; + } + + public boolean isDrawX() { + return xDraw_; + } + + public boolean isDrawY() { + return yDraw_; + } + + public boolean isModeAutomatiqueX() { + return xModeAuto_; + } + + public boolean isModeAutomatiqueY() { + return yModeAuto_; + } + + public boolean isModeLongueurPasX() { + return xModeLongueur_; + } + + /** + * @return the xMinorDraw_ + */ + public boolean isXMinorDraw() { + return xMinorDraw_; + } + + // public boolean isUseCustom() { + // return useCustom_... [truncated message content] |
From: <bma...@us...> - 2009-02-23 16:32:41
|
Revision: 4490 http://fudaa.svn.sourceforge.net/fudaa/?rev=4490&view=rev Author: bmarchan Date: 2009-02-23 16:32:31 +0000 (Mon, 23 Feb 2009) Log Message: ----------- Implementation de la recherche sur des atomiques. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesMulti.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindableItem.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierElement.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierFrNode.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierNode.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrAreteExprSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrExpressionSupplierForData.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrPostExprDataSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrPostExprFlecheSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/reflux/TrRefluxBcNodeLayer.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/rubar/TrRubarLimniModel.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindableItem.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierElement.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierFrNode.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvExpressionSupplierNode.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrAreteExprSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrExpressionSupplierForData.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrPostExprDataSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrPostExprFlecheSupplier.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/reflux/TrRefluxBcNodeLayer.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/rubar/TrRubarLimniModel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -11,6 +11,7 @@ import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ebli.calque.find.CalqueFindActionDefault; import org.fudaa.ebli.calque.find.CalqueFindExpression; +import org.fudaa.ebli.commun.EbliListeSelectionMultiInterface; import org.fudaa.ebli.commun.EbliSelectionState; import org.fudaa.ebli.find.EbliFindActionInterface; import org.fudaa.ebli.find.EbliFindExpressionContainerInterface; @@ -272,6 +273,10 @@ return r; } + public boolean changeSelection(final EbliListeSelectionMultiInterface _selection, int _action) { + return changeSelection(_selection.getIdxSelection(),_action); + } + /** * Selectionne l'objet suivant de l'objet en cours. * @return true si la selection a \xE9t\xE9 modifi\xE9e. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -127,6 +127,14 @@ boolean changeSelection(LinearRing _p, int _action, int _mode); boolean changeSelection(LinearRing[] _p, int _action, int _mode); + + /** + * Change la selection a partir d'une liste de selection. + * @param _selection La liste de selection. + * @param _action voir les action de ZCalqueSelectionInteraction + * @return true si la selection a \xE9t\xE9 modifi\xE9e. + */ + boolean changeSelection(EbliListeSelectionMultiInterface _selection, int _action); /** * Retourne les indices de selection des sous objets selectionn\xE9s pour le point donn\xE9, sous la forme d'une liste de selection. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesMulti.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesMulti.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesMulti.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -68,7 +68,7 @@ } } - protected boolean changeSelection(final EbliListeSelectionMulti _s, final int _action) { + public boolean changeSelection(final EbliListeSelectionMultiInterface _s, final int _action) { // Si la selection de modif est nulle, seule l'action de remplacement // est concernee. if (selection_ == null) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -7,6 +7,7 @@ */ package org.fudaa.ebli.calque; +import gnu.trove.TDoubleArrayList; import gnu.trove.TIntArrayList; import gnu.trove.TIntObjectIterator; import gnu.trove.TObjectIntHashMap; @@ -16,6 +17,11 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; import org.fudaa.ctulu.CtuluExpr; import org.fudaa.ctulu.CtuluLib; @@ -28,6 +34,10 @@ import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.ebli.calque.edition.ZModeleEditable; +import org.fudaa.ebli.calque.find.CalqueFindActionAtomic; +import org.fudaa.ebli.calque.find.CalqueFindActionDefault; +import org.fudaa.ebli.calque.find.CalqueFindComponentPolygone; import org.fudaa.ebli.calque.find.CalqueFindExpression; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.commun.EbliListeSelectionMulti; @@ -35,7 +45,10 @@ import org.fudaa.ebli.commun.EbliSelectionMode; import org.fudaa.ebli.commun.EbliSelectionState; import org.fudaa.ebli.commun.EbliUIProperties; +import org.fudaa.ebli.find.EbliFindActionInterface; import org.fudaa.ebli.find.EbliFindExpressionContainerInterface; +import org.fudaa.ebli.find.EbliFindExpressionDefault; +import org.fudaa.ebli.find.EbliFindable; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.geometrie.GrPoint; @@ -70,50 +83,114 @@ * @author Fred Deniger * @version $Id$ */ - private class VariableNonAtomicFindExpression extends CalqueFindExpression { + private class VariableFindExpression extends CalqueFindExpression { - TObjectIntHashMap varAtt_; + Map<Variable,Integer> vars_; + Variable varX_; + Variable varY_; + List<Double> ord_=new ArrayList<Double>(50); - public VariableNonAtomicFindExpression() { + public VariableFindExpression() { super(ZCalqueGeometry.this.modeleDonnees()); } public void initialiseExpr(final CtuluExpr _expr) { + if (isAtomicMode_) { + initialiseExprWhenAtomic(_expr); + return; + } + super.initialiseExpr(_expr); - final GISZoneCollection coll = ((ZModeleGeometry) super.data_).getGeomData(); + final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); final int nb = coll.getNbAttributes(); if (nb > 0) { - if (varAtt_ == null) { - varAtt_ = new TObjectIntHashMap(nb); + if (vars_ == null) { + vars_ = new HashMap<Variable,Integer>(nb); } else { - varAtt_.clear(); + vars_.clear(); } for (int i = 0; i < nb; i++) { final GISAttributeInterface att = coll.getAttribute(i); - if (!att.isAtomicValue() && Number.class.isAssignableFrom(att.getDataClass())) { - varAtt_.put(_expr.addVar(att.getName(), att.getLongName()), i); + if (!att.isAtomicValue() /*&& Number.class.isAssignableFrom(att.getDataClass())*/) { + vars_.put(_expr.addVar(att.getName(), att.getLongName()), i); } } } - } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - super.majVariable(_idx, _varToUpdate); - if (varAtt_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { - final GISZoneCollection coll = ((ZModeleGeometry) super.data_).getGeomData(); + public void majVariable(final int _idx, final Variable[] _varToUpdate, final Object[] _values) { + if (isAtomicMode_) { + majVariableWhenAtomic(_idx, _varToUpdate, _values); + return; + } + + super.majVariable(_idx, _varToUpdate, _values); + if (vars_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { + final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); for (int i = _varToUpdate.length - 1; i >= 0; i--) { - if (varAtt_.containsKey(_varToUpdate[i])) { - _varToUpdate[i].setValue(CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) - .getObjectValueAt(_idx)).doubleValue())); + if (vars_.containsKey(_varToUpdate[i])) { + _values[i]=coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx); } } } } + public void initialiseExprWhenAtomic(CtuluExpr _expr) { + _expr.initVar(); + _expr.getParser().getFunctionTable().remove("str"); + + + // Indice, ajout\xE9 par defaut. + _expr.removeVar("i"); + + final GISZoneCollection coll = modeleDonnees().getGeomData(); + final int nb = coll.getNbAttributes(); + if (nb > 0) { + if (vars_ == null) { + vars_ = new HashMap<Variable,Integer>(nb); + } else { + vars_.clear(); + } + for (int i = 0; i < nb; i++) { + final GISAttributeInterface att = coll.getAttribute(i); + if (att.isAtomicValue() /*&& Number.class.isAssignableFrom(att.getDataClass())*/) { + vars_.put(_expr.addVar(att.getName(), att.getLongName()),i); + } + } + } + + varX_=_expr.addVar("x","L'abscisse des sommets"); + varY_=_expr.addVar("y","L'ordonn\xE9e des sommets"); + } + + public void majVariableWhenAtomic(int _idx, Variable[] _varToUpdate, Object[] _values) { + + final GISZoneCollection coll = modeleDonnees().getGeomData(); + int ivar; + if ((ivar=CtuluLibArray.getIndex(varX_, _varToUpdate))!=-1) + _values[ivar]=getOrdinate(_idx, 0); + if ((ivar=CtuluLibArray.getIndex(varY_, _varToUpdate))!=-1) + _values[ivar]=getOrdinate(_idx, 1); + + for (int i=0; i<_varToUpdate.length; i++) { + if ((vars_.containsKey(_varToUpdate[i]))) { + _values[i]= + ((GISAttributeModel)coll.getDataModel(vars_.get(_varToUpdate[i])).getObjectValueAt(_idx)).getObjectValues(); + } + } + } + + private Double[] getOrdinate(int _idxGeom, int _ordonnee) { + CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)modeleDonnees().getObject(_idxGeom)).getCoordinateSequence(); + ord_.clear(); + for (int i=0; i<seq.size(); i++) + ord_.add(seq.getOrdinate(i, _ordonnee)); + + return ord_.toArray(new Double[0]); + } } - /** true si edition de sommets */ + /** true si selection en mode sommets */ transient private boolean isAtomicMode_; /** Le mod\xE8le des g\xE9om\xE9tries */ protected ZModeleGeometry modele_; @@ -125,6 +202,8 @@ protected TraceSurfaceModel surfModel_; /** L'attribut utilis\xE9 pour afficher les labels */ protected GISAttributeInterface attrLabels_=null; + /** Le finder pour une recherche sur le calque */ + protected CalqueFindActionAtomic finder_; /** * Le seul constructeur, avec le mod\xE8le. @@ -138,6 +217,10 @@ surfModel_=new TraceSurfaceModel(TraceSurface.INVISIBLE, Color.BLACK,null); } +// public EbliFindActionInterface getFinder() { +// return new CalqueGISFind(this); +// } + protected EbliListeSelectionMulti creeSelectionMulti() { return new EbliListeSelectionMulti(modeleDonnees().getNombre() / 2); } @@ -225,8 +308,31 @@ } return super.changeSelection(_poly, _action, _mode); } + + public boolean changeSelection(final LinearRing[] _p, final int _action, final int _mode) { + if (!isSelectable()) return false; + + if (isAtomicMode_) { + if (_p==null) { + return false; + } + final EbliListeSelectionMulti l=new EbliListeSelectionMulti(0); + for (int i=_p.length-1; i>=0; i--) { + final EbliListeSelectionMulti li=selectionMulti(_p[i]); + l.add(li); + } + changeSelection(l, _action); + if (l.isEmpty()) { + return false; + } + return true; + } + else { + return super.changeSelection(_p, _action, _mode); + } + } - private void changeSelectionMulti(final EbliListeSelectionMulti _s, final int _action) { + public boolean changeSelectionMulti(final EbliListeSelectionMultiInterface _s, final int _action) { // Si la selection de modif est nulle, seule l'action de remplacement // est concernee. if (selectionMulti_ == null) { @@ -253,6 +359,7 @@ if (sentEvent) { fireSelectionEvent(); } + return sentEvent; } public void clearSelection() { @@ -270,12 +377,17 @@ } } - public EbliFindExpressionContainerInterface getExpressionContainer() { - if (isAtomicMode_) { - return new CalqueFindExpression(modele_); + public EbliFindActionInterface getFinder() { + // Le finder est unique pour le calque, car il ecoute les changements de propri\xE9t\xE9s du calque. + if (finder_==null) { + finder_=new CalqueFindActionAtomic(this); } - return new VariableNonAtomicFindExpression(); + return finder_; } + + public EbliFindExpressionContainerInterface getExpressionContainer() { + return new VariableFindExpression(); + } public EbliListeSelectionMultiInterface getLayerSelectionMulti() { return selectionMulti_; @@ -975,6 +1087,18 @@ return false; } + public boolean changeSelection(EbliListeSelectionMultiInterface _selection, int _action) { + if (!isSelectable()) return false; + + // Aucun controle n'est fait sur la visibilit\xE9 ou non des objets d'indices pass\xE9s. + if (isAtomicMode_) { + return changeSelectionMulti(_selection, _action); + } + else { + return super.changeSelection(_selection.getIdxSelection(),_action); + } + } + public boolean selectNext() { if (!isAtomicMode_) { return super.selectNext(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -97,14 +97,14 @@ } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - super.majVariable(_idx, _varToUpdate); + public void majVariable(final int _idx, final Variable[] _varToUpdate, final Object[] _values) { + super.majVariable(_idx, _varToUpdate, _values); if (varAtt_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { final GISZoneCollection coll = ((ZModeleEditable) super.data_).getGeomData(); for (int i = _varToUpdate.length - 1; i >= 0; i--) { if (varAtt_.containsKey(_varToUpdate[i])) { - _varToUpdate[i].setValue(CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) - .getObjectValueAt(_idx)).doubleValue())); + _values[i]=CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) + .getObjectValueAt(_idx)).doubleValue()); } } } Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -0,0 +1,46 @@ +/* + * @creation 11 sept. 06 + * @modification $Date: 2008-05-13 12:10:48 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque.action; + +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; + +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.commun.EbliActionChangeState; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.ressource.EbliResource; + +/** + * Une action de selection atomique. + * @author Bertrand Marchand + * @version $Id$ + */ +public class CalqueAtomicSelectionAction extends EbliActionChangeState implements TreeSelectionListener { + + private final transient ZScene scene_; + + /** + * Cr\xE9ation de l'action. + */ + public CalqueAtomicSelectionAction(final ZScene _scn) { + super(EbliLib.getS("S\xE9lection mode sommet"),EbliResource.EBLI.getToolIcon("draw-atom") , "MODE_ATOME"); + scene_ = _scn; + } + + public void changeAction() { + scene_.setAtomicMode(isSelected()); + } + + + /** + * Changement de calque selectionn\xE9. + */ + public void valueChanged(TreeSelectionEvent e) { + setEnabled(scene_.canUseAtomicMode()); + } +} \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueAtomicSelectionAction.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -30,7 +30,7 @@ /** * Une action pour afficher une palette d'outils GIS, reagissant au changement de calque selectionn\xE9. * @author Fred Deniger - * @version $Id: CalqueGISEditionAction.java,v 1.6.6.2 2008-05-13 12:10:47 emartin Exp $ + * @version $Id$ */ public class CalqueGISEditionAction extends EbliActionPaletteTreeModel implements PropertyChangeListener, ZSelectionListener { @@ -140,7 +140,7 @@ } protected BPalettePanelInterface buildPaletteContent() { - return new BPaletteEdition(); + return new BPaletteEdition(scene_); } /** Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueGISEditionAction.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -24,7 +24,10 @@ import javax.swing.JToggleButton; import javax.swing.border.EtchedBorder; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.action.CalqueAtomicSelectionAction; import org.fudaa.ebli.commun.BPalettePanelInterface; +import org.fudaa.ebli.commun.EbliComponentFactory; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.ressource.EbliResource; @@ -33,6 +36,7 @@ import com.memoire.bu.BuInsets; import com.memoire.bu.BuLib; import com.memoire.bu.BuPanel; +import com.memoire.bu.BuToolButton; import com.memoire.bu.BuToolToggleButton; import com.memoire.bu.BuVerticalLayout; @@ -41,7 +45,7 @@ * de l'utilisateur. Elle inclu un panneau de parametre de l'outil selectionn\xE9. * * @author Fred Deniger - * @version $Id: BPaletteEdition.java,v 1.2.6.4 2008-05-13 12:10:23 bmarchan Exp $ + * @version $Id$ */ public class BPaletteEdition extends BuPanel implements ActionListener, BuInsets, BPalettePanelInterface { @@ -65,6 +69,7 @@ BPaletteEditionClientInterface target_; BuPanel editorPanel_; + ZScene scene_; public void paletteDeactivated() { if (editorPanel_ != null) { @@ -81,9 +86,10 @@ } - public BPaletteEdition() { + public BPaletteEdition(ZScene _scene) { super(); setLayout(new BuVerticalLayout(0, true, true)); + scene_=_scene; buildGlobalsActions(this); editorPanel_ = new BuPanel(); editorPanel_.setLayout(new BuBorderLayout()); @@ -223,12 +229,10 @@ } } }; - BuToolToggleButton bt = new BuToolToggleButton(); - bt.setActionCommand(ATOM_ACTION); - bt.setIcon(EbliResource.EBLI.getToolIcon("draw-atom")); - bt.setToolTipText(EbliLib.getS("Mode <SOMMET>")); - decoreButton(bt); - _target.add(bt); + BuToolToggleButton bt; + + CalqueAtomicSelectionAction act=new CalqueAtomicSelectionAction(scene_); + _target.add(act.buildToolButton(EbliComponentFactory.INSTANCE)); /* * bt = new BuToolToggleButton(); bt.setActionCommand("MODE_EDIT"); * bt.setIcon(EbliResource.EBLI.getToolIcon("draw-edit")); decoreButton(bt); group.add(bt); _target.add(bt); @@ -437,7 +441,7 @@ } public boolean isAtomicMode() { - final BuToolToggleButton bt = (BuToolToggleButton) getGlobalButton(ATOM_ACTION); + final AbstractButton bt=(AbstractButton)getGlobalButton(ATOM_ACTION); return bt.isEnabled() && bt.isSelected(); } @@ -446,7 +450,7 @@ } public void setAtomeEnable(final boolean _enable, final boolean _isSelected) { - final BuToolToggleButton bt = (BuToolToggleButton) getGlobalButton(ATOM_ACTION); + final AbstractButton bt = (AbstractButton) getGlobalButton(ATOM_ACTION); bt.setEnabled(_enable); if (_enable) { bt.setSelected(_isSelected); Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEdition.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -39,13 +39,13 @@ /** * @author Fred Deniger - * @version $Id: ZCalquePointEditable.java,v 1.14.6.4 2008-03-26 16:46:43 bmarchan Exp $ + * @version $Id$ */ public class ZCalquePointEditable extends ZCalquePoint implements ZCalqueEditable { /** * @author Fred Deniger - * @version $Id: ZCalquePointEditable.java,v 1.14.6.4 2008-03-26 16:46:43 bmarchan Exp $ + * @version $Id$ */ private class VariableFindExpression extends CalqueFindPointExpression { @@ -75,14 +75,14 @@ } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - super.majVariable(_idx, _varToUpdate); + public void majVariable(final int _idx, final Variable[] _varToUpdate, Object[] _values) { + super.majVariable(_idx, _varToUpdate, _values); if (varAtt_ != null && !CtuluLibArray.isEmpty(_varToUpdate)) { final GISZoneCollection coll = ((ZModelePointEditable) super.data_).getGeomData(); for (int i = _varToUpdate.length - 1; i >= 0; i--) { if (varAtt_.containsKey(_varToUpdate[i])) { - _varToUpdate[i].setValue(CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) - .getObjectValueAt(_idx)).doubleValue())); + _values[i]=CtuluLib.getDouble(((Number) coll.getDataModel(varAtt_.get(_varToUpdate[i])) + .getObjectValueAt(_idx)).doubleValue()); } } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -39,7 +39,7 @@ /** * @author deniger - * @version $Id: CalqueFindActionAbstract.java,v 1.5 2007-05-04 13:49:46 deniger Exp $ + * @version $Id$ */ public abstract class CalqueFindActionAbstract extends EbliFindActionAbstract { @@ -69,7 +69,7 @@ public final EbliFindComponent createFindComponent(final EbliFindable _parent) { buildExpr(); - final CalqueFindComponentPolygone poly = new CalqueFindComponentPolygone(((ZEbliCalquesPanel) _parent).getDonneesCalque()); + final EbliFindComponent poly = buildPolygoneComponent(_parent); final EbliFindComponent first = (expr_ == null) ? buildSimpleComp() : buildExprComp(); if (layer_ instanceof ZCalqueSondeInterface) { final EbliFindComponent[] cmp = new EbliFindComponent[] { first, poly, new EbliFindComponentSonde() }; @@ -89,6 +89,11 @@ BuResource.BU.getToolIcon("rechercher"), getPolygonIcon() }); } + protected EbliFindComponent buildPolygoneComponent(final EbliFindable _parent) { + final CalqueFindComponentPolygone poly = new CalqueFindComponentPolygone(((ZEbliCalquesPanel) _parent).getDonneesCalque()); + return poly; + } + private String getPolygonStr() { return EbliLib.getS("Lignes ferm\xE9es"); } @@ -150,7 +155,7 @@ } - public final boolean find(final Object _idx, final String _action, final int _selOption, final EbliFindable _parent) { + public boolean find(final Object _idx, final String _action, final int _selOption, final EbliFindable _parent) { if (_action.startsWith(CalqueFindComponentPolygone.getID())) { return findPolygone(_idx, _action, _selOption, _parent); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindActionAbstract.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -38,14 +38,16 @@ /** * @author fred deniger - * @version $Id: CalqueFindComponentPolygone.java,v 1.2 2007-05-04 13:49:46 deniger Exp $ + * @version $Id$ */ public class CalqueFindComponentPolygone implements EbliFindComponent { private final CalqueGISTreeModel model_; TreeSelectionModel selection_; JPanel pn_; BuComboBox cb_; - + BuLabel lbOptionSel_; + BuPanel pnCb; + public CalqueFindComponentPolygone(final ZEbliCalquesPanel _panel) { this(_panel.getDonneesCalque()); } @@ -57,9 +59,14 @@ EbliLib.getS("Au moins un sommet est s\xE9lectionn\xE9"), EbliLib.getS("le barycentre est s\xE9lectionn\xE9"), }); + builComponent(); } public JComponent getComponent() { + return pn_; + } + + private void builComponent() { if (pn_ == null) { pn_ = new BuPanel(new BuBorderLayout(0, 5)); pn_.setBorder(BuBorders.EMPTY3333); @@ -69,14 +76,13 @@ sc.setPreferredHeight(80); sc.setPreferredWidth(60); pn_.add(sc, BuBorderLayout.CENTER); - final BuPanel pnCb = new BuPanel(new BuVerticalLayout(1)); - pnCb.add(new BuLabel(EbliLib.getS("Une ligne est s\xE9lectionn\xE9e si:"))); + pnCb = new BuPanel(new BuVerticalLayout(1)); + pnCb.add(lbOptionSel_=new BuLabel(EbliLib.getS("Une ligne est s\xE9lectionn\xE9e si:"))); pnCb.add(cb_); pn_.add(pnCb, BuBorderLayout.SOUTH); } - return pn_; } - + public String getSearchId() { return getID() + CtuluLibString.getString(cb_.getSelectedIndex()); } @@ -98,5 +104,14 @@ public static String getID() { return ID; } + + /** + * Pour ne rechercher que sur des atomiques. + * @param _b true : Grise certaines options. + */ + public void setFindOnAtomic(boolean _b) { + cb_.setEnabled(!_b); + lbOptionSel_.setEnabled(!_b); + } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindComponentPolygone.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -7,10 +7,13 @@ */ package org.fudaa.ebli.calque.find; +import java.util.List; + import org.nfunk.jep.Variable; import org.fudaa.ctulu.CtuluExpr; import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ebli.calque.ZModeleSegment; import org.fudaa.ebli.commun.EbliLib; @@ -21,7 +24,7 @@ * Fournisseur d'expression pour les vecteurs. * * @author Fred Deniger - * @version $Id: CalqueFindFlecheExpression.java,v 1.5 2007-04-16 16:35:08 deniger Exp $ + * @version $Id$ */ public class CalqueFindFlecheExpression extends CalqueFindExpression { @@ -58,19 +61,25 @@ norm_ = _expr.addVar("vectNorm", EbliLib.getS("La norme du vecteur")); } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - super.majVariable(_idx, _varToUpdate); + public void majVariable(final int _idx, final Variable[] _varToUpdate, Object[] _values) { + super.majVariable(_idx, _varToUpdate, _values); final GrSegment seg = new GrSegment(new GrPoint(), new GrPoint()); ((ZModeleSegment) super.data_).segment(seg, _idx, true); double x = seg.o_.x_; double y = seg.o_.y_; - x_.setValue(CtuluLib.getDouble(x)); - y_.setValue(CtuluLib.getDouble(y)); + int ivar; + if ((ivar=CtuluLibArray.getIndex(x_,_varToUpdate))!=-1) + _values[ivar]=CtuluLib.getDouble(x); + if ((ivar=CtuluLibArray.getIndex(y_,_varToUpdate))!=-1) + _values[ivar]=CtuluLib.getDouble(y); x = seg.e_.x_ - x; y = seg.e_.y_ - y; - vx_.setValue(CtuluLib.getDouble(x)); - vy_.setValue(CtuluLib.getDouble(y)); - norm_.setValue(CtuluLib.getDouble(Math.sqrt(x * x + y * y))); + if ((ivar=CtuluLibArray.getIndex(vx_,_varToUpdate))!=-1) + _values[ivar]=CtuluLib.getDouble(x); + if ((ivar=CtuluLibArray.getIndex(vy_,_varToUpdate))!=-1) + _values[ivar]=CtuluLib.getDouble(y); + if ((ivar=CtuluLibArray.getIndex(norm_,_varToUpdate))!=-1) + _values[ivar]=CtuluLib.getDouble(Math.sqrt(x * x + y * y)); } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -16,7 +16,7 @@ /** * @author Fred Deniger - * @version $Id: CalqueFindPointExpression.java,v 1.6 2007-04-16 16:35:08 deniger Exp $ + * @version $Id$ */ public class CalqueFindPointExpression extends CalqueFindExpression { @@ -42,16 +42,17 @@ } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - super.majVariable(_idx, _varToUpdate); - if (CtuluLibArray.containsObject(_varToUpdate, x_)) { - x_.setValue(CtuluLib.getDouble(((ZModelePoint) super.data_).getX(_idx))); + public void majVariable(final int _idx, final Variable[] _varToUpdate, Object[] _values) { + super.majVariable(_idx, _varToUpdate, _values); + int ivar; + if ((ivar=CtuluLibArray.getIndex(x_,_varToUpdate))!=-1) { + _values[ivar]=CtuluLib.getDouble(((ZModelePoint) super.data_).getX(_idx)); } - if (CtuluLibArray.containsObject(_varToUpdate, y_)) { - y_.setValue(CtuluLib.getDouble(((ZModelePoint) super.data_).getY(_idx))); + if ((ivar=CtuluLibArray.getIndex(y_,_varToUpdate))!=-1) { + _values[ivar]=CtuluLib.getDouble(((ZModelePoint) super.data_).getY(_idx)); } - if (CtuluLibArray.containsObject(_varToUpdate, z_)) { - z_.setValue(CtuluLib.getDouble(((ZModelePoint.ThreeDim) super.data_).getZ(_idx))); + if ((ivar=CtuluLibArray.getIndex(z_,_varToUpdate))!=-1) { + _values[ivar]=CtuluLib.getDouble(((ZModelePoint.ThreeDim) super.data_).getZ(_idx)); } } } \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/find/CalqueFindPointExpression.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMulti.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -31,7 +31,7 @@ idxListSelection_ = new TIntObjectHashMap(_n); } - public boolean intersection(final EbliListeSelectionMulti _selection) { + public boolean intersection(final EbliListeSelectionMultiInterface _selection) { if ((_selection == null) || _selection.isEmpty()) { final boolean r = !isEmpty(); clear(); @@ -43,7 +43,7 @@ it.advance(); final int idx = it.key(); final CtuluListSelection thisSelection = (CtuluListSelection) it.value(); - final CtuluListSelection selection = _selection.get(idx); + final CtuluListSelection selection = (CtuluListSelection)_selection.getSelection(idx); r |= thisSelection.intersection(selection); if (thisSelection.remove((CtuluListSelection) it.value())) { r = true; @@ -113,13 +113,13 @@ return true; } - public boolean xor(final EbliListeSelectionMulti _m) { + public boolean xor(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; } boolean r = false; - final TIntObjectIterator itxor = _m.idxListSelection_.iterator(); - for (int i = _m.idxListSelection_.size(); i-- > 0;) { + final TIntObjectIterator itxor = _m.getIterator(); + for (int i = _m.getNbListSelected(); i-- > 0;) { itxor.advance(); final int idx = itxor.key(); final CtuluListSelection e = (CtuluListSelection) itxor.value(); @@ -142,13 +142,13 @@ return r; } - public boolean add(final EbliListeSelectionMulti _m) { + public boolean add(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; } boolean r = false; - final TIntObjectIterator it = _m.idxListSelection_.iterator(); - for (int i = _m.idxListSelection_.size(); i-- > 0;) { + final TIntObjectIterator it = _m.getIterator(); + for (int i = _m.getNbListSelected(); i-- > 0;) { it.advance(); final int idx = it.key(); final CtuluListSelection e = (CtuluListSelection) it.value(); @@ -182,13 +182,13 @@ return r; } - public boolean remove(final EbliListeSelectionMulti _m) { + public boolean remove(final EbliListeSelectionMultiInterface _m) { if ((_m == null) || _m.isEmpty()) { return false; } boolean r = false; - final TIntObjectIterator it = _m.idxListSelection_.iterator(); - for (int i = _m.idxListSelection_.size(); i-- > 0;) { + final TIntObjectIterator it = _m.getIterator(); + for (int i = _m.getNbListSelected(); i-- > 0;) { it.advance(); final int idx = it.key(); final CtuluListSelection thisSelection = get(idx); @@ -203,13 +203,13 @@ return r; } - public boolean setSelection(final EbliListeSelectionMulti _m) { + public boolean setSelection(final EbliListeSelectionMultiInterface _m) { clear(); if (_m == null) { return true; } - final TIntObjectIterator it = _m.idxListSelection_.iterator(); - for (int i = _m.idxListSelection_.size(); i-- > 0;) { + final TIntObjectIterator it = _m.getIterator(); + for (int i = _m.getNbListSelected(); i-- > 0;) { it.advance(); final CtuluListSelection newS = new CtuluListSelection((CtuluListSelection) it.value()); if (!newS.isEmpty()) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -13,15 +13,15 @@ import org.fudaa.ctulu.CtuluListSelection; /** - * Un tableau permettant d'associer plusieurs listes de selections et de faire des op\xE9rations dessus. - * On acc\xE8de aux diff\xE9rentes listes par leur indice. + * Une liste de selection. Cette liste associe a chaque geometrie selectionn\xE9e une liste de sous objets selectionn\xE9s. + * On acc\xE8de aux diff\xE9rentes listes de sous objets par l'indice de la geometrie selectionnee. * * @author deniger - * @version $Id: EbliListeSelectionMultiInterface.java,v 1.11.6.1 2008-02-05 17:02:26 bmarchan Exp $ + * @version $Id$ */ public interface EbliListeSelectionMultiInterface { /** - * @return le nombre de listes de selections gerees par cette interface + * @return le nombre de geometries selectionn\xE9es */ int getNbListSelected(); @@ -29,30 +29,34 @@ * @return L'iterateur sur les listes de selections. */ TIntObjectIterator getIterator(); + /** - * @param _i l'indice demande [0,getNbList[ - * @return la liste de selection pour cet indice + * @param _i l'indice de geometrie. + * @return la liste de selection pour cette geometrie */ - CtuluListSelectionInterface getSelection(int _i); + CtuluListSelectionInterface getSelection(int _idxGeom); /** - * @return Les indices des listes de selections, stock\xE9s sous la forme d'un tableau. + * @return Les indices de geometries, stock\xE9s sous la forme d'un tableau. */ int[] getIdxSelected(); + /** - * @return Les indices des listes de selections stock\xE9s sous la forme d'une liste de selection. + * @return Les indices de g\xE9ometries stock\xE9s sous la forme d'une liste de selection. */ CtuluListSelection getIdxSelection(); /** - * @return true si toutes les listes de selection sont vides. + * @return true si aucune g\xE9om\xE9trie selectionn\xE9e. */ boolean isEmpty(); + /** - * @return l'indice de la seule selection non vide. sinon -1. + * @return l'indice de la seule g\xE9ometrie selectionn\xE9e. sinon -1. */ int isSelectionInOneBloc(); + /** - * @return le nombre total de point selectionne + * @return le nombre total de sous objets selectionnes. */ int getNbSelectedItem(); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliListeSelectionMultiInterface.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -10,6 +10,9 @@ import gnu.trove.TIntHashSet; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.StringTokenizer; import org.nfunk.jep.Variable; @@ -25,7 +28,7 @@ /** * @author deniger - * @version $Id: EbliFindActionAbstract.java,v 1.8 2007-05-04 13:49:44 deniger Exp $ + * @version $Id$ */ public abstract class EbliFindActionAbstract implements EbliFindActionInterface { @@ -82,7 +85,7 @@ protected EbliFindableItem layer_; protected CtuluExpr expr_; - EbliFindExpressionContainerInterface exprFiller_; + protected EbliFindExpressionContainerInterface exprFiller_; public EbliFindActionAbstract(final EbliFindableItem _layer) { layer_ = _layer; @@ -129,7 +132,8 @@ } final int nb = getNbValuesToTest(); selection = new CtuluListSelection(nb); - final Variable[] v = expr_.findUsedVar(); + final Variable[] vars =expr_.findUsedVar(); + final Object[] values=new Object[vars.length]; CtuluListSelection old = null; if (_selOption == EbliSelectionState.ACTION_AND || _selOption == EbliSelectionState.ACTION_DEL) { old = getOldSelection(); @@ -138,8 +142,11 @@ final int max = old == null ? nb - 1 : old.getMaxIndex(); for (int i = max; i >= min; i--) { if (old == null || old.isSelected(i)) { - if (v != null) { - exprFiller_.majVariable(i, v); + if (vars != null) { + exprFiller_.majVariable(i, vars, values); + for (int j=0; j<vars.length; j++) { + vars[j].setValue(values[j]); + } } final int val = (int) expr_.getParser().getValue(); if (val == 1) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionAbstract.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -11,12 +11,15 @@ import org.fudaa.ebli.geometrie.GrBoite; /** + * Une action de recherche. Cette action de recherche est associ\xE9e \xE0 un calque. + * Elle construit les composants panneaux de recherche. * @author deniger - * @version $Id: EbliFindActionInterface.java,v 1.2 2006-12-06 09:03:36 deniger Exp $ + * @version $Id$ */ public interface EbliFindActionInterface { /** + * Recherche et effectue la selection. * @param _s la chaine a chercher * @param _findId l'action * @param _selOption l'option pour la selection Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindActionInterface.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -14,8 +14,9 @@ import javax.swing.event.ChangeListener; /** + * Un composant de recherche composite, pouvant gerer plusieurs panneaux de recherche. * @author Fred Deniger - * @version $Id: EbliFindComponentComposite.java,v 1.4 2006-12-06 09:03:36 deniger Exp $ + * @version $Id$ */ public class EbliFindComponentComposite extends JTabbedPane implements EbliFindComponent { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentComposite.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -39,8 +39,9 @@ import org.fudaa.ebli.ressource.EbliResource; /** + * Un panneau pour la recherche suivant une expression (formule). * @author deniger - * @version $Id: EbliFindComponentExpr.java,v 1.9 2007-05-04 13:49:44 deniger Exp $ + * @version $Id$ */ public class EbliFindComponentExpr extends BuPanel implements EbliFindComponent, ActionListener { @@ -157,4 +158,21 @@ return btIdx_.isSelected() ? "IDX" : "EXPR"; } + /** + * Redefinit l'expression. L'expression conditionne les variables utilisables dans le panneau. + * @param _expr L'expression. + */ + public void setExpr(CtuluExpr _expr) { + expr_=_expr; + txtFind_.setText(""); + } + + /** + * Pour une recherche uniquement sur des atomiques. Certaines options sont gris\xE9es. + * @param _b True : Recherche sur des atomiques. + */ + public void setFindOnAtomic(boolean _b) { + btIdx_.setEnabled(!_b); + if (_b) btExpr_.setSelected(true); + } } \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindComponentExpr.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -39,7 +39,7 @@ /** * @author deniger - * @version $Id: EbliFindDialog.java,v 1.16 2007-06-05 08:58:39 deniger Exp $ + * @version $Id$ */ public class EbliFindDialog extends BuPanel implements ActionListener, ItemListener, PropertyChangeListener { @@ -200,6 +200,9 @@ add(btpn, BuBorderLayout.SOUTH); } + /** + * Appel\xE9 quand il y a eu changement de calque de recherche. + */ private void updateAll() { pnCenter_.remove(active_); final Object cq = cbSelectModeModel_.getSelectedItem(); @@ -319,7 +322,7 @@ final Dimension dialogSize = dial_.getSize(); final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); dial_.setLocation((screenSize.width - dialogSize.width) / 2, (screenSize.height - dialogSize.height) / 2); - dial_.show(); + dial_.setVisible(true); } public void afficheInutileTest() { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindDialog.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -13,7 +13,7 @@ /** * @author Fred Deniger - * @version $Id: EbliFindExpressionComposite.java,v 1.3 2006-07-13 13:35:47 deniger Exp $ + * @version $Id$ */ public class EbliFindExpressionComposite implements EbliFindExpressionContainerInterface { @@ -37,9 +37,9 @@ } - public void majVariable(final int _idx,final Variable[] _varToUpdate){ - normalSupplier_.majVariable(_idx, _varToUpdate); - postSupplier_.majVariable(_idx, _varToUpdate); + public void majVariable(final int _idx,final Variable[] _varToUpdate, Object[] _values){ + normalSupplier_.majVariable(_idx, _varToUpdate, _values); + postSupplier_.majVariable(_idx, _varToUpdate, _values); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionComposite.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -12,12 +12,24 @@ import org.fudaa.ctulu.CtuluExpr; /** + * Une classe a implementer pour chaque calque qui autorise une recherche par la boite de dialogue rechercher. * @author Fred Deniger - * @version $Id: EbliFindExpressionContainerInterface.java,v 1.2 2006-04-12 15:28:02 deniger Exp $ + * @version $Id$ */ public interface EbliFindExpressionContainerInterface { + /** + * Initialise le container d'expression avec les variables pouvant \xEAtre trait\xE9es par le calque. + * @param _exp Le container d'expression + */ void initialiseExpr(CtuluExpr _exp); - void majVariable(int _idx,Variable[] _varToUpdate); - + + /** + * Initialise la valeur de chaque variable pour l'indice d'objet donn\xE9. Cette m\xE9thode est appel\xE9e pour chaque objet lors du + * lancement de la selection. + * @param _idx L'indice de l'objet dans le calque. + * @param _varToUpdate Les variables dont la valeur est a intialiser. + * @param _values Les valeurs pour les variables, dans le m\xEAme ordre. + */ + void majVariable(int _idx,Variable[] _varToUpdate, Object[] _values); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionContainerInterface.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -7,16 +7,15 @@ */ package org.fudaa.ebli.find; -import org.nfunk.jep.Variable; - import org.fudaa.ctulu.CtuluExpr; import org.fudaa.ctulu.CtuluLib; - +import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ebli.commun.EbliLib; +import org.nfunk.jep.Variable; /** * @author Fred Deniger - * @version $Id: EbliFindExpressionDefault.java,v 1.5 2007-04-16 16:35:08 deniger Exp $ + * @version $Id$ */ public class EbliFindExpressionDefault implements EbliFindExpressionContainerInterface { @@ -45,8 +44,11 @@ } - public void majVariable(final int _idx, final Variable[] _varToUpdate) { - i_.setValue(CtuluLib.getDouble(_idx + 1)); + public void majVariable(final int _idx, final Variable[] _varToUpdate, Object[] _values) { + int i=CtuluLibArray.getIndex(i_,_varToUpdate); + if (i!=-1) + _values[i]=CtuluLib.getDouble(_idx + 1); +// i_.setValue(CtuluLib.getDouble(_idx + 1)); } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindExpressionDefault.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindable.java 2009-02-20 19:27:45 UTC (rev 4489) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/find/EbliFindable.java 2009-02-23 16:32:31 UTC (rev 4490) @@ -13,8 +13,9 @@ import org.fudaa.ebli.geometrie.GrBoite; /** + * Un ZEbliCalquesPanel permettant la recherche sur des calques. * @author Fred Deniger - * @version $Id: Ebli... [truncated message content] |
From: <had...@us...> - 2009-02-20 19:27:51
|
Revision: 4489 http://fudaa.svn.sourceforge.net/fudaa/?rev=4489&view=rev Author: hadouxad Date: 2009-02-20 19:27:45 +0000 (Fri, 20 Feb 2009) Log Message: ----------- * Gestion des min et max sans d?\195?\169passer pour les limites x et y des graphes: o conservation des max/min des mod?\195?\168les pour corriger la saisie en cas de d?\195?\169passement o case ?\195?\160 cocher qui r?\195?\169initialise automatiquement au max et min des courbes o dessin du graphe: ne dessinne que ce qui est visible; + pour les points des axes, gestion de l'axe avec sa m?\195?\169thode contains() + pour le trac?\195?\169 des droites, on trace les droites jusqu'aux limites des axes et non plus jusqu'aux points. * Corrections wizard poru sauvegarder projet * int?\195?\169gration de la commande linux Am?\195?\169lioration de la l?\195?\169gende connecteur widget.Pour les fl?\195?\168ches, * la fl?\195?\168che est compos?\195?\169e de 2 extr?\195?\169mit?\195?\169s et d'une widget centrale qui englobe les 2 extr?\195?\169mit?\195?\169s * pour d?\195?\169placer la widget fleche il suffit de deplacer la widget centrale qui englobe, les extr?\195?\169mit?\195?\169s suivent (se sont des sattelites) * on peut d?\195?\169placer les widgets extr?\195?\169mit?\195?\169s car o a chaque d?\195?\169placement elles sont repositionn?\195?\169e en d?\195?\169but de sc?\195?\168ne o cela n'alt?\195?\168re pas l'arbre et son ordre car il y a pas node enregistr?\195?\169 pour ces widgets o elles ont des methodes sp?\195?\169ciales qui permet de reconstruire la dimension de la widget englobant lors du d?\195?\169placement. * LA widget centrale dispose d'un menu popup (les extr?\195?\169mit?\195?\169s non car elles ont un controller sp?\195?\169cifique) * le controlleur de la widget centrale gere les actions sp?\195?\169cifiques : destruction, duplication... * il n' y a que la widget centrale qui est enregistr?\195?\169 aupr?\195?\169s d'un node dans la scene donc seule elle figure et pilote toute la fleche. Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/behavior/EbliAlignWithMoveStrategyProvider.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/Serial.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import javax.swing.Action; @@ -65,9 +66,11 @@ private EGAxeVertical[] axes_; - private BuCheckBox cbBlockHView_; + private BuCheckBox boxChooseUserLimitX_; + private BuCheckBox boxChooserUserLimitY; + private BuCheckBox cbInitialConf_; - private BuCheckBox cbUnblockBlockHView_; + //private BuCheckBox cbUnblockBlockHView_; private BuCheckBox cbUseSameAxe_; private final EGGraphe graphe_; @@ -100,8 +103,14 @@ private BuTextField tfVertSousPas_; EGObject[] targets_; + + private Map mapRangesY_=null; + public EGAxeRepereConfigurator(final EGGraphe _m) { graphe_ = _m; + //-- on recupere les valeurs des y --// + mapRangesY_=graphe_.restoreAllYAxe(); + // si pas configur\xE9 comme attendu if (graphe_.getTransformer().getXAxe() == null) { pnAxeV_ = null; @@ -140,7 +149,12 @@ EbliActionAbstract s = new EbliActionSimple(EbliResource.EBLI.getString("Restaurer"), EbliResource.EBLI .getIcon("restore"), "RESTORE") { public void actionPerformed(ActionEvent _e) { + //-- on reinitialise les mioin/max saisi par l'user --// + _m.setUserXRange(null); _m.restore(); + + + updateAxeHorValue(); } }; s.putValue(Action.SHORT_DESCRIPTION, EbliResource.EBLI.getString("Restaurer la vue globale")); @@ -151,7 +165,7 @@ setTargets(null); EGAxeRepereConfigurator.updateLabelWidth(this); - cbBlockHView_.addKeyListener(this); + } private void buildVPanel(final boolean _removeAll) { @@ -261,6 +275,22 @@ lb.setToolTipText(EbliLib.getS("Borne sup\xE9rieure des axes verticaux")); pnAxeV_.add(lb); pnAxeV_.add(tfVertMax_); + + //--prendre en compte les limites max --// + pnAxeV_.add(new BuLabel()); + if (boxChooserUserLimitY == null) { + boxChooserUserLimitY = new BuCheckBox(EbliLib.getS("Affiche uniquement jusqu'aux limites")); + boxChooserUserLimitY.setToolTipText(EbliLib + .getS("Si s\xE9lectionn\xE9, les donn\xE9es de la courbe ne pourront d\xE9passer les valeurs pr\xE9c\xE9dentes")); + } + pnAxeV_.add(boxChooserUserLimitY); + boxChooserUserLimitY.setSelected(true); + boxChooserUserLimitY.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + apply(); + } + }); + // vertical pas lb = new BuLabel(pasTxt); lb.setToolTipText(tooltipPas); @@ -422,8 +452,12 @@ private void buildHPanel(final boolean _removeAll) { - final String minTxt = EbliLib.getS("Min:"); - final String maxTxt = EbliLib.getS("Max:"); + + double max= graphe_.getXMax(); + double min= graphe_.getXMin(); + + final String minTxt = EbliLib.getS("Min:")+"(>"+min+")"; + final String maxTxt = EbliLib.getS("Max:")+"(<"+max+")"; final String pasTxtGraduation = EbliLib.getS("Nb Graduation:"); final String pasTxtLongueur = EbliLib.getS("Longueur pas:"); final String typePasTxt = EbliLib.getS("Type Graduation:"); @@ -516,6 +550,21 @@ lb.setToolTipText(EbliLib.getS("Borne sup\xE9rieure de l'axe horizontal")); pnAxeH_.add(lb); pnAxeH_.add(tfHorMax_); + + //--prendre en compte les limites max --// + pnAxeH_.add(new BuLabel()); + if (boxChooseUserLimitX_ == null) { + boxChooseUserLimitX_ = new BuCheckBox(EbliLib.getS("Affiche uniquement jusqu'aux limites")); + boxChooseUserLimitX_.setToolTipText(EbliLib + .getS("Si s\xE9lectionn\xE9, les donn\xE9es de la courbe ne pourront d\xE9passer les valeurs pr\xE9c\xE9dentes")); + } + pnAxeH_.add(boxChooseUserLimitX_); + boxChooseUserLimitX_.setSelected(true); + boxChooseUserLimitX_.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + apply(); + } + }); // pas //-- selection du type de graduations @@ -590,21 +639,14 @@ - // bloquer l'\xE9chelle horizontal - pnAxeH_.add(new BuLabel()); - if (cbBlockHView_ == null) { - cbBlockHView_ = new BuCheckBox(EbliLib.getS("Limites maximales")); - cbBlockHView_.setToolTipText(EbliLib - .getS("Si s\xE9lectionn\xE9, les limites de l'axe horizontal ne pourront d\xE9passer les valeurs pr\xE9c\xE9dentes")); - } - // pnAxeH_.add(cbBlockHView_); - pnAxeH_.add(new BuLabel()); + + //pnAxeH_.add(new BuLabel()); // d\xE9bloquer l'echelle horizontal - if (cbUnblockBlockHView_ == null) { - cbUnblockBlockHView_ = new BuCheckBox(EbliLib.getS("Ignorer les limites maximales")); - cbUnblockBlockHView_.setToolTipText(EbliLib - .getS("Si s\xE9lectionn\xE9, les limites maximales ne seront plus prises en compte")); - } +// if (cbUnblockBlockHView_ == null) { +// cbUnblockBlockHView_ = new BuCheckBox(EbliLib.getS("Ignorer les limites maximales")); +// cbUnblockBlockHView_.setToolTipText(EbliLib +// .getS("Si s\xE9lectionn\xE9, les limites maximales ne seront plus prises en compte")); +// } //pnAxeH_.add(cbUnblockBlockHView_); } @@ -613,22 +655,49 @@ final String pas = tfHorPas_.getText().trim(); final String Souspas = tfHorSousPas_.getText().trim(); - final boolean maxEdited = editorH_.isValueValidFromComponent(tfHorMax_); - final boolean minEdited = editorH_.isValueValidFromComponent(tfHorMin_); + final boolean maxEdited = editorH_.isValueValidFromComponent(tfHorMax_) && boxChooseUserLimitX_.isSelected(); + final boolean minEdited = editorH_.isValueValidFromComponent(tfHorMin_) && boxChooseUserLimitX_.isSelected(); boolean pasEdited = pas.length() > 0; if(!pasEdited) pasEdited=Souspas.length()>0; - final double maxVal = maxEdited ? Double.parseDouble(editorH_.getStringValue(tfHorMax_)) : axeH_.getMaximum(); - final double minVal = minEdited ? Double.parseDouble(editorH_.getStringValue(tfHorMin_)) : axeH_.getMinimum(); + double maxVal = maxEdited ? Double.parseDouble(editorH_.getStringValue(tfHorMax_)) : axeH_.getMaximum(); + double minVal = minEdited ? Double.parseDouble(editorH_.getStringValue(tfHorMin_)) : axeH_.getMinimum(); final double pasVal = pasEdited ? Double.parseDouble(pas) : 0; final int souspasVal = (Souspas.length()>0) ? Integer.parseInt(Souspas) : 0; + + + boolean r = false; if(comboHorizontal_.getSelectedIndex()!=-1) axeH_.modeGraduations_=comboHorizontal_.getSelectedIndex(); - if (maxEdited || minEdited || pasEdited) { + if (maxEdited || minEdited || pasEdited || !boxChooseUserLimitX_.isSelected()) { + + //-- si on d\xE9passe le min et max on recadre --// + double maxValueX=graphe_.getXMax(); + if(maxValueX<maxVal) + maxVal=maxValueX; + + double minValueX=graphe_.getXMin(); + if(minValueX>minVal) + minVal=minValueX; + + //-- si les limites ne sont plus selectionnes il faut de nouveau tout prendre --// + if(!boxChooseUserLimitX_.isSelected()){ + maxVal=maxValueX; + minVal=minValueX; + tfHorMax_.setEnabled(false); + tfHorMin_.setEnabled(false); + + }else{ + //-- on libere la saisie des min et max --// + tfHorMax_.setEnabled(true); + tfHorMin_.setEnabled(true); + } + + if (pasEdited) { if(modeGraduationX_==EGAxe.MANUEL_GRADUATIONS || modeGraduationX_==EGAxe.AUTO_GRADUATIONS) r = axeH_.setBounds(minVal, maxVal, (int)pasVal,modeGraduationX_); @@ -668,17 +737,17 @@ } - if (cbBlockHView_.isSelected() && maxEdited && minEdited) { + if ( (maxEdited && minEdited) || !boxChooseUserLimitX_.isSelected()) { final CtuluRange range = new CtuluRange(); range.max_ = maxVal; range.min_ = minVal; graphe_.setUserXRange(range); r = true; } - if (cbUnblockBlockHView_.isEnabled() && cbUnblockBlockHView_.isSelected()) { - graphe_.setUserXRange(null); - r = true; - } +// if (cbUnblockBlockHView_.isEnabled() && cbUnblockBlockHView_.isSelected()) { +// graphe_.setUserXRange(null); +// r = true; +// } String titre=titreAxeHorizontal_.getText(); @@ -714,11 +783,11 @@ boolean minEdited = false; boolean maxEdited = false; if (editorV_ != null) { - minEdited = editorV_.isValueValidFromComponent(tfVertMin_); + minEdited = editorV_.isValueValidFromComponent(tfVertMin_) && boxChooserUserLimitY.isSelected(); if (minEdited) { minVal = Double.parseDouble(editorV_.getStringValue(tfVertMin_)); } - maxEdited = editorV_.isValueValidFromComponent(tfVertMax_); + maxEdited = editorV_.isValueValidFromComponent(tfVertMax_) && boxChooserUserLimitY.isSelected(); if (maxEdited) { maxVal = Double.parseDouble(editorV_.getStringValue(tfVertMax_)); } @@ -732,6 +801,20 @@ pasModif=Souspas.length()>0; if (maxEdited || minEdited || pasModif) { + + //-- si le choix des max pas selectionn\xE9 il faut r\xE9initialiser les y + if(!boxChooserUserLimitY.isSelected()){ + tfVertMax_.setEnabled(false); + tfVertMin_.setEnabled(false); + graphe_.restoreAllYAxe(); + return true; + + }else{ + tfVertMax_.setEnabled(true); + tfVertMin_.setEnabled(true); + } + + final double pasVal = pasModif ? Double.parseDouble(pas) : 0; for (int i = 0; i < axes_.length; i++) { @@ -744,12 +827,31 @@ double min = minVal; double max = maxVal; - if (!minEdited) { + if (!minEdited || !boxChooserUserLimitY.isSelected()) { min = axes_[i].getMinimum(); + }else{ + } - if (!maxEdited) { + if (!maxEdited || !boxChooserUserLimitY.isSelected()) { max = axes_[i].getMaximum(); } + + //-- on verifie avec le max que cela ne depasse pas--// + if(mapRangesY_!=null){ + Object value=mapRangesY_.get(axes_[i]); + if(value!=null && value instanceof CtuluRange){ + double maxR=((CtuluRange)value).max_; + double minR=((CtuluRange)value).min_; + + if(min<minR) + min=minR; + if(max>maxR) + max=maxR; + + } + } + + if (pasModif) { if(modeGraduationY_==EGAxe.MANUEL_GRADUATIONS || modeGraduationY_==EGAxe.AUTO_GRADUATIONS) r |= axes_[i].setBounds(min, max, (int)pasVal,modeGraduationY_); @@ -907,8 +1009,10 @@ } void updateAxeHorValue() { - editorH_.setValue(CtuluLib.getDouble(axeH_.getMaximum()), tfHorMax_); - editorH_.setValue(CtuluLib.getDouble(axeH_.getMinimum()), tfHorMin_); + double max=axeH_.getMaximum(); + double min=axeH_.getMinimum(); + editorH_.setValue(CtuluLib.getDouble(max), tfHorMax_); + editorH_.setValue(CtuluLib.getDouble(min), tfHorMin_); if(axeH_.modeGraduations_==EGAxe.AUTO_GRADUATIONS|| axeH_.modeGraduations_==EGAxe.MANUEL_GRADUATIONS) tfHorPas_.setText(CtuluLibString.getString(axeH_.getNbPas())); else @@ -916,10 +1020,10 @@ tfHorSousPas_.setText(""+axeH_.nbSousGraduations_); - cbBlockHView_.setSelected(false); - cbUnblockBlockHView_.setSelected(false); - cbUnblockBlockHView_.setEnabled(graphe_.isUserXRangeSet()); - cbBlockHView_.setEnabled(!cbUnblockBlockHView_.isEnabled()); + //cbBlockHView_.setSelected(true); +// cbUnblockBlockHView_.setSelected(false); +// cbUnblockBlockHView_.setEnabled(graphe_.isUserXRangeSet()); +// cbBlockHView_.setEnabled(!cbUnblockBlockHView_.isEnabled()); } void updateAxesValue() { Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -442,6 +442,7 @@ boolean yiVisible; double xpe = 0; double ype = 0; + double ypeVal=0; boolean xpVisible = false; Envelope rangeDisplayed = null; _g.setColor(EbliLib.getAlphaColor(getAspectContour(), alpha_)); @@ -479,8 +480,19 @@ } paintSurface(_g, _t, i); - if(!nuagePoints_) - trLigne.dessineTrait(_g, xie, yie, xpe, ype); + if(!nuagePoints_){ + //-- attention si le point depasse de l'\xE9cran il faut dessinner le trait jusqu'\xE0 la limite de l'axe--// + double newyi=Math.min(yi, getAxeY().getMaximum()); + newyi=Math.max(newyi, getAxeY().getMinimum()); + double newyie=_t.getYEcran(newyi, getAxeY()); + + double newyi2=Math.min(ypeVal, getAxeY().getMaximum()); + newyi2=Math.max(newyi2, getAxeY().getMinimum()); + double newyie2=_t.getYEcran(newyi2, getAxeY()); + + trLigne.dessineTrait(_g, xie, newyie, xpe, newyie2); + + } else{ //-- trace un + --// //-- ligne | --// @@ -493,6 +505,7 @@ xpVisible = xiVisible; xpe = xie; ype = yie; + ypeVal=yi; } _g.setClip(oldClip); traceMarks(_g, _t); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -323,6 +323,7 @@ //-- affichage horizontal ou vertical inter = new BSelecteurCheckBox(EGCourbeConfigureTarget.PROP_MARK_VALUES_HORIZONTAL+cpt,EbliLib.getS("Horizontal")); ((BSelecteurCheckBox) inter).setTitle(EbliLib.getS("Horizontal")); + ((BSelecteurCheckBox) inter).setTooltip(EbliLib.getS("coch\xE9 pour Horizontal, sinon marqueur vertical")); listeTocompose[3]=inter; //-- ajout de la composition Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -133,6 +133,9 @@ maxXRangeCompute(); } + + + private void computeXRange() { if (xRange_ != null) { return; } xRange_ = new CtuluRange(); @@ -572,51 +575,104 @@ updateRepere(); if (transformer_.getXAxe() == null) { return; } restoreAxeX(); - final Map axeYRange = new HashMap(); - final EGGrapheModel m = getModel(); - for (int i = m.getNbEGObject() - 1; i >= 0; i--) { - final EGObject o = m.getEGObject(i); - if (o.isVisible_) { - final EGAxeVertical axe = o.getAxeY(); - CtuluRange r = (CtuluRange) axeYRange.get(axe); - if (r == null) { - r = new CtuluRange(); - r.max_ = -Double.MAX_VALUE; - r.min_ = Double.MAX_VALUE; - axeYRange.put(axe, r); - } - o.ajusteY(r); - } - } - for (final Iterator it = axeYRange.entrySet().iterator(); it.hasNext();) { - final Map.Entry e = (Map.Entry) it.next(); - final EGAxeVertical v = (EGAxeVertical) e.getKey(); - final CtuluRange r = (CtuluRange) e.getValue(); - if (Double.isNaN(r.max_) || Double.isInfinite(r.max_) || (r.max_ <= -Double.MAX_VALUE)) { - r.max_ = 0; - } - if (Double.isNaN(r.min_) || Double.isInfinite(r.min_) || (r.min_ >= Double.MAX_VALUE)) { - r.min_ = 0; - } - if (r.min_ == r.max_) { - if (r.max_ == 0) { - r.max_ = 1; - r.min_ = -1; - } else { - r.max_ = r.min_ * 1.1; - r.min_ = r.min_ * 0.9; - } - if (r.min_ == r.max_) { - r.max_ = 1; - r.min_ = -1; - } - } - restoreAxeY(v, r); - - } + + restoreAllYAxe(); +// final Map axeYRange = new HashMap(); +// final EGGrapheModel m = getModel(); +// for (int i = m.getNbEGObject() - 1; i >= 0; i--) { +// final EGObject o = m.getEGObject(i); +// if (o.isVisible_) { +// final EGAxeVertical axe = o.getAxeY(); +// CtuluRange r = (CtuluRange) axeYRange.get(axe); +// if (r == null) { +// r = new CtuluRange(); +// r.max_ = -Double.MAX_VALUE; +// r.min_ = Double.MAX_VALUE; +// axeYRange.put(axe, r); +// } +// o.ajusteY(r); +// } +// } +// for (final Iterator it = axeYRange.entrySet().iterator(); it.hasNext();) { +// final Map.Entry e = (Map.Entry) it.next(); +// final EGAxeVertical v = (EGAxeVertical) e.getKey(); +// final CtuluRange r = (CtuluRange) e.getValue(); +// if (Double.isNaN(r.max_) || Double.isInfinite(r.max_) || (r.max_ <= -Double.MAX_VALUE)) { +// r.max_ = 0; +// } +// if (Double.isNaN(r.min_) || Double.isInfinite(r.min_) || (r.min_ >= Double.MAX_VALUE)) { +// r.min_ = 0; +// } +// if (r.min_ == r.max_) { +// if (r.max_ == 0) { +// r.max_ = 1; +// r.min_ = -1; +// } else { +// r.max_ = r.min_ * 1.1; +// r.min_ = r.min_ * 0.9; +// } +// if (r.min_ == r.max_) { +// r.max_ = 1; +// r.min_ = -1; +// } +// } +// restoreAxeY(v, r); +// +// } axeUpdated(); } + + /** + * restore uniquement les axes en y. + */ + public Map restoreAllYAxe() { + final Map axeYRange = new HashMap(); + final EGGrapheModel m = getModel(); + for (int i = m.getNbEGObject() - 1; i >= 0; i--) { + final EGObject o = m.getEGObject(i); + if (o.isVisible_) { + final EGAxeVertical axe = o.getAxeY(); + CtuluRange r = (CtuluRange) axeYRange.get(axe); + if (r == null) { + r = new CtuluRange(); + r.max_ = -Double.MAX_VALUE; + r.min_ = Double.MAX_VALUE; + axeYRange.put(axe, r); + } + o.ajusteY(r); + } + } + for (final Iterator it = axeYRange.entrySet().iterator(); it.hasNext();) { + final Map.Entry e = (Map.Entry) it.next(); + final EGAxeVertical v = (EGAxeVertical) e.getKey(); + final CtuluRange r = (CtuluRange) e.getValue(); + if (Double.isNaN(r.max_) || Double.isInfinite(r.max_) || (r.max_ <= -Double.MAX_VALUE)) { + r.max_ = 0; + } + if (Double.isNaN(r.min_) || Double.isInfinite(r.min_) || (r.min_ >= Double.MAX_VALUE)) { + r.min_ = 0; + } + if (r.min_ == r.max_) { + if (r.max_ == 0) { + r.max_ = 1; + r.min_ = -1; + } else { + r.max_ = r.min_ * 1.1; + r.min_ = r.min_ * 0.9; + } + if (r.min_ == r.max_) { + r.max_ = 1; + r.min_ = -1; + } + } + restoreAxeY(v, r); + + } + return axeYRange; + + } + public void setAutoRestore(final boolean _autoRestore) { if (_autoRestore != autoRestore_) { autoRestore_ = _autoRestore; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -305,6 +305,11 @@ protected void notifyNodeAdded(final EbliNode node, final Widget widget) { // -- notifier tous les listener que le noeud a ete attache --// // notifyAllListenerNodeAdded(node); + if(widget instanceof EbliWidget){ + //-- notifier le noeud ajout\xE9 --// + ((EbliWidget)widget).notifyNodeAdded(node); + } + } /** Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -564,6 +564,21 @@ } + /** + * Methode appelee par le notifyAdded de la EbliScene apres ajout du node. + * Dans cette classe on peut appliquer des traitement particuliers tout juste apres insertion dans la scene. + * @see EbliWidgetCreatorConnectionWidget + * @param node + */ + public void notifyNodeAdded(EbliNode node){ } + + + /** + * Est appel\xE9 des que la widget a \xE9t\xE9 d\xE9plac\xE9. + * @param _location + */ + public void notifyWidgetMoved(final Point _location){ } + public final void bringToPosition (int position) { if (getParentWidget() == null) return; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/behavior/EbliAlignWithMoveStrategyProvider.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/behavior/EbliAlignWithMoveStrategyProvider.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/behavior/EbliAlignWithMoveStrategyProvider.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -93,6 +93,7 @@ satt.setPreferredLocation(newLocationSatt); } } + ebliwidget.notifyWidgetMoved(_location); } /** Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/creator/EbliWidgetCreatorConnectionWidget.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -3,16 +3,25 @@ import java.awt.Dimension; import java.awt.Image; import java.awt.Point; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import org.fudaa.ebli.visuallibrary.EbliNode; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; +import org.fudaa.ebli.visuallibrary.EbliWidgetController; +import org.fudaa.ebli.visuallibrary.EbliWidgetControllerActionOnly; import org.fudaa.ebli.visuallibrary.EbliWidgetWithBordure; +import org.fudaa.ebli.visuallibrary.graphe.EbliWidgetCreatorGraphe; import org.netbeans.api.visual.anchor.AnchorFactory; import org.netbeans.api.visual.anchor.AnchorShape; +import org.netbeans.api.visual.layout.Layout; import org.netbeans.api.visual.widget.ConnectionWidget; import org.netbeans.api.visual.widget.LayerWidget; +import org.netbeans.modules.visual.layout.ConnectionWidgetLayout; +import org.netbeans.modules.visual.layout.OverlayLayout; /** * Creator pour un widget creator connection. @@ -22,55 +31,303 @@ */ public class EbliWidgetCreatorConnectionWidget implements EbliWidgetCreator{ + /** + * les dimensions des widgets extremites qui permettent le deplacement de l'objet. + */ + public static int DIMENSION_DEFAULT_EXTREMITES=50; - EbliWidget connection1_; - EbliWidget connection2_; + EbliSatteliteWidget connectionHead_; + EbliSatteliteWidget connectionTail_; ConnectionWidget connection_; - EbliWidget conteneurFleche_; + /** + * Il s'agit de la widget principal vide qui d\xE9place tout le contenu (les widgets connections). + */ + EbliHelioCentiqueWidget conteneurFleche_; LayerWidget layoutConteneur_; + + //-- positions par defaut --// + int locationHeadX=10; + int locationHeadY=10; + int locationTailX=600; + int locationTailY=300; + /** + * Controller specifique au widget connecteurs, strict minimum + * @author Adrien Hadoux + * + */ + private class ControllerConnection extends EbliWidgetControllerActionOnly{ + public ControllerConnection(EbliWidget widget_) { + super(widget_,true,false); + } + } + + /** + * Controlleur r\xE9serv\xE9 au conteneur principale des fleches. + * Gere une duplication, suppression et autre particuliers. + * @author Adrien Hadoux + * + */ + private class ControllerConteneurFleche extends EbliWidgetController{ + ConnectionWidget connection_; + LayerWidget layoutConteneur_; + public ControllerConteneurFleche(EbliWidget widget_,LayerWidget layer,ConnectionWidget connection ) { + super(widget_,true,false); + connection_=connection; + layoutConteneur_=layer; + } + public void suppression(ArrayList<EbliNode> listeNodeUndo, + ArrayList<Point> listeLocation) { + + //-- on supprime tous nos amis sattelites --// + layoutConteneur_.removeChild(connection_); + widget_.getEbliScene().removeChild(layoutConteneur_); + + //-- on effectue la suppression classique --// + super.suppression(listeNodeUndo, listeLocation); + } + + + } + + +/** + * une widget qui aime les sattelites (et tout ce qui gravite autour...). + * @author Adrien Hadoux + * + */ + private class EbliSatteliteWidget extends EbliWidget{ + List<EbliWidget> listeSatteliteWidget_; + public EbliSatteliteWidget autreExtremite; + public EbliHelioCentiqueWidget main; + public EbliSatteliteWidget(EbliScene _scene,boolean resize) { + super(_scene,resize); + listeSatteliteWidget_=new ArrayList<EbliWidget>(); + + } + public List<EbliWidget> getSattelite() { + return listeSatteliteWidget_; + } + public boolean hasSattelite() { + return true; + } + public boolean addSattelite(EbliWidget widg){ + if(!listeSatteliteWidget_.contains(widg)) + return listeSatteliteWidget_.add(widg); + return false; + } + + /** + * repositionne la widget centrale des qu'il y a un deplacement. + */ + public void notifyWidgetMoved(final Point _location){ + //-- repositionne la widget extremites en haut de la scene (on ne voit rien dans le tree car il n'y a pas de node enegistr\xE9e pouer cette widget)--// + getEbliScene().bringToLast(this); + + //-- on repositionner la widget centrale par rapport \xE0 la position des 2 autres widgets --// + EbliWidgetCreatorConnectionWidget.repositionnerConteneurAvecExtremites( main,this,autreExtremite); + + } + + } + + /** + * classe r\xE9serv\xE9e pour la widget principale. + * Gere ses sattelites en s'assurant d'etre en arrier plan par rapport \xE0 elles. + * @author Adrien Hadoux + * + */ + private class EbliHelioCentiqueWidget extends EbliSatteliteWidget{ + public EbliHelioCentiqueWidget(EbliScene _scene,boolean resize) { + super(_scene,resize); + } + /** + * Surcharge de notifyNodeAdded apr\xE8s insertion pour forcer les d\xE9placements. + */ + public void notifyNodeAdded(EbliNode node){ + deplaceExtremitesCentre(); + + } + /** + * ne replace rien. la widget centrale se contente de son mode sattelite qui lui permet de d\xE9placer ses extr\xE9mit\xE9s automatiquement dans efforts. + */ + public void notifyWidgetMoved(final Point _location){ + deplaceExtremitesCentre(); + } + + /** + * repositionne les widget extremites sattelites en haut de la scene (on ne voit rien dans le tree car il n'y a pas de node enegistr\xE9e pouer cette widget). + */ + private void deplaceExtremitesCentre(){ + for(EbliWidget satt:getSattelite()){ + //-- amene en debut lse frames--// + getEbliScene().bringToLast(satt); + } + } + } + + public EbliWidgetCreatorConnectionWidget() { super(); } + /** + * Creator qui initialise l'emplacement de la widget. + * @param positionTete + * @param positionQueue + */ + public EbliWidgetCreatorConnectionWidget(Point positionTete,Point positionQueue) { + super(); + locationHeadX=positionTete.x; + locationHeadY=positionTete.y; + locationTailX=positionQueue.x; + locationTailY=positionQueue.y; + } + + /** + * Methode qui se charge de repositionner la widget principale par rapport aux positions des extremites. + */ + public static void repositionnerConteneurAvecExtremites(EbliHelioCentiqueWidget main,EbliSatteliteWidget tete,EbliSatteliteWidget queue ){ + if(main==null || tete==null || queue==null) + return; + + Point location1=tete.getLocation(); + if(location1==null) + location1=tete.getPreferredLocation(); + Point location2=queue.getLocation(); + if(location2==null) + location2=queue.getPreferredLocation(); + + //-- position du nouveau point --// +// int x=(location1.x+location2.x)/2; +// int y=(location1.y+location2.y)/2; +// Point newPosition=new Point(x,y); + + + int conteneurX; + int conteneurY; + if(location1.x<location2.x) + conteneurX=location1.x; + else + conteneurX=location2.x; + if(location1.y<location2.y) + conteneurY=location1.y; + else + conteneurY=location2.y; + + //-- location du main trouv\xE9 --// + Point newPosition=new Point(conteneurX,conteneurY); + + //-- taille totale a d\xE9finir --// + int width=(location1.x+location2.x)/2+DIMENSION_DEFAULT_EXTREMITES/2; + int height=(location1.y+location2.y)/2+DIMENSION_DEFAULT_EXTREMITES/2; + + main.setPreferredLocation(newPosition); + if(width!=0 && height!=0) + main.setPreferredSize(new Dimension(width,height)); + + + } + + + public EbliWidget create(EbliScene _scene) { - connection1_=new EbliWidget(_scene,true); - connection2_=new EbliWidget(_scene,true); - conteneurFleche_=new EbliWidget(_scene); + layoutConteneur_ = new LayerWidget (_scene); + connection_ = new ConnectionWidget (_scene); + /** + * Il s'agit de la widget principal vide qui d\xE9place tout le contenu (les widgets connections). + */ + conteneurFleche_=new EbliHelioCentiqueWidget(_scene,false); + conteneurFleche_.setController(new ControllerConteneurFleche(conteneurFleche_,layoutConteneur_,connection_)); - connection1_.setPreferredSize(new Dimension(50,50)); - connection2_.setPreferredSize(new Dimension(50,50)); + connectionHead_=new EbliSatteliteWidget(_scene,false); + connectionHead_.setController(new ControllerConnection(connectionHead_)); + connectionTail_=new EbliSatteliteWidget(_scene,false); + connectionTail_.setController(new ControllerConnection(connectionTail_)); + - connection1_.setPreferredLocation(new Point(10,10)); - connection2_.setPreferredLocation(new Point(600,300)); - _scene.getVisu().addChild(connection1_); - _scene.getVisu().addChild(connection2_); + //-- ajout des sattelites pour le conteneur principal--// + conteneurFleche_.addSattelite(connectionHead_); + conteneurFleche_.addSattelite(connectionTail_); + + //-- ajout de l'informations du conteneur principal comme sattelite --// +// connectionHead_.addSattelite(conteneurFleche_); +// connectionTail_.addSattelite(conteneurFleche_); + connectionHead_.main=conteneurFleche_; + connectionTail_.main=conteneurFleche_; + + + //-- ajout de l'info de l'autre extremit\xE9 pour chaque extr\xE9mit\xE9 --// + connectionTail_.autreExtremite=connectionHead_; + connectionHead_.autreExtremite=connectionTail_; + + + + + + + + connectionHead_.setPreferredSize(new Dimension(DIMENSION_DEFAULT_EXTREMITES,DIMENSION_DEFAULT_EXTREMITES)); + connectionTail_.setPreferredSize(new Dimension(DIMENSION_DEFAULT_EXTREMITES,DIMENSION_DEFAULT_EXTREMITES)); + + connectionHead_.setPreferredLocation(new Point(locationHeadX,locationHeadY)); + connectionTail_.setPreferredLocation(new Point(locationTailX,locationTailY)); + + conteneurFleche_.setPreferredSize(new Dimension(DIMENSION_DEFAULT_EXTREMITES,DIMENSION_DEFAULT_EXTREMITES)); + + EbliWidgetCreatorConnectionWidget.repositionnerConteneurAvecExtremites(conteneurFleche_, connectionHead_, connectionTail_); + //conteneurFleche_.setPreferredLocation(new Point((locationHeadY+locationHeadX-DIMENSION_DEFAULT_EXTREMITES)/2,(locationHeadY+locationHeadX-DIMENSION_DEFAULT_EXTREMITES)/2)); + + _scene.getVisu().addChild(connectionHead_); + _scene.getVisu().addChild(connectionTail_); + //-- creation de la connection --// - connection_ = new ConnectionWidget (_scene); - connection_.setSourceAnchor(AnchorFactory.createCircularAnchor (connection1_, 32)); - connection_.setTargetAnchor(AnchorFactory.createCircularAnchor (connection2_, 32)); + + connection_.setSourceAnchor(AnchorFactory.createCircularAnchor (connectionHead_, 32)); + connection_.setTargetAnchor(AnchorFactory.createCircularAnchor (connectionTail_, 32)); connection_.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED); - layoutConteneur_ = new LayerWidget (_scene); + + _scene.addChild(layoutConteneur_); + -// layoutConteneur_= new LayerWidget(_scene); -// conteneurFleche_.addChild(layoutConteneur_ ); layoutConteneur_.addChild(connection_); - return null; + return conteneurFleche_; } - public EbliNode duplicate(EbliNode adupliquer) { - // TODO Auto-generated method stub - return null; + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + final EbliNode duplique = new EbliNodeDefault(); + + + Point positionExtrem1=connectionHead_.getLocation(); + if( positionExtrem1==null) + positionExtrem1=connectionHead_.getPreferredLocation(); + Point positionExtrem2=connectionTail_.getLocation(); + if( positionExtrem2==null) + positionExtrem2=connectionTail_.getPreferredLocation(); + positionExtrem1.translate(50,50); + positionExtrem2.translate(50,50); + + //-- duplication avec les position recopi\xE9es --// + duplique.setCreator(new EbliWidgetCreatorConnectionWidget(positionExtrem1,positionExtrem2)); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position +// final Point nouvellePosition = new Point(getWidget().getLocation().x, (getWidget().getLocation().y + getWidget() +// .getClientArea().height)); +// duplique.setPreferedLocation(nouvellePosition); + return duplique; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -79,9 +79,11 @@ if (_column == 0) { return getUserObject(); } if (_column == 1) { return ((EbliNodeDefault) getUserObject()).getTitle(); } if (_column == 2) return Boolean.valueOf(((EbliNodeDefault) getUserObject()).getWidget().isVisible()); + + EbliNodeDefault node=(EbliNodeDefault) getUserObject(); + EbliWidget widget=node.getWidget(); + return Boolean.valueOf(widget.getController().isBlocked); - return Boolean.valueOf(((EbliNodeDefault) getUserObject()).getWidget().getController().isBlocked); - } @Override Added: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/Serial.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/Serial.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/Serial.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -0,0 +1,209 @@ +package org.fudaa.ebli.all; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectStreamClass; +import java.io.Serializable; + +//TODO RENDRE Serializable les classes ci-dessous +//TODO ajouter la m\xE9thode equals permettant de comparer les champs des classes +public class Serial { + + public static abstract class AbstractClient implements Serializable{ + String nom = "Test"; + + private static final long serialVersionUID = 1000000; + + public AbstractClient() { + + } + + /** + * @return the nom + */ + protected String getNom() { + return nom; + } + + /** + * @param nom the nom to set + */ + protected void setNom(String nom) { + this.nom = nom; + } + + @Override + public String toString() { + return getClass().getName() + " ,nom=" + nom; + } + + + public boolean equals(Object obj) { + if(! (obj instanceof AbstractClient)) + return false; + + AbstractClient cli=(AbstractClient) obj; + if(nom!=null ) + return nom.equals(cli.nom) ; + return false; + + } + + + + } + + public static class Client extends AbstractClient { + /** + * + */ + private static final long serialVersionUID = 1000001; + String pays = "France"; + + public Client() { + + } + + /** + * @return the age + */ + protected String getPays() { + return pays; + } + + /** + * @param pays the age to set + */ + protected void setPays(String pays) { + this.pays = pays; + } + + @Override + public String toString() { + return super.toString() + " ,pays=" + pays; + } + + + public boolean equals(Object obj) { + if((obj == null) || (obj.getClass() != this.getClass())) + return false; + + Client cli=(Client) obj; + if(nom!=null && pays!=null) + return super.equals(obj) && pays.equals(cli.pays); + return false; + + } + + + } + + public static class ClientFrancais extends Client { + /** + * + */ + private static final long serialVersionUID = 1000002; + int codePostal = 74000; + + public ClientFrancais() { + + } + + /** + * @return the codePostal + */ + protected int getCodePostal() { + return codePostal; + } + + /** + * @param codePostal the codePostal to set + */ + protected void setCodePostal(int codePostal) { + this.codePostal = codePostal; + } + + /** + * + */ + @Override + public String toString() { + return super.toString() + " ,codePostal=" + codePostal; + } + + public boolean equals(Object obj) { + if(super.equals(obj)){ + if(! (obj instanceof ClientFrancais)) + return false; + return codePostal==((ClientFrancais) obj).codePostal; + + + } + return false; + + } + } + + public static void main(String[] args) { + //XXX Ci dessous, voici un moyen pour serialiser/deserialiser un objet + ObjectOutputStream out = null; + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + ClientFrancais test = new ClientFrancais(); + try { + out = new ObjectOutputStream(outStream); + out.writeObject(test); + } catch (Exception e) { + try { + if (out != null) { + out.close(); + } + //TODO d'apres toi est-ce que la ligne suivante est n\xE9cessaire: + //TODO si non pourquoi + + //-- Adrien: pas besoin car c'est out.close(); qui fait le boulot de lib\xE9rer les ressources. --// + // outStream.close() + } catch (IOException e1) { + e1.printStackTrace(); + } + } + + ObjectInputStream in = null; + try { + in = new ObjectInputStream(new +ByteArrayInputStream(outStream.toByteArray())); + System.err.println(in.readObject()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (in != null) { + in.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + //XXX pour connaitre le SerialVersionUID de de Cient + ObjectStreamClass desc = ObjectStreamClass.lookup(ClientFrancais.class); + if (desc == null) { + System.err.println("la classe n'est pas serializable"); + } else { + System.err.println("le serial UID de Client est " + +desc.getSerialVersionUID()); + + + + } + + ClientFrancais fr = new ClientFrancais(); + Client cl = new Client(); + System.out.println("client est \xE9gale a clientFr " + cl.equals(fr)); + System.out.println("clientFr est \xE9gale a client " + fr.equals(cl)); + + } + + } + + Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -35,6 +35,7 @@ import org.fudaa.ctulu.CtuluResource; import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.pdf.CtuluPanelPdfViewer; +import org.fudaa.dodico.objet.CExec; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.ebli.commun.EbliComponentFactory; @@ -616,6 +617,21 @@ //p.waitFor(); }else { //-- linux power --// + String[] cmd = new String[2]; + cmd[0] = "evince"; + cmd[1] = fichier.getAbsolutePath(); + try{ + final CExec ex = new CExec(); + ex.setCommand(cmd); + ex.setOutStream(System.out); + ex.setErrStream(System.err); + ex.exec(); + } + catch (final Throwable _e1) { + ui_.error(FudaaResource.FUDAA.getString("Impossible d'ouvrir le fichier pdf sous Linux, le visionneur int\xE9gr\xE9 \xE0 Fudaa sera utilis\xE9.")); + this.useOsPdfViewer_.setSelected(false); + openPdfFile(fichier); + } } }else{ Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -337,8 +337,8 @@ nodeFleche.setCreator(new EbliWidgetCreatorConnectionWidget()); - nodeFleche.setPreferedSize(new Dimension(200, 150)); - nodeFleche.setPreferedLocation(new Point(350, 125)); + //nodeFleche.setPreferedSize(new Dimension(200, 150)); + //nodeFleche.setPreferedLocation(new Point(350, 125)); // ajout du node au layout addNode(nodeFleche); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2009-02-19 20:11:45 UTC (rev 4488) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2009-02-20 19:27:45 UTC (rev 4489) @@ -158,8 +158,8 @@ final CtuluFileChooser fileChooser = new CtuluFileChooser(true); fileChooser.setDialogTitle(EbliResource.EBLI.getString("S\xE9lectionnez l'emplacement de votre projet")); fileChooser.setAcceptAllFileFilterUsed(false); - // fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - fileChooser.addChoosableFileFilter(new TrPostFileFilter.DirectoryPOSTFilter()); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + //fileChooser.addChoosableFileFilter(new TrPostFileFilter.DirectoryPOSTFilter()); // -- par defaut on choisis le nom du fichier resultat + .POST --// @@ -195,21 +195,24 @@ if (projet_ != null) { // initialiser le saveas dans le meme rep // fileChooser.setSelectedFile(projet_); } - final int reponse = fileChooser.showSaveDialog(CtuluLibSwing.getFrameAncestor(ui_.getParentComponent())); + File conteneurProjet =null; + + int reponse = fileChooser.showSaveDialog(CtuluLibSwing.getFrameAncestor(ui_.getParentComponent())); if (reponse == JFileChooser.APPROVE_OPTION) { - final File conteneurProjet = fileChooser.getSelectedFile(); + conteneurProjet = fileChooser.getSelectedFile(); + }else + return false; + - // -- si le fichier choisit en d\xE9finitif est diff\xE9rent du fichier d\xE9faut et qu'il a \xE9t\xE9t cr\xE9r pour rien, on le - // supprime --// - // FRED ben pourquoi l'avoir cree alors !!!!! - // if (constrcutFileDefaut && fileDefaut != null - // && !fileDefaut.getAbsolutePath().equals(conteneurProjet.getAbsolutePath())) { - // fileDefaut.delete(); - // } + if(!conteneurProjet.isDirectory()){ + + trprojet_.impl_.error(TrResource.getS("Erreur, le fichier choisit doit \xEAtre un r\xE9pertoire")); + return false; + } // -- test si le fichier choisit par l'utilisateur existe djea, si oui. demander confirmation d'ecrasement --// if (conteneurProjet.exists()) { - // Fred il faut traduire + boolean resp = trprojet_.impl_.question("Fichier " + conteneurProjet.getName() + " existant", "Le fichier " + conteneurProjet.getName() + " existe d\xE9j\xE0.\n Voulez-vous l'\xE9craser ?"); if (!resp) return false; @@ -229,16 +232,7 @@ return false; } - } else { - - // -- on supprime le fichier defaut construit pour rien si il a \xE9t\xE9 construit --// - // if (constrcutFileDefaut) { - // fileDefaut.delete(); - // } - - return false; - } - } else if (projet_ != null) + } else if (projet_ != null) // -- on sauvegarde au meme emplacement --// return true; else return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2009-02-19 20:11:56
|
Revision: 4488 http://fudaa.svn.sourceforge.net/fudaa/?rev=4488&view=rev Author: hadouxad Date: 2009-02-19 20:11:45 +0000 (Thu, 19 Feb 2009) Log Message: ----------- # am?\195?\169lioration du viewer pdf + zoom + d?\195?\169tachement fenetre externe # gestion des marqueurs horizontaux # Corrections des bugs fournis # D?\195?\169coupage de la documentation de fudaa post Fichier openoffice refondu et mis a jour: il y a un gros fichier par r?\195?\169pertoire et les sous fichier qui d?\195?\169coupe en partie le doc sont des copier coll?\195?\169 du doc. # Possibilit?\195?\169 d'?\195?\169diter les axes et unit?\195?\169s de la courbe via l'ihm d'?\195?\169dition des graduations Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPanelPdfViewer.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/mesure/EvolutionReguliere.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/ScopeStructure.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGAxeRepereConfigurator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeConfigureTarget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/trace/TraceBox.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeWizardImportScope.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/ScopeCourbeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileCourbe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Donn?\195?\169es g?\195?\169ographiques.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/recherche dans la Vue 2D.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/recherche dans la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Conditions limites.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Donn?\195?\169es brutes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Donn?\195?\169es brutes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Editeur de projet Hydraulique.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Editeur de projet hydraulique.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Exporter les donn?\195?\169es de la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Gestion des courbes 1D (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Les conditions limites.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Les ouvrages.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Les ouvrages.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Limnigrammes.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Limnigrammes.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Param?\195?\168tres g?\195?\169n?\195?\169raux.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Param?\195?\168tres g?\195?\169n?\195?\169raux.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/Superviseur.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/recherche dans la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Conditions initiales.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Conditions initiales.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Conditions limites.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Conditions limites.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Cr?\195?\169ation Projet TELEMAC.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Cr?\195?\169ation Projet TELEMAC.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Editeur de projet hydraulique.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Editeur de projet hydraulique.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Exporter les donn?\195?\169es de la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Gestion des courbes 1D (Commun).pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les conditions limites.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les seuils.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les seuils.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les siphons.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les siphons.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les sources.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Les sources.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Param?\195?\168tres Nodaux.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Param?\195?\168tres Nodaux.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/Superviseur.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/recherche dans la Vue 2D.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/ branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/post/ branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/post/post_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/post/post_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/reflux/ branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/reflux/howTo_reflux_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/reflux/howTo_reflux_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/reflux/reflux_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/reflux/reflux_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/rubar/ branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/rubar/howTo_rubar_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/rubar/howTo_rubar_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/rubar/rubar_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/rubar/rubar_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/telemac/ branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/telemac/howTo_telemac_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/telemac/howTo_telemac_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/telemac/telemac_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf_eng/telemac/telemac_en.pdf branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/reflux_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/howTo_rubar_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/howTo_rubar_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/howTo_rubar_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/howTo_rubar_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/rubar/rubar_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/howTo_telemac_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/howTo_telemac_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/howTo_telemac_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/howTo_telemac_fr.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac_en.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac_en.pdf branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/telemac/telemac_fr.pdf Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions basiques de la Frame.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions du Layout.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Actions sp?\195?\169cifiques de la Frame.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Aide du logiciel.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Animations.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant format SCOP.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant profils spatiaux.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Assistant ?\195?\169volutions temporelles.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Caclul trajectoires.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Bilans.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Calcul Cubatures.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Courbes 1D (Commun).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Donn?\195?\169es g?\195?\169ographiques.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Editeur texte.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation PDF et images.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Exportation SCOP.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de graphes.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Fusion de vues 2d.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Grilles graphe.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Interface POST.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Frames.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Grilles des vues 2d.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les Variables.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les calques.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Les vues 2d (commun).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire construction courbes.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/M?\195?\169moire des vues 2d.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rechercher dans vue 2d.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Rejouer donn?\195?\169es courbes.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-graphes.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Sondes multi-vue 2d.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Suites de calcul.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Superviseur et fichiers r?\195?\169sultats.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Syst?\195?\168me de sauvegarde.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/Utilisation des formules.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_en.odt =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_en.pdf =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.odt =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.pdf =================================================================== (Binary files differ) Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/principales fonctionnalit?\195?\169s.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Donn?\195?\169es g?\195?\169ographiques.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Donn?\195?\169es g?\195?\169ographiques.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Editeur de projet hydraulique.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Exporter les donn?\195?\169es de la Vue 2D.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Gestion des courbes 1D (Commun).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Int?\195?\169gration en temps.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions initiales.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Les conditions limites.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Propri?\195?\169t?\195?\169s de fond.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Superviseur.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Utilisation des formules (Commun).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D (Commun).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.odt =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.pdf =================================================================== (Binary files differ) Property changes on: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/Vue 2D Les outils d'?\195?\169dition.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_en.odt =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_en.pdf =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_fr.odt =================================================================== (Binary files differ) Deleted: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/howTo_reflux_fr.pdf =================================================================== (Binary files differ) Added: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/reflux/recherche dans la Vue 2D.odt =================================================================== (Binary files differ) Property changes o... [truncated message content] |
From: <fa...@us...> - 2009-02-19 14:35:41
|
Revision: 4487 http://fudaa.svn.sourceforge.net/fudaa/?rev=4487&view=rev Author: fargeix Date: 2009-02-19 14:35:34 +0000 (Thu, 19 Feb 2009) Log Message: ----------- Corrections apport?\195?\169es ?\195?\160 Fudaa-Refonde (correction bugs, modif pr?\195?\169cision r?\195?\169sultats, remplacement VAInstall par Izpack cse pbs compatibilit?\195?\169 OS) -> version 5.15f-beta3 (mise en ligne) Modified Paths: -------------- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BVueCalque.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeImplementation.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeMaillage.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/commun/BPaletteCouleurPlage.java Added Paths: ----------- trunk/fudaa_devel/fudaa-distrib/refonde/ trunk/fudaa_devel/fudaa-distrib/refonde/build.xml trunk/fudaa_devel/fudaa-distrib/refonde/exemples/ trunk/fudaa_devel/fudaa-distrib/refonde/exemples/refonde/ trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.bat trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.sh trunk/fudaa_devel/fudaa-distrib/refonde/izpack/ trunk/fudaa_devel/fudaa-distrib/refonde/izpack/Unix_shortcutSpec.xml trunk/fudaa_devel/fudaa-distrib/refonde/izpack/izpack_fudaa_refonde.xml trunk/fudaa_devel/fudaa-distrib/refonde/izpack/shortcutSpec.xml trunk/fudaa_devel/fudaa-distrib/refonde/manuels/ trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/ trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/Utilisation module seiche.doc trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5-instal.doc trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5.doc trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/index.html trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/mailleur-longueur_Onde.doc trunk/fudaa_devel/fudaa-distrib/refonde/visuel/ trunk/fudaa_devel/fudaa-distrib/refonde/visuel/fudaa-refonde.ico trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-banner.gif trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-logo.gif Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java 2009-02-19 13:16:03 UTC (rev 4486) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java 2009-02-19 14:35:34 UTC (rev 4487) @@ -411,14 +411,14 @@ } final BCalque parent = (BCalque) _e.getContainer(); if (parent != null) { - final Integer integer = ((Integer) c.getClientProperty("oldIndice")); +/* final Integer integer = ((Integer) c.getClientProperty("oldIndice")); if (integer == null) { - refresh(); - } else { +*/ refresh(); +/* } else { fireTreeModelEventRemoved(new TreeModelEvent(this, new TreePath(getPath(parent)), new int[] { integer .intValue() }, new Object[] { c })); } - setSelectionCalque(parent); +*/ setSelectionCalque(parent); } fireObservableChanged("removed"); } Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BVueCalque.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BVueCalque.java 2009-02-19 13:16:03 UTC (rev 4486) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BVueCalque.java 2009-02-19 14:35:34 UTC (rev 4487) @@ -618,6 +618,9 @@ * @param _y le y du popup menu */ public void popMenu(final int _x, final int _y) { + if (listener_ == null) { + return; + } final JPopupMenu menu = listener_.getCmdsContextuelles(); if (menu == null) { return; Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeImplementation.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeImplementation.java 2009-02-19 13:16:03 UTC (rev 4486) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeImplementation.java 2009-02-19 14:35:34 UTC (rev 4487) @@ -89,10 +89,10 @@ new BuInformationsSoftware(); static { isRefonde_.name= "Refonde"; - isRefonde_.version= "5.15e"; - isRefonde_.date= "26-Jan-2005"; + isRefonde_.version= "5.15f-beta3"; + isRefonde_.date= "18-Fev-2009"; isRefonde_.rights= "1998-2000 GHN & CETMEF\n2000-2005 DeltaCAD & CETMEF"; - isRefonde_.contact= "pie...@eq..."; + isRefonde_.contact= "pie...@de..."; isRefonde_.license= "GPL2"; isRefonde_.logo= RefondeResource.REFONDE.getIcon("refonde-logo"); isRefonde_.banner= RefondeResource.REFONDE.getIcon("refonde-banner"); Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeMaillage.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeMaillage.java 2009-02-19 13:16:03 UTC (rev 4486) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeMaillage.java 2009-02-19 14:35:34 UTC (rev 4487) @@ -17,6 +17,7 @@ import java.io.Reader; import java.io.StreamTokenizer; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.Hashtable; import java.util.List; @@ -92,17 +93,16 @@ //System.err.println("inutile ??"); return _mails[0]; } - HashSet hnds= new HashSet(); - HashSet hels= new HashSet(); + HashSet<GrNoeud> hnds= new HashSet<GrNoeud>(); + HashSet<GrElement> hels= new HashSet<GrElement>(); GrNoeud[] nds; GrElement[] els; for (int i= 0; i < _mails.length; i++) { + hnds.addAll(Arrays.asList(_mails[i].noeuds())); + hels.addAll(Arrays.asList(_mails[i].elements())); //fred : ajout d'une methode pour optimiser ce passer -// hnds.addAll(Arrays.asList(_mails[i].noeuds())); -// hels.addAll(Arrays.asList(_mails[i].elements())); - //nouvelle version - _mails[i].ajouteTousLesElements(hels); - _mails[i].ajouteTousLesNoeuds(hnds); +// _mails[i].ajouteTousLesElements(hels); +// _mails[i].ajouteTousLesNoeuds(hnds); } nds= new GrNoeud[hnds.size()]; hnds.toArray(nds); Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/commun/BPaletteCouleurPlage.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/commun/BPaletteCouleurPlage.java 2009-02-19 13:16:03 UTC (rev 4486) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/commun/BPaletteCouleurPlage.java 2009-02-19 14:35:34 UTC (rev 4487) @@ -315,8 +315,8 @@ */ public void ajusteLegendes() { NumberFormat nf= NumberFormat.getInstance(Locale.US); - nf.setMaximumFractionDigits(2); - nf.setMinimumFractionDigits(2); + nf.setMaximumFractionDigits(3); + nf.setMinimumFractionDigits(3); String lg; for (int i= 0; i < plages_.length; i++) { if (plages_[i].min == Double.POSITIVE_INFINITY) Added: trunk/fudaa_devel/fudaa-distrib/refonde/build.xml =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/build.xml (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/build.xml 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="ISO-8859-15"?> +<!-- +! @creation 2009-1-22 +! @modification $Date: 2009-1-22 12:00:00 $ +! @license GNU General Public License 2 +! @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne +! @version $Id: build.xml,v 1.2 2008-11-28 12:00:00 fargeix Exp $ +! @author Mederic FARGEIX +! +! build permettant de construire le jar +--> +<project name="refonde" default="deploy" basedir="."> + <import file="../ant-deploy.xml" /> + <taskdef name="izpack" classpath="../commun/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" /> + <property name="this.main.class" value="Refonde" /> + <target name="createJar" depends=".testCheminGenJar" description="cree fudaa_refonde.jar"> + <mkdir dir="${this.jar.dir}" /> + <delete file="${this.jar.file}" /> + <genjar jarfile="${this.jar.file}"> + <manifest> + <attribute name="Main-Class" value="org.fudaa.fudaa.refonde.Refonde" /> + </manifest> + <classpath path="${fudaaDist.classpath}" /> + <class name="org.fudaa.fudaa.refonde.Refonde" /> + <library jar="${ctulu.lib.dir}/expr.jar" /> + <library jar="${ctulu.lib.dir}/jsci.jar" /> + <library jar="${ctulu.lib.dir}/koml.jar" /> + <library jar="${ctulu.lib.dir}/trove.jar" /> + <library jar="${ctulu.lib.dir}/vrml97.jar" /> + <class> + <fileset dir="${fudaa.dist.classes.dir}"> + <include name="org/fudaa/dodico/**/*.class" /> + <include name="org/fudaa/fudaa/refonde/**/*.class" /> + </fileset> + </class> + <classfilter> + <exclude name="org.fudaa.dodico.corba." /> + <exclude name="org.fudaa.dodico." /> + <include name="org.fudaa.dodico.corba.base." /> + <include name="org.fudaa.dodico.corba.calcul." /> + <include name="org.fudaa.dodico.calcul." /> + <include name="org.fudaa.dodico.corba.evenement." /> + <include name="org.fudaa.dodico.evenement." /> + <include name="org.fudaa.dodico.corba.association." /> + <include name="org.fudaa.dodico.association." /> + <include name="org.fudaa.dodico.boony." /> + <include name="org.fudaa.dodico.corba.usine." /> + <include name="org.fudaa.dodico.usine." /> + <include name="org.fudaa.dodico.corba.objet." /> + <include name="org.fudaa.dodico.objet." /> + <include name="org.fudaa.dodico.fortran." /> + <include name="org.fudaa.dodico.commun." /> + <include name="org.fudaa.dodico.corba.lido." /> + <include name="org.fudaa.dodico.lido." /> + <include name="org.fudaa.dodico.corba.hydraulique1d." /> + <include name="org.fudaa.dodico.hydraulique1d." /> + <include name="org.fudaa.dodico.corba.refonde." /> + <include name="org.fudaa.dodico.refonde." /> + </classfilter> + <resource> + <fileset dir="${fudaa.dist.classes.dir}"> + <patternset refid="ressources.fic" /> + <include name="com/memoire/bu/" /> + <include name="com/memoire/dnd/" /> + <include name="com/memoire/dja/" /> + <include name="org/fudaa/dodico/vag/" /> + <include name="org/fudaa/dodico/usine/" /> + <include name="org/fudaa/dodico/boony/" /> + <include name="org/fudaa/dodico/commun/" /> + <include name="org/fudaa/dodico/hydraulique1d/" /> + <include name="org/fudaa/dodico/refonde/" /> + <include name="org/fudaa/ebli/ressource/" /> + <include name="org/fudaa/ebli/calque/" /> + <include name="org/fudaa/fudaa/commun/" /> + <include name="org/fudaa/fudaa/ressource/" /> + <include name="org/fudaa/fudaa/refonde/" /> + <include name="ghm/followgui/" /> + <include name="com/hexidec/ekit/" /> + </fileset> + </resource> + </genjar> + </target> + <target name="createInstaller" description="cree l'installeur Fudaa-Refonde"> + <izpack input="izpack/izpack_fudaa_refonde.xml" output="../../../distrib/build/jar/refonde/Fudaa_Refonde_Install.jar" basedir="." /> + </target> +</project> \ No newline at end of file Added: trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.bat =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.bat (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.bat 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,6 @@ +echo off +cls +echo Execution de Fudaa-Refonde en cours... +java.exe -Xmx512m -jar fudaa-refonde.jar "--no_corba" +cls +echo Fin d'execution de Fudaa-Refonde Added: trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.sh =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.sh (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.sh 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,4 @@ +#!/bin/sh +### Launch Script for Fudaa-Refonde + +java -Xmx512m -jar ./fudaa-refonde.jar "--no_corba" Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/fudaa-refonde.sh ___________________________________________________________________ Added: svn:executable + * Added: trunk/fudaa_devel/fudaa-distrib/refonde/izpack/Unix_shortcutSpec.xml =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/izpack/Unix_shortcutSpec.xml (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/izpack/Unix_shortcutSpec.xml 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<shortcuts> + <programGroup defaultName="Fudaa-Refonde" location="applications"/> + <shortcut + name="Lancer Fudaa-Refonde" + programGroup="yes" + desktop="yes" + applications="no" + startMenu="no" + startup="no" + target="$JAVA_HOME/bin/java" + commandLine="-DINSTALLDIR=$INSTALL_PATH -Xmx512m -jar "$INSTALL_PATH/fudaa-refonde.jar" "--no_corba" " + initialState="noShow" + iconFile="$INSTALL_PATH/fudaa-refonde.ico" + workingDirectory="$INSTALL_PATH" + type="Application" + encoding="UTF-8" + description="Lance le logiciel Fudaa-Refonde"> + <createForPack name="Fudaa-Refonde"/> + </shortcut> + + <shortcut + name="Supprimer Fudaa-Refonde" + programGroup="yes" + desktop="yes" + applications="no" + startMenu="no" + startup="no" + target="$JAVA_HOME/bin/java" + commandLine="-jar "$INSTALL_PATH/Uninstaller/uninstaller.jar"" + initialState="noShow" + iconFile="trashcan_full" + iconIndex="0" + workingDirectory="" + type="Application" + encoding="UTF-8" + description="Supprime le logiciel Fudaa-Refonde"> + <createForPack name="Fudaa-Refonde"/> + </shortcut> + +</shortcuts> \ No newline at end of file Added: trunk/fudaa_devel/fudaa-distrib/refonde/izpack/izpack_fudaa_refonde.xml =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/izpack/izpack_fudaa_refonde.xml (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/izpack/izpack_fudaa_refonde.xml 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> + +<!-- + A sample installation file. + Use it as a base for your own installers :-) + + To compile it : + - go in the bin directory where you installed IzPack + - call "compile ../sample/install.xml -b ../sample" +--> + +<installation version="1.0"> + + <!-- + The info section. + The meaning of the tags should be natural ... + --> + <info> + <appname>Fudaa-Refonde</appname> + <appversion>5.15f-beta3</appversion> + <authors> + <author name="Bertrand MARCHAND" email="de...@fu..."/> + </authors> + <url>http://www.utc.fr/fudaa/refonde/</url> + </info> + + <!-- + The gui preferences indication. + Sets the installer window to 640x480. It will not be able to change the size. + --> + <guiprefs width="800" height="520" resizable="no"/> + + <variables> + <variable name="$DesktopShortcutCheckboxEnabled" value="true"/> + </variables> + + <!-- + The locale section. + Asks here to include the English and French langpacks. + --> + <locale> + <langpack iso3="fra"/> + </locale> + + <!-- + The resources section. + The ids must be these ones if you want to use the LicencePanel and/or the InfoPanel. + --> + <resources> + <res id="LicencePanel.licence" src="../commun/licence.txt"/> + <res id="shortcutSpec.xml" src="izpack/shortcutSpec.xml"/> + <res id="Unix_shortcutSpec.xml" src="izpack/Unix_shortcutSpec.xml"/> + <res src="visuel/refonde-banner.gif" id="Installer.image.0"/> + </resources> + + <!-- + The panels section. + We indicate here which panels we want to use. The order will be respected. + --> + <panels> + <panel classname="HelloPanel" id="hellopanel"/> + <panel classname="LicencePanel" id="licensepanel"/> + <panel classname="TargetPanel" id="targetpanel"/> + <panel classname="PacksPanel" id="packspanel"/> + <panel classname="InstallPanel" id="installpanel"/> + <panel classname="ShortcutPanel" id="shortcutpanel"/> + <panel classname="FinishPanel" id="finishpanel"/> + </panels> + + <!-- + The packs section. + We specify here our packs. + --> + + <packs> + <pack name="Fudaa-Refonde" required="yes"> + <description>Installe tous les composants du logiciel Fudaa-Refonde</description> + <file src="../commun/licence.txt" targetdir="$INSTALL_PATH"/> + <file src="fudaa-refonde.bat" targetdir="$INSTALL_PATH"/> + <file src="fudaa-refonde.sh" targetdir="$INSTALL_PATH"/> + <file src="visuel/fudaa-refonde.ico" targetdir="$INSTALL_PATH"/> + <file src="../../../distrib/build/jar/refonde/fudaa-refonde.jar" targetdir="$INSTALL_PATH"/> + <file src="manuels" targetdir="$INSTALL_PATH"/> + <file src="../../fudaa/serveurs/dunes" targetdir="$INSTALL_PATH/serveurs"/> + <file src="../../fudaa/serveurs/olb" targetdir="$INSTALL_PATH/serveurs"/> + <file src="../../fudaa/serveurs/refonde" targetdir="$INSTALL_PATH/serveurs"/> + <executable targetfile="$INSTALL_PATH/serveurs/dunes/dunes-Linux.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/dunes/dunes-SunOS.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/olb/olb-Linux.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/olb/olb-SunOS.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/refonde/refonde1-Linux.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/refonde/refonde2-Linux.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/serveurs/refonde/seiche.x" stage="never"/> + <executable targetfile="$INSTALL_PATH/fudaa-refonde.sh" stage="never"/> + </pack> + <pack name="Exemples de projets Fudaa-Refonde" required="no"> + <description>Installe des exemples de projets pour Fudaa-Refonde</description> + <file src="exemples" targetdir="$INSTALL_PATH"/> + </pack> + </packs> + + <native type="izpack" name="ShellLink.dll"/> + +</installation> Added: trunk/fudaa_devel/fudaa-distrib/refonde/izpack/shortcutSpec.xml =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/izpack/shortcutSpec.xml (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/izpack/shortcutSpec.xml 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,36 @@ +<shortcuts> + <skipIfNotSupported/> + <programGroup defaultName="Applications Fudaa\Refonde" location="applications"/> + <shortcut + name="Lancer Fudaa-Refonde" + programGroup="yes" + desktop="yes" + applications="no" + startMenu="no" + startup="no" + target="$INSTALL_PATH\fudaa-refonde.bat" + commandLine="" + workingDirectory="$INSTALL_PATH" + iconFile="$INSTALL_PATH\fudaa-refonde.ico" + initialState="noShow" + description="Lance le logiciel Fudaa-Refonde"> + <createForPack name="Fudaa-Refonde"/> + </shortcut> + + <shortcut + name="Supprimer Fudaa-Refonde" + programGroup="yes" + desktop="no" + applications="no" + startMenu="no" + startup="no" + target="$INSTALL_PATH\Uninstaller\uninstaller.jar" + commandLine="" + iconFile="%SystemRoot%\system32\SHELL32.dll" + iconIndex="31" + description="Supprime le logiciel Fudaa-Refonde"> + + <createForPack name="Fudaa-Refonde"/> + </shortcut> + +</shortcuts> Added: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/Utilisation module seiche.doc =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/Utilisation module seiche.doc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5-instal.doc =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5-instal.doc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5.doc =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/fudaa-refonde5.doc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/index.html =================================================================== --- trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/index.html (rev 0) +++ trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/index.html 2009-02-19 14:35:34 UTC (rev 4487) @@ -0,0 +1,17 @@ +<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> +<html> +<head> + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + + <meta name="Author" content="Bertrand Marchand"> + + <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]"> + <title>Documentation Prefonde</title> +</head> + <body> + <b><font color="#000000">La documentation d'utilisation se trouve sur le +répertoire d'installation du logiciel sous le nom "fudaa-refonde5.doc".</font></b> + +</body> +</html> Added: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/mailleur-longueur_Onde.doc =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/manuels/refonde/mailleur-longueur_Onde.doc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/fudaa-refonde.ico =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/fudaa-refonde.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-banner.gif =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-banner.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-logo.gif =================================================================== (Binary files differ) Property changes on: trunk/fudaa_devel/fudaa-distrib/refonde/visuel/refonde-logo.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-19 13:16:13
|
Revision: 4486 http://fudaa.svn.sourceforge.net/fudaa/?rev=4486&view=rev Author: bmarchan Date: 2009-02-19 13:16:03 +0000 (Thu, 19 Feb 2009) Log Message: ----------- Deplacement de fichier de test Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/modeleur/ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/modeleur/TestProfilContainerAdapter.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/testModeleur1d/ Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/modeleur/TestProfilContainerAdapter.java (from rev 4485, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/testModeleur1d/TestProfilContainerAdapter.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/modeleur/TestProfilContainerAdapter.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/modeleur/TestProfilContainerAdapter.java 2009-02-19 13:16:03 UTC (rev 4486) @@ -0,0 +1,776 @@ +/* + * @creation 16 d\xE9c. 2008 + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.modeleur; + +import junit.framework.TestCase; + +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISAttributeInterface; +import org.fudaa.ctulu.gis.GISGeometryFactory; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ebli.calque.ZModeleLigneBrisee; +import org.fudaa.fudaa.modeleur.layer.MdlModel2dProfile; +import org.fudaa.fudaa.modeleur.modeleur1d.controller.BiefImporterFromModels; +import org.fudaa.fudaa.modeleur.modeleur1d.model.BiefContainerAdapter; +import org.fudaa.fudaa.modeleur.modeleur1d.model.BiefSet; +import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfilContainerAdapter; +import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfilContainerException; +import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfilContainerListener; + +import com.vividsolutions.jts.geom.Coordinate; + +/** + * Test pour ProfilContainerAdapter. + * @author Emmanuel MARTIN + * @version $Id$ + */ +public class TestProfilContainerAdapter extends TestCase { + + /** Tolerance pour les comparaisons de doubles. */ + private double tolerance=0.000001; + private BiefContainerAdapter biefContainer; + private ProfilContainerAdapter geomAdapter_; + private MdlModel2dProfile zone0_; + private MdlModel2dProfile zone1_; + private MdlModel2dProfile zone3_; + private MdlModel2dProfile zone4_; + private MdlModel2dProfile zone5_; + private MdlModel2dProfile zone6_; + + /* + * (non-Javadoc) + * + * @see junit.framework.TestCase#setUp() + */ + @Override + protected void setUp() throws Exception { + super.setUp(); + // Zone6_ \\ + // Attribut z non d\xE9fini + zone6_=new MdlModel2dProfile(null, null); + zone6_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone6_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(-10, -20, -20), + new Coordinate(50, 10, 10)}), null, null); + // Zone0_ \\ + // Quelconque + zone0_=new MdlModel2dProfile(null, null); + zone0_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone0_.getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY); + zone0_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(-10, -20, -20), + new Coordinate(50, 10, 10)}), null, null); + // Zone1_ \\ + // Quelconque + zone1_=new MdlModel2dProfile(null, null); + zone1_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone1_.getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY); + zone1_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory() + .create( + new Coordinate[]{new Coordinate(8, 6, 0), new Coordinate(5.052590034554651, 6.559262456806686, 0), + new Coordinate(3, 2, 0)}), null, null); + // Zone3_ \\ + // Quelconque + zone3_=new MdlModel2dProfile(null, null); + zone3_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone3_.getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY); + zone3_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(-10, -20, -20), new Coordinate(50, 10, 10), + new Coordinate(30, 5, 5), new Coordinate(10, 0, 0)}), null, null); + zone3_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(5, 0, 0), new Coordinate(-15, -20, -20), new Coordinate(55, 10, 10), + new Coordinate(35, 5, -20), new Coordinate(15, 0, -20)}), null, null); + // zone4_ \\ + zone4_=new MdlModel2dProfile(null, null); + zone4_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone4_.getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY); + // 0 : Points confondus + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(-10, -20, -20), new Coordinate(-10, -20, -20), + new Coordinate(-20, -40, -40), new Coordinate(-30, -60, -60)}), null, null); + // 1 : nb ruptures > 2 + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(10, 20, 5), new Coordinate(11, 100, 8), new Coordinate(41, 5, 9), new Coordinate(41, 0, 8)}), null, null); + // 2 : nb ruptures = 1 + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(11, 100, 8), new Coordinate(12, 101, 10), new Coordinate(13, 102, -5)}), null, null); + // 3 : nb ruptures = 0 + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(10, 20, 5), new Coordinate(20, 40, 8)}), null, null); + // 4 : nb ruptures = 2 + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(10, 10, 0), new Coordinate(20, 10, 5), new Coordinate(20, 20, 8), new Coordinate(25, 20, 8), new Coordinate(30, 20, 8)}), null, null); + // 5 : axes crois\xE9s + zone4_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(10, 10, 0), new Coordinate(20, 10, 5), new Coordinate(20, 20, 8), new Coordinate(10, 5, 8)}), null, null); + // Zone5_ \\ + zone5_=new MdlModel2dProfile(null, null); + zone5_.getGeomData().setAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY}, null); + zone5_.getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY); + // 0 : 2 points align\xE9s (cas g\xE9n\xE9ral) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(10, 5, -4)}), null, null); + // 1 : 2 points align\xE9s parall\xE8le \xE0 l'axe des X + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(5, 10, 3), new Coordinate(20, 10, -7)}), null, null); + // 2 : 2 points align\xE9s parall\xE8le \xE0 l'axe des Y + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(5, 0, 0), new Coordinate(5, 10, 88)}), null, null); + // 3 : 3 points align\xE9s (cas g\xE9n\xE9ral) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, -2), new Coordinate(11, 5, 7), new Coordinate(16.5, 7.5, 0)}), null, null); + // 4 : 3 points align\xE9s parall\xE8le \xE0 l'axe des X + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(-5, 10, 3), new Coordinate(20, 10, 6), new Coordinate(20.4, 10, 2)}), null, null); + // 5 : 3 points align\xE9s parall\xE8le \xE0 l'axe des Y + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(-5, 10, 8), new Coordinate(-5, -2, -2), new Coordinate(-5, -50, 50)}), null, null); + // 6 : 4 points align\xE9s (cas g\xE9n\xE9ral) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(1, 1, 0), new Coordinate(2, 1, 3), new Coordinate(8, 5, -9), new Coordinate(40, 25, 99)}), null, null); + // 7 : 4 points align\xE9s parall\xE8le \xE0 l'axe des X + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(1, 2.56, -2), new Coordinate(10, 2.56, 0), new Coordinate(99, 2.56, 84), new Coordinate(100.5, 2.56, 100)}), null, null); + // 8 : 4 points align\xE9s parall\xE8le \xE0 l'axe des Y + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(-9.1, 88, 0), new Coordinate(-9.1, 50, 8), new Coordinate(-9.1, 0, -87), new Coordinate(-9.1, -10, -10)}), null, null); + // 9 : 3 points avec un point de rupture + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(10, 5, 2), new Coordinate(10, -5, 9)}), null, null); + // 10 : 4 points avec un point de rupture (deux points sur le premier axe) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, -2), new Coordinate(11, 5, 7), new Coordinate(16.5, 7.5, 0), new Coordinate(50, 60, 70)}), null, null); + // 11 : 5 points avec un point de rupture (deux points sur chaque axe) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, -2), new Coordinate(11, 5, 7), new Coordinate(16.5, 7.5, 0), new Coordinate(33, 3.75, 9), new Coordinate(11, 1.25, 9)}), null, null); + // 12 : 4 points avec deux points de ruptures + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(10, 5, 2), new Coordinate(10, -5, 9), new Coordinate(20, 0, 0)}), null, null); + // 13 : 5 points avec deux points de ruptures (deux points sur le premier axe) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(5, 2.5, 88), new Coordinate(10, 5, 2), new Coordinate(10, -5, 9), new Coordinate(20, 0, 0)}), null, null); + // 14 : 6 points avec deux points de ruptures (deux points sur les deux premiers axes) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(5, 2.5, 88), new Coordinate(10, 5, 2), new Coordinate(10, 0, 44), new Coordinate(10, -5, 9), new Coordinate(20, 0, 0)}), null, null); + // 15 : 7 points avec deux points de ruptures (deux points sur chacun des axes) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(5, 2.5, 88), new Coordinate(10, 5, 2), new Coordinate(10, 0, 44), new Coordinate(10, -5, 9), new Coordinate(15, -2.5, 2), new Coordinate(20, 0, 0)}), null, null); + // 16 : 10 points avec deux points de ruptures (trois points sur chacun des axes) + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(0, 0, 0), new Coordinate(2.5, 1.25, 44), new Coordinate(5, 2.5, 88), new Coordinate(10, 5, 2), new Coordinate(10, 0, 44), new Coordinate(10, -2, 0), new Coordinate(10, -5, 9), new Coordinate(10/2., -5/2., 2), new Coordinate(10/4., -5/4., 0), new Coordinate(10/8., -5/8., 0)}), null, null); + // 17 : 3 points avec un point de rupture et le premier et le dernier points sont sur le m\xEAme axe des y + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(5, 5, -9), new Coordinate(10, 10, 0), new Coordinate(5, 20, 0)}), null, null); + // 18 : 3 points avec un point de rupture et le premier et le dernier points sont sur le m\xEAme axe des x + zone5_.getGeomData().addPolyligne(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create( + new Coordinate[]{new Coordinate(5, 5, -9), new Coordinate(10, 10, 0), new Coordinate(20, 5, 0)}), null, null); + + BiefSet biefSet_=new BiefSet(); + biefSet_.addBief("zone0_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone0_}).getBief(), null); + biefSet_.addBief("zone1_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone1_}).getBief(), null); + biefSet_.addBief("zone3_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone3_}).getBief(), null); + biefSet_.addBief("zone4_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone4_}).getBief(), null); + biefSet_.addBief("zone5_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone5_}).getBief(), null); + biefSet_.addBief("zone6_", new BiefImporterFromModels(new ZModeleLigneBrisee[]{zone6_}).getBief(), null); + biefContainer=new BiefContainerAdapter(biefSet_); + biefContainer.setSelectedBief("zone0_"); + geomAdapter_=new ProfilContainerAdapter(biefContainer); + } + + public void testProfilContainerAdapter() throws IllegalArgumentException, ProfilContainerException { + // Points confondus + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(0); + fail(); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) {} + // nb points > 2 + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(1); + fail(); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) {} + // nb ruptures = 1 + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(2); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) { + fail(); + } + // nb ruptures = 0 + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(3); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) { + fail(); + } + // nb ruptures = 2 + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(4); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) { + fail(); + } + // axes crois\xE9s + try { + biefContainer.setSelectedBief("zone4_"); + geomAdapter_.setSelectedProfil(5); + fail(); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) { + } + // aguments invalide + try { + geomAdapter_.setSelectedProfil(-2); + fail(); + } + catch (IllegalArgumentException _exc) { + } + catch (ProfilContainerException _exc) { + fail(); + } + // aguments invalide + try { + geomAdapter_.setSelectedProfil(100); + fail(); + } + catch (IllegalArgumentException _exc) { + } + catch (ProfilContainerException _exc) { + fail(); + } + // aguments invalide + try { + geomAdapter_.setSelectedProfil(zone4_.getGeomData().getNbGeometries()); + fail(); + } + catch (IllegalArgumentException _exc) { + } + catch (ProfilContainerException _exc) { + fail(); + } + // aguments invalide + try { + geomAdapter_.setSelectedProfil(zone4_.getGeomData().getNbGeometries()+1); + fail(); + } + catch (IllegalArgumentException _exc) { + } + catch (ProfilContainerException _exc) { + fail(); + } + // aguments valide + try { + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(zone3_.getGeomData().getNbGeometries()-1); + } + catch (IllegalArgumentException _exc) { + fail(); + } + catch (ProfilContainerException _exc) { + fail(); + } + } + + public void testGetGISZoneCollection() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(zone0_.getGeomData(), geomAdapter_.getGISZoneCollection()); + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(zone1_.getGeomData(), geomAdapter_.getGISZoneCollection()); + } + + public void testGetIdxGeom() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getIdxGeom()); + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getIdxGeom()); + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(1); + assertEquals(1, geomAdapter_.getIdxGeom()); + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(zone0_.getGeomData().getNbGeometries()-1); + assertEquals(zone0_.getGeomData().getNbGeometries()-1, geomAdapter_.getIdxGeom()); + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + assertEquals(-1, geomAdapter_.getIdxGeom()); + } + + public void testGetNbPoint() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(3, geomAdapter_.getNbPoint()); + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(3, geomAdapter_.getNbPoint()); + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(5, geomAdapter_.getNbPoint()); + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(1); + assertEquals(5, geomAdapter_.getNbPoint()); + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + assertEquals(0, geomAdapter_.getNbPoint()); + } + + public void testGetCurv() throws IllegalArgumentException, ProfilContainerException { + // Cas limits + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + try { + geomAdapter_.getCurv(0); + fail(); + } + catch (IllegalArgumentException _exc) {} + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + try { + geomAdapter_.getCurv(-1); + fail(); + } + catch (IllegalArgumentException _exc) {} + try { + geomAdapter_.getCurv(-5); + fail(); + } + catch (IllegalArgumentException _exc) {} + try { + geomAdapter_.getCurv(geomAdapter_.getNbPoint()); + fail(); + } + catch (IllegalArgumentException _exc) {} + // Cas g\xE9n\xE9rals + assertEquals(0, geomAdapter_.getCurv(0), tolerance); + assertEquals(Math.sqrt(10*10+20*20), geomAdapter_.getCurv(1), tolerance); + assertEquals(Math.sqrt(10*10+20*20)+Math.sqrt((50+10)*(50+10)+(10+20)*(10+20)), geomAdapter_.getCurv(2), tolerance); + } + + public void testGetZ() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getZ(0), tolerance); + assertEquals(-20, geomAdapter_.getZ(1), tolerance); + assertEquals(10, geomAdapter_.getZ(2), tolerance); + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + try { + geomAdapter_.getZ(0); + fail(); + } + catch(IllegalArgumentException ex){} + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + try { + geomAdapter_.getZ(-1); + fail(); + } + catch (IllegalArgumentException _exc) { + } + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + try { + geomAdapter_.getZ(100); + fail(); + } + catch (IllegalArgumentException _exc) { + } + } + + public void testSetCurv() throws Exception { + // Cas limits + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + try{ + geomAdapter_.setCurv(0, 0, null); + fail(); + } + catch(IllegalArgumentException _exc) {} + try{ + geomAdapter_.setCurv(-1, 0, null); + fail(); + } + catch(IllegalArgumentException _exc) {} + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + try{ + geomAdapter_.setCurv(-1, 0, null); + fail(); + } + catch(IllegalArgumentException _exc) {} + try{ + geomAdapter_.setCurv(zone1_.getGeomData().getGeometry(0).getNumPoints(), 0, null); + fail(); + } + catch(IllegalArgumentException _exc) {} + try{ + geomAdapter_.setCurv(zone1_.getGeomData().getGeometry(0).getNumPoints()+1, 0, null); + fail(); + } + catch(IllegalArgumentException _exc) {} + // Une abcisse curviligne peut \xEAtre donn\xE9 pour le premier point, seulement pour lui + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(0); + try{ + geomAdapter_.setCurv(0, -1, null); + } + catch(Exception exc){ + fail(); + } + try{ + geomAdapter_.setCurv(1, -1, null); + fail(); + } + catch(ProfilContainerException exc){} + try{ + geomAdapter_.setCurv(geomAdapter_.getNbPoint()-1, -1, null); + fail(); + } + catch(ProfilContainerException exc){} + setUp(); + // Test sur le d\xE9placement d'un point au del\xE0 d'un autre ou au niveau d'un autre + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(0); + try{ + geomAdapter_.setCurv(0, Math.sqrt(10*10+5*5)+1, null); + fail(); + } + catch(ProfilContainerException exc){} + try{ + geomAdapter_.setCurv(1, 0, null); + fail(); + } + catch(ProfilContainerException exc){} + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(6); + try{ + geomAdapter_.setCurv(2, geomAdapter_.getCurv(1)-0.1, null); + fail(); + } + catch(ProfilContainerException exc){} + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(11); + try{ // Tentative de se placer sur un point de rupture + geomAdapter_.setCurv(3, geomAdapter_.getCurv(2), null); + fail(); + } + catch(ProfilContainerException exc){} + try{ // Tentative d'un point de rupture de d\xE9pacer un point adjacent + geomAdapter_.setCurv(2, geomAdapter_.getCurv(3)+1, null); + fail(); + } + catch(ProfilContainerException exc){} + + // D\xE9placement des points extr\xE9mit\xE9s \\ + // Cas g\xE9n\xE9ral, d\xE9placement d\xE9but + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(0); + double curvOld=geomAdapter_.getCurv(1); + geomAdapter_.setCurv(0, Math.sqrt(5*5+2.5*2.5), null); + assertEquals(curvOld-Math.sqrt(5*5+2.5*2.5), geomAdapter_.getCurv(1), tolerance); + assertEquals(5, zone5_.getGeomData().getGeometry(0).getCoordinates()[0].x, tolerance); + assertEquals(2.5, zone5_.getGeomData().getGeometry(0).getCoordinates()[0].y, tolerance); + setUp(); + // Cas g\xE9n\xE9ral, d\xE9placement fin avec point de ruptures + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(16); + curvOld=geomAdapter_.getCurv(9); + geomAdapter_.setCurv(9, geomAdapter_.getCurv(8)+Math.sqrt((10/4.-10/16.)*(10/4.-10/16.)+(-5/4.+5/16.)*(-5/4.+5/16.)), null); + assertEquals(geomAdapter_.getCurv(8)+Math.sqrt((10/4.-10/16.)*(10/4.-10/16.)+(-5/4.+5/16.)*(-5/4.+5/16.)), geomAdapter_.getCurv(9), tolerance); + assertEquals(10/16., zone5_.getGeomData().getGeometry(16).getCoordinates()[9].x, tolerance); + assertEquals(-5/16., zone5_.getGeomData().getGeometry(16).getCoordinates()[9].y, tolerance); + setUp(); + // Cas particulier parall\xE8le \xE0 l'axe des x + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(1); + curvOld=geomAdapter_.getCurv(1); + geomAdapter_.setCurv(0, -5, null); + assertEquals(curvOld+5, geomAdapter_.getCurv(1), tolerance); + assertEquals(0, zone5_.getGeomData().getGeometry(1).getCoordinates()[0].x, tolerance); + assertEquals(10, zone5_.getGeomData().getGeometry(1).getCoordinates()[0].y, tolerance); + setUp(); + // Cas particulier parall\xE8le \xE0 l'axe des y + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(8); + curvOld=geomAdapter_.getCurv(2); + geomAdapter_.setCurv(0, -5, null); + assertEquals(curvOld+5, geomAdapter_.getCurv(2), tolerance); + assertEquals(-9.1, zone5_.getGeomData().getGeometry(8).getCoordinates()[0].x, tolerance); + assertEquals(93, zone5_.getGeomData().getGeometry(8).getCoordinates()[0].y, tolerance); + setUp(); + // D\xE9placement de points non extr\xE9mit\xE9 non de rupture \\ + // Cas g\xE9n\xE9ral : d\xE9placement d'un point au centre ; axe sans point de ruptures et parall\xE8le \xE0 l'axe des x + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(4); + curvOld=geomAdapter_.getCurv(1); + double curvOld2=geomAdapter_.getCurv(2); + geomAdapter_.setCurv(1, geomAdapter_.getCurv(1)-5, null); + assertEquals(curvOld-5, geomAdapter_.getCurv(1), tolerance); + assertEquals(curvOld2, geomAdapter_.getCurv(2), tolerance); + assertEquals(15, zone5_.getGeomData().getGeometry(4).getCoordinates()[1].x, tolerance); + assertEquals(10, zone5_.getGeomData().getGeometry(4).getCoordinates()[1].y, tolerance); + setUp(); + // Cas g\xE9n\xE9ral : d\xE9placement d'un point au centre avec 2 points de ruptures + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(15); + curvOld=geomAdapter_.getCurv(3); + curvOld2=geomAdapter_.getCurv(1); + geomAdapter_.setCurv(3, geomAdapter_.getCurv(3)-2, null); + assertEquals(curvOld-2, geomAdapter_.getCurv(3), tolerance); + assertEquals(curvOld2, geomAdapter_.getCurv(1), tolerance); + assertEquals(10, zone5_.getGeomData().getGeometry(15).getCoordinates()[3].x, tolerance); + assertEquals(2, zone5_.getGeomData().getGeometry(15).getCoordinates()[3].y, tolerance); + setUp(); + + // Cas sp\xE9cial : d\xE9placement d'un point de rupture \\ + // Cas classique : d\xE9placement d'un point de rupture sur un axe en ayant deux et des points un peut partout + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(14); + double[] absCurv=new double[6]; + for(int i=0;i<6;i++) + absCurv[i]=geomAdapter_.getCurv(i); + geomAdapter_.setCurv(2,geomAdapter_.getCurv(2)-2, null); + absCurv[2]=absCurv[2]-2; + // R\xE9instancier un nouvel adapter va verifier si il n'y a pas de nouveaux points de ruptures qui sont apparux ou qu'il y ai pas des axes qui se croisent + try{ + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(14); + } + catch(Exception exc){ + fail(); + } + assertEquals(6, geomAdapter_.getNbPoint()); + // test des nouvelles abs curviligne + for(int i=0;i<6;i++) + assertEquals(absCurv[i], geomAdapter_.getCurv(i), tolerance); + setUp(); + // Test sur les coordonn\xE9es g\xE9n\xE9r\xE9es + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + geomAdapter_.setCurv(1, 5, null); + assertEquals(5.0, geomAdapter_.getCurv(1), tolerance); + Coordinate p=((GISPolyligne)zone1_.getGeomData().getGeometry(0)).getCoordinateSequence().getCoordinate(1); + assertEquals(3.1013705223595296, p.x, tolerance); + assertEquals(4.998286847050588, p.y, tolerance); + } + + public void testSetZ() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + geomAdapter_.setZ(0, 20, null); + assertEquals(20, geomAdapter_.getZ(0), tolerance); + geomAdapter_.setZ(2, -2, null); + assertEquals(-2, geomAdapter_.getZ(2), tolerance); + // Cas limits + try{ + geomAdapter_.setZ(-11, -2, null); + fail(); + }catch(IllegalArgumentException _exc){} + try { + geomAdapter_.setZ(1000, -2, null); + fail(); + } + catch (IllegalArgumentException _exc){} + // Cas limits + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + try { + geomAdapter_.setZ(0, 10, null); + fail(); + } + catch(IllegalArgumentException _exc){} + } + + public void testGetCurvMax() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(Math.sqrt(10*10+20*20)+Math.sqrt((50+10)*(50+10)+(10+20)*(10+20)), geomAdapter_.getCurvMax(), tolerance); + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + assertEquals(0, geomAdapter_.getCurvMax(), tolerance); + } + + public void testGetCurvMin() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getCurvMin(), tolerance); + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + assertEquals(0, geomAdapter_.getCurvMin(), tolerance); + } + + public void testGetZMax() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(10, geomAdapter_.getZMax(), tolerance); + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getZMax(), tolerance); + geomAdapter_.setZ(0, 20, null); + assertEquals(20, geomAdapter_.getZMax(), tolerance); + geomAdapter_.setZ(0, -5, null); + assertEquals(0, geomAdapter_.getZMax(), tolerance); + } + + public void testGetZMin() throws IllegalArgumentException, ProfilContainerException { + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(-20, geomAdapter_.getZMin(), tolerance); + biefContainer.setSelectedBief("zone1_"); + geomAdapter_.setSelectedProfil(0); + assertEquals(0, geomAdapter_.getZMin(), tolerance); + geomAdapter_.setZ(0, -20, null); + assertEquals(-20, geomAdapter_.getZMin(), tolerance); + geomAdapter_.setZ(0, 10, null); + assertEquals(0, geomAdapter_.getZMin(), tolerance); + } + + public void testSetValues() throws IllegalArgumentException, ProfilContainerException { + // Test rapide reprit de setCurv ; les cas sont d\xE9j\xE0 test\xE9 dans setZ et setCurv + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(14); + double[] absCurv=new double[6]; + for(int i=0;i<6;i++) + absCurv[i]=geomAdapter_.getCurv(i); + geomAdapter_.setValues(2,geomAdapter_.getCurv(2)-2, 60, null); + assertEquals(60, geomAdapter_.getZ(2), tolerance); + absCurv[2]=absCurv[2]-2; + // R\xE9instancier un nouvel adapter va verifier si il n'y a pas de nouveaux points de ruptures qui sont apparux ou qu'il y ai pas des axes qui se croisent + try{ + biefContainer.setSelectedBief("zone5_"); + geomAdapter_.setSelectedProfil(14); + } + catch(Exception exc){ + fail(); + } + assertEquals(6, geomAdapter_.getNbPoint()); + // test des nouvelles abs curviligne + for(int i=0;i<6;i++) + assertEquals(absCurv[i], geomAdapter_.getCurv(i), tolerance); + } + + public void testRemove() throws IllegalArgumentException, ProfilContainerException { + // Un cas g\xE9n\xE9ral + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + geomAdapter_.remove(0, null); + assertEquals(2, geomAdapter_.getNbPoint()); + assertEquals(-20, geomAdapter_.getZ(0), tolerance); + assertEquals(0, geomAdapter_.getCurv(0), tolerance); + assertEquals(Math.sqrt((50+10)*(50+10)+(10+20)*(10+20)), geomAdapter_.getCurv(1), tolerance); + // On ne peut pas descendre en dessous de 2 points + try { + geomAdapter_.remove(0, null); + fail(); + } + catch(ProfilContainerException _exc){ + assertEquals(2, geomAdapter_.getNbPoint()); + } + // Cas limits + biefContainer.setSelectedBief(null); + geomAdapter_.setSelectedProfil(-1); + try { + geomAdapter_.remove(0, null); + fail(); + } + catch(IllegalArgumentException _exc){} + // Un cas g\xE9n\xE9ral + biefContainer.setSelectedBief("zone3_"); + geomAdapter_.setSelectedProfil(1); + geomAdapter_.remove(4, null); + geomAdapter_.remove(2, null); + geomAdapter_.remove(1, null); + assertEquals(2, geomAdapter_.getNbPoint()); + assertEquals(0, geomAdapter_.getZ(0), tolerance); + assertEquals(0, geomAdapter_.getCurv(0), tolerance); + assertEquals(-20, geomAdapter_.getZ(1), tolerance); + assertEquals(Math.sqrt((35-5)*(35-5)+5*5), geomAdapter_.getCurv(1), tolerance); + } + + public void testAddProfilContainerListener() throws ProfilContainerException { + // Initialisation du test + class MyProfilContainerListener implements ProfilContainerListener { + public boolean callChanged=false; + public void profilContainerDataModified() {callChanged=true;} + public void profilContainerSelectedChanged(int oldProfil, int newProfil) {} + }; + MyProfilContainerListener listener=new MyProfilContainerListener(); + geomAdapter_.addProfilContainerListener(listener); + // Test dataGeometryChanged + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + geomAdapter_.setZ(0, 10, null); + assertTrue(listener.callChanged); + listener.callChanged=false; + geomAdapter_.setCurv(1, (geomAdapter_.getCurv(2)-geomAdapter_.getCurv(0))/2, null); + assertTrue(listener.callChanged); + listener.callChanged=false; + geomAdapter_.setValues(0, 0, 20, null); + assertTrue(listener.callChanged); + listener.callChanged=false; + try { + geomAdapter_.addProfilContainerListener(null); + fail(); + } + catch (IllegalArgumentException _exc){} + } + + public void testRemoveProfilContainerListener() throws ProfilContainerException { + // Initialisation du test + class MyProfilContainerListener implements ProfilContainerListener { + public boolean callChanged=false; + public void profilContainerDataModified() {callChanged=true;} + public void profilContainerSelectedChanged(int oldProfil, int newProfil) {} + }; + MyProfilContainerListener listener=new MyProfilContainerListener(); + geomAdapter_.addProfilContainerListener(listener); + geomAdapter_.removeProfilContainerListener(listener); + // Test dataGeometryChanged + biefContainer.setSelectedBief("zone0_"); + geomAdapter_.setSelectedProfil(0); + geomAdapter_.setZ(0, 10, null); + assertFalse(listener.callChanged); + listener.callChanged=false; + geomAdapter_.setCurv(1, (geomAdapter_.getCurv(2)-geomAdapter_.getCurv(0))/2, null); + assertFalse(listener.callChanged); + listener.callChanged=false; + geomAdapter_.setValues(0, 0, 20, null); + assertFalse(listener.callChanged); + listener.callChanged=false; + try { + geomAdapter_.removeProfilContainerListener(null); + fail(); + } + catch (IllegalArgumentException _exc){} + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-19 09:29:46
|
Revision: 4485 http://fudaa.svn.sourceforge.net/fudaa/?rev=4485&view=rev Author: bmarchan Date: 2009-02-19 09:29:35 +0000 (Thu, 19 Feb 2009) Log Message: ----------- Export vers Rubar : Prise en compte correcte des fichiers de semis. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuFileFilter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMFileFormat.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuFileFilter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuFileFilter.java 2009-02-19 08:32:57 UTC (rev 4484) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuFileFilter.java 2009-02-19 09:29:35 UTC (rev 4485) @@ -48,7 +48,7 @@ filters_ = new Hashtable(_filters.length); for (int i = 0; i < _filters.length; i++) addExtension(_filters[i]); - setDescription(_description); + setShortDescription(_description); } protected String _(String _s) { @@ -118,7 +118,19 @@ return fullDescription_; } - public void setDescription(String _description) { + /** + * Retourne la description, sans les extensions. + * @return La description + */ + public String getShortDescription() { + return description_; + } + + /** + * Definit la description, sans les extensions. + * @param _description La description. + */ + public void setShortDescription(String _description) { description_ = _description; fullDescription_ = null; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMFileFormat.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMFileFormat.java 2009-02-19 08:32:57 UTC (rev 4484) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMFileFormat.java 2009-02-19 09:29:35 UTC (rev 4485) @@ -26,7 +26,7 @@ extensions_ = new String[] { "sem" }; super.description_ = H2dResource.getS("Fichier de semis de points"); super.id_ = "RUBAR_SEM"; - super.nom_ = "Rubar Sem"; + super.nom_ = "Rubar semis"; } public FileReadOperationAbstract createReader() { 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-02-19 08:32:57 UTC (rev 4484) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2009-02-19 09:29:35 UTC (rev 4485) @@ -52,6 +52,8 @@ CtuluUI ui_; BuFileFilter selectedFilter_=null; Map<BuFileFilter, FSigLayerExporter> filter2Exporter_; + /** Le filtre de fichier pour Rubar */ + BuFileFilter fltRubar_; public MdlProjectExportPanel(CtuluUI _ui) { ui_=_ui; @@ -92,12 +94,12 @@ private BuFileFilter[] buildFilter2Export() { final BuFileFilter sx = SinusxFileFormat.getInstance().createFileFilter(); - final BuFileFilter st = RubarStCnFileFormat.createStFilter(); + fltRubar_=new BuFileFilter(new String[]{"cn","st","sem"},"Rubar"); final BuFileFilter dunes= DunesGEOFileFormat.getInstance().createFileFilter(); filter2Exporter_ = new HashMap<BuFileFilter, FSigLayerExporter>(5);// pour l'instant ..... filter2Exporter_.put(sx, new FSigLayerExporter.ToSinusX()); - filter2Exporter_.put(st, new FSigLayerExporter.ToRubar()); + filter2Exporter_.put(fltRubar_, new FSigLayerExporter.ToRubar()); filter2Exporter_.put(dunes, new FSigLayerExporter.ToDunes()); filters_ = new BuFileFilter[filter2Exporter_.size()]; @@ -125,33 +127,43 @@ setErrorText(CtuluLib.getS("Ne mettez pas plusieurs '.' dans le nom.")); return false; } - String result=""; + String s=""; + int nbFiles=0; - if (f.exists()){ - result+=f.getName(); - nbFiles++; - } - String name=CtuluLibFile.getSansExtension(f.getName()); - // Test sur l'existence des fichier. Dans le cas d'un enregistrement en - // rubar, il faut aussi tester avec les extensions .sem et .cn et aussi <nom>_autres.st - if (CtuluLibFile.getExtension(f.getName()).equalsIgnoreCase("st")) { + + // Dans le cas d'un export vers Rubar, il faut aussi tester avec les extensions .sem et .cn et aussi <nom>_autres.st + if (selectedFilter_==fltRubar_) { + String name=CtuluLibFile.getSansExtension(f.getName()); if ((new File(f.getParent()+File.separatorChar+name+".sem")).exists()) { - result+=(result.length()!=0 ? ", ":"")+name+".sem"; + s+=(s.length()!=0 ? ", ":"")+name+".sem"; nbFiles++; } + if ((new File(f.getParent()+File.separatorChar+name+".st")).exists()) { + s+=(s.length()!=0 ? ", ":"")+name+".st"; + nbFiles++; + } if ((new File(f.getParent()+File.separatorChar+name+".cn")).exists()) { - result+=(result.length()!=0 ? ", ":"")+name+".cn"; + s+=(s.length()!=0 ? ", ":"")+name+".cn"; nbFiles++; } if ((new File(f.getParent()+File.separatorChar+name+"_autres.st")).exists()) { - result+=(result.length()!=0 ? ", ":"")+name+"_autres.st"; + s+=(s.length()!=0 ? ", ":"")+name+"_autres.st"; nbFiles++; } } + else { + if (f.exists()){ + s+=f.getName(); + nbFiles++; + } + } + if (nbFiles>0) - if(nbFiles==1&&!ui_.question(CtuluLib.getS("Attention"), CtuluLib.getS("Le fichier {0} existe d\xE9j\xE0. Voulez-vous l'\xE9craser?", result))) + if(nbFiles==1&&!ui_.question(CtuluLib.getS("Export {0}",selectedFilter_.getShortDescription()), + CtuluLib.getS("Le fichier {0} existe d\xE9j\xE0. Voulez-vous l'\xE9craser?", s))) return false; - else if(nbFiles>1&&!ui_.question(CtuluLib.getS("Attention"), CtuluLib.getS("Les fichiers {0} existent d\xE9j\xE0. Voulez-vous les \xE9craser?", result))) + else if(nbFiles>1&&!ui_.question(CtuluLib.getS("Export {0}",selectedFilter_.getShortDescription()), + CtuluLib.getS("Les fichiers {0} existent d\xE9j\xE0. Voulez-vous les \xE9craser?", s))) return false; setErrorText(null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-19 08:33:04
|
Revision: 4484 http://fudaa.svn.sourceforge.net/fudaa/?rev=4484&view=rev Author: bmarchan Date: 2009-02-19 08:32:57 +0000 (Thu, 19 Feb 2009) Log Message: ----------- Tache #149 : Export des donn?\195?\169es Bief au format Rubar st. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStCnFileFormat.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/modeleur1d/controller/Controller1d.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportPanel.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/wizard/FSigFileLoaderMascaret.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderRubarSt.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO1dFileFormat.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO2dFileFormat.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOReader.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOWriter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/controller/Exporter1d.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretFileFormat.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretWriter.java Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretFileFormat.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretFileFormat.java 2009-02-18 20:47:31 UTC (rev 4483) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretFileFormat.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -1,38 +0,0 @@ -/* - * @creation 13 nov. 2008 - * @modification $Date$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.dodico.mascaret.io; - -import org.fudaa.ctulu.fileformat.FileFormatUnique; -import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; -import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; - -/** - * @author Emmanuel MARTIN - * @version $Id$ - */ -public class MascaretFileFormat extends FileFormatUnique { - - public MascaretFileFormat() { - super(1); - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.fileformat.FileFormatVersionInterface#createReader() - */ - public FileReadOperationAbstract createReader() { - return new MascaretReader(); - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.fileformat.FileFormatVersionInterface#createWriter() - */ - public FileWriteOperationAbstract createWriter() { - return null; - } - -} Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO1dFileFormat.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO1dFileFormat.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO1dFileFormat.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -0,0 +1,46 @@ +/* + * @creation 13 nov. 2008 + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.dodico.mascaret.io; + +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.dodico.commun.DodicoLib; +import org.fudaa.dodico.h2d.resource.H2dResource; + +/** + * Un format pour Mascaret 1D (sans coordonn\xE9es g\xE9or\xE9f\xE9renc\xE9es). + * @author Bertrand Marchand + * @version $Id$ + */ +public class MascaretGEO1dFileFormat extends FileFormatUnique { + + private MascaretGEO1dFileFormat() { + super(1); + nom_ = DodicoLib.getS("Mascaret profils 1d"); + description_ = H2dResource.getS("Fichier contenant des profils 1D"); + extensions_=new String[]{"geo"}; + } + + static final MascaretGEO1dFileFormat INSTANCE = new MascaretGEO1dFileFormat(); + + /** + * @return singleton + */ + public static MascaretGEO1dFileFormat getInstance() { + return INSTANCE; + } + + public FileReadOperationAbstract createReader() { + return null; + } + + public FileWriteOperationAbstract createWriter() { + return new MascaretGEOWriter(true); + } + +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO1dFileFormat.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO2dFileFormat.java (from rev 4481, branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretFileFormat.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO2dFileFormat.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEO2dFileFormat.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -0,0 +1,45 @@ +/* + * @creation 13 nov. 2008 + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.dodico.mascaret.io; + +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.dodico.commun.DodicoLib; +import org.fudaa.dodico.h2d.resource.H2dResource; +import org.fudaa.dodico.reflux.io.ReflucadBERFileFormat; + +/** + * @author Emmanuel MARTIN + * @version $Id$ + */ +public class MascaretGEO2dFileFormat extends FileFormatUnique { + + public MascaretGEO2dFileFormat() { + super(1); + nom_ = DodicoLib.getS("Mascaret profils 2d"); + description_ = H2dResource.getS("Fichier contenant des profils g\xE9or\xE9f\xE9renc\xE9s"); + extensions_=new String[]{"georef"}; + } + static final MascaretGEO2dFileFormat INSTANCE = new MascaretGEO2dFileFormat(); + + /** + * @return singleton + */ + public static MascaretGEO2dFileFormat getInstance() { + return INSTANCE; + } + + public FileReadOperationAbstract createReader() { + return new MascaretGEOReader(); + } + + public FileWriteOperationAbstract createWriter() { + return new MascaretGEOWriter(false); + } + +} Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOReader.java (from rev 4481, branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOReader.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOReader.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -0,0 +1,250 @@ +/* + * @creation 13 nov. 2008 + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.dodico.mascaret.io; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FortranInterface; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISAttributeInterface; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; +import org.fudaa.dodico.commun.DodicoLib; + +import com.vividsolutions.jts.geom.impl.CoordinateArraySequence; + +/** + * Parser du format Mascaret. (versions 6.0 et pr\xE9c\xE9dentes) + * @author Emmanuel MARTIN + * @version $Id$ + */ +public class MascaretGEOReader extends FileReadOperationAbstract { + + /** Exception lev\xE9e quand une probl\xE8me est trouv\xE9 pendant le parsing. */ + private class ParseError extends Exception{ + public ParseError(String _message){ + super(_message); + } + } + + /** Le fichier \xE0 lire */ + private FileReader rawData_; + private String fileName_; + /** Les caract\xE8res de 's\xE9paration' */ + private char[] charSeparation_=new char[]{' ', '\t'}; + private char charSeparationNewLigne_='\n'; + /** Profiles extraits */ + List<MascaretProfilAbstractRepresentation> profils_=new ArrayList<MascaretProfilAbstractRepresentation>(); + + public MascaretGEOReader() { + rawData_=null; + } + + /** + * Retourne vrai si _element est dans _tabElements + * @param _element + * @param _tabElements + * @return retourne vrai si _element est dans _tabElements + */ + private boolean in(final char _element, final char[] _tabElements){ + boolean found=false; + int i=-1; + while(!found&&++i<_tabElements.length) + found=_element==_tabElements[i]; + return found; + } + + /** + * @return token dont le caract\xE8re de s\xE9paration est le retour \xE0 la ligne. Null si rien \xE0 lire. + */ + private StringBuffer nextLineToken(){ + StringBuffer token=new StringBuffer(); + int currentRawChar; + try { + currentRawChar=rawData_.read(); + // Lecture du token : lecture tant qu'un caract\xE8re de s\xE9paration n'est pas + // trouv\xE9. + while (currentRawChar!=-1&&((char)currentRawChar)!=charSeparationNewLigne_) { + token.append((char)currentRawChar); + currentRawChar=rawData_.read(); + } + } + catch (IOException _exc) { + // Erreur dans un des rawData_.read() + _exc.printStackTrace(); + } + // Retour du token + return token.length()==0 ? null:token; + } + + /** + * Retourne le token suivant dans le flux (liste de caract\xE8re jusqu'au + * caract\xE8re de s\xE9paration suivant). + * @return le token ou null si il n'y en a pas. + */ + private String nextWordToken(StringBuffer _lineToken) { + StringBuffer token=new StringBuffer(); + // Elimination des caract\xE8res de s\xE9paration avant le token + while (_lineToken.length()>0&&in(_lineToken.charAt(0), charSeparation_)) + _lineToken.deleteCharAt(0); + // Lecture du token : lecture tant qu'un caract\xE8re de s\xE9paration n'est pas + // trouv\xE9. + while (_lineToken.length()>0&&!in(_lineToken.charAt(0), charSeparation_)) { + token.append(_lineToken.charAt(0)); + _lineToken.deleteCharAt(0); + } + // Retour du token + return token.toString().length()==0 ? null:token.toString(); + } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.fileformat.FileReadOperationAbstract#internalRead() + */ + @Override + protected Object internalRead() { + try { + StringBuffer lineToken=nextLineToken(); + if(lineToken==null) + throw new ParseError(fileName_+DodicoLib.getS(" : le fichier est vide.")); + /* + * Boucle principale : une it\xE9ration par profil + */ + String token=nextWordToken(lineToken); + while (lineToken!=null&&token.equalsIgnoreCase("profil")) { + MascaretProfilAbstractRepresentation profil=new MascaretProfilAbstractRepresentation(); + + // Premi\xE8re ligne \\ + // Extraction des informations commune \xE0 1d et 2d + profil.nomBief=nextWordToken(lineToken); + profil.nomProfil=nextWordToken(lineToken); + profil.abscisseCurvilingeAxeHydraulique=Double.parseDouble(nextWordToken(lineToken)); + // Coordonn\xE9es de trace de profile : non pr\xE9sent dans les fichiers 1d + token=nextWordToken(lineToken); + while (token!=null&&!token.equals("AXE")) { + profil.coordXYTraceProfil.add(new double[]{Double.parseDouble(token), Double.parseDouble(nextWordToken(lineToken))}); + token=nextWordToken(lineToken); + } + // Coordonn\xE9e d'intersection du profile et de l'axe hydraulique + if (token!=null&&token.equals("AXE")) + profil.coordIntersectionAxeHydraulique=new double[]{Double.parseDouble(nextWordToken(lineToken)), + Double.parseDouble(nextWordToken(lineToken))}; + + // Lignes suivantes : coordonn\xE9es du profile \\ + lineToken=nextLineToken(); + while (lineToken!=null&&!(token=nextWordToken(lineToken)).equalsIgnoreCase("profil")) { + profil.coordCurviligneProfil.add(Double.parseDouble(token)); + profil.coordZ.add(Double.parseDouble(nextWordToken(lineToken))); + profil.bathyOuTopoOuStockage.add(nextWordToken(lineToken).charAt(0)); + // Coordonn\xE9es XY : non pr\xE9sent dans les fichiers 1d + token=nextWordToken(lineToken); + if (token!=null) + profil.coordXYProfil.add(new double[]{Double.parseDouble(token), Double.parseDouble(nextWordToken(lineToken))}); + lineToken=nextLineToken(); + } + // Verification de la coh\xE9rance des informations + if (profil.is1d()) + throw new ParseError(fileName_+DodicoLib.getS(" : les profils 1D ne sont pas g\xE9r\xE9s")); + else if (!(profil.is2d()&&profil.check2D())) + throw new ParseError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); + // Ajout du profile \xE0 la liste et traitement du profile suivant + profils_.add(profil); + } + // G\xE9n\xE9ration d'un GISZoneCollection avec les informations extraites et + // retour de celle-ci + return generateGIS(); + } + catch (ParseError _exc) { + analyze_.addFatalError(_exc.getMessage()); + } + catch (NumberFormatException _exc){ + analyze_.addFatalError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); + } + catch (NullPointerException _exc){ + analyze_.addFatalError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); + } + return null; + } + + private GISZoneCollectionLigneBrisee generateGIS(){ + progress_.setDesc(DodicoLib.getS("Lecture de ")+fileName_); + // Cr\xE9ation de la GISZoneCollectionLigneBrisee + GISZoneCollectionLigneBrisee zone=new GISZoneCollectionLigneBrisee(); + zone.setAttributes(new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE, GISAttributeConstants.BATHY}, null); + // G\xE9n\xE9ration des profiles et des traces de profiles \\ + for(int k=0;k<profils_.size();k++){ + progress_.setProgression((int)((float)k/profils_.size()*100)); + MascaretProfilAbstractRepresentation profil=profils_.get(k); + CoordinateArraySequence coordSeq=new CoordinateArraySequence(profil.coordXYTraceProfil.size()); + // Trace profil + for(int i=0;i<profil.coordXYTraceProfil.size();i++){ + coordSeq.setOrdinate(i, 0, profil.coordXYTraceProfil.get(i)[0]); + coordSeq.setOrdinate(i, 1, profil.coordXYTraceProfil.get(i)[1]); + coordSeq.setOrdinate(i, 2, 0); + } + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_TP, null}, null); + // Profil + coordSeq=new CoordinateArraySequence(profil.coordXYProfil.size()); + Object[] z=new Object[profil.coordXYProfil.size()]; + for(int i=0;i<profil.coordXYProfil.size();i++){ + coordSeq.setOrdinate(i, 0, profil.coordXYProfil.get(i)[0]); + coordSeq.setOrdinate(i, 1, profil.coordXYProfil.get(i)[1]); + coordSeq.setOrdinate(i, 2, 0); + z[i]=profil.coordZ.get(i); + } + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_PF, z}, null); + } + if (profils_.size()>1) { + // G\xE9n\xE9ration de l'axe hydraulique \\ + CoordinateArraySequence coordSeq=new CoordinateArraySequence(profils_.size()); + for (int i=0; i<profils_.size(); i++) { + coordSeq.setOrdinate(i, 0, profils_.get(i).coordIntersectionAxeHydraulique[0]); + coordSeq.setOrdinate(i, 1, profils_.get(i).coordIntersectionAxeHydraulique[1]); + coordSeq.setOrdinate(i, 2, 0); + } + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{null, GISAttributeConstants.ATT_NATURE_AH, null}, null); + } + else + analyze_.addInfo(fileName_+DodicoLib.getS(" : le fichier ne comporte qu'un profil, aucun axe hydraulique ne sera g\xE9n\xE9r\xE9.")); + return zone; + } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.fileformat.FileOperationAbstract#getFortranInterface() + */ + @Override + protected FortranInterface getFortranInterface() { + return new FortranInterface() { + public void close() throws IOException{ + if (rawData_ != null) + rawData_.close(); + } + }; + } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.fileformat.FileOperationAbstract#setFile(java.io.File) + */ + @Override + public void setFile(File _f) { + fileName_=_f.getName(); + analyze_ = new CtuluAnalyze(); + analyze_.setResource(_f.getAbsolutePath()); + try { + rawData_=new FileReader(_f); + } + catch (FileNotFoundException _exc) { + } + } + +} Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOWriter.java (from rev 4481, branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretWriter.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOWriter.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretGEOWriter.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -0,0 +1,465 @@ +/* + * @creation 19 d\xE9c. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.dodico.mascaret.io; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.ctulu.fileformat.FortranInterface; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface; +import org.fudaa.ctulu.gis.GISLib; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.dodico.commun.DodicoLib; + +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.CoordinateSequence; +import com.vividsolutions.jts.geom.Geometry; + +/** + * Ecrit au format mascaret 1d ou 2d. + * @author Emmanuel MARTIN + * @version $Id$ + */ +public class MascaretGEOWriter extends FileWriteOperationAbstract { + + /** Le flux de sorti. */ + private Writer out_; + /** Les profils \xE0 \xE9crire. */ + private MascaretProfilAbstractRepresentation[] profils_; + /** Type du fichier mascaret de destination 1D ou 2D. */ + private boolean is1D_=true; + + /** + * Cette classe permet \xE0 l'exporteur de selectionner les + * profils \xE0 exporter. G\xE9n\xE9ralement les profiles invalides sont ignor\xE9s. + * @author Emmanuel MARTIN + * @version $Id$ + */ + public interface FunctorSelectProfil { + public boolean exportProfil(GISZoneCollection _zone, int _idxProfil); + } + + public MascaretGEOWriter(boolean _is1D) { + is1D_=_is1D; + } + + /** + * L'argument doit \xEAtre un tableau contenant : + * 0 : string : le nom du bief + * 1 : GISZoneCollectionLigneBrisee[] : les zones dans lesquelles trouver les g\xE9om\xE9tries + * 2 : FunctorSelectProfil : pour selectionner les profils \xE0 exporter + * + * On passe en param\xE8tre les diff\xE9rentes GISZoneCollectionLigneBrisee qui + * contiennent les g\xE9om\xE9tries n\xE9c\xE9ssaires \xE0 l'exportation. Ces zone peuvent + * contenir des g\xE9om\xE9tries incompatible avec l'export (comme des polygones), + * elles seront simplement ignor\xE9es. Dans le cas o\xF9 des g\xE9om\xE9tries manqueront, + * une exception du type MascaretDataIncomplete est lev\xE9e. Les profils invalides + * sont \xE9galements ignor\xE9s. Si certaines donn\xE9es sont incoh\xE9rentes une exception + * du type MascaretDataError est lev\xE9e. La version du fichier de destination ('1d' + * ou '2d'). Si un des trois param\xE8tres est null une exception de type + * {@link IllegalArgumentException} est lev\xE9e. + */ + @Override + protected void internalWrite(Object _o) { + try { + if(((Object[])_o).length!=3) + throw new IllegalArgumentException("Il doit y avoir 3 param\xE8tres dans _o."); + String nomBief=(String)((Object[])_o)[0]; + GISZoneCollection[] zones=(GISZoneCollection[])((Object[])_o)[1]; + FunctorSelectProfil selectorProfil=(FunctorSelectProfil)((Object[])_o)[2]; + if (nomBief==null) + throw new IllegalArgumentException("nomBief ne doit pas \xEAtre null"); + if (zones==null) + throw new IllegalArgumentException("zones mustn't be null"); + generateMascaretProfilAbstractRepresentations(nomBief, zones, selectorProfil); + + for (int i=0; i<profils_.length; i++) { + MascaretProfilAbstractRepresentation profil=profils_[i]; + // Premi\xE8re ligne + out_.write("Profil "+profil.nomBief+" "+profil.nomProfil+" "+profil.abscisseCurvilingeAxeHydraulique); + if (is1D_) + out_.write('\n'); + else { + out_.write(' '); + for (int j=0; j<profil.coordXYTraceProfil.size(); j++) { + out_.write(profil.coordXYTraceProfil.get(j)[0]+" "); + out_.write(profil.coordXYTraceProfil.get(j)[1]+" "); + } + out_.write("AXE "+profil.coordIntersectionAxeHydraulique[0]+" "+profil.coordIntersectionAxeHydraulique[1]); + out_.write('\n'); + } + // Les autres lignes + for (int j=0; j<profil.coordXYProfil.size(); j++) { + out_.write(profil.coordCurviligneProfil.get(j)+" "+profil.coordZ.get(j)+" "+profil.bathyOuTopoOuStockage.get(j)); + if (is1D_) + out_.write('\n'); + else + out_.write(" "+profil.coordXYProfil.get(j)[0]+" "+profil.coordXYProfil.get(j)[1]+"\n"); + } + } + } + catch (Exception _exp) { + analyze_.manageException(_exp); + } + } + + @Override + protected FortranInterface getFortranInterface() { + return new FortranInterface() { + public void close() throws IOException { + if (out_ != null) { + out_.close(); + } + } + }; + } + + @Override + public void setFile(File _f) { + analyze_ = new CtuluAnalyze(); + analyze_.setResource(_f.getAbsolutePath()); + FileWriter out = null; + try { + out = new FileWriter(_f); + } catch (final IOException _e) { + analyze_.manageException(_e); + } + if (out != null) { + out_ = out; + } + } + + /** + * G\xE9n\xE8re les repr\xE9sentatino interm\xE9diaires des profils. + * @param zones_ + * @throws MascaretDataError + * @throws MascaretDataIncomplete + */ + private void generateMascaretProfilAbstractRepresentations(String _nomBief, GISZoneCollection[] _zones, FunctorSelectProfil _selectorProfil) throws MascaretDataError, MascaretDataIncomplete{ + // Recherche de l'axe hydraulique \\ + GISZoneCollection zoneAxeHydraulique=null; + int indexAxeHydraulique=-1; + for (int i=0; i<_zones.length; i++) { + int idxAttNature=_zones[i].getIndiceOf(GISAttributeConstants.NATURE); + if (idxAttNature!=-1) + for (int j=0; j<_zones[i].getNbGeometries(); j++) + if (_zones[i].getValue(idxAttNature, j)==GISAttributeConstants.ATT_NATURE_AH) + if (zoneAxeHydraulique==null) { + zoneAxeHydraulique=_zones[i]; + indexAxeHydraulique=j; + } + else + throw new MascaretDataError("Il existe plusieurs axes hydrauliques."); + } + if(zoneAxeHydraulique==null) + throw new MascaretDataIncomplete("Il n'y a pas d'axes hydrauliques."); + + // Recherche des profils \\ + List<GISZoneCollection> profils=new ArrayList<GISZoneCollection>(); + List<Integer> indexProfils=new ArrayList<Integer>(); + int nbProfilNotKeep=0; + for (int i=0; i<_zones.length; i++) { + int idxAttNature=_zones[i].getIndiceOf(GISAttributeConstants.NATURE); + if (idxAttNature!=-1) + for (int j=0; j<_zones[i].getNbGeometries(); j++) + if (_zones[i].getValue(idxAttNature, j)==GISAttributeConstants.ATT_NATURE_PF) { + if(_selectorProfil.exportProfil(_zones[i], j)) { + profils.add(_zones[i]); + indexProfils.add(j); + } + else + nbProfilNotKeep++; + } + } + if (nbProfilNotKeep>0) + analyze_.addWarn(DodicoLib.getS("{0} profils sur {1} n'ont pas \xE9t\xE9 export\xE9s car ils ne sont pas conformes",""+nbProfilNotKeep,""+(indexProfils.size()+nbProfilNotKeep)), -1); + else + analyze_.addInfo(DodicoLib.getS("{0} profils ont \xE9t\xE9 export\xE9s",""+(indexProfils.size()+nbProfilNotKeep))); + + + // G\xE9n\xE9ration des MascaretProfilAbstractRepresentations \\ + profils_=new MascaretProfilAbstractRepresentation[profils.size()]; + int countNoName=1; + GISPolyligne axeHydraulique=(GISPolyligne)zoneAxeHydraulique.getGeometry(indexAxeHydraulique); + for (int i=0;i<profils.size();i++) { + GISZoneCollection zoneProfil=profils.get(i); + int idxProfil=indexProfils.get(i); + GISPolyligne profil=(GISPolyligne) zoneProfil.getGeometry(idxProfil); + MascaretProfilAbstractRepresentation profilAbs=new MascaretProfilAbstractRepresentation(); + + // Information globales sur le profil \\ + // Nom bief + profilAbs.nomBief=_nomBief.replace(' ', '_'); + // Nom profil + int idxTitle=zoneProfil.getIndiceOf(GISAttributeConstants.TITRE); + if(idxTitle!=-1){ + String nomProfil=(String) zoneProfil.getValue(idxTitle, idxProfil); + profilAbs.nomProfil=nomProfil.replace(' ', '_'); + } + else + profilAbs.nomProfil="No_Name_"+countNoName++; + // Intersection axe hydraulique + Geometry intersection=axeHydraulique.intersection(profil); + if(intersection.getNumPoints()!=1) + throw new MascaretDataError("Un profil \xE0 plusieurs ou aucun point(s) d'intersection(s) avec l'axe hydraulique."); + profilAbs.coordIntersectionAxeHydraulique=new double[]{intersection.getCoordinate().x, intersection.getCoordinate().y}; + // Abscisse curviligne axe hydraulique + int idxAttrCommHydraulique=zoneProfil.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO); + if(idxAttrCommHydraulique==-1) + throw new MascaretDataError("L'attribut COMMENTAIRE_HYDRO doit \xEAtre pr\xE9sent."); + String comm=(String) zoneProfil.getValue(idxAttrCommHydraulique, idxProfil); + if(!GISLib.isHydroCommentValued(comm, "PK")) + throw new MascaretDataError("La propri\xE9t\xE9 PK de COMMENTAIRE_HYDRO doit \xEAtre valu\xE9e."); + profilAbs.abscisseCurvilingeAxeHydraulique=GISLib.getHydroCommentDouble(comm, "PK"); + CoordinateSequence coordSeq=axeHydraulique.getCoordinateSequence(); + // Trace profil + coordSeq=profil.getCoordinateSequence(); + Coordinate coord[]=getPointsRuptures(coordSeq); + profilAbs.coordXYTraceProfil.add(new double[]{coordSeq.getX(0), coordSeq.getY(0)}); + for(int j=0;j<coord.length;j++) + profilAbs.coordXYTraceProfil.add(new double[]{coord[j].x, coord[j].y}); + profilAbs.coordXYTraceProfil.add(new double[]{coordSeq.getX(coordSeq.size()-1), coordSeq.getY(coordSeq.size()-1)}); + + // Information atomiques sur le profil \\ + coordSeq=profil.getCoordinateSequence(); + int idxZ=zoneProfil.getIndiceOf(zoneProfil.getAttributeIsZ()); + for(int j=0;j<profil.getNumPoints();j++){ + // Valeur curviligne + profilAbs.coordCurviligneProfil.add(absCurv(coordSeq, j)); + // Coordonn\xE9es X Y + profilAbs.coordXYProfil.add(new double[]{coordSeq.getCoordinate(j).x, coordSeq.getCoordinate(j).y}); + // Coordinate Z + if(idxZ!=-1) + profilAbs.coordZ.add(((GISAttributeModelDoubleInterface)zoneProfil.getValue(idxZ, idxProfil)).getValue(j)); + } + // Extraction des valeurs d'intersection + ArrayList<Integer> seps=new ArrayList<Integer>(); + //INTERSECTION_RIVE_GAUCHE + int idxInterRiveG=zoneProfil.getIndiceOf(GISAttributeConstants.INTERSECTION_RIVE_GAUCHE); + Integer idxRG=-1; + if(idxInterRiveG!=-1) { + idxRG=(Integer) zoneProfil.getValue(idxInterRiveG, idxProfil); + seps.add(idxRG); + } + //INTERSECTION_RIVE_DROITE + int idxInterRiveD=zoneProfil.getIndiceOf(GISAttributeConstants.INTERSECTION_RIVE_DROITE); + Integer idxRD=-1; + if(idxInterRiveD!=-1) { + idxRD=(Integer) zoneProfil.getValue(idxInterRiveD, idxProfil); + seps.add(idxRD); + } + //INTERSECTION_LIMITE_STOCKAGE_GAUCHE + int idxInterStockageG=zoneProfil.getIndiceOf(GISAttributeConstants.INTERSECTION_LIMITE_STOCKAGE_GAUCHE); + Integer idxSG=-1; + if(idxInterStockageG!=-1) { + idxSG=(Integer) zoneProfil.getValue(idxInterStockageG, idxProfil); + seps.add(idxSG); + } + //INTERSECTION_LIMITE_STOCKAGE_DROITE + int idxInterStockageD=zoneProfil.getIndiceOf(GISAttributeConstants.INTERSECTION_LIMITE_STOCKAGE_DROITE); + Integer idxSD=-1; + if(idxInterStockageD!=-1) { + idxSD=(Integer) zoneProfil.getValue(idxInterStockageD, idxProfil); + seps.add(idxSD); + } + if(idxRG==-1&&idxRD!=-1||idxRG!=-1&&idxRD==-1) + throw new MascaretDataIncomplete("Il y a une seule rive (il doit y en avoir soit 0 soit 2)"); + if(idxSG==-1&&idxSD!=-1||idxSG!=-1&&idxSD==-1) + throw new MascaretDataIncomplete("Il y a une seule limite de stockage (il doit y en avoir soit 0 soit 2)"); + Integer[] sepsT=seps.toArray(new Integer[0]); + Arrays.sort(sepsT); + // Bathy Topo ou Stockage + if(sepsT.length==4){ + int j; + for(j=0;j<sepsT[0];j++) + profilAbs.bathyOuTopoOuStockage.add('S'); + for(;j<sepsT[1];j++) + profilAbs.bathyOuTopoOuStockage.add('T'); + for(;j<=sepsT[2];j++) + profilAbs.bathyOuTopoOuStockage.add('B'); + for(;j<=sepsT[3];j++) + profilAbs.bathyOuTopoOuStockage.add('T'); + for(;j<coordSeq.size();j++) + profilAbs.bathyOuTopoOuStockage.add('S'); + } + else if(sepsT.length==2) { + if(sepsT[0]==idxRG||sepsT[0]==idxRD){ + int j; + for(j=0;j<=sepsT[0];j++) + profilAbs.bathyOuTopoOuStockage.add('T'); + for(;j<sepsT[1];j++) + profilAbs.bathyOuTopoOuStockage.add('B'); + for(;j<coordSeq.size();j++) + profilAbs.bathyOuTopoOuStockage.add('T'); + } + else{ + int j; + for(j=0;j<=sepsT[0];j++) + profilAbs.bathyOuTopoOuStockage.add('S'); + for(;j<sepsT[1];j++) + profilAbs.bathyOuTopoOuStockage.add('B'); + for(;j<coordSeq.size();j++) + profilAbs.bathyOuTopoOuStockage.add('S'); + } + } + else + for(int j=0;j<coordSeq.size();j++) + profilAbs.bathyOuTopoOuStockage.add('B'); + + // Verification de la coh\xE9rence des r\xE9sultats + if(is1D_) + if(!profilAbs.check1D()) + throw new MascaretDataError("Erreur de programmation : les donn\xE9es g\xE9n\xE9r\xE9es ne sont pas coh\xE9rentes pour le 1d."); + else + if(!profilAbs.check2D()) + throw new MascaretDataError("Erreur de programmation : les donn\xE9es g\xE9n\xE9r\xE9es ne sont pas coh\xE9rentes pour le 2d."); + + // Stockage avec les autres \\ + profils_[i]=profilAbs; + } + } + + /** + * Retourne la liste des points de ruptures. + */ + private Coordinate[] getPointsRuptures(CoordinateSequence _seq) { + List<Coordinate> coord=new ArrayList<Coordinate>(); + int idx1=0; + int idx2=1; + int idx3=2; + int idxPointRupturePrecedent=-1; + while(idx3<_seq.size()) { + if(idx1==idx2) + idx2++; + else if(idx2==idx3) + idx3++; + else if(_seq.getCoordinate(idx1).equals(_seq.getCoordinate(idx2))) + idx2++; + else if(_seq.getCoordinate(idx2).equals(_seq.getCoordinate(idx3))) + idx3++; + else { + if(getAngle(_seq.getCoordinate(idx1), _seq.getCoordinate(idx2), _seq.getCoordinate(idx3))<(Math.PI-0.0001)) + if(idxPointRupturePrecedent<0||!_seq.getCoordinate(idxPointRupturePrecedent).equals(_seq.getCoordinate(idx2))) + coord.add(_seq.getCoordinate(idx2)); + if(idx2+1<idx3) + idx2++; + else + idx1=idx2; + } + } + return coord.toArray(new Coordinate[0]); + } + + /** + * Retourne l'angle form\xE9 par les segments _a_b et _b_c. _a, _b et _c doivent + * \xEAtre non confondus sous peine d'avoir un {@link IllegalArgumentException}. + * L'angle est toujours positif. + * L'ordonn\xE9 z n'est pas prise en compte. + * L'angle retourn\xE9 est en radian. + */ + private double getAngle(Coordinate _a, Coordinate _b, Coordinate _c) { + Coordinate a=new Coordinate(_a.x, _a.y, 0); + Coordinate b=new Coordinate(_b.x, _b.y, 0); + Coordinate c=new Coordinate(_c.x, _c.y, 0); + if(egal(a, b)||egal(b, c)||egal(a, c)) + throw new IllegalArgumentException("Les trois points doivent \xEAtre non confonus."); + // Projection de b sur ac + Coordinate b2=proj(b, a, c); + // Calcul des angles interm\xE9diaires + double angleCBB2=Math.asin(b2.distance(c)/c.distance(b)); + double angleB2BA=Math.asin(b2.distance(a)/a.distance(b)); + if(angleCBB2==Double.NaN||angleB2BA==Double.NaN) + return Math.PI; + // Selon que B2 appartient ou non \xE0 ac, la d\xE9termination de l'angle final diff\xE8re. + double angle; + int position=getPositionXY(b2, a, c); + if(position==-1) + angle=angleCBB2-angleB2BA; + else if(position==1) + angle=angleB2BA-angleCBB2; + else + angle=angleCBB2+angleB2BA; + return angle; + } + + /** + * Soit _a, _b, _c align\xE9s et non confondus. Retourne -1 si _a avant _b_c, 0 + * si _a est entre _b_c (inclu), +1 sinon. Si _a, _b et _c ne sont pas + * align\xE9s, {@link IllegalArgumentException} est lev\xE9. + */ + private int getPositionXY(Coordinate _a, Coordinate _b, Coordinate _c) { + if(!egal(proj(_a, _b, _c), _a)||egal(_a, _b)||egal(_b, _c)||egal(_a, _c)) + throw new IllegalArgumentException("Les trois points doivent \xEAtre align\xE9s et non confonus."); + Coordinate vecBC=vec(_b, _c); + double k; + if(vecBC.x!=0) + k=(_a.x-_b.x)/vecBC.x; + else + k=(_a.y-_b.y)/vecBC.y; + if(k<0) + return -1; + else if(k>1) + return 1; + else + return 0; + } + + /** + * Retourne la projection de _a sur la droite _b_c. + * Attention : Il s'agit bien d'une projection sur une + * droite et non un segment de droite : le r\xE9sultat + * peut \xEAtre en dehors de [_b, _c] + */ + private Coordinate proj(Coordinate _a, Coordinate _b, Coordinate _c){ + Coordinate vBC=vec(_b, _c); + Coordinate vBA=vec(_b, _a); + double normeBC=Math.sqrt(vBC.x*vBC.x+vBC.y*vBC.y+vBC.z*vBC.z); + double produitScalaireBCBA=vBC.x*vBA.x+vBC.y*vBA.y+vBC.z*vBA.z; + double rapportSurBC=produitScalaireBCBA/(normeBC*normeBC); + return new Coordinate(vBC.x*rapportSurBC+_b.x, vBC.y*rapportSurBC+_b.y, vBC.z*rapportSurBC+_b.z); + } + + /** + * Compars les deux vecteurs avec la tol\xE9rance donn\xE9e. Le dernier param\xE8tre + * indique si un normalisation des deux vecteurs doit \xEAtre faite avec la + * comparaison. Les vecteurs ne sont pas modif\xE9s dans l'op\xE9ration. _testZ doit + * \xEAtre mit \xE0 vrai pour que la comparaison tienne compte du z. + */ + private boolean egal(Coordinate _a, Coordinate _b) { + Coordinate diff=vec(_a, _b); + return Math.abs(diff.x)<0.0001&&Math.abs(diff.y)<0.0001; + } + + /** + * retourne le vecteur _a, _b sous forme de Coordinate. + */ + private Coordinate vec(Coordinate _a, Coordinate _b){ + return new Coordinate(_b.x-_a.x, _b.y-_a.y, _b.z-_a.z); + } + + /** + * Calcul l'abscisse curviligne du point indiqu\xE9 en param\xE8tre + */ + private double absCurv(CoordinateSequence _coordSeq, int _idxPoint){ + if(_idxPoint==0) + return 0; + double valueCurviligne=0; + for (int j=1; j<=_idxPoint; j++) + valueCurviligne+=_coordSeq.getCoordinate(j).distance(_coordSeq.getCoordinate(j-1)); + return valueCurviligne; + } +} Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2009-02-18 20:47:31 UTC (rev 4483) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -1,251 +0,0 @@ -/* - * @creation 13 nov. 2008 - * @modification $Date$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.dodico.mascaret.io; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.fudaa.ctulu.CtuluAnalyze; -import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; -import org.fudaa.ctulu.fileformat.FortranInterface; -import org.fudaa.ctulu.gis.GISAttributeConstants; -import org.fudaa.ctulu.gis.GISAttributeInterface; -import org.fudaa.ctulu.gis.GISPolyligne; -import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; -import org.fudaa.dodico.commun.DodicoLib; - -import com.vividsolutions.jts.geom.impl.CoordinateArraySequence; - -/** - * Parser du format Mascaret. (versions 6.0 et pr\xE9c\xE9dentes) - * @author Emmanuel MARTIN - * @version $Id$ - */ -public class MascaretReader extends FileReadOperationAbstract { - - /** Exception lev\xE9e quand une probl\xE8me est trouv\xE9 pendant le parsing. */ - private class ParseError extends Exception{ - public ParseError(String _message){ - super(_message); - } - } - - /** Le fichier \xE0 lire */ - private FileReader rawData_; - private String fileName_; - /** Les caract\xE8res de 's\xE9paration' */ - private char[] charSeparation_=new char[]{' ', '\t'}; - private char charSeparationNewLigne_='\n'; - /** Profiles extraits */ - List<MascaretProfilAbstractRepresentation> profils_=new ArrayList<MascaretProfilAbstractRepresentation>(); - - public MascaretReader() { - rawData_=null; - } - - /** - * Retourne vrai si _element est dans _tabElements - * @param _element - * @param _tabElements - * @return retourne vrai si _element est dans _tabElements - */ - private boolean in(final char _element, final char[] _tabElements){ - boolean found=false; - int i=-1; - while(!found&&++i<_tabElements.length) - found=_element==_tabElements[i]; - return found; - } - - /** - * @return token dont le caract\xE8re de s\xE9paration est le retour \xE0 la ligne. Null si rien \xE0 lire. - */ - private StringBuffer nextLineToken(){ - StringBuffer token=new StringBuffer(); - int currentRawChar; - try { - currentRawChar=rawData_.read(); - // Lecture du token : lecture tant qu'un caract\xE8re de s\xE9paration n'est pas - // trouv\xE9. - while (currentRawChar!=-1&&((char)currentRawChar)!=charSeparationNewLigne_) { - token.append((char)currentRawChar); - currentRawChar=rawData_.read(); - } - } - catch (IOException _exc) { - // Erreur dans un des rawData_.read() - _exc.printStackTrace(); - } - // Retour du token - return token.length()==0 ? null:token; - } - - /** - * Retourne le token suivant dans le flux (liste de caract\xE8re jusqu'au - * caract\xE8re de s\xE9paration suivant). - * @return le token ou null si il n'y en a pas. - */ - private String nextWordToken(StringBuffer _lineToken) { - StringBuffer token=new StringBuffer(); - // Elimination des caract\xE8res de s\xE9paration avant le token - while (_lineToken.length()>0&&in(_lineToken.charAt(0), charSeparation_)) - _lineToken.deleteCharAt(0); - // Lecture du token : lecture tant qu'un caract\xE8re de s\xE9paration n'est pas - // trouv\xE9. - while (_lineToken.length()>0&&!in(_lineToken.charAt(0), charSeparation_)) { - token.append(_lineToken.charAt(0)); - _lineToken.deleteCharAt(0); - } - // Retour du token - return token.toString().length()==0 ? null:token.toString(); - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.fileformat.FileReadOperationAbstract#internalRead() - */ - @Override - protected Object internalRead() { - try { - StringBuffer lineToken=nextLineToken(); - if(lineToken==null) - throw new ParseError(fileName_+DodicoLib.getS(" : le fichier est vide.")); - /* - * Boucle principale : une it\xE9ration par profil - */ - String token=nextWordToken(lineToken); - while (lineToken!=null&&token.equalsIgnoreCase("profil")) { - MascaretProfilAbstractRepresentation profil=new MascaretProfilAbstractRepresentation(); - - // Premi\xE8re ligne \\ - // Extraction des informations commune \xE0 1d et 2d - profil.nomBief=nextWordToken(lineToken); - profil.nomProfil=nextWordToken(lineToken); - profil.abscisseCurvilingeAxeHydraulique=Double.parseDouble(nextWordToken(lineToken)); - // Coordonn\xE9es de trace de profile : non pr\xE9sent dans les fichiers 1d - token=nextWordToken(lineToken); - while (token!=null&&!token.equals("AXE")) { - profil.coordXYTraceProfil.add(new double[]{Double.parseDouble(token), Double.parseDouble(nextWordToken(lineToken))}); - token=nextWordToken(lineToken); - } - // Coordonn\xE9e d'intersection du profile et de l'axe hydraulique - if (token!=null&&token.equals("AXE")) - profil.coordIntersectionAxeHydraulique=new double[]{Double.parseDouble(nextWordToken(lineToken)), - Double.parseDouble(nextWordToken(lineToken))}; - - // Lignes suivantes : coordonn\xE9es du profile \\ - lineToken=nextLineToken(); - while (lineToken!=null&&!(token=nextWordToken(lineToken)).equalsIgnoreCase("profil")) { - profil.coordCurviligneProfil.add(Double.parseDouble(token)); - profil.coordZ.add(Double.parseDouble(nextWordToken(lineToken))); - profil.bathyOuTopoOuStockage.add(nextWordToken(lineToken).charAt(0)); - // Coordonn\xE9es XY : non pr\xE9sent dans les fichiers 1d - token=nextWordToken(lineToken); - if (token!=null) - profil.coordXYProfil.add(new double[]{Double.parseDouble(token), Double.parseDouble(nextWordToken(lineToken))}); - lineToken=nextLineToken(); - } - // Verification de la coh\xE9rance des informations - if (profil.is1d()) - throw new ParseError(fileName_+DodicoLib.getS(" : les profils 1D ne sont pas g\xE9r\xE9s")); - else if (!(profil.is2d()&&profil.check2D())) - throw new ParseError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); - // Ajout du profile \xE0 la liste et traitement du profile suivant - profils_.add(profil); - } - // G\xE9n\xE9ration d'un GISZoneCollection avec les informations extraites et - // retour de celle-ci - return generateGIS(); - } - catch (ParseError _exc) { - analyze_.addFatalError(_exc.getMessage()); - } - catch (NumberFormatException _exc){ - analyze_.addFatalError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); - } - catch (NullPointerException _exc){ - analyze_.addFatalError(fileName_+DodicoLib.getS(" : le fichier source comporte des erreurs.")); - } - return null; - } - - private GISZoneCollectionLigneBrisee generateGIS(){ - progress_.setDesc(DodicoLib.getS("Lecture de ")+fileName_); - // Cr\xE9ation de la GISZoneCollectionLigneBrisee - GISZoneCollectionLigneBrisee zone=new GISZoneCollectionLigneBrisee(); - zone.setAttributes(new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE, GISAttributeConstants.BATHY}, null); - // G\xE9n\xE9ration des profiles et des traces de profiles \\ - for(int k=0;k<profils_.size();k++){ - progress_.setProgression((int)((float)k/profils_.size()*100)); - MascaretProfilAbstractRepresentation profil=profils_.get(k); - CoordinateArraySequence coordSeq=new CoordinateArraySequence(profil.coordXYTraceProfil.size()); - // Trace profil - for(int i=0;i<profil.coordXYTraceProfil.size();i++){ - coordSeq.setOrdinate(i, 0, profil.coordXYTraceProfil.get(i)[0]); - coordSeq.setOrdinate(i, 1, profil.coordXYTraceProfil.get(i)[1]); - coordSeq.setOrdinate(i, 2, 0); - } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_TP, null}, null); - // Profil - coordSeq=new CoordinateArraySequence(profil.coordXYProfil.size()); - Object[] z=new Object[profil.coordXYProfil.size()]; - for(int i=0;i<profil.coordXYProfil.size();i++){ - coordSeq.setOrdinate(i, 0, profil.coordXYProfil.get(i)[0]); - coordSeq.setOrdinate(i, 1, profil.coordXYProfil.get(i)[1]); - coordSeq.setOrdinate(i, 2, 0); - z[i]=profil.coordZ.get(i); - } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_PF, z}, null); - } - if (profils_.size()>1) { - // G\xE9n\xE9ration de l'axe hydraulique \\ - CoordinateArraySequence coordSeq=new CoordinateArraySequence(profils_.size()); - for (int i=0; i<profils_.size(); i++) { - coordSeq.setOrdinate(i, 0, profils_.get(i).coordIntersectionAxeHydraulique[0]); - coordSeq.setOrdinate(i, 1, profils_.get(i).coordIntersectionAxeHydraulique[1]); - coordSeq.setOrdinate(i, 2, 0); - } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{null, GISAttributeConstants.ATT_NATURE_AH, null}, null); - } - else - analyze_.addInfo(fileName_+DodicoLib.getS(" : le fichier ne comporte qu'un profil, aucun axe hydraulique ne sera g\xE9n\xE9r\xE9.")); - return zone; - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.fileformat.FileOperationAbstract#getFortranInterface() - */ - @Override - protected FortranInterface getFortranInterface() { - return new FortranInterface() { - public void close() throws IOException{ - if (rawData_ != null) - rawData_.close(); - } - }; - } - - /* (non-Javadoc) - * @see org.fudaa.ctulu.fileformat.FileOperationAbstract#setFile(java.io.File) - */ - @Override - public void setFile(File _f) { - fileName_=_f.getName(); - analyze_ = new CtuluAnalyze(); - analyze_.setResource(_f.getAbsolutePath()); - try { - rawData_=new FileReader(_f); - } - catch (FileNotFoundException _exc) { - } - } - -} Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretWriter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretWriter.java 2009-02-18 20:47:31 UTC (rev 4483) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretWriter.java 2009-02-19 08:32:57 UTC (rev 4484) @@ -1,468 +0,0 @@ -/* - * @creation 19 d\xE9c. 2008 - * @modification $Date:$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.dodico.mascaret.io; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.fudaa.ctulu.CtuluAnalyze; -import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; -import org.fudaa.ctulu.fileformat.FortranInterface; -import org.fudaa.ctulu.gis.GISAttributeConstants; -import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface; -import org.fudaa.ctulu.gis.GISLib; -import org.fudaa.ctulu.gis.GISPolyligne; -import org.fudaa.ctulu.gis.GISZoneCollection; -import org.fudaa.dodico.commun.DodicoLib; - -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.CoordinateSequence; -import com.vividsolutions.jts.geom.Geometry; - -/** - * Ecrit au format mascaret 1d et 2d. - * @author Emmanuel MARTIN - * @version $Id$ - */ -public class MascaretWriter extends FileWriteOperationAbstract { - - /** Le flux de sorti. */ - private Writer out_; - /** Les profils \xE0 \xE9crire. */ - private MascaretProfilAbstractRepresentation[] profils_; - /** Version du fichier mascaret de destination. */ - private String version_; - - /** - * Cette classe permet \xE0 l'exporteur de selectionner les - * profils \xE0 exporter. G\xE9n\xE9ralement les profiles invalides sont ignor\xE9s. - * @author Emmanuel MARTIN - * @version $Id$ - */ - public interface FunctorSelectProfil { - public boolean exportProfil(GISZoneCollection _zone, int _idxProfil); - } - - public MascaretWriter() {} - - /** - * L'argument doit \xEAtre un tableau contenant : - * 0 : string : le nom du bief - * 1 : GISZoneCollectionLigneBrisee[] : les zones dans lesquelles trouver les g\xE9om\xE9tries - * 2 : FunctorSelectProfil : pour selectionner les profils \xE0 exporter - * 3 : string : la version du fichier mascaret g\xE9n\xE9r\xE9 - * - * On passe en param\xE8tre les diff\xE9rentes GISZoneCollectionLigneBrisee qui - * contiennent les g\xE9om\xE9tries n\xE9c\xE9ssaires \xE0 l'exportation. Ces zone peuvent - * contenir des g\xE9om\xE9tries incompatible avec l'export (comme des polygones), - * elles seront simplement ignor\xE9es. Dans le cas o\xF9 des g\xE9om\xE9tries manqueront, - * une exception du type MascaretDataIncomplete est lev\xE9e. Les profils invalides - * sont \xE9galements ignor\xE9s. Si certaines donn\xE9es sont incoh\xE9rentes une exception - * du type MascaretDataError est lev\xE9e. La version du fichier de destination ('1d' - * ou '2d'). Si un des trois param\xE8tres est null une exception de type - * {@link IllegalArgumentException} est lev\xE9e, si version n'est pas soit '1d' - * soit '2d' (case ignor\xE9e) la m\xEAme exception est lev\xE9e. - */ - @Override - protected void internalWrite(Object _o) { - try { - if(((Object[])_o).length!=4) - throw new IllegalArgumentException("Il doit y avoir 4 param\xE8tres dans _o."); - String nomBief=(String)((Object[])_o)[0]; - GISZoneCollection[] zones=(GISZoneCollection[])((Object[])_o)[1]; - FunctorSelectProfil selectorProfil=(FunctorSelectProfil)((Object[])_o)[2]; - version_=(String)((Object[])_o)[3]; - if (nomBief==null) - throw new IllegalArgumentException("nomBief ne doit pas \xEAtre null"); - if (zones==null) - throw new IllegalArgumentException("zones mustn't be null"); - if (version_==null||!version_.equalsIgnoreCase("1d")&&!version_.equalsIgnoreCase("2d")) - throw new IllegalArgumentException("version doit \xEAtre \xE9gale \xE0 1d ou 2d"); - generateMascaretProfilAbstractRepresentations(nomBief, zones, selectorProfil); - - for (int i=0; i<profils_.length; i++) { - MascaretProfilAbstractRepresentation profil=profils_[i]; - // Premi\xE8re ligne - out_.write("Profil "+profil.nomBief+" "+profil.nomProfil+" "+profil.abscisseCurvilingeAxeHydraulique); - if (version_.equals("1d")) - out_.write('\n'); - else { - out_.write(' '); - for (int j=0; j<profil.coordXYTraceProfil.size(); j++) { - out_.write(profil.coordXYTraceProfil.get(j)[0]+" "); - out_.write(profil.coordXYTraceProfil.get(j)[1]+" "); - } - out_.write("AXE "+profil.coordIntersectionAxeHydraulique[0]+" "+profil.coordIntersectionAxeHydraulique[1]); - out_.write('\n'); - } - // Les autres lignes - for (int j=0; j<profil.coordXYProfil.size(); j++) { - out_.write(profil.coordCurviligneProfil.get(j)+" "+profil.coordZ.get(j)+" "+profil.bathyOuTopoOuStockage.get(j)); - if (version_.equals("1d")) - out_.write('\n'); - else - out_.write(" "+profil.coordXYProfil.get(j)[0]+" "+profil.coordXYProfil.get(j)[1]+"\n"); - } - } - } - catch (Exception _exp) { - analyze_.manageException(_exp); - } - } - - @Override - protected FortranInterface getFortranInterface() { - return new FortranInterface() { - public void close() throws IOException { - if (out_ != null) { - out_.close(); - } - } - }; - } - - @Override - public void setFile(File _f) { - analyze_ = new CtuluAnalyze(); - analyze_.setResource(_f.getAbsolutePath()); - FileWriter out = null; - try { - out = new FileWriter(_f); - } catch (final IOException _e) { - analyze_.manageException(_e); - } - if (out != null) { - out_ = out; - } - } - - /** - * G\xE9n\xE8re les repr\xE9sentatino interm\xE9diaires des profils. - * @param zones_ - * @throws MascaretDataError - * @throws MascaretDataIncomplete - */ - private void generateMascaretProfilAbstractRepresentations(String _nomBief, GISZoneCollection[] _zones, FunctorSelectProfil _selectorProfil) throws MascaretDataError, MascaretDataIncomplete{ - // Recherche de l'axe hydraulique \\ - GISZoneCollection zoneAxeHydraulique=null; - int indexAxeHydraulique=-1; - for (int i=0; i<_zones.length; i++) { - int idxAttNature=_zones[i].getIndiceOf(GISAttributeConstants.NATURE); - if (idxAttNature!=-1) - for (int j=0; j<_zones[i].getNbGeometries(); j++) - if (_zones[i].getValue(idxAttNature, j)==GISAttributeConstants.ATT_NATURE_AH) - if (zoneAxeHydraulique==null) { - zoneAxeHydraulique=_zones[i]; - indexAxeHydraulique=j; - } - else - throw new MascaretDataError("Il existe plusieurs axes hydrauliques."); - } - if(zoneAxeHydraulique==null) - throw new MascaretDataIncomplete("Il n'y a pas d'axes hydrauliques."); - - // Recherche des profils \\ - List<GISZoneCollection> profils=new ArrayList<GISZoneCollection>(); - List<Integer> indexProfils=new ArrayList<Integer>(); - int nbProfilNotKeep=0; - for (int i=0; i<_zones.length; i++) { - int idxAttNature=_zones[i].getIndiceOf(GISAttributeConstants.NATURE); - if (idxAttNature!=-1) - for (int j=0; j<_zones[i].getNbGeometries(); j++) - if (_zones[i].getValue(idxAttNature, j)==GISAttributeConstants.ATT_NATURE_PF) { - if(_selectorProfil.exportProfil(_zones[i], j)) { - profils.add(_zones[i]); - indexProfils.add(j); - } - else - nbProfilNotKeep++; - } - } - if (nbProfilNotKeep>0) - analyze_.addWarn(DodicoLib.getS("{0} profils sur {1} n'ont pas \xE9t\xE9 export\xE9s car ils ne sont pas conformes",""+nbProfilNotKeep,""+(indexProfils.size()+nbProfilNotKeep)), -1); - else - analyze_.addInfo(DodicoLib.getS("{0} profils ont \xE9t\xE9 export\xE9s",""+(indexProfils.size()+nbProfilNotKeep))); - - - // G\xE9n\xE9ration des MascaretProfilAbstractRepresentations \\ - profils_=new MascaretProfilAbstractRepresentation[profils.size()]; - int countNoName=1; - GISPolyligne axeHydraulique=(GISPolyligne)zoneAxeHydraulique.getGeometry(indexAxeHydraulique); - for (int i=0;i<profils.size();i++) { - GISZoneCollection zoneProfil=profils.get(i); - int idxProfil=indexProfils.get(i); - GISPolyligne profil=(GISPolyligne) zoneProfil.getGeometry(idxProfil); - MascaretProfilAbstractRepresentation profilAbs=new MascaretProfilAbstractRepresentation(); - - // Information globales sur le profil \\ - // Nom bief - profilAbs.nomBief=_nomBief.replace(' ', '_'); - // Nom profil - int idxTitle=zoneProfil.getIndiceOf(GISAttributeConstants.TITRE); - if(idxTitle!=-1){ - String nomProfil=(String) zoneProfil.getValue(idxTitle, idxProfil); - profilAbs.nomProfil=nomProfil.replace(' ', '_'); - } - else - profilAbs.nomProfil="No_Name_"+countNoName++; - // Intersection axe hydraulique - Geometry intersection=axeHydraulique.intersection(profil); - if(intersection.getNumPoints()!=1) - throw new MascaretDataError("Un profil \xE0 plusieurs ou aucun point(s) d'intersection(s) avec l'axe hydraulique."); - profilAbs.coordIntersectionAxeHydraulique=new double[]{intersection.getCoordinate().x, intersection.getCoordinate().y}; - // Abscisse curviligne axe hydraulique - int idxAttrCommHydraulique=zoneProfil.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO); - if(idxAttrCommHydraulique==-1) - throw new MascaretDataError("L'attribut COMMENTAIRE_HYDRO doit \xEAtre pr\xE9sent."); - String comm=(String) zoneProfil.getValue(idxAttrCommHydraulique, idxProfil); - if(!GISLib.isHydroCommentValued(comm, "PK")) - throw new MascaretDataError("La propri\xE9t\xE9 PK de COMMENTAIRE_HYDRO doit \xEAtre valu\xE9e."); - profilAbs.abscisseCurvilingeAxeHydraulique=GISLib.getHydroCommentDouble(comm, "PK"); - CoordinateSequence coordSeq=axeHydraulique.getCoordinateSequence(); - // Trace profil - coordSeq=profil.getCoordinateSequence(); - Coordinate coord[]=getPointsRuptures(coordSeq); - profilAbs.coordXYTraceProfil.add(new double[]{coordSeq.getX(0), coordSeq.getY(0)}); - for(int j=0;j<coord.length;j++) - profilAbs.coordXYTraceProfil.add(new double[]{coord[j].x, coord[j].y}); - profilAbs.coordXYTraceProfil.add(new double[]{coordSeq.getX(coordSeq.size()-1), coordSeq.getY(coordSeq.size()-1)}); - - // Information atomiques sur le profil \\ - coordSeq=profil.getCoordinateSequence(); - int idxZ=zoneProfil.getIndiceOf(zoneProfil.getAttributeIsZ()); - for(int j=0;j<profil.getNumPoints();j++){ - // Valeur curviligne - profilAbs.coordCurviligneProfil.add(absCurv(coordSeq, j)); - // Coordonn\xE9es X Y - ... [truncated message content] |
From: <de...@us...> - 2009-02-18 20:47:34
|
Revision: 4483 http://fudaa.svn.sourceforge.net/fudaa/?rev=4483&view=rev Author: deniger Date: 2009-02-18 20:47:31 +0000 (Wed, 18 Feb 2009) Log Message: ----------- note pour adrien Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java 2009-02-18 20:21:27 UTC (rev 4482) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java 2009-02-18 20:47:31 UTC (rev 4483) @@ -14,35 +14,18 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; -import java.util.Collection; -import javax.print.Doc; -import javax.print.DocFlavor; -import javax.print.DocPrintJob; -import javax.print.PrintException; -import javax.print.PrintService; -import javax.print.PrintServiceLookup; -import javax.print.SimpleDoc; import javax.print.StreamPrintService; import javax.print.StreamPrintServiceFactory; -import javax.print.attribute.HashDocAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.Copies; -import javax.print.attribute.standard.MediaSize; -import javax.print.attribute.standard.Sides; import javax.swing.JTable; import org.fudaa.ctulu.CtuluResource; -import org.jdesktop.swingx.painter.ImagePainter; -import sun.print.PageableDoc; - -import com.db4o.inside.Exceptions4; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; -import com.lowagie.text.List; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Rectangle; @@ -52,7 +35,12 @@ import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfWriter; +//TODO ADRIEN comment cela peut compiler ? +//Il est recommander d'utiliser la commande organize import::: +//import org.jdesktop.swingx.painter.ImagePainter; + + /** * Classe qui g\xE8re l'exportation pdf et ps. * utilise la librairie iText. @@ -100,6 +88,8 @@ graphics.drawImage((BufferedImage)_image,0,0,null); graphics.dispose(); cb.addTemplate(tp, 0, 0); + //TODO ADRIEN cela ne sert a rien de faire des catch pour faire seulement des + //throw a l'interieur. Eventuellement, log avec FuLog. } catch (DocumentException ex) { throw ex; } catch (IOException ex) { @@ -114,6 +104,7 @@ public static class PrintableObject implements Printable{ BufferedImage image_; +//TODO ADRIEN remplacer img par _img public PrintableObject(BufferedImage img){ image_=img; } @@ -150,6 +141,7 @@ outstream = new FileOutputStream(_targetFile); psPrinter = spsFactories[0].getPrintService(outstream); // psPrinter can now be set as the service on a PrinterJob + //TODO ADRIEN utilit\xE9 ? } catch (FileNotFoundException e) { throw e; } @@ -214,7 +206,7 @@ * @author Adrien Hadoux */ public static void addDataToDocPdf(java.util.List _data1,java.util.List _data2,String _title,Document _document) throws DocumentException{ - + //TODO ADRIEN loguer le truc non ? if(_data1.size()!=_data2.size()) return; @@ -241,6 +233,8 @@ * @author Adrien Hadoux */ public static void addDataToDocPdf(java.util.List<java.util.List> _liste,String _title,Document _document) throws DocumentException{ + //TODO ADRIEN rien a dire la. Un conseil essaie d'utiliser la fonction Clean Up et Format d'eclipse qui te permette d'avoir un + //code + propre. En l'etat, ce code est bon, je chipote... PdfPTable table = new PdfPTable(_liste.size()); //-- titre --// PdfPCell cell = new PdfPCell(new Paragraph(_title)); @@ -265,6 +259,7 @@ PdfContentByte cb = _writer.getDirectContent(); cb.saveState(); Graphics2D g2 = cb.createGraphicsShapes(500, 500); + cb.createGraphics(500, 500); Shape oldClip = g2.getClip(); g2.clipRect(0, 0, 500, 500); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2009-02-18 20:21:32
|
Revision: 4482 http://fudaa.svn.sourceforge.net/fudaa/?rev=4482&view=rev Author: hadouxad Date: 2009-02-18 20:21:27 +0000 (Wed, 18 Feb 2009) Log Message: ----------- l'interface de lecture de l'aide en pdf est tr?\195?\168s bien avanc?\195?\169e * l'interface est tr?\195?\168s souple: cela lis compl?\195?\168tement le jar de documentation et r?\195?\169cup?\195?\168re le moindre fichier d'extension pdf, la structure doit ?\195?\170tre de pr?\195?\169f?\195?\169rence de niveau 1 (1 niveau de r?\195?\169pertoire) pour simplifier. * cela fonctionne aussi avec un r?\195?\169pertoire de fichiers classiques (non jar) et cette fois ci c'est r?\195?\169cursif (accepte tous les niveaux) * pour la lecture pdf depuis le jar, ?\195?\167a ?\195?\169cris un fichier temporaire , et c'est tr?\195?\168s rapide avec le viewer java (+ rapide qu'avec ceux des os) * on peut choisir le viewer pdf int?\195?\169gr?\195?\169 ou executer depuis son lecteur pdf pr?\195?\169f?\195?\169r?\195?\169 * on peut sauvegarder, ouvrir et imprimer son fichier pdf Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluImageExport.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluFramePdfCustomViewer.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPanelPdfViewer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/ScopeCourbeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MVProfileCourbeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrCommonImplementation.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/rapport/TrPostRapportLayout.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDocPdfFille.java Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluImageExport.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluImageExport.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluImageExport.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -34,6 +34,7 @@ import org.fudaa.ctulu.CtuluTaskDelegate; import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.pdf.CtuluPdfPsExport; /** * @author Fred Deniger Deleted: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -1,294 +0,0 @@ -package org.fudaa.ctulu.image; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.image.BufferedImage; -import java.awt.image.RenderedImage; -import java.awt.print.PageFormat; -import java.awt.print.Paper; -import java.awt.print.Printable; -import java.awt.print.PrinterException; -import java.awt.print.PrinterJob; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.Collection; - -import javax.print.Doc; -import javax.print.DocFlavor; -import javax.print.DocPrintJob; -import javax.print.PrintException; -import javax.print.PrintService; -import javax.print.PrintServiceLookup; -import javax.print.SimpleDoc; -import javax.print.StreamPrintService; -import javax.print.StreamPrintServiceFactory; -import javax.print.attribute.HashDocAttributeSet; -import javax.print.attribute.HashPrintRequestAttributeSet; -import javax.print.attribute.PrintRequestAttributeSet; -import javax.print.attribute.standard.Copies; -import javax.print.attribute.standard.MediaSize; -import javax.print.attribute.standard.Sides; -import javax.swing.JTable; - -import org.fudaa.ctulu.CtuluResource; -import org.jdesktop.swingx.painter.ImagePainter; - -import sun.print.PageableDoc; - -import com.db4o.inside.Exceptions4; -import com.lowagie.text.Document; -import com.lowagie.text.DocumentException; -import com.lowagie.text.List; -import com.lowagie.text.PageSize; -import com.lowagie.text.Paragraph; -import com.lowagie.text.Rectangle; -import com.lowagie.text.pdf.PdfContentByte; -import com.lowagie.text.pdf.PdfPCell; -import com.lowagie.text.pdf.PdfPTable; -import com.lowagie.text.pdf.PdfTemplate; -import com.lowagie.text.pdf.PdfWriter; - - -/** - * Classe qui g\xE8re l'exportation pdf et ps. - * utilise la librairie iText. - * @author Adrien Hadoux - */ -public class CtuluPdfPsExport { - - public static String FORMATPdf="pdf"; - public static String FORMATPS="ps"; - - /** - * Format A4 portait - */ - public static Rectangle FORMAT_A4_PORTRAIT=PageSize.A4.rotate(); - public static Rectangle FORMAT_A4=PageSize.A4; - - - public static void write(final RenderedImage _image, final File _targetFile, final String _format) throws DocumentException,IOException,Exception{ - - if(isApdfFormat(_format)) - writePDF(_image, _targetFile, _format); - else - if(isApsFormat(_format)) - writePostScript(_image, _targetFile, _format); - - } - /** - *Un lecteur pdf pour ecrire les images - *@author Adrien Hadoux - */ - public static void writePDF(final RenderedImage _image, final File _targetFile, final String _format) throws DocumentException,IOException{ - int w = _image.getWidth(); - int h = _image.getHeight(); - Document document = new Document(new Rectangle(w,h)); - //-- ajout des infos relatives au document --// - document.addTitle(CtuluResource.CTULU.getString("Exportation PDF")); - document.addAuthor("FUDAA generating document"); - try { - PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(_targetFile)); - document.open(); - PdfContentByte cb = writer.getDirectContent(); - PdfTemplate tp = cb.createTemplate(w, h); - Graphics2D graphics = tp.createGraphics(w, h); - //-- dessin de l'image --// - graphics.drawImage((BufferedImage)_image,0,0,null); - graphics.dispose(); - cb.addTemplate(tp, 0, 0); - } catch (DocumentException ex) { - throw ex; - } catch (IOException ex) { - throw ex; - }finally{ - document.close(); - } - } - - - - -public static class PrintableObject implements Printable{ - BufferedImage image_; - public PrintableObject(BufferedImage img){ - image_=img; - } - public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) - throws PrinterException { - // graphics.drawImage(image_,0,0,image_.getWidth(),image_.getHeight(),null); - - graphics.drawImage(image_,0,0,(int)pageFormat.getWidth(),(int)pageFormat.getHeight(),null); - return 0; - } -} - -/** - *Un lecteur ps - *@author Adrien Hadoux - */ -public static void writePostScript(final RenderedImage _image, final File _targetFile, final String _format) throws Exception{ - PrintableObject objectToPrint=new PrintableObject((BufferedImage) _image); - PrinterJob job = PrinterJob.getPrinterJob(); - PageFormat format=new PageFormat(); - Paper paper=new Paper(); - paper.setSize(_image.getWidth(),_image.getHeight()); - paper.setImageableArea(0,0, _image.getWidth(), _image.getHeight()); - format.setPaper(paper); - job.setPrintable(objectToPrint,format); - - String psMimeType = "application/postscript"; - FileOutputStream outstream; - StreamPrintService psPrinter=null; - StreamPrintServiceFactory []spsFactories = - PrinterJob.lookupStreamPrintServices(psMimeType); - if (spsFactories.length > 0) { - try { - outstream = new FileOutputStream(_targetFile); - psPrinter = spsFactories[0].getPrintService(outstream); - // psPrinter can now be set as the service on a PrinterJob - } catch (FileNotFoundException e) { - throw e; - } - } - job.setPrintService(psPrinter); // if app wants to specify this printer. - PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); - aset.add(new Copies(1)); - job.print(aset); - } - - - - - - /** - * Test si le format est un format pdf ou ps - * @param format - * @return - */ - public static boolean isApdfPsFormat(String format){ - return isApdfFormat(format) ||isApsFormat(format); - } - - public static boolean isApdfFormat(String format){ - return format.toLowerCase().equals(FORMATPdf); - } - - - - public static boolean isApsFormat(String format){ - return format.toLowerCase().equals(FORMATPS); - } - /** - * Methode qui ajoute le tableau de data dans le fichier pdf - * @param _data tableau de donn\xE9es - * @param _title titre du tableau - * @param _document document pdf - * @throws DocumentException - * @author Adrien Hadoux - */ - public static void addDataToDocPdf(Object[][] _data,String _title,Document _document) throws DocumentException{ - PdfPTable table = new PdfPTable(2); - //-- titre --// - PdfPCell cell = new PdfPCell(new Paragraph(_title)); - cell.setColspan(2); - table.addCell(cell); - //-- remplissage --// - for(int i=0;i<_data.length;i++) - for(int j=0;j<_data.length;i++) - table.addCell(_data[i][j].toString()); - _document.add(table); - } - - /** - * Methode qui ajoute le tableau de data dans le fichier pdf - * @param _data1 donnees colonnes 1 - * @param _data2 donnees colonnes 2 - * - * @param _title titre du tableau - * @param _document document pdf - * @throws DocumentException - * @author Adrien Hadoux - */ - public static void addDataToDocPdf(java.util.List _data1,java.util.List _data2,String _title,Document _document) throws DocumentException{ - - if(_data1.size()!=_data2.size()) - return; - - PdfPTable table = new PdfPTable(2); - //-- titre --// - PdfPCell cell = new PdfPCell(new Paragraph(_title)); - cell.setColspan(2); - table.addCell(cell); - //-- remplissage --// - for(int i=0;i<_data1.size();i++){ - table.addCell(_data1.get(i).toString()); - table.addCell(_data2.get(i).toString()); - - } - _document.add(table); - } - - /** - * Methode qui ajoute le tableau de data dans le fichier pdf - * @param data1 liste de listes - * @param title titre du tableau - * @param document document pdf - * @throws DocumentException - * @author Adrien Hadoux - */ - public static void addDataToDocPdf(java.util.List<java.util.List> _liste,String _title,Document _document) throws DocumentException{ - PdfPTable table = new PdfPTable(_liste.size()); - //-- titre --// - PdfPCell cell = new PdfPCell(new Paragraph(_title)); - cell.setColspan(_liste.size()); - table.addCell(cell); - //-- remplissage --// - for(java.util.List sousListe:_liste) - for(Object l:sousListe) - table.addCell(l.toString()); - - _document.add(table); - } - - - /** - * Methode qui ajoute le tableau jtable dans le fichier pdf - * @param jtable - * @author Adrien Hadoux - */ - - public static void addJTableToPdf(JTable _tableToadd,PdfWriter _writer){ - PdfContentByte cb = _writer.getDirectContent(); - cb.saveState(); - Graphics2D g2 = cb.createGraphicsShapes(500, 500); - cb.createGraphics(500, 500); - Shape oldClip = g2.getClip(); - g2.clipRect(0, 0, 500, 500); - _tableToadd.print(g2); - g2.setClip(oldClip); - g2.dispose(); - cb.restoreState(); - } - - - /** - * Methode qui ajoute une image dans le fichier pdf - * @param BufferedImage image a ins\xE9rer - * @author Adrien Hadoux - */ - public static void addImageToPdf(BufferedImage _img,PdfWriter _writer,int w,int h){ - PdfContentByte cb = _writer.getDirectContent(); - PdfTemplate tp = cb.createTemplate(w, h); - Graphics2D graphics = tp.createGraphics(w, h); - //-- dessin de l'image --// - graphics.drawImage(_img,0,0,null); - graphics.dispose(); - cb.addTemplate(tp, 0, 0); - - } - -} Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluFramePdfCustomViewer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluFramePdfCustomViewer.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluFramePdfCustomViewer.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -63,32 +63,8 @@ }); //-- menus --// - JMenuBar mb = new JMenuBar(); - JMenu file = new JMenu("File"); - file.add(pdfViewer.openAction); - file.add(pdfViewer.closeAction); - file.addSeparator(); - file.add(pdfViewer.pageSetupAction); - file.add(pdfViewer.printAction); - file.addSeparator(); - file.add(pdfViewer.quitAction); - mb.add(file); - JMenu view = new JMenu("View"); - JMenu zoom = new JMenu("Zoom"); - zoom.add(pdfViewer.zoomInAction); - zoom.add(pdfViewer.zoomOutAction); - zoom.add(pdfViewer.fitInWindowAction); - zoom.setEnabled(false); - view.add(zoom); - view.add(pdfViewer.fullScreenAction); - - if (pdfViewer.doThumb) { - view.addSeparator(); - view.add(pdfViewer.thumbAction); - } - - mb.add(view); - setJMenuBar(mb); + + setJMenuBar(pdfViewer.getMenuBar()); Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPanelPdfViewer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPanelPdfViewer.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPanelPdfViewer.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -33,6 +33,7 @@ import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JMenu; +import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextField; @@ -46,6 +47,7 @@ import org.fudaa.ctulu.CtuluUI; +import com.memoire.bu.BuMenuBar; import com.memoire.bu.BuPanel; import com.sun.pdfview.Flag; import com.sun.pdfview.FullScreenWindow; @@ -121,7 +123,45 @@ /** the document menu */ JMenu docMenu; + + + + BuMenuBar menuBar_ =null; + /** + * Remplit la barre de menu avec les actions importantes. + * @return + */ + public BuMenuBar getMenuBar(){ + if(menuBar_==null){ + menuBar_=new BuMenuBar(); + JMenu file = new JMenu("File"); + file.add(openAction); + file.add(closeAction); + file.addSeparator(); + file.add(pageSetupAction); + file.add(printAction); + file.addSeparator(); + file.add(quitAction); + menuBar_.add(file); + JMenu view = new JMenu("View"); + JMenu zoom = new JMenu("Zoom"); + zoom.add(zoomInAction); + zoom.add(zoomOutAction); + zoom.add(fitInWindowAction); + zoom.setEnabled(false); + view.add(zoom); + view.add(fullScreenAction); + + if (doThumb) { + view.addSeparator(); + view.add(thumbAction); + } + } + return menuBar_; + } + + /** * utility method to get an icon from the resources of this class * @param name the name of the icon * @return the icon, or null if the icon wasn't found. @@ -289,6 +329,11 @@ } /** + * la toolbar du viewer. + */ + JToolBar toolbar_; + + /** * Initialize this PDFViewer by creating the GUI. */ protected void init() { @@ -317,17 +362,17 @@ //outlinePanel=new BuPanel(); //this.add(outlinePanel,BorderLayout.EAST); //outlinePanel.setBorder(BorderFactory.createTitledBorder("Outline")); - JToolBar toolbar = new JToolBar(); - toolbar.setFloatable(false); + toolbar_ = new JToolBar(); + toolbar_.setFloatable(false); JButton jb; jb = new JButton(firstAction); jb.setText(""); - toolbar.add(jb); + toolbar_.add(jb); jb = new JButton(prevAction); jb.setText(""); - toolbar.add(jb); + toolbar_.add(jb); pageField = new JTextField("-", 3); // pageField.setEnabled(false); pageField.setMaximumSize(new Dimension(45, 32)); @@ -337,22 +382,22 @@ doPageTyped(); } }); - toolbar.add(pageField); + toolbar_.add(pageField); jb = new JButton(nextAction); jb.setText(""); - toolbar.add(jb); + toolbar_.add(jb); jb = new JButton(lastAction); jb.setText(""); - toolbar.add(jb); + toolbar_.add(jb); - toolbar.add(Box.createHorizontalGlue()); + //toolbar_.add(Box.createHorizontalGlue()); fullScreenButton = new JToggleButton(fullScreenAction); fullScreenButton.setText(""); - toolbar.add(fullScreenButton); + toolbar_.add(fullScreenButton); fullScreenButton.setEnabled(true); - toolbar.add(Box.createHorizontalGlue()); + //toolbar_.add(Box.createGlue()); JToggleButton jtb; ButtonGroup bg = new ButtonGroup(); @@ -360,20 +405,20 @@ jtb = new JToggleButton(zoomToolAction); jtb.setText(""); bg.add(jtb); - toolbar.add(jtb); + toolbar_.add(jtb); jtb = new JToggleButton(fitInWindowAction); jtb.setText(""); bg.add(jtb); jtb.setSelected(true); - toolbar.add(jtb); + toolbar_.add(jtb); - toolbar.add(Box.createHorizontalGlue()); + //toolbar_.add(Box.createHorizontalGlue()); jb = new JButton(printAction); jb.setText(""); - toolbar.add(jb); + toolbar_.add(jb); - add(toolbar, BorderLayout.NORTH); + add(toolbar_, BorderLayout.NORTH); setEnabling(); @@ -399,6 +444,11 @@ } } + + public JToolBar getToolBar(){ + return toolbar_; + } + /** * Changes the displayed page, desyncing if we're not on the * same page as a presenter. @@ -594,6 +644,7 @@ JScrollPane jsp = new JScrollPane(jt); //-- ajout dans le outline panel --// + outlinePanel.removeAll(); outlinePanel.add(jsp); this.revalidate(); @@ -610,6 +661,10 @@ } } + public PDFFile getCurFile() { + return curFile; + } + /** * Display a dialog indicating an error. */ Copied: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java (from rev 4480, branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/image/CtuluPdfPsExport.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -0,0 +1,294 @@ +package org.fudaa.ctulu.pdf; + +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Shape; +import java.awt.image.BufferedImage; +import java.awt.image.RenderedImage; +import java.awt.print.PageFormat; +import java.awt.print.Paper; +import java.awt.print.Printable; +import java.awt.print.PrinterException; +import java.awt.print.PrinterJob; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Collection; + +import javax.print.Doc; +import javax.print.DocFlavor; +import javax.print.DocPrintJob; +import javax.print.PrintException; +import javax.print.PrintService; +import javax.print.PrintServiceLookup; +import javax.print.SimpleDoc; +import javax.print.StreamPrintService; +import javax.print.StreamPrintServiceFactory; +import javax.print.attribute.HashDocAttributeSet; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.PrintRequestAttributeSet; +import javax.print.attribute.standard.Copies; +import javax.print.attribute.standard.MediaSize; +import javax.print.attribute.standard.Sides; +import javax.swing.JTable; + +import org.fudaa.ctulu.CtuluResource; +import org.jdesktop.swingx.painter.ImagePainter; + +import sun.print.PageableDoc; + +import com.db4o.inside.Exceptions4; +import com.lowagie.text.Document; +import com.lowagie.text.DocumentException; +import com.lowagie.text.List; +import com.lowagie.text.PageSize; +import com.lowagie.text.Paragraph; +import com.lowagie.text.Rectangle; +import com.lowagie.text.pdf.PdfContentByte; +import com.lowagie.text.pdf.PdfPCell; +import com.lowagie.text.pdf.PdfPTable; +import com.lowagie.text.pdf.PdfTemplate; +import com.lowagie.text.pdf.PdfWriter; + + +/** + * Classe qui g\xE8re l'exportation pdf et ps. + * utilise la librairie iText. + * @author Adrien Hadoux + */ +public class CtuluPdfPsExport { + + public static String FORMATPdf="pdf"; + public static String FORMATPS="ps"; + + /** + * Format A4 portait + */ + public static Rectangle FORMAT_A4_PORTRAIT=PageSize.A4.rotate(); + public static Rectangle FORMAT_A4=PageSize.A4; + + + public static void write(final RenderedImage _image, final File _targetFile, final String _format) throws DocumentException,IOException,Exception{ + + if(isApdfFormat(_format)) + writePDF(_image, _targetFile, _format); + else + if(isApsFormat(_format)) + writePostScript(_image, _targetFile, _format); + + } + /** + *Un lecteur pdf pour ecrire les images + *@author Adrien Hadoux + */ + public static void writePDF(final RenderedImage _image, final File _targetFile, final String _format) throws DocumentException,IOException{ + int w = _image.getWidth(); + int h = _image.getHeight(); + Document document = new Document(new Rectangle(w,h)); + //-- ajout des infos relatives au document --// + document.addTitle(CtuluResource.CTULU.getString("Exportation PDF")); + document.addAuthor("FUDAA generating document"); + try { + PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(_targetFile)); + document.open(); + PdfContentByte cb = writer.getDirectContent(); + PdfTemplate tp = cb.createTemplate(w, h); + Graphics2D graphics = tp.createGraphics(w, h); + //-- dessin de l'image --// + graphics.drawImage((BufferedImage)_image,0,0,null); + graphics.dispose(); + cb.addTemplate(tp, 0, 0); + } catch (DocumentException ex) { + throw ex; + } catch (IOException ex) { + throw ex; + }finally{ + document.close(); + } + } + + + + +public static class PrintableObject implements Printable{ + BufferedImage image_; + public PrintableObject(BufferedImage img){ + image_=img; + } + public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) + throws PrinterException { + // graphics.drawImage(image_,0,0,image_.getWidth(),image_.getHeight(),null); + + graphics.drawImage(image_,0,0,(int)pageFormat.getWidth(),(int)pageFormat.getHeight(),null); + return 0; + } +} + +/** + *Un lecteur ps + *@author Adrien Hadoux + */ +public static void writePostScript(final RenderedImage _image, final File _targetFile, final String _format) throws Exception{ + PrintableObject objectToPrint=new PrintableObject((BufferedImage) _image); + PrinterJob job = PrinterJob.getPrinterJob(); + PageFormat format=new PageFormat(); + Paper paper=new Paper(); + paper.setSize(_image.getWidth(),_image.getHeight()); + paper.setImageableArea(0,0, _image.getWidth(), _image.getHeight()); + format.setPaper(paper); + job.setPrintable(objectToPrint,format); + + String psMimeType = "application/postscript"; + FileOutputStream outstream; + StreamPrintService psPrinter=null; + StreamPrintServiceFactory []spsFactories = + PrinterJob.lookupStreamPrintServices(psMimeType); + if (spsFactories.length > 0) { + try { + outstream = new FileOutputStream(_targetFile); + psPrinter = spsFactories[0].getPrintService(outstream); + // psPrinter can now be set as the service on a PrinterJob + } catch (FileNotFoundException e) { + throw e; + } + } + job.setPrintService(psPrinter); // if app wants to specify this printer. + PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); + aset.add(new Copies(1)); + job.print(aset); + } + + + + + + /** + * Test si le format est un format pdf ou ps + * @param format + * @return + */ + public static boolean isApdfPsFormat(String format){ + return isApdfFormat(format) ||isApsFormat(format); + } + + public static boolean isApdfFormat(String format){ + return format.toLowerCase().equals(FORMATPdf); + } + + + + public static boolean isApsFormat(String format){ + return format.toLowerCase().equals(FORMATPS); + } + /** + * Methode qui ajoute le tableau de data dans le fichier pdf + * @param _data tableau de donn\xE9es + * @param _title titre du tableau + * @param _document document pdf + * @throws DocumentException + * @author Adrien Hadoux + */ + public static void addDataToDocPdf(Object[][] _data,String _title,Document _document) throws DocumentException{ + PdfPTable table = new PdfPTable(2); + //-- titre --// + PdfPCell cell = new PdfPCell(new Paragraph(_title)); + cell.setColspan(2); + table.addCell(cell); + //-- remplissage --// + for(int i=0;i<_data.length;i++) + for(int j=0;j<_data.length;i++) + table.addCell(_data[i][j].toString()); + _document.add(table); + } + + /** + * Methode qui ajoute le tableau de data dans le fichier pdf + * @param _data1 donnees colonnes 1 + * @param _data2 donnees colonnes 2 + * + * @param _title titre du tableau + * @param _document document pdf + * @throws DocumentException + * @author Adrien Hadoux + */ + public static void addDataToDocPdf(java.util.List _data1,java.util.List _data2,String _title,Document _document) throws DocumentException{ + + if(_data1.size()!=_data2.size()) + return; + + PdfPTable table = new PdfPTable(2); + //-- titre --// + PdfPCell cell = new PdfPCell(new Paragraph(_title)); + cell.setColspan(2); + table.addCell(cell); + //-- remplissage --// + for(int i=0;i<_data1.size();i++){ + table.addCell(_data1.get(i).toString()); + table.addCell(_data2.get(i).toString()); + + } + _document.add(table); + } + + /** + * Methode qui ajoute le tableau de data dans le fichier pdf + * @param data1 liste de listes + * @param title titre du tableau + * @param document document pdf + * @throws DocumentException + * @author Adrien Hadoux + */ + public static void addDataToDocPdf(java.util.List<java.util.List> _liste,String _title,Document _document) throws DocumentException{ + PdfPTable table = new PdfPTable(_liste.size()); + //-- titre --// + PdfPCell cell = new PdfPCell(new Paragraph(_title)); + cell.setColspan(_liste.size()); + table.addCell(cell); + //-- remplissage --// + for(java.util.List sousListe:_liste) + for(Object l:sousListe) + table.addCell(l.toString()); + + _document.add(table); + } + + + /** + * Methode qui ajoute le tableau jtable dans le fichier pdf + * @param jtable + * @author Adrien Hadoux + */ + + public static void addJTableToPdf(JTable _tableToadd,PdfWriter _writer){ + PdfContentByte cb = _writer.getDirectContent(); + cb.saveState(); + Graphics2D g2 = cb.createGraphicsShapes(500, 500); + cb.createGraphics(500, 500); + Shape oldClip = g2.getClip(); + g2.clipRect(0, 0, 500, 500); + _tableToadd.print(g2); + g2.setClip(oldClip); + g2.dispose(); + cb.restoreState(); + } + + + /** + * Methode qui ajoute une image dans le fichier pdf + * @param BufferedImage image a ins\xE9rer + * @author Adrien Hadoux + */ + public static void addImageToPdf(BufferedImage _img,PdfWriter _writer,int w,int h){ + PdfContentByte cb = _writer.getDirectContent(); + PdfTemplate tp = cb.createTemplate(w, h); + Graphics2D graphics = tp.createGraphics(w, h); + //-- dessin de l'image --// + graphics.drawImage(_img,0,0,null); + graphics.dispose(); + cb.addTemplate(tp, 0, 0); + + } + +} Property changes on: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/pdf/CtuluPdfPsExport.java ___________________________________________________________________ Added: svn:mergeinfo + Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/FudaaHelpPDFViewer.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -1,26 +1,55 @@ package org.fudaa.fudaa.commun; import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; +import java.util.zip.ZipEntry; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; +import javax.swing.JMenuBar; import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.tree.TreePath; +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.pdf.CtuluPanelPdfViewer; +import org.fudaa.ebli.calque.ZCalqueSelectionInteractionAbstract.SelectionMode; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliComponentFactory; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.tr.common.TrResource; import org.jdesktop.swingx.JXTreeTable; import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; import org.jdesktop.swingx.treetable.MutableTreeTableNode; +import com.memoire.bu.BuFileChooser; import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuPanel; import com.memoire.bu.BuRadioButton; +import com.memoire.bu.BuResource; +import com.sun.org.apache.bcel.internal.generic.ATHROW; /** @@ -52,160 +81,606 @@ */ public class FudaaHelpPDFViewer extends BuInternalFrame implements ListSelectionListener{ /** - * La liste des projet afffichage graphique. - */ - public JXTreeTable treePost_; - - /** - * Reperttoire qui contient l'arborescence de fichiers aide. - */ - File repertoireFichiersAide_; - - - /** - * modele structure arborescente - */ - DefaultTreeTableModel modelList_; - - - BuRadioButton useOsPdfViewer_=new BuRadioButton(FudaaLib.getS("Utiliser le lecteur pdf du syst\xE8me d'explloitation")); - BuRadioButton useCtuluPdfViewer_=new BuRadioButton(FudaaLib.getS("Utiliser le lecteur pdf int\xE9gr\xE9 \xE0 Fudaa"));; - - - public FudaaHelpPDFViewer(File repertoireAide) { - this(); - repertoireFichiersAide_=repertoireAide; - } - - FudaaHelpPDFViewer() { - super(); - - // --creation du modele--// - modelList_ = new DefaultTreeTableModel(constructStructureModel()); - - - - treePost_=new JXTreeTable(); - //-- listener du tree --// - treePost_.addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(final MouseEvent e) { - if (e.isPopupTrigger() && e.getClickCount() == 1) { - affichePdfNode(e.getX(), e.getY()); + * La liste des projet afffichage graphique. + */ + public JXTreeTable treePost_; - } - } + + + /** + * Jar qui contient l'arborescence de fichiers aide. + */ + String patJarDocAide_; - - public void mouseReleased(final MouseEvent e) { - if (e.isPopupTrigger() && e.getClickCount() == 1) { - affichePdfNode(e.getX(), e.getY()); - } - } - }); - - treePost_.setBorder(BorderFactory.createEtchedBorder()); - setTitle(FudaaLib.getS("Aide Fudaa")); - final JScrollPane listScroller = new JScrollPane(treePost_); - this.add(listScroller, BorderLayout.CENTER); - final BuPanel operationPanel = new BuPanel(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER)); - this.add(operationPanel, BorderLayout.SOUTH); - operationPanel.add(useOsPdfViewer_); - operationPanel.add(useCtuluPdfViewer_); - - - ButtonGroup group=new ButtonGroup(); - group.add(useOsPdfViewer_); - group.add(useCtuluPdfViewer_); - useOsPdfViewer_.setSelected(true); - - } - - - /** - * Construit le model du tableau. - * @return - */ - public DefaultMutableTreeTableNode constructStructureModel() { - - if(repertoireFichiersAide_==null || ! repertoireFichiersAide_.isDirectory()) - return new DefaultMutableTreeTableNode(FudaaLib.getS("Pas de documentation ")); - - //-- root de l'arborescence --// - DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode(FudaaLib.getS("Aide")+" "+repertoireFichiersAide_.getName()); + /** + * Map qui enregistre l'ensemble des fichiers pdf disponibles dans le fichier jar. + */ + public Map<String, JarEntry> mapEntryPdfJar_; + + /** + * File qui contient l'arborescence de fichiers aide. + */ + File fileDocAide_; - //-- ajout recursivement le contenu du reperttoire a l'arbre --// - addRecursiveFilesToTree(root, repertoireFichiersAide_); - - - return root; - } - - /** - * Ajout recursif des fichiers du repertoire d'aide. - * @param parent - * @param repertoire - */ - public void addRecursiveFilesToTree(DefaultMutableTreeTableNode parent,File repertoire){ - - //-- Repertoire ou se situent les fichiers d'aide --// - for(int i=0;i<repertoireFichiersAide_.listFiles().length;i++){ - File fichier=repertoireFichiersAide_.listFiles()[i]; - if(fichier!=null){ - if(fichier.isDirectory()){ - //-- si un repertoire l'user object est un simple nom de fichier et non pas un objet File --// - DefaultMutableTreeTableNode nodeRepertoire=new DefaultMutableTreeTableNode(fichier.getName()); - parent.add(nodeRepertoire); - //-- on ajoute recursivement le contenu du repertoire fils --// - addRecursiveFilesToTree(nodeRepertoire, repertoire); - - }else{ - DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(fichier); - //-- on ajoute le node qui contient le File --// - parent.add(node); - - } - } - } - - } - - /** - * Affiche le fichier pdf correspondant au feuille cliqu\xE9 - * @param x - * @param y - */ - public void affichePdfNode(final int x, final int y) { - // Get the tree element under the mouse - final TreePath clickedElement = treePost_.getPathForLocation(x, y); - MutableTreeTableNode treeNode = null; - if (clickedElement != null) treeNode = (MutableTreeTableNode) clickedElement.getLastPathComponent(); - if (treeNode != null) { - // -- recuperation du node associe --// - String pathFichier =null; - if(treeNode.getUserObject() instanceof String) - pathFichier=(String) treeNode.getUserObject(); - else - if(treeNode.getUserObject() instanceof File){ - pathFichier=((File)treeNode.getUserObject()).getAbsolutePath(); - } - if(pathFichier==null) - return; - //-- ouverture dans le viewer du fichier pdf slectionn\xE9 --// + /** + * Boolean qui indique si on recupere la doc depuis un repertoire classique ou un jar. + */ + boolean useJarAide=true; - - // TODO lecture du fichier + /** + * modele structure arborescente + */ + DefaultTreeTableModel modelList_; + ArrayList<String> listeColonnesModel_=new ArrayList<String>(); - } + BuRadioButton useOsPdfViewer_=new BuRadioButton(FudaaLib.getS("Utiliser le lecteur pdf du syst\xE8me d'explloitation")); + BuRadioButton useCtuluPdfViewer_=new BuRadioButton(FudaaLib.getS("Utiliser le lecteur pdf int\xE9gr\xE9 \xE0 Fudaa"));; - } - - - - - public void valueChanged(ListSelectionEvent e) { + /** + * IHM lecteur pdf fudaa + */ + CtuluPanelPdfViewer pdfViewer; + /** + * Implementation mere + */ + CtuluUI ui_; + BuPanel outlinePanel; + BuPanel thumbscrollContainer; + BuPanel conteneurPdf_; + + + /** + * path par defaut de la documentation + */ + public final static String PATH_JAR_DOCUM="C:\\devel\\FUDAAdocumentation.jar"; + + /** + * Constructeur pour la creation de l'interface Fudaa. + * @param fichierJar nom du jar \xE0 utiliser (celui qui contient la doc). Peut etre le jar logiciel lui meme. + * @param _ui implementaion fudaa. + * @param useThumbs Utilise ou non les apercu images des pages (pour un gain de place, mettre \xE0 false). + */ + public FudaaHelpPDFViewer(String pathFichierJar,CtuluUI _ui,boolean useThumbs) { + ui_=_ui; + //-- tentative de verification que le jar existe bien a cet emplacement --// + //TODO a decommenter virer le lien en dur, pour dev et test + pathFichierJar=PATH_JAR_DOCUM; + patJarDocAide_=verifPathForJarIsCorrect(pathFichierJar); + + + // --creation du modele depuis un fichier jar ou un r\xE9pertoire classique selon le constructeur appel\xE9.--// + listeColonnesModel_.add(FudaaResource.FUDAA.getString("Aide disponible")); + modelList_ = new DefaultTreeTableModel(constructStructureModelWithJAREntree(),listeColonnesModel_); + + constructFudaaHelpPDFViewer(useThumbs); } + + /** + * Verifie que le chemin saisi contient bien un jar sinon demande correction a l'utilisateur. + * @param pathPresumePourJar + * @return + */ + public String verifPathForJarIsCorrect(String pathPresumePourJar){ + File test=new File(pathPresumePourJar); + if(test==null || !test.exists() || test.isDirectory()){ + + ui_.error(FudaaResource.FUDAA.getString("Erreur, Il n'y a pas de fichier jar de document \xE0 l'adresse suivante: "+pathPresumePourJar)); + + BuFileChooser chooser=new BuFileChooser(); + int rep=chooser.showOpenDialog(ui_.getParentComponent()); + if(rep==BuFileChooser.APPROVE_OPTION){ + pathPresumePourJar=chooser.getSelectedFile().getAbsolutePath(); + } + + } + return pathPresumePourJar; + + } + + + public FudaaHelpPDFViewer(File fichier,CtuluUI _ui,boolean useThumbs) { + ui_=_ui; + fileDocAide_=fichier; + useJarAide=false; + // --creation du modele depuis un fichier jar ou un r\xE9pertoire classique selon le constructeur appel\xE9.--// + listeColonnesModel_.add(FudaaResource.FUDAA.getString("Aide disponible")); + modelList_ = new DefaultTreeTableModel(constructStructureModelWithFileEntree(),listeColonnesModel_); + + constructFudaaHelpPDFViewer(useThumbs); + } + + + + private void constructFudaaHelpPDFViewer(boolean useThumbs) { + + treePost_=new JXTreeTable(modelList_); + //-- listener du tree --// + treePost_.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(final MouseEvent e) { + if ( e.getClickCount() == 2) { + affichePdfNode(e.getX(), e.getY()); + + } + } + + +// public void mouseReleased(final MouseEvent e) { +// if ( e.getClickCount() == 2) { +// affichePdfNode(e.getX(), e.getY()); +// } +// } + }); + treePost_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + treePost_.setBorder(BorderFactory.createEtchedBorder()); + treePost_.setEditable(false); + setTitle(FudaaLib.getS("Aide Fudaa")); + final JScrollPane listScroller = new JScrollPane(treePost_); + listScroller.setBorder(BorderFactory.createTitledBorder(FudaaResource.FUDAA.getString("Menu des fichiers"))); + + final BuPanel operationPanel = new BuPanel(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER)); + operationPanel.add(useOsPdfViewer_); + operationPanel.add(useCtuluPdfViewer_); + + + ButtonGroup group=new ButtonGroup(); + group.add(useOsPdfViewer_); + group.add(useCtuluPdfViewer_); + + + //-- construction de l'interface pdf--// + outlinePanel=new BuPanel(); + outlinePanel.setBorder(BorderFactory.createTitledBorder("Chapitres")); + thumbscrollContainer=new BuPanel(); + thumbscrollContainer.setBorder(BorderFactory.createTitledBorder(CtuluResource.CTULU.getString("Pages"))); + + pdfViewer=new CtuluPanelPdfViewer(useThumbs,ui_,outlinePanel,thumbscrollContainer); + + conteneurPdf_=new BuPanel(new BorderLayout()); +// JSplitPane panePdf=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); +// panePdf.setTopComponent(pdfViewer); +// panePdf.setBottomComponent(outlinePanel); + // panePdf.setDividerLocation(800); + conteneurPdf_.add(pdfViewer,BorderLayout.CENTER); + conteneurPdf_.add(new JScrollPane(outlinePanel),BorderLayout.EAST); + conteneurPdf_.add(operationPanel, BorderLayout.SOUTH); + + //-- ajotu des thumbnails si activ\xE9--// + if(useThumbs) + conteneurPdf_.add(thumbscrollContainer,BorderLayout.WEST); + + final JSplitPane pane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); + pane.setTopComponent(listScroller); + pane.setBottomComponent(conteneurPdf_); + pane.setDividerLocation(250); + + this.setLayout(new BorderLayout()); +// this.add(conteneurPdf_,BorderLayout.CENTER); +// this.add(listScroller, BorderLayout.WEST); + this.add(pane,BorderLayout.CENTER); + useCtuluPdfViewer_.setSelected(true); + + useOsPdfViewer_.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e) { + pane.remove(conteneurPdf_); + + rafraichir(); + } + + }); + useCtuluPdfViewer_.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e) { + pane.setBottomComponent(conteneurPdf_); + pane.setDividerLocation(250); + rafraichir(); + } + + }); + + + //--MenuBarre --// + JMenuBar bm=pdfViewer.getMenuBar(); + this.setJMenuBar(bm); + + //-- construction de la toolbar --// + + BuResource.BU.getToolIcon("pleinecran"); + BuResource.BU.loadToolCommandIcon("RAFRAICHIR"); + + this.add(pdfViewer.getToolBar(),BorderLayout.NORTH); + EbliActionSimple action =new EbliActionSimple(FudaaResource.FUDAA.getString("Sauvegarder"),FudaaResource.FUDAA.getToolIcon("pdfdoc"),"SAUVERPDF"){ + public void actionPerformed(ActionEvent _e) { + sauvegarderFichierPdf(); + } + }; + pdfViewer.getToolBar().add(action.buildToolButton(EbliComponentFactory.INSTANCE),0); + action =new EbliActionSimple(FudaaResource.FUDAA.getString("Rafraichir"),FudaaResource.FUDAA.getToolIcon("RAFRAICHIR"),"RAFRAICHIRPDF"){ + public void actionPerformed(ActionEvent _e) { + rafraichir(); + } + }; + pdfViewer.getToolBar().add(action.buildToolButton(EbliComponentFactory.INSTANCE),0); + + pdfViewer.getToolBar().add(useCtuluPdfViewer_); + pdfViewer.getToolBar().add(useOsPdfViewer_); + + //-- initialiser le pdfviewer interne avec le premier pdf feuille de la liste --// + if(useJarAide){ + //useCtuluPdfViewer_.setSelected(true); + if(mapEntryPdfJar_!=null){ + openPdfJar(mapEntryPdfJar_.get(mapEntryPdfJar_.keySet().iterator().next())); + } + + } + } + + + /** + * Construit le model du tableau si l'aides est propos\xE9es depuis un repertoire classique. + * @return + */ + public DefaultMutableTreeTableNode constructStructureModelWithFileEntree() { + + if(fileDocAide_==null || ! fileDocAide_.isDirectory()) + return new DefaultMutableTreeTableNode(FudaaLib.getS("Pas de documentation ")); + + //-- root de l'arborescence --// + DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode(FudaaLib.getS("Aide")+" "+fileDocAide_.getName()); + + //-- ajout recursivement le contenu du reperttoire a l'arbre --// + addRecursiveFilesToTree(root, fileDocAide_); + + return root; + } + + /** + * Ajout recursif des fichiers du repertoire d'aide. + * @param parent + * @param repertoire + */ + public void addRecursiveFilesToTree(DefaultMutableTreeTableNode parent,File repertoire){ + + //-- Repertoire ou se situent les fichiers d'aide --// + for(int i=0;i<repertoire.listFiles().length;i++){ + File fichier=repertoire.listFiles()[i]; + if(fichier!=null){ + if(fichier.isDirectory()){ + //-- si un repertoire l'user object est un simple nom de fichier et non pas un objet File --// + DefaultMutableTreeTableNode nodeRepertoire=new DefaultMutableTreeTableNode(fichier.getName()); + parent.add(nodeRepertoire); + //-- on ajoute recursivement le contenu du repertoire fils --// + addRecursiveFilesToTree(nodeRepertoire, fichier); + + }else{ + DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(fichier); + //-- on ajoute le node qui contient le File --// + parent.add(node); + + } + } + } + + } + + + + /** + * Construit le model du tableau si l'aides est propos\xE9es d'un fichier jar d'aide. + * @return + */ + public DefaultMutableTreeTableNode constructStructureModelWithJAREntree() { + + mapEntryPdfJar_=new HashMap<String, JarEntry>(); + + if(patJarDocAide_==null ) + return new DefaultMutableTreeTableNode(FudaaLib.getS("Pas de documentation ")); + + JarFile jarDocAide=null; + try { + jarDocAide=new JarFile(patJarDocAide_); + } catch (IOException e1) { + ui_.error(FudaaResource.FUDAA.getString("Erreur, Fichier documentation jar inexact \n Il n'existe pas de fichier jar \xE0 l'emplacement: "+patJarDocAide_)); + + return new DefaultMutableTreeTableNode(FudaaLib.getS("Pas de documentation ")); + } + if(jarDocAide==null ) + return new DefaultMutableTreeTableNode(FudaaLib.getS("Pas de documentation ")); + + //-- root de l'arborescence --// + DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode(FudaaLib.getS("Aide")/*+" "+jarDocAide.getName()*/); + + //-- ajout recursivement le contenu du reperttoire a l'arbre --// + addFilesFromJarToTree(root, jarDocAide.entries()); + + //-- fermeture du jar doc --// + try { + jarDocAide.close(); + } catch (IOException e) { + ui_.error(FudaaResource.FUDAA.getString("Erreur, Impossible de fermer le flux de lecture du jar: "+patJarDocAide_)); + } + + return root; + } + + /** + * Ajout recursif des fichiers d'un fichier jar d'aide. + * N'accepte aue des jar de repertoire de profondeur 1. + * @param root + * @param repertoire + */ + public void addFilesFromJarToTree(DefaultMutableTreeTableNode root,Enumeration<JarEntry> listeEntries){ + //-- map qui stocke l'ensemble des nodes de niveau 1, ce sont ces nodes qui vont attacher les noeuds feuilles pdf --// + HashMap<String, DefaultMutableTreeTableNode> mapSousRepertoireNiveau1=new HashMap<String, DefaultMutableTreeTableNode>(); + + //-- Repertoire ou se situent les fichiers d'aide --// + while(listeEntries.hasMoreElements()){ + + //-- recuperation de l'entree jar --// + JarEntry entry=listeEntries.nextElement(); + if(entry!=null){ + if(entry.isDirectory()){ + //-- si un repertoire l'user object est un simple nom de fichier et non pas un objet File --// +// DefaultMutableTreeTableNode nodeRepertoire=new DefaultMutableTreeTableNode(entry.getName()); +// parent.add(nodeRepertoire); +// //-- on ajoute recursivement le contenu du repertoire fils --// + //addRecursiveFilesFromJarToTree(nodeRepertoire, entry.); + }else{ + //-- recuperation du nom du repertoire --// + String nomRepertoire=null; + + + //-- tentative de recuperation du nom de rep --// + int deb=0; + int fin=entry.getName().lastIndexOf("/"); + if(fin!=-1) + nomRepertoire=(entry.getName()).substring(deb, fin); + + //-- si nom repertoire est null, ceci est un pdf niveau 0 --// + if(nomRepertoire==null){ + + //-- on verifie qu'il s'agit bien d'un fichier pdf --// + if(entry.getName().contains(".pdf")){ + mapEntryPdfJar_.put(entry.getName(), entry); + DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(entry.getName()); + //-- on ajoute le node qui contient le File --// + root.add(node); + } + }else{ + if(entry.getName().contains(".pdf")){ + //-- on tente de recuperer le node associ\xE9 a ce repertoire --// + DefaultMutableTreeTableNode nodeRepertoire=mapSousRepertoireNiveau1.get(nomRepertoire); + //-- si on ne trouve pas de node associ\xE9, on en cree 1 et on l'ajoute dans la map --// + if(nodeRepertoire==null){ + nodeRepertoire=new DefaultMutableTreeTableNode(nomRepertoire); + mapSousRepertoireNiveau1.put(nomRepertoire, nodeRepertoire); + + } + //-- creation du node entry pdf --// + + //-- recuperation du no du fichier --// + String nomFichierPdf=entry.getName().replace(nomRepertoire+"/","").replace("+"," "); + mapEntryPdfJar_.put(nomFichierPdf, entry); + DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(nomFichierPdf); + nodeRepertoire.add(node); + } + } + + + } + } + } + + //-- on ajoute au parent les node de tous les repertoire de la map --// + for(String key:mapSousRepertoireNiveau1.keySet()){ + if(!key.equals("META-INF")){ + DefaultMutableTreeTableNode nodeRep=mapSousRepertoireNiveau1.get(key); + if(nodeRep!=null) + root.add(nodeRep); + } + } + + } + + + /** + * Affiche le fichier pdf correspondant au feuille cliqu\xE9 + * @param x + * @param y + */ + public void affichePdfNode(final int x, final int y) { + // Get the tree element under the mouse + final TreePath clickedElement = treePost_.getPathForLocation(x, y); + MutableTreeTableNode treeNode = null; + if (clickedElement != null) treeNode = (MutableTreeTableNode) clickedElement.getLastPathComponent(); + if (treeNode != null) { + // -- recuperation du node associe --// + String nomNoeud =null; + File fichierChoisi=null; + JarEntry jarEntryChoisie=null; + if(treeNode.getUserObject() instanceof String) + nomNoeud=(String) treeNode.getUserObject(); + else + if(treeNode.getUserObject() instanceof File){ + fichierChoisi=(File)treeNode.getUserObject(); + } +// else if(treeNode.getUserObject() instanceof JarEntry){ +// jarEntryChoisie=(JarEntry)treeNode.getUserObject(); +// } + + + if(fichierChoisi==null && nomNoeud==null ) + return; + //-- ouverture dans le viewer du fichier pdf slectionn\xE9 selon le mode pdf ou file--// + + if(fichierChoisi!=null){ + openPdfFile(fichierChoisi); + }else if(mapEntryPdfJar_!=null){ + //-- on tente de recuperer la jar entry pour le nom de fichier specifie --// + jarEntryChoisie=mapEntryPdfJar_.get(nomNoeud); + if(jarEntryChoisie!=null) + openPdfJar(jarEntryChoisie); + } + + + } + + } + + /** + * retourne le fichier courant. + * @return + */ + JarEntry getCurrentJarEntry(){ + return currentJarEntry_; + } + + void rafraichir(){ + pdfViewer.revalidate(); + this.revalidate(); + + } + + /** + * le jar entry en train d'etre test\xE9. + */ + JarEntry currentJarEntry_=null; + /** + * Methode qui ouvre le fichier pdf sp\xE9cifi\xE9 par un fichier dur. + * @param fichier + */ + public void openPdfFile(File fichier){ + try { + if(this.useOsPdfViewer_.isSelected()){ + //-- ouverture du fichier pdf avec le viewer os --// + final String os = System.getProperty("os.name"); + + if (os.startsWith("Windows")) { + //-- sous crosoft --// + Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+fichier.getAbsolutePath()+""); + //p.waitFor(); + }else { + //-- linux power --// + + } + }else{ + //-- ouverture du fichier pdf avec le viewer fudaa --// + this.pdfViewer.openFile(fichier); + + } + } catch (Exception e) { + e.printStackTrace(); + ui_.error(FudaaResource.FUDAA.getString("Impossible d'ouvrir le fichier pdf "+fichier.getName())); + } + + //-- mise a jour de tous les composants --// + this.rafraichir(); + } + + + + /** + * Methode qui ouvre le fichier pdf sp\xE9cifi\xE9 par un fichier dur. + * @param fichier + */ + public void openPdfJar(JarEntry jarEntry){ + //-- creation d'un fichier temporaire depuis la jar entry specifiee ---// + File fileTemporaire=null; + try { + fileTemporaire = File.createTempFile("tmpPDF",".pdf"); + } catch (IOException e) { + ui_.error(FudaaResource.FUDAA.getString("Impossible de g\xE9n\xE9rer un fichier temporaire...")); + return; + } + generateFileFromJar(jarEntry,fileTemporaire); + currentJarEntry_=jarEntry; + + //-- ouverture du fichier pdf --// + openPdfFile(fileTemporaire); + } + + + /** + * Algo de generation du fichier depuis un format jar + * @param entry + * @return + * @throws IOException + */ + private void generateFileFromJar(JarEntry entry, File fTemp) { + JarFile jarDocAide=null; + FileOutputStream file =null; + InputStream entryStream =null; + + try{ + try { + jarDocAide=new JarFile(patJarDocAide_); + } catch (IOException e1) { + ui_.error(FudaaResource.FUDAA.getString("Erreur, Fichier documentation jar inexact \n Il n'existe pas de fichier jar \xE0 l'emplacement: "+patJarDocAide_)); + return ; + } + if(jarDocAide==null) + return ; + + entryStream = jarDocAide.getInputStream(entry); + + //-- creation d' un fichier output --// + file = new FileOutputStream(fTemp); + + + //-- buffer de lecture --// + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = entryStream.read(buffer)) != -1) { + file.write(buffer, 0, bytesRead); + } + System.out.println(entry.getName() + " extrait."); + }catch(IOException e){ + ui_.error(FudaaResource.FUDAA.getString("Impossible d'extraire le fichier depuis le fichier jar "+entry.getName())); + } + + finally { + try { + file.close(); + entryStream.close(); + jarDocAide.close(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + + + + } + + /** + * Methode qui sauvegarde le fichier en cours de lecture sur l'emplacement voulu. + */ + public void sauvegarderFichierPdf(){ + JarEntry fichierJar=getCurrentJarEntry(); + if(fichierJar==null) + return; + File fichierDest=null; + BuFileChooser chooser=new BuFileChooser(); + int rep=chooser.showOpenDialog(ui_.getParentComponent()); + if(rep==BuFileChooser.APPROVE_OPTION){ + fichierDest=chooser.getSelectedFile(); + } + + if(fichierDest!=null){ + generateFileFromJar(fichierJar, fichierDest); + + } + + + } + + public void valueChanged(ListSelectionEvent e) { + + + } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/ScopeCourbeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/ScopeCourbeModel.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/ScopeCourbeModel.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -28,8 +28,6 @@ */ public class ScopeCourbeModel extends FudaaCourbeModel{ - - /** * Map d'informations specifiques scop qui a permi de generer ce model de courbe. */ Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaCommonImplementation.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -72,6 +72,7 @@ import org.fudaa.fudaa.commun.FudaaAstuces; import org.fudaa.fudaa.commun.FudaaAstucesAbstract; import org.fudaa.fudaa.commun.FudaaBrowserControl; +import org.fudaa.fudaa.commun.FudaaHelpPDFViewer; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.commun.FudaaTee; import org.fudaa.fudaa.commun.FudaaUI; @@ -472,7 +473,8 @@ ((CtuluSelectionInterface) frame).inverseSelection(); } } else if (action.equals("AIDE")) { - displayHelp(null); + //displayHelp(null); + displayHelpPDF(getInformationsSoftware().baseManUrl()); } else if (action.equals("AIDE_INDEX")) { displayHelp(getInformationsSoftware().baseManUrl()); } else if (action.equals("INDEX_ALPHA")) { @@ -497,6 +499,22 @@ .isCreated()); } + + FudaaHelpPDFViewer frameHelpPDF_; + + /** + * Affiche la fenetre de viewer pdf + */ + public void displayHelpPDF(String url){ + if(frameHelpPDF_==null){ + frameHelpPDF_=new FudaaHelpPDFViewer(url,this,true); + } + //-- ajout de la fenetre --//: + // this.addInternalFrame(frameHelpPDF_); + //TODO a modifier, juste pour le debugger et test + this.addInternalFrame(new FudaaHelpPDFViewer(url,this,false)); + } + protected void rebuildEditionMenu(final BuMenu _dest) { int indSelect=_dest.indexOf("TOUTSELECTIONNER"); _dest.remove(indSelect+2); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MVProfileCourbeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MVProfileCourbeModel.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MVProfileCourbeModel.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -256,7 +256,7 @@ } public boolean isModifiable() { - return false; + return true; } public boolean isPointDrawn(final int _i) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrCommonImplementation.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrCommonImplementation.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrCommonImplementation.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -339,9 +339,11 @@ }*/ else if ("OUVRIR".equals(act)) { ouvrir(); } else if ("AIDE".equals(act)) { - displayAide(); + //displayAide(); + displayHelpPDF(getInformationsSoftware().baseManUrl()); } else if ("AIDE_INDEX".equals(act)) { - displayAideIndex(); + // displayAideIndex(); + displayHelpPDF(getInformationsSoftware().baseManUrl()); } else if ("MAJ".equals(act)) { maj(); } else if ("SEND_COMMENT".equals(act)) { Deleted: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDocPdfFille.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDocPdfFille.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDocPdfFille.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -1,23 +0,0 @@ -package org.fudaa.fudaa.tr.post; - -import java.io.File; - -import org.fudaa.fudaa.commun.FudaaHelpPDFViewer; - - -/** - * gere les aide fudaa du POST au format pdf. - * - * @author Adrien Hadoux - * - */ -public class TrPostDocPdfFille extends FudaaHelpPDFViewer{ - - public TrPostDocPdfFille(File repertoireAide) { - super(repertoireAide); - - } - - - -} Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/rapport/TrPostRapportLayout.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/rapport/TrPostRapportLayout.java 2009-02-18 14:04:57 UTC (rev 4481) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/rapport/TrPostRapportLayout.java 2009-02-18 20:21:27 UTC (rev 4482) @@ -14,7 +14,7 @@ import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluLibSwing; -import org.fudaa.ctulu.image.CtuluPdfPsExport; +import org.fudaa.ctulu.pdf.CtuluPdfPsExport; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.ebli.visuallibrary.EbliWidget; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2009-02-18 14:05:00
|
Revision: 4481 http://fudaa.svn.sourceforge.net/fudaa/?rev=4481&view=rev Author: bmarchan Date: 2009-02-18 14:04:57 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Correction lecture Mascaret georef. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2009-02-17 18:40:20 UTC (rev 4480) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2009-02-18 14:04:57 UTC (rev 4481) @@ -191,6 +191,7 @@ for(int i=0;i<profil.coordXYTraceProfil.size();i++){ coordSeq.setOrdinate(i, 0, profil.coordXYTraceProfil.get(i)[0]); coordSeq.setOrdinate(i, 1, profil.coordXYTraceProfil.get(i)[1]); + coordSeq.setOrdinate(i, 2, 0); } zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_TP, null}, null); // Profil @@ -199,6 +200,7 @@ for(int i=0;i<profil.coordXYProfil.size();i++){ coordSeq.setOrdinate(i, 0, profil.coordXYProfil.get(i)[0]); coordSeq.setOrdinate(i, 1, profil.coordXYProfil.get(i)[1]); + coordSeq.setOrdinate(i, 2, 0); z[i]=profil.coordZ.get(i); } zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_PF, z}, null); @@ -209,6 +211,7 @@ for (int i=0; i<profils_.size(); i++) { coordSeq.setOrdinate(i, 0, profils_.get(i).coordIntersectionAxeHydraulique[0]); coordSeq.setOrdinate(i, 1, profils_.get(i).coordIntersectionAxeHydraulique[1]); + coordSeq.setOrdinate(i, 2, 0); } zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{null, GISAttributeConstants.ATT_NATURE_AH, null}, null); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |