You can subscribe to this list here.
2003 |
Jan
|
Feb
(89) |
Mar
(219) |
Apr
(82) |
May
(33) |
Jun
(11) |
Jul
(129) |
Aug
(357) |
Sep
(34) |
Oct
(37) |
Nov
(42) |
Dec
(182) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(59) |
Feb
(74) |
Mar
(196) |
Apr
(205) |
May
(109) |
Jun
(268) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Frederic D. <de...@us...> - 2004-04-27 15:57:14
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/idl/metier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30574/idl/metier Modified Files: hydraulique1d.idl Log Message: Ajout d'un champ pour l'initialisation à partir d'un tableau de binaire Index: hydraulique1d.idl =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/idl/metier/hydraulique1d.idl,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** hydraulique1d.idl 9 Apr 2004 19:34:50 -0000 1.17 --- hydraulique1d.idl 27 Apr 2004 15:57:03 -0000 1.18 *************** *** 1,1328 **** ! /* ! * @file hydraulique1d.idl ! * @creation 2000-05-17 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne ! * @mail de...@fu... ! */ ! ! #ifndef _HYDRAULIQUE1D_IDL [...2627 lines suppressed...] ! booleen isPlanimetrage(); ! rien toPlanimetrage(); ! }; ! ! //************************************************************************/ ! //* FIN DONNEES CASIER */ ! //************************************************************************/ ! ! //************************************************************************/ ! //* CALCUL */ ! //************************************************************************/ ! ! interface ICalculHydraulique1d : iservice //::calcul::ICalculMetier ! { ! attribute calcul::ICalcul calculCode; ! attribute IEtude1d etude; ! }; ! }; ! ! #endif |
From: Frederic D. <de...@us...> - 2004-04-27 15:56:28
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/idl/general In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30380/idl/general Modified Files: .cvsignore Removed Files: usine.idl.cpy Log Message: Maj pour boony Index: .cvsignore =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/idl/general/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 30 Jan 2003 17:26:36 -0000 1.1 --- .cvsignore 27 Apr 2004 15:56:18 -0000 1.2 *************** *** 1 **** --- 1,2 ---- usine.idl + boony.idl --- usine.idl.cpy DELETED --- |
From: Frederic D. <de...@us...> - 2004-04-27 15:55:47
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/idl/code In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30164/idl/code Modified Files: simboat.idl Log Message: Maj 1.4 Index: simboat.idl =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/idl/code/simboat.idl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** simboat.idl 1 Apr 2003 08:33:41 -0000 1.3 --- simboat.idl 27 Apr 2004 15:55:38 -0000 1.4 *************** *** 11,15 **** #define _SIMBOAT_IDL - #include "general/simulation.idl" --- 11,14 ---- *************** *** 23,26 **** --- 22,27 ---- interface ISimulateurSimboat : ::simulation::ISimulateur { + attribute ::objet::IPersonne utilisateur; + void simule(); }; |
From: Jean-Marc L. <jm_...@us...> - 2004-04-22 14:22:51
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/hydraulique1d In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv864/fudaa/src/org/fudaa/fudaa/hydraulique1d Modified Files: Hydraulique1dImport.java Log Message: Index: Hydraulique1dImport.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/hydraulique1d/Hydraulique1dImport.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Hydraulique1dImport.java 9 Apr 2004 19:34:53 -0000 1.10 --- Hydraulique1dImport.java 22 Apr 2004 14:22:39 -0000 1.11 *************** *** 1,1697 **** ! /* ! * @file Hydraulique1dImport.java ! * @creation 1999-08-03 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2001 EDF/LNHE ! * @mail de...@fu... ! */ ! package org.fudaa.fudaa.hydraulique1d; ! import org.fudaa.dodico.objet.CDodico; [...3391 lines suppressed...] ! + mssgErreur; ! } ! } ! if (res.equals("")) ! return null; ! else ! return res; ! } ! /** ! * @return le tableau d'objet metier corba. ! */ ! IGeometrieCasier[] transformeTableauMetier() { ! int taille= casiers.size(); ! IGeometrieCasier[] res= new IGeometrieCasier[taille]; ! for (int i= 0; i < res.length; i++) { ! res[i]= ((GeoCasier)casiers.get(i)).transformeMetier(); ! } ! return res; ! } ! } |
From: Jean-Marc L. <jm_...@us...> - 2004-04-22 14:22:47
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv864/dodico/src/org/fudaa/dodico/mascaret Modified Files: ConvH1D_Masc.java Log Message: Index: ConvH1D_Masc.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/ConvH1D_Masc.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ConvH1D_Masc.java 19 Apr 2004 18:03:52 -0000 1.7 --- ConvH1D_Masc.java 22 Apr 2004 14:22:39 -0000 1.8 *************** *** 776,779 **** --- 776,789 ---- */ int option= paramMas.optionPlanimetrage[0]; + + // vérification que tous les casiers ont la même option de planimétrage + for (int i = 0; i < paramMas.optionPlanimetrage.length; i++) { + if (paramMas.optionPlanimetrage[i] != option) { + throw new RuntimeException("\tLa représentation de la géométrie des casiers " + +"n'est pas de même type pour tous les casiers.\n" + +"\tLe noyau de calcul ne supporte pas encore cette possibilité."); + } + } + paramMas.optionCalcul= new int[1]; paramMas.optionCalcul[0]= option; |
From: Jean-Marc L. <jm_...@us...> - 2004-04-19 18:04:01
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3668/dodico/src/org/fudaa/dodico/mascaret Modified Files: ConvH1D_Masc.java Log Message: Index: ConvH1D_Masc.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/ConvH1D_Masc.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ConvH1D_Masc.java 9 Apr 2004 19:34:51 -0000 1.6 --- ConvH1D_Masc.java 19 Apr 2004 18:03:52 -0000 1.7 *************** *** 38,98 **** IEtude1d etude, String nomFichierSansExtension) { ! SParametresCAS paramCas= new SParametresCAS(); ! boolean presenceCasier= (etude.reseau().casiers().length > 0) ! && etude.paramGeneraux().parametresCasier().activation(); ! paramCas.parametresGen= ! convertirParametresGen( ! etude.paramGeneraux().regime(), ! presenceCasier, ! nomFichierSansExtension); ! paramCas.parametresModelPhy= ! convertirParametresModelPhy(etude.paramGeneraux()); ! paramCas.parametresNum= ! convertirParametresNum(etude.paramGeneraux(), presenceCasier); ! paramCas.parametresTemp= convertirParametresTemp(etude.paramTemps()); ! paramCas.parametresGeoReseau= ! convertirParametresGeoReseau( ! etude.reseau(), ! etude.donneesHydro(), ! etude.paramGeneraux().profilsAbscAbsolu(), ! nomFichierSansExtension); ! paramCas.parametresConfluents= ! convertirParametresConfluents(etude.reseau().noeudsConnectesBiefs()); ! paramCas.parametresPlanimMaillage= ! convertirParametresPlanimMaillage( ! etude.reseau(), ! etude.paramGeneraux().maillage()); ! paramCas.parametresSingularite= ! convertirParametresSingularite( ! etude.reseau(), ! etude.paramGeneraux(), ! etude.donneesHydro()); ! paramCas.parametresCasier= ! convertirParametresCasier(etude.reseau(), nomFichierSansExtension); ! paramCas.parametresApporDeversoirs= ! convertirParametresApporDeversoirs(etude.reseau(), etude.donneesHydro()); ! paramCas.parametresCalage= ! convertirParametresCalage( ! etude.reseau(), ! etude.paramGeneraux().typeFrottement()); ! paramCas.parametresLoisHydrau= ! convertirParametresLoisHydrau(etude.donneesHydro().getToutesLoisSaufGeometrique(),nomFichierSansExtension); ! paramCas.parametresCondInit= ! convertirParametresCondInit( ! etude.donneesHydro().conditionsInitiales(), ! nomFichierSansExtension, ! etude.reseau()); ! paramCas.parametresImpressResult= ! convertirParametresImpressResult( ! etude.paramResultats(), ! etude.description(), ! nomFichierSansExtension, ! etude.reseau(), ! presenceCasier); ! paramCas.parametresVarCalc= convertirParametresVarCalc(); ! paramCas.parametresVarStock= ! DescriptionVariables.convertirParametresVarStock( ! etude.paramResultats().variables()); ! return paramCas; } private final static SParametresGen convertirParametresGen( --- 38,215 ---- IEtude1d etude, String nomFichierSansExtension) { ! try { ! SParametresCAS paramCas = new SParametresCAS(); ! boolean presenceCasier = etude.reseau().casiers().length > 0; ! if (etude.paramGeneraux().parametresCasier() != null) { ! presenceCasier = presenceCasier && etude.paramGeneraux(). ! parametresCasier().activation(); ! } ! try { ! paramCas.parametresGen = ! convertirParametresGen( ! etude.paramGeneraux().regime(), ! presenceCasier, ! nomFichierSansExtension); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres généraux\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresModelPhy = ! convertirParametresModelPhy(etude.paramGeneraux()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres de la modélisation physique\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresNum = ! convertirParametresNum(etude.paramGeneraux(), presenceCasier); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres numériques\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresTemp = convertirParametresTemp(etude.paramTemps()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres temporels\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresGeoReseau = ! convertirParametresGeoReseau( ! etude.reseau(), ! etude.donneesHydro(), ! etude.paramGeneraux().profilsAbscAbsolu(), ! nomFichierSansExtension); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres de la géométrie et du réseau\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresConfluents = ! convertirParametresConfluents(etude.reseau().noeudsConnectesBiefs()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres des confluents\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresPlanimMaillage = ! convertirParametresPlanimMaillage( ! etude.reseau(), ! etude.paramGeneraux().maillage()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres du planimétrage et du maillage\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresSingularite = ! convertirParametresSingularite( ! etude.reseau(), ! etude.paramGeneraux(), ! etude.donneesHydro()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres des singularitées\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresCasier = ! convertirParametresCasier(etude.reseau(), nomFichierSansExtension); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres casier\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresApporDeversoirs = ! convertirParametresApporDeversoirs(etude.reseau(), ! etude.donneesHydro()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres des apports et déversoirs\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresCalage = ! convertirParametresCalage( ! etude.reseau(), ! etude.paramGeneraux().typeFrottement()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres de calage\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresLoisHydrau = ! convertirParametresLoisHydrau(etude.donneesHydro(). ! getToutesLoisSaufGeometrique(), ! nomFichierSansExtension); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres des lois hydrauliques\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresCondInit = ! convertirParametresCondInit( ! etude.donneesHydro().conditionsInitiales(), ! nomFichierSansExtension, ! etude.reseau()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres de la condition initiale\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresImpressResult = ! convertirParametresImpressResult( ! etude.paramResultats(), ! etude.description(), ! nomFichierSansExtension, ! etude.reseau(), ! presenceCasier); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres d'impression et de résultats\n"+ ! ex.getLocalizedMessage()); ! } ! try { ! paramCas.parametresVarCalc = convertirParametresVarCalc(); ! paramCas.parametresVarStock = DescriptionVariables.convertirParametresVarStock( ! etude.paramResultats().variables()); ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Conversion des paramètres des variables à calculer ou de stockage\n"+ ! ex.getLocalizedMessage()); ! } ! return paramCas; ! } ! catch (Throwable ex) { ! ex.printStackTrace(); ! throw new RuntimeException("Problème lors de la conversion en fichier cas\n"+ ! ex.getLocalizedMessage()); ! } } private final static SParametresGen convertirParametresGen( *************** *** 539,543 **** } else if (s instanceof ISeuilDenoye) { ISeuilDenoye d= (ISeuilDenoye)s; ! sMas.type= 2; // type du seuil : Zam=f(Q) sMas.coteCrete= d.coteCrete(); sMas.coteRupture= RIEN; --- 656,664 ---- } else if (s instanceof ISeuilDenoye) { ISeuilDenoye d= (ISeuilDenoye)s; ! if (iparamGen.regime().value() == LRegime._TRANSCRITIQUE) { ! sMas.type= 6; // type du seuil : Zam=f(Q) ! } else { ! sMas.type = 2; // type du seuil : Zam=f(Q) ! } sMas.coteCrete= d.coteCrete(); sMas.coteRupture= RIEN; |
From: Jean-Marc L. <jm_...@us...> - 2004-04-19 18:04:00
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/hydraulique1d In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3668/dodico/src/org/fudaa/dodico/hydraulique1d Modified Files: DParametresGeneraux.java Log Message: Index: DParametresGeneraux.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/hydraulique1d/DParametresGeneraux.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** DParametresGeneraux.java 9 Apr 2004 19:34:50 -0000 1.7 --- DParametresGeneraux.java 19 Apr 2004 18:03:51 -0000 1.8 *************** *** 110,113 **** --- 110,114 ---- maillage_= CDodico.findUsine().creeHydraulique1dMaillage(); zoneEtude_= CDodico.findUsine().creeHydraulique1dZone(); + parametresCasier_ = CDodico.findUsine().creeHydraulique1dParametresGenerauxCasier(); evtSupport_= new DObjetEventListenerSupport(); evtSupport_.clientListener(this); |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:58:19
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17376/fudaa/src/org/fudaa/fudaa/commun Modified Files: FudaaLib.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : correction de la méthode getAbsolutePathnameTo() pour qu'elle accepte aussi bien un répertoire qu'un fichier principal. Index: FudaaLib.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun/FudaaLib.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** FudaaLib.java 2 Apr 2004 14:02:38 -0000 1.18 --- FudaaLib.java 15 Apr 2004 07:58:11 -0000 1.19 *************** *** 27,31 **** /** * Une classe d'utilitaires inclassables. ! * * @version $Revision$ $Date$ by $Author$ * @author Bertrand Marchand --- 27,31 ---- /** * Une classe d'utilitaires inclassables. ! * * @version $Revision$ $Date$ by $Author$ * @author Bertrand Marchand *************** *** 36,40 **** * True si les infos utilisateurs doivent etre affichees */ ! public final static boolean INFO = CtuluLib.DEBUG || "TRUE".equals(System.getProperty("INFO")); --- 36,40 ---- * True si les infos utilisateurs doivent etre affichees */ ! public final static boolean INFO = CtuluLib.DEBUG || "TRUE".equals(System.getProperty("INFO")); *************** *** 57,80 **** /** ! * Génère un fichier absolu au chemin de fichier principal pour le fichier donné. ! * ! * @param _main Le fichier principal. ! * @param _file Le fichier pour lequel on recherche un chemin absolu se basant sur le fichier ! * principal. * @return Le fichier absolu obtenu. */ public static File getAbsolutePathnameTo(File _main, File _file) { ! // return CtuluLib.getAbsolutePath(_main, _file.getPath()); ! File file; ! // Le fichier donné n'est pas relatif ! if (_file.isAbsolute()) ! return _file; ! file= new File(_main.getParent() + File.separator + _file.getPath()); ! try { ! file= file.getCanonicalFile(); ! } catch (IOException _exc) { ! file= file.getAbsoluteFile(); ! } ! return file; } --- 57,82 ---- /** ! * Génère un fichier absolu au chemin de fichier/répertoire principal pour le ! * fichier donné. ! * ! * @param _main Le fichier/répertoire principal. ! * @param _file Le fichier pour lequel on recherche un chemin absolu se basant ! * sur le fichier/répertoire principal. * @return Le fichier absolu obtenu. */ public static File getAbsolutePathnameTo(File _main, File _file) { ! return CtuluLib.getAbsolutePath( ! _main.isDirectory() ? _main:_main.getParentFile(), _file.getPath()); ! // File file; ! // // Le fichier donné n'est pas relatif ! // if (_file.isAbsolute()) ! // return _file; ! // file= new File(_main.getParent() + File.separator + _file.getPath()); ! // try { ! // file= file.getCanonicalFile(); ! // } catch (IOException _exc) { ! // file= file.getAbsoluteFile(); ! // } ! // return file; } *************** *** 83,87 **** * fichiers sont sur des disques différents (Windows), le chemin relatif est en fait un chemin * absolu. ! * * <pre> * Exemple : _main : c:\\refonde\\cercle\\rect.prf --- 85,89 ---- * fichiers sont sur des disques différents (Windows), le chemin relatif est en fait un chemin * absolu. ! * * <pre> * Exemple : _main : c:\\refonde\\cercle\\rect.prf *************** *** 89,93 **** * return : ..\\..\\users\\dupont\\geom.geo * </pre> ! * * @param _main Le fichier principal. * @param _file Le fichier pour lequel on recherche un chemin relatif au fichier principal. --- 91,95 ---- * return : ..\\..\\users\\dupont\\geom.geo * </pre> ! * * @param _main Le fichier principal. * @param _file Le fichier pour lequel on recherche un chemin relatif au fichier principal. *************** *** 171,175 **** /** * Transforme un tableau de chaine en une unique chaine avec des saut de lignes. ! * * @param _tab le tableau a transformer * @return la chaine --- 173,177 ---- /** * Transforme un tableau de chaine en une unique chaine avec des saut de lignes. ! * * @param _tab le tableau a transformer * @return la chaine *************** *** 189,193 **** * Affiche une message d'avertissement contenant les lignes de <code>_message * </code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 191,195 ---- * Affiche une message d'avertissement contenant les lignes de <code>_message * </code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 195,200 **** */ public static void showWarn( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showWarn(_impl, _titre, arrayToString(_message)); --- 197,202 ---- */ public static void showWarn( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showWarn(_impl, _titre, arrayToString(_message)); *************** *** 204,208 **** * Affiche une message d'erreur contenant les lignes de <code>_message * </code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 206,210 ---- * Affiche une message d'erreur contenant les lignes de <code>_message * </code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 210,215 **** */ public static void showError( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showError(_impl, _titre, arrayToString(_message)); --- 212,217 ---- */ public static void showError( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showError(_impl, _titre, arrayToString(_message)); *************** *** 218,222 **** /** * Affiche une message contenant les lignes de <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 220,224 ---- /** * Affiche une message contenant les lignes de <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 224,229 **** */ public static void showMessage( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showMessage(_impl, _titre, arrayToString(_message)); --- 226,231 ---- */ public static void showMessage( ! BuCommonInterface _impl, ! String _titre, String[] _message) { showMessage(_impl, _titre, arrayToString(_message)); *************** *** 233,237 **** * Affiche une boite de dialogue d'information ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 235,239 ---- * Affiche une boite de dialogue d'information ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 239,250 **** */ public static void showMessage( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogMessage mes = _impl != null ? new BuDialogMessage( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogMessage(null, null, _message); --- 241,252 ---- */ public static void showMessage( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogMessage mes = _impl != null ? new BuDialogMessage( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogMessage(null, null, _message); *************** *** 256,260 **** * Affiche une boite de dialogue d'avertissement ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 258,262 ---- * Affiche une boite de dialogue d'avertissement ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 262,273 **** */ public static void showWarn( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogWarning warn = _impl != null ? new BuDialogWarning( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogWarning(null, null, _message); --- 264,275 ---- */ public static void showWarn( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogWarning warn = _impl != null ? new BuDialogWarning( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogWarning(null, null, _message); *************** *** 279,283 **** * Affiche une boite de dialogue d'erreur ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message --- 281,285 ---- * Affiche une boite de dialogue d'erreur ayant comme titre <code>_titre</code> et comme * message <code>_message</code>. ! * * @param _impl l'implementation parente * @param _titre le titre du message *************** *** 285,297 **** */ public static void showError( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogError erreur = _impl == null ? new BuDialogError(null, null, _message) : new BuDialogError( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message); erreur.setTitle(_titre); --- 287,299 ---- */ public static void showError( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogError erreur = _impl == null ? new BuDialogError(null, null, _message) : new BuDialogError( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message); erreur.setTitle(_titre); *************** *** 306,317 **** */ public static boolean showConfirmation( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogConfirmation conf = _impl != null ? new BuDialogConfirmation( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogConfirmation(null, null, _message); --- 308,319 ---- */ public static boolean showConfirmation( ! BuCommonInterface _impl, ! String _titre, String _message) { ! BuDialogConfirmation conf = _impl != null ? new BuDialogConfirmation( ! _impl.getImplementation(), ! _impl.getInformationsSoftware(), _message) : new BuDialogConfirmation(null, null, _message); |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:55:19
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/idl/code In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16688/dodico/idl/code Modified Files: refonde.idl Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : - Ajout dans le serveur reonde du calcul des seiches au travers d'un exe différent de refonde standard. Index: refonde.idl =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/idl/code/refonde.idl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** refonde.idl 1 Apr 2003 08:33:45 -0000 1.4 --- refonde.idl 15 Apr 2004 07:55:11 -0000 1.5 *************** *** 17,26 **** * * V2.0 Introduction de la houle aléatoire. ! * Introduction du déferlement. * V2.1 Introduction des formulations analytiques et super élements sur bord ouvert. ! * Noms des résultats dans le fichier .sol * V2.2 Introduction du déferlement dissipatif pour houle aléatoire. * Introduction des domaines poreux et du bloc PORO correspondant. * Suppression des blocs COND et SOLC. * * Important: Les noeuds dans les structures (connectivités, etc.) sont toujours --- 17,33 ---- * * V2.0 Introduction de la houle aléatoire. ! * Introduction du déferlement. * V2.1 Introduction des formulations analytiques et super élements sur bord ouvert. ! * Noms des résultats dans le fichier .sol * V2.2 Introduction du déferlement dissipatif pour houle aléatoire. * Introduction des domaines poreux et du bloc PORO correspondant. * Suppression des blocs COND et SOLC. + * 12/03/2004 B.M. + * - Introduction du module seiche en exécutable séparé. Ce module n'utilise pas la + * totalité des fonctionnalités Refonde. Cependant, le fichier d'entrée est + * semblable à celui de Refonde, et le serveur pour Seiche n'a pas vocation à + * fonctionner sans celui de Refonde. + * - Introduction d'un fichier de solutions transitoire. + * * * Important: Les noeuds dans les structures (connectivités, etc.) sont toujours *************** *** 32,39 **** module refonde { ! // Structures ! ! // COR ! struct SParametresRefondeLigneXYZ { --- 39,45 ---- module refonde { ! /** ! * Coordonnées des noeuds ! */ struct SParametresRefondeLigneXYZ { *************** *** 44,64 **** typedef sequence<SParametresRefondeLigneXYZ> VSParametresRefondeLigneXYZ; ! // Connectivites ! ! struct SParametresRefondeConnectivite { ventier noeuds; }; typedef sequence<SParametresRefondeConnectivite> VSParametresRefondeConnectivite; ! // PE ! ! struct SParametresRefondeLignePE { vreel pes; }; typedef sequence<SParametresRefondeLignePE> VSParametresRefondeLignePE; ! // Domaine poreux ! ! struct SParametresRefondeDomainePoreux { // V2.2 reel porosite; // Porosité reel coefFrottement; // Coefficient de frottement --- 50,76 ---- typedef sequence<SParametresRefondeLigneXYZ> VSParametresRefondeLigneXYZ; ! /** ! * Connectivites des elements ! */ ! struct SParametresRefondeConnectivite ! { ventier noeuds; }; typedef sequence<SParametresRefondeConnectivite> VSParametresRefondeConnectivite; ! /** ! * Propriétés élémentaires ! */ ! struct SParametresRefondeLignePE ! { vreel pes; }; typedef sequence<SParametresRefondeLignePE> VSParametresRefondeLignePE; ! /** ! * Domaine poreux ! */ ! struct SParametresRefondeDomainePoreux // V2.2 ! { reel porosite; // Porosité reel coefFrottement; // Coefficient de frottement *************** *** 70,75 **** typedef sequence<SParametresRefondeDomainePoreux> VSParametresRefondeDomainePoreux; ! // INP struct SParametresRefondeINP { --- 82,100 ---- typedef sequence<SParametresRefondeDomainePoreux> VSParametresRefondeDomainePoreux; ! /** ! * Seiches ! */ ! struct SParametresRefondeSeiche ! { ! ventier noeudsBord; // Numéros des noeuds de bord ! entier nbValPropres; // Nombre de valeurs propres ! entier nbMaxIterations; // Nombre maxi d'itérations ! reel decalageValPropres; // Décalage des valeurs propres ! reel precisionConvergence; // Précision de convergence ! }; + /** + * Fichier INP + */ struct SParametresRefondeINP { *************** *** 86,90 **** reel hauteurHoule; reel angleHoule; - // reel longueurOnde; // V2.2 Inutilisé boolean fondsPoreux; // V2.2 VSParametresRefondeDomainePoreux domainePoreux; // V2.2 --- 111,114 ---- *************** *** 94,98 **** reel hauteurMer; entier nbIterationAngleFrontiere; - // chaine fichierSolution; entier casBordOuvert; entier ordreMax; --- 118,121 ---- *************** *** 106,133 **** reel periodeHouleMax; // V2.0 entier nbNoeudsSuperElement; // V2.1 }; ! // Fichier SPE du spectre incident ! ! struct SParametresRefondeSPE { // V2.0 reel periodePic; reel rehaussementPic; reel anglePrincipal; reel repartitionAngulaire; - // chaine fichierDonnees; - }; - - // Parametres - - interface IParametresRefonde : ::calcul::IParametres - { - attribute entier typeCalcul; // V2.0 (0 : Houle régulière, 1 : Houle aléatoire, 2 : Houle aléatoire reprise) - attribute chaine racine; // V2.0 Racine des noms de fichiers calcul - attribute SParametresRefondeINP parametresINP; - attribute SParametresRefondeSPE parametresSPE; // V2.0 }; ! // Resultats ! struct SResultatsLigneRefonde { --- 129,149 ---- reel periodeHouleMax; // V2.0 entier nbNoeudsSuperElement; // V2.1 + SParametresRefondeSeiche seiche; // Module de seiche uniquement }; ! /** ! * Fichier SPE du spectre incident ! */ ! struct SParametresRefondeSPE // V2.0 ! { reel periodePic; reel rehaussementPic; reel anglePrincipal; reel repartitionAngulaire; }; ! /** ! * Resultats pour un noeud ! */ struct SResultatsLigneRefonde { *************** *** 137,157 **** typedef sequence<SResultatsLigneRefonde> VSResultatsLigneRefonde; struct SResultatsRefonde { vchaine noms; // V2.1 : Nom des résultats ! VSResultatsLigneRefonde lignes; }; typedef sequence<SResultatsRefonde> VSResultatsRefonde; interface IResultatsRefonde : ::calcul::IResultats { ! rien setFichier (in chaine fichier, in entier nbNoeuds, in booleen houle_reguliere); SResultatsRefonde resultatsRefonde (); ! SResultatsLigneRefonde resultatsLigneRefonde(in entier n); }; typedef sequence<IResultatsRefonde> VIResultatsRefonde; ! // Calcul ! interface ICalculRefonde : ::calcul::ICalcul { --- 153,207 ---- typedef sequence<SResultatsLigneRefonde> VSResultatsLigneRefonde; + /** + * Resultats pour tous les noeuds d'un pas de temps donné. + */ + struct SResultatsEtapeRefonde + { + reel instant; // Seiche : Valeur du pas de temps; + VSResultatsLigneRefonde lignes; + }; + typedef sequence<SResultatsEtapeRefonde> VSResultatsEtapeRefonde; + + /** + * Resultats pour tous les noeuds de tous les pas de temps + */ struct SResultatsRefonde { vchaine noms; // V2.1 : Nom des résultats ! // VSResultatsLigneRefonde lignes; // Plus utilisé ( à supprimer ) ! VSResultatsEtapeRefonde etapes; // Seiche : Plusieurs pas de temps. }; typedef sequence<SResultatsRefonde> VSResultatsRefonde; + //-------------------------------------------------------------------------------------- + // Objets distribués + //-------------------------------------------------------------------------------------- + + /** + * Objet parametres + */ + interface IParametresRefonde : ::calcul::IParametres + { + attribute entier typeCalcul; // V2.0 (0 : Houle régulière, 1 : Houle aléatoire, 2 : Houle aléatoire reprise, 3 : Calcul de seiches) + attribute chaine racine; // V2.0 Racine des noms de fichiers calcul + attribute SParametresRefondeINP parametresINP; + attribute SParametresRefondeSPE parametresSPE; // V2.0 + }; + + /** + * Objet resultats + */ interface IResultatsRefonde : ::calcul::IResultats { ! rien setFichier (in chaine fichier, in entier nbNoeuds); SResultatsRefonde resultatsRefonde (); ! SResultatsEtapeRefonde resultatsEtapeRefonde(in temps t); // Seiche ! SResultatsLigneRefonde resultatsLigneRefonde(in temps t, in entier n); }; typedef sequence<IResultatsRefonde> VIResultatsRefonde; ! /** ! * Objet calcul ! */ interface ICalculRefonde : ::calcul::ICalcul { |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:53:27
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16151 Modified Files: RefondeImplementation.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : - Prise en compte des spécificités seiche. - Ajout de la fonction "Fichier->Réouvrir". Index: RefondeImplementation.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeImplementation.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** RefondeImplementation.java 25 Nov 2003 10:14:15 -0000 1.8 --- RefondeImplementation.java 15 Apr 2004 07:53:17 -0000 1.9 *************** *** 63,69 **** static { isRefonde_.name= "Refonde"; ! isRefonde_.version= "5.14a"; ! isRefonde_.date= "19-Fév-2003"; ! isRefonde_.rights= "1998-2000 GHN & CETMEF\n2000-2003 DeltaCAD & CETMEF"; isRefonde_.contact= "mar...@de..."; isRefonde_.license= "GPL2"; --- 63,69 ---- static { isRefonde_.name= "Refonde"; [...962 lines suppressed...] *** 2466,2474 **** r.addMenuItem("Créer un domaine digue", "CREERDIGUE", null, false); r.addMenuItem("Supprimer un domaine digue", "SUPPRIMERDIGUE", null, false); ! // r.addSeparator("Domaines poreux"); ! // r.addMenuItem("Créer un domaine poreux","CREERPOREUX",RefondeResource.REFONDE.getIcon("creerporeux"),false); ! // r.addMenuItem("Supprimer le domaine poreux","SUPPRIMERPOREUX",RefondeResource.REFONDE.getIcon("supporeux"),false); ! // r.addMenuItem("Propriétés du domaine poreux","MODIFIERPOREUX",RefondeResource.REFONDE.getIcon("proprietesporeux"),false); ! // r.addMenuItem("Déplacer le point du plan","DEPLACERPOINT",RefondeResource.REFONDE.getIcon("deplacerpoint"),false); return r; } --- 2634,2642 ---- r.addMenuItem("Créer un domaine digue", "CREERDIGUE", null, false); r.addMenuItem("Supprimer un domaine digue", "SUPPRIMERDIGUE", null, false); ! // r.addSeparator("Domaines poreux"); ! // r.addMenuItem("Créer un domaine poreux","CREERPOREUX",RefondeResource.REFONDE.getIcon("creerporeux"),false); ! // r.addMenuItem("Supprimer le domaine poreux","SUPPRIMERPOREUX",RefondeResource.REFONDE.getIcon("supporeux"),false); ! // r.addMenuItem("Propriétés du domaine poreux","MODIFIERPOREUX",RefondeResource.REFONDE.getIcon("proprietesporeux"),false); ! // r.addMenuItem("Déplacer le point du plan","DEPLACERPOINT",RefondeResource.REFONDE.getIcon("deplacerpoint"),false); return r; } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:52:06
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15910 Modified Files: RefondeProjet.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Ajout d'une méthode de transtypage du modèle de données MODELE_HOULE <-> MODELE_SEICHE. Index: RefondeProjet.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeProjet.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RefondeProjet.java 25 Nov 2003 10:14:17 -0000 1.4 --- RefondeProjet.java 15 Apr 2004 07:51:55 -0000 1.5 *************** *** 27,31 **** private File fcResultats_; private File fcMEP_; ! // private boolean existeMaillage; private RefondeGeometrie geometrie_; private RefondeMaillage maillage_; --- 27,31 ---- private File fcResultats_; private File fcMEP_; ! // private boolean existeMaillage; private RefondeGeometrie geometrie_; private RefondeMaillage maillage_; *************** *** 37,58 **** /** Auditeurs d'événement message. */ private HashSet messageListeners_= new HashSet(); ! // private RefondeProjet() { ! // fcGeometrie_=null; ! // modifie=false; ! // } /** * Création d'un projet à partir d'une géométrie au format Vag. * @param _projet Nom du projet. La géométrie est contenue dans les fichiers * _projet.10 et _projet.12 * @exception FileNotFoundException Un fichier de géométrie n'est pas trouvé */ ! // public static RefondeProjet nouveau(File _projet) throws IOException { ! public void nouveau(File _projet) throws IOException { ! // RefondeProjet prj=new RefondeProjet(); RefondeProjet prj= this; String ext; String fcName; RefondeGeometrie geo; ! // File fcGeo; if (_projet.getName().endsWith(".10")) ext= ".10"; --- 37,59 ---- /** Auditeurs d'événement message. */ private HashSet messageListeners_= new HashSet(); ! // private RefondeProjet() { ! // fcGeometrie_=null; ! // modifie=false; ! // } /** * Création d'un projet à partir d'une géométrie au format Vag. * @param _projet Nom du projet. La géométrie est contenue dans les fichiers * _projet.10 et _projet.12 + * @param _tpModele Le type de modèle (HOULE ou SEICHE). * @exception FileNotFoundException Un fichier de géométrie n'est pas trouvé */ ! // public static RefondeProjet nouveau(File _projet) throws IOException { ! public void nouveau(File _projet, int _tpModele) throws IOException { ! // RefondeProjet prj=new RefondeProjet(); RefondeProjet prj= this; String ext; String fcName; RefondeGeometrie geo; ! // File fcGeo; if (_projet.getName().endsWith(".10")) ext= ".10"; *************** *** 63,67 **** fcName= _projet.getPath().substring(0, _projet.getPath().lastIndexOf(ext)); prj.fireMessageEvent(new MessageEvent(prj, null, 20)); ! // RefondeImplementation.statusBar.setProgression(20); // Lecture/Création de la géométrie depuis les fichiers Vag prj.fcGeometrie_= new File(fcName + ".geo"); --- 64,69 ---- fcName= _projet.getPath().substring(0, _projet.getPath().lastIndexOf(ext)); prj.fireMessageEvent(new MessageEvent(prj, null, 20)); ! // RefondeImplementation.statusBar.setProgression(20); ! // Lecture/Création de la géométrie depuis les fichiers Vag prj.fcGeometrie_= new File(fcName + ".geo"); *************** *** 69,99 **** prj.geometrie_= geo; prj.fireMessageEvent(new MessageEvent(prj, null, 50)); ! // RefondeImplementation.statusBar.setProgression(50); // Maillage prj.fcMaillage_= new File(fcName + ".mai"); prj.maillage_= RefondeMaillage.defaut(prj); prj.fireMessageEvent(new MessageEvent(prj, null, 60)); ! // RefondeImplementation.statusBar.setProgression(60); // Modèle de propriétés prj.fcModele_= new File(fcName + ".prp"); prj.modele_= RefondeModeleProprietes.defaut(prj); prj.fireMessageEvent(new MessageEvent(prj, null, 70)); ! // RefondeImplementation.statusBar.setProgression(70); // Modèle de calcul prj.fcCalcul_= new File(fcName + ".cal"); prj.calcul_= RefondeModeleCalcul.defaut(prj); prj.fireMessageEvent(new MessageEvent(prj, null, 80)); ! // RefondeImplementation.statusBar.setProgression(80); // Résultats prj.fcResultats_= new File(fcName + ".sol"); prj.resultats_= null; // Mise en page prj.fcMEP_= new File(fcName + ".mep"); prj.mep_= RefondeMiseEnPage.defaut(prj); // Objet en retour prj.modifie= true; prj.fcProjet_= new File(fcName + ".prf"); ! // return prj; } /** * Ouverture d'un projet. Les fichiers associés sont aussi ouverts --- 71,109 ---- prj.geometrie_= geo; prj.fireMessageEvent(new MessageEvent(prj, null, 50)); ! // RefondeImplementation.statusBar.setProgression(50); ! // Maillage prj.fcMaillage_= new File(fcName + ".mai"); prj.maillage_= RefondeMaillage.defaut(prj); prj.fireMessageEvent(new MessageEvent(prj, null, 60)); ! // RefondeImplementation.statusBar.setProgression(60); ! // Modèle de propriétés prj.fcModele_= new File(fcName + ".prp"); prj.modele_= RefondeModeleProprietes.defaut(prj); prj.fireMessageEvent(new MessageEvent(prj, null, 70)); ! // RefondeImplementation.statusBar.setProgression(70); ! // Modèle de calcul prj.fcCalcul_= new File(fcName + ".cal"); prj.calcul_= RefondeModeleCalcul.defaut(prj); + prj.calcul_.typeModele(_tpModele); prj.fireMessageEvent(new MessageEvent(prj, null, 80)); ! // RefondeImplementation.statusBar.setProgression(80); ! // Résultats prj.fcResultats_= new File(fcName + ".sol"); prj.resultats_= null; + // Mise en page prj.fcMEP_= new File(fcName + ".mep"); prj.mep_= RefondeMiseEnPage.defaut(prj); + // Objet en retour prj.modifie= true; prj.fcProjet_= new File(fcName + ".prf"); ! // return prj; } + /** * Ouverture d'un projet. Les fichiers associés sont aussi ouverts *************** *** 582,584 **** --- 592,612 ---- } } + + /** + * Change la structure du projet en fonction du modèle de données. + * @param _typeModele Le type du modele de données + * (RefondeModeleCalcul.MODELE_SEICHE, + * RefondeModeleCalcul.MODELE_HOULE) + */ + public void transmute(int _typeModele) { + // Aucun changement si le modèle de données est le même + if (_typeModele==this.calcul_.typeModele()) return; + + modifie=true; + + this.modele_.transmute(_typeModele,this); + this.calcul_.typeModele(_typeModele); + this.calcul_.calculAngles(this); + this.resultats_=null; + } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:50:35
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15672 Modified Files: RefondeMiseEnPage.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des résultats transitoires. Index: RefondeMiseEnPage.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeMiseEnPage.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** RefondeMiseEnPage.java 18 Dec 2003 09:40:20 -0000 1.6 --- RefondeMiseEnPage.java 15 Apr 2004 07:50:26 -0000 1.7 *************** *** 22,26 **** import org.fudaa.ebli.calque.dessin.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.ebli.palette.*; /** * Classe de sauvegarde/récupération de la mise en page. --- 22,26 ---- import org.fudaa.ebli.calque.dessin.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.fudaa.refonde.commun.*; /** * Classe de sauvegarde/récupération de la mise en page. *************** *** 42,51 **** public static final String NM_HAUTEUR= "hauteur"; public static final String NM_VUE= "vue"; - // public static final String NM_REPERE="repere"; - // public static final String NM_ZOOM="zoom"; - // public static final String NM_TRANS_X="trans_x"; - // public static final String NM_TRANS_Y="trans_y"; public static final String NM_CALQUE= "calque"; public static final String NM_TYPE= "type"; public static final String NM_COL_FOND= "couleur_fond"; public static final String NM_COL_TRACE= "couleur_trace"; --- 42,48 ---- public static final String NM_HAUTEUR= "hauteur"; public static final String NM_VUE= "vue"; public static final String NM_CALQUE= "calque"; public static final String NM_TYPE= "type"; + public static final String NM_PAS= "pas"; public static final String NM_COL_FOND= "couleur_fond"; public static final String NM_COL_TRACE= "couleur_trace"; *************** *** 253,260 **** --- 250,259 ---- + _fc + "\nLe fichier n'est pas un fichier Refonde"); + // <Format> (largeur, hauteur) Element format= getSousElement(root, NM_FORMAT); double w= getDoubleAtt(format, NM_LARGEUR); double h= getDoubleAtt(format, NM_HAUTEUR); + // <Marges> (gauche,droite,haut,bas) Element marges= getSousElement(format, NM_MARGES); *************** *** 268,271 **** --- 267,271 ---- double imh= h - mrgh - mrgb; pageFormat_= new PageFormat(); + // On renverse la page, et on change l'orientation if (w > h) { *************** *** 276,279 **** --- 276,280 ---- pageFormat_.setOrientation(PageFormat.LANDSCAPE); } + // On laisse tel quel else { *************** *** 284,288 **** --- 285,291 ---- pageFormat_.setOrientation(PageFormat.PORTRAIT); } + //--- Fenetres --------------------------------------------------------- + // Morphisme de transformation Mise ne page -> Ecran JDesktopPane dsk= imp.getMainPanel().getDesktop(); *************** *** 290,303 **** --- 293,311 ---- Element fenetres= getSousElement(root, NM_FENETRES); Element[] fenetre= getSousElements(fenetres, NM_FENETRE); + for (int i= 0; i < fenetre.length; i++) { + // La fenetre construite ici est définitive. RefondeFillePost fnPost= new RefondeFillePost(imp.getArbreCalque()); fnPost.initialise(_prj); + BVueCalque vc= fnPost.getVueCalque(); vc.getCalque().getCalqueParNom("cqLegende").setVisible(false); + // Identifiant hidFn2Fn.put(new Integer(getIntAtt(fenetre[i], NM_ID)), fnPost); hidCq2Cq= new Hashtable(); hfn2IdCq2Cq.put(fnPost, hidCq2Cq); + // Geometrie Element geometrie= getSousElement(fenetre[i], NM_GEOMETRIE); *************** *** 310,316 **** po.autoApplique(m); pe.autoApplique(m); ! vc.setPreferredSize( ! new Dimension((int) (pe.x - po.x), (int) (pe.y - po.y))); vc.setSize(vc.getPreferredSize()); // Vue Element vue= getSousElement(fenetre[i], NM_VUE); --- 318,324 ---- po.autoApplique(m); pe.autoApplique(m); ! vc.setPreferredSize(new Dimension((int)(pe.x-po.x),(int)(pe.y-po.y))); vc.setSize(vc.getPreferredSize()); + // Vue Element vue= getSousElement(fenetre[i], NM_VUE); *************** *** 319,341 **** double wv= getDoubleAtt(vue, NM_LARGEUR); double hv= getDoubleAtt(vue, NM_HAUTEUR); GrBoite bt= new GrBoite(); bt.ajuste(new GrPoint(xv, yv, 0)); bt.ajuste(new GrPoint(xv + wv, yv + hv, 0)); vc.changeRepere(this, bt, 0); // Calques Element[] calques= getSousElements(fenetre[i], NM_CALQUE); for (int j= 0; j < calques.length; j++) { String type= getStringAtt(calques[j], NM_TYPE); ! RefondeCalqueCarte cqRes= ! (RefondeCalqueCarte)vc.getCalque().getCalqueParTitre(type); ! RefondePaletteCouleurPlage pal= cqRes.getPalette(); // Aucun calque correspondant existant => On passe ! if (cqRes == null) ! continue; // Identifiant hidCq2Cq.put(new Integer(getIntAtt(calques[j], NM_ID)), cqRes); int rouge; int vert; int bleu; // Couleur de fond Element colFond= getSousElement(calques[j], NM_COL_FOND); --- 327,363 ---- double wv= getDoubleAtt(vue, NM_LARGEUR); double hv= getDoubleAtt(vue, NM_HAUTEUR); + GrBoite bt= new GrBoite(); bt.ajuste(new GrPoint(xv, yv, 0)); bt.ajuste(new GrPoint(xv + wv, yv + hv, 0)); vc.changeRepere(this, bt, 0); + // Calques Element[] calques= getSousElements(fenetre[i], NM_CALQUE); for (int j= 0; j < calques.length; j++) { String type= getStringAtt(calques[j], NM_TYPE); ! Double valPas=new Double(0.0); ! try { valPas=new Double(getDoubleAtt(calques[j],NM_PAS)); } ! catch (SAXException _exc) {} // => Attribut non présent autorisé (versions < 5.14) ! ! RefondeCalqueCarte cqRes=(RefondeCalqueCarte)vc.getCalque().getCalqueParTitre(type); ! // Aucun calque correspondant existant => On passe ! if (cqRes == null) continue; ! ! // Valeur du temps ! if (cqRes.getModeleValeur() instanceof RefondeModeleVisuResultats) { ! ((RefondeModeleVisuResultats)cqRes.getModeleValeur()).setSelectedStep(valPas); ! } ! ! BPaletteCouleurPlage pal= cqRes.getPalette(); ! // Identifiant hidCq2Cq.put(new Integer(getIntAtt(calques[j], NM_ID)), cqRes); + int rouge; int vert; int bleu; + // Couleur de fond Element colFond= getSousElement(calques[j], NM_COL_FOND); *************** *** 344,347 **** --- 366,370 ---- bleu= getIntAtt(colFond, NM_BLEU); cqRes.setBackground(new Color(rouge, vert, bleu)); + // Couleur de tracé Element colTrace= getSousElement(calques[j], NM_COL_TRACE); *************** *** 863,866 **** --- 886,890 ---- modifie_= false; } + /** * Ecriture des informations sur le fichier associé. *************** *** 873,883 **** Document document; DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder= factory.newDocumentBuilder(); document= builder.newDocument(); ! Hashtable hcq2IdCq= new Hashtable(); // Table de calque vers leur identifiant. ! Hashtable hcq2IdFn= new Hashtable(); // Table de calque vers l'identifiant fenetre. // Mise en page (version=<ver> logiciel="refonde") Element root= document.createElement(NM_MEP); --- 897,910 ---- Document document; DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance(); + try { DocumentBuilder builder= factory.newDocumentBuilder(); document= builder.newDocument(); ! // Table de calque vers leur identifiant. ! Hashtable hcq2IdCq= new Hashtable(); // Table de calque vers l'identifiant fenetre. + Hashtable hcq2IdFn= new Hashtable(); + // Mise en page (version=<ver> logiciel="refonde") Element root= document.createElement(NM_MEP); *************** *** 887,890 **** --- 914,918 ---- root.setAttribute(NM_LOGICIEL, NM_REFONDE); document.appendChild(root); + // Format Element format= document.createElement(NM_FORMAT); *************** *** 892,912 **** format.setAttribute(NM_HAUTEUR, "" + pageFormat_.getHeight()); root.appendChild(format); // Marges du format Element marges= document.createElement(NM_MARGES); marges.setAttribute(NM_GAUCHE, "" + pageFormat_.getImageableX()); ! marges.setAttribute( ! NM_DROITE, ! "" ! + (pageFormat_.getWidth() ! - pageFormat_.getImageableWidth() ! - pageFormat_.getImageableX())); marges.setAttribute(NM_BAS, "" + pageFormat_.getImageableY()); ! marges.setAttribute( ! NM_HAUT, ! "" ! + (pageFormat_.getHeight() ! - pageFormat_.getImageableHeight() ! - pageFormat_.getImageableY())); format.appendChild(marges); // Fenetres Element fenetres= document.createElement(NM_FENETRES); --- 920,936 ---- format.setAttribute(NM_HAUTEUR, "" + pageFormat_.getHeight()); root.appendChild(format); + // Marges du format Element marges= document.createElement(NM_MARGES); marges.setAttribute(NM_GAUCHE, "" + pageFormat_.getImageableX()); ! marges.setAttribute(NM_DROITE,""+(pageFormat_.getWidth()- ! pageFormat_.getImageableWidth()- ! pageFormat_.getImageableX())); marges.setAttribute(NM_BAS, "" + pageFormat_.getImageableY()); ! marges.setAttribute(NM_HAUT,""+(pageFormat_.getHeight()- ! pageFormat_.getImageableHeight()- ! pageFormat_.getImageableY())); format.appendChild(marges); + // Fenetres Element fenetres= document.createElement(NM_FENETRES); *************** *** 914,917 **** --- 938,942 ---- { Vector vfns= mdlFns_.getObjets(); + for (int i= 0; i < vfns.size(); i++) { // RefondeFillePost fn=(RefondeFillePost)vfns.get(i); *************** *** 921,942 **** BVueCalque vc= (BVueCalque)vfns.get(i); GrPolygone pg= mdlFns_.getGeometrie(vc); Element fenetre= document.createElement(NM_FENETRE); fenetre.setAttribute(NM_ID, "" + i); Element geometrie= document.createElement(NM_GEOMETRIE); ! geometrie.setAttribute(NM_POS_X, "" + pg.sommet(0).x); ! geometrie.setAttribute(NM_POS_Y, "" + pg.sommet(0).y); ! geometrie.setAttribute( ! NM_LARGEUR, ! "" + (pg.sommet(2).x - pg.sommet(0).x)); ! geometrie.setAttribute( ! NM_HAUTEUR, ! "" + (pg.sommet(2).y - pg.sommet(0).y)); fenetre.appendChild(geometrie); ! GrPoint o= ! new GrPoint(0, vc.getHeight(), 0).applique( ! vc.getCalque().getVersReel()); ! GrPoint e= ! new GrPoint(vc.getWidth(), 0, 0).applique( ! vc.getCalque().getVersReel()); Element vue= document.createElement(NM_VUE); vue.setAttribute(NM_POS_X, "" + o.x); --- 946,965 ---- BVueCalque vc= (BVueCalque)vfns.get(i); GrPolygone pg= mdlFns_.getGeometrie(vc); + Element fenetre= document.createElement(NM_FENETRE); fenetre.setAttribute(NM_ID, "" + i); + Element geometrie= document.createElement(NM_GEOMETRIE); ! geometrie.setAttribute(NM_POS_X,""+pg.sommet(0).x); ! geometrie.setAttribute(NM_POS_Y,""+ pg.sommet(0).y); ! geometrie.setAttribute(NM_LARGEUR,""+(pg.sommet(2).x-pg.sommet(0).x)); ! geometrie.setAttribute(NM_HAUTEUR,""+(pg.sommet(2).y-pg.sommet(0).y)); fenetre.appendChild(geometrie); ! ! GrPoint o=new GrPoint(0, vc.getHeight(), 0).applique( ! vc.getCalque().getVersReel()); ! GrPoint e=new GrPoint(vc.getWidth(), 0, 0).applique( ! vc.getCalque().getVersReel()); ! Element vue= document.createElement(NM_VUE); vue.setAttribute(NM_POS_X, "" + o.x); *************** *** 945,987 **** vue.setAttribute(NM_HAUTEUR, "" + (e.y - o.y)); fenetre.appendChild(vue); ! // Element repere=document.createElement(NM_REPERE); ! // repere.setAttribute(NM_ZOOM, ""+vc.getRepere()[0][0]); ! // repere.setAttribute(NM_TRANS_X,""+vc.getRepere()[1][0]); ! // repere.setAttribute(NM_TRANS_Y,""+vc.getRepere()[1][1]); ! // fenetre.appendChild(repere); BCalque[] cqs= vc.getCalque().getTousCalques(); int idCalque= 0; for (int j= 0; j < cqs.length; j++) { ! if (!cqs[j].isVisible()) ! continue; ! if (!(cqs[j] instanceof RefondeCalqueCarte)) ! continue; ! RefondePaletteCouleurPlage pal= ! ((RefondeCalqueCarte)cqs[j]).getPalette(); Element calque= document.createElement(NM_CALQUE); ! calque.setAttribute(NM_ID, "" + idCalque); ! calque.setAttribute(NM_TYPE, "" + cqs[j].getTitle()); Element colFond= document.createElement(NM_COL_FOND); ! colFond.setAttribute( ! NM_ROUGE, ! "" + cqs[j].getBackground().getRed()); ! colFond.setAttribute( ! NM_VERT, ! "" + cqs[j].getBackground().getGreen()); ! colFond.setAttribute( ! NM_BLEU, ! "" + cqs[j].getBackground().getBlue()); calque.appendChild(colFond); Element colTrace= document.createElement(NM_COL_TRACE); ! colTrace.setAttribute( ! NM_ROUGE, ! "" + cqs[j].getForeground().getRed()); ! colTrace.setAttribute( ! NM_VERT, ! "" + cqs[j].getForeground().getGreen()); ! colTrace.setAttribute( ! NM_BLEU, ! "" + cqs[j].getForeground().getBlue()); calque.appendChild(colTrace); if (((BCalqueCarte)cqs[j]).getContour()) { Element avecCtr= document.createElement(NM_AVEC_CTR); --- 968,1008 ---- vue.setAttribute(NM_HAUTEUR, "" + (e.y - o.y)); fenetre.appendChild(vue); ! BCalque[] cqs= vc.getCalque().getTousCalques(); int idCalque= 0; + for (int j= 0; j < cqs.length; j++) { ! if (!cqs[j].isVisible()) continue; ! if (!(cqs[j] instanceof RefondeCalqueCarte)) continue; ! ! Double valPas; ! if (((RefondeCalqueCarte)cqs[j]).getModeleValeur() instanceof ! RefondeModeleVisuResultats) { ! valPas=((RefondeModeleVisuResultats) ! ((RefondeCalqueCarte)cqs[j]).getModeleValeur()).getSelectedStep(); ! } ! else { ! valPas=new Double(0.0); ! } ! BPaletteCouleurPlage pal=((RefondeCalqueCarte)cqs[j]).getPalette(); ! ! Element calque= document.createElement(NM_CALQUE); ! calque.setAttribute(NM_ID,""+idCalque); ! calque.setAttribute(NM_TYPE,""+cqs[j].getTitle()); ! calque.setAttribute(NM_PAS,""+valPas); ! Element colFond= document.createElement(NM_COL_FOND); ! colFond.setAttribute(NM_ROUGE,""+cqs[j].getBackground().getRed()); ! colFond.setAttribute(NM_VERT,""+cqs[j].getBackground().getGreen()); ! colFond.setAttribute(NM_BLEU,""+cqs[j].getBackground().getBlue()); calque.appendChild(colFond); + Element colTrace= document.createElement(NM_COL_TRACE); ! colTrace.setAttribute(NM_ROUGE,""+cqs[j].getForeground().getRed()); ! colTrace.setAttribute(NM_VERT,""+cqs[j].getForeground().getGreen()); ! colTrace.setAttribute(NM_BLEU,""+cqs[j].getForeground().getBlue()); calque.appendChild(colTrace); + if (((BCalqueCarte)cqs[j]).getContour()) { Element avecCtr= document.createElement(NM_AVEC_CTR); *************** *** 1009,1012 **** --- 1030,1034 ---- // calque.appendChild(bornes); // } + // Palette Element palette= document.createElement(NM_PALETTE); *************** *** 1063,1066 **** --- 1085,1089 ---- } } + // Légendes Element legendes= document.createElement(NM_LEGENDES); |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:49:29
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15472 Modified Files: RefondeRefonde.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des résultats transitoires. - Prise en compte des spécificités seiches dans le transfert des infos vers les structures idl. Index: RefondeRefonde.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeRefonde.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** RefondeRefonde.java 2 Apr 2004 14:02:38 -0000 1.6 --- RefondeRefonde.java 15 Apr 2004 07:49:20 -0000 1.7 *************** *** 8,11 **** --- 8,12 ---- */ package org.fudaa.fudaa.refonde; + import java.util.*; import org.fudaa.dodico.refonde.*; *************** *** 17,20 **** --- 18,22 ---- import org.fudaa.ebli.geometrie.*; [...1688 lines suppressed...] ! // fsol=_projet.getFichierProjet().getName(); ! // fsol=fsol.substring(0,fsol.lastIndexOf(".prf")); ! // _params.fichierSolution=fsol+".sol"; ! } ! ! //-------------------------------------------------------------------------- ! //--- Bloc 'VALP' -------------------------------------------------------- ! //-------------------------------------------------------------------------- ! ! if (tpModele==RefondeModeleCalcul.MODELE_SEICHE) ! { ! _params.seiche.nbValPropres=mdlCal.nbValPropres(); ! _params.seiche.nbMaxIterations=mdlCal.nbIterMax(); ! _params.seiche.decalageValPropres=mdlCal.decalValPropres(); ! _params.seiche.precisionConvergence=mdlCal.precision(); } } + /** * Transfert du projet dans un format des parametres SPE serveur. |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:48:06
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15191 Modified Files: RefondeFillePost.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des résultats transitoires. Index: RefondeFillePost.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeFillePost.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** RefondeFillePost.java 12 Mar 2004 10:17:05 -0000 1.6 --- RefondeFillePost.java 15 Apr 2004 07:47:56 -0000 1.7 *************** *** 8,25 **** */ package org.fudaa.fudaa.refonde; ! import org.fudaa.fudaa.commun.*; import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; import com.memoire.bu.*; - import org.fudaa.ebli.trace.*; import org.fudaa.ebli.ressource.*; - import org.fudaa.ebli.palette.*; import java.util.*; import java.awt.*; - import java.awt.geom.*; - import java.awt.event.*; import java.beans.*; import javax.swing.*; import javax.swing.event.*; /** * Une fenetre interne affichant les calques de post traitement sans intéraction --- 8,23 ---- */ package org.fudaa.fudaa.refonde; ! import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; import com.memoire.bu.*; import org.fudaa.ebli.ressource.*; import java.util.*; import java.awt.*; import java.beans.*; import javax.swing.*; import javax.swing.event.*; + import org.fudaa.fudaa.refonde.commun.*; + /** * Une fenetre interne affichant les calques de post traitement sans intéraction *************** *** 30,68 **** */ public class RefondeFillePost ! extends EbliFilleCalques ! implements PropertyChangeListener { ! /** ! * Numéro de fenètre, incrémenté à chaque création. Ce numéro ne sert que ! * dans la liste de fenètres, pour les différentier. ! */ private static int numero_= 0; ! /** ! * Table des calques résultats ! */ private Vector cqsResultats_= new Vector(); ! /** ! * Calque des légendes ! */ private BCalqueLegende cqLeg_; ! /** ! * Tools spécifiques de la fenêtre. ! */ private JComponent[] btTools_; ! /** ! * panneau de palette de couleur. ! */ ! private RefondePnPalette pnPal_; ! /** ! * Panneau d'options de tracé iso. ! */ ! private RefondePnOptionsIso pnIso_; ! /** ! * Le super maillage permet de visualiser les résultats. ! */ private GrMaillage superMail_= null; ! /** ! * Le calque actif (sélectionné dans l'arbre des calques). ! */ private BCalque cqActif_= null; /** * Création d'une fenètre de gestion des calques sans préoccupation de --- 28,57 ---- */ public class RefondeFillePost ! extends EbliFilleCalques { ! ! /** Numéro de fenètre, incrémenté à chaque création. Ce numéro ne sert que ! dans la liste de fenètres, pour les différentier. */ private static int numero_= 0; ! /** Table des calques résultats. */ private Vector cqsResultats_= new Vector(); ! /** Calque des légendes */ private BCalqueLegende cqLeg_; ! /** Tools spécifiques de la fenêtre. */ private JComponent[] btTools_; ! /** panneau de palette de couleur. */ ! private BPanneauPaletteCouleurPlage pnPal_; ! /** Panneau d'options de tracé iso. */ ! private BPanneauOptionsIso pnIso_; ! /** Panneau de selection du temps courant */ ! private BPanneauSelectedStep pnStep_; ! /** Bouton d'accès aux modes propres. Actif que si modèle seiche. */ ! private BuPopupButton btStep_=null; ! /** Le super maillage permet de visualiser les résultats. */ private GrMaillage superMail_= null; ! /** Le calque actif (sélectionné dans l'arbre des calques). */ private BCalque cqActif_= null; + /** Projet */ + private RefondeProjet prj_= null; + /** * Création d'une fenètre de gestion des calques sans préoccupation de *************** *** 72,75 **** --- 61,65 ---- // this(new BVueCalque(), _ac); // } + /** * Création d'une fenetre en précisant la vue associée. *************** *** 111,114 **** --- 101,105 ---- setClosable(true); } + /** * Pour donner un nom à la vue calque, nom utilisé dans la fenetre de mise en *************** *** 123,130 **** --- 114,124 ---- */ public void initialise(RefondeProjet _prj) { + prj_=_prj; + // Création du super maillage. Le maillage est censé être optimisé à ce // niveau et donc compatible avec des résultats de calcul. // Les noeuds sont rangés dans l'ordre de leur numérotation, les éléments // dans n'importe quel ordre. + superMail_= new GrMaillage(); GrMaillageElement mail= RefondeMaillage.creeSuperMaillage(_prj); *************** *** 133,142 **** Hashtable hInd2Nd= new Hashtable(); for (int i= 0; i < nds.length; i++) ! hInd2Nd.put( ! new Integer(((RefondeNoeudData)nds[i].data()).numero - 1), ! nds[i]); // Noeuds dans l'ordre de leur numérotation for (int i= 0; i < nds.length; i++) superMail_.noeuds.ajoute(((GrNoeud)hInd2Nd.get(new Integer(i))).point); // Connectivités for (int i= 0; i < els.length; i++) { --- 127,136 ---- Hashtable hInd2Nd= new Hashtable(); for (int i= 0; i < nds.length; i++) ! hInd2Nd.put(new Integer(((RefondeNoeudData)nds[i].data()).numero-1),nds[i]); ! // Noeuds dans l'ordre de leur numérotation for (int i= 0; i < nds.length; i++) superMail_.noeuds.ajoute(((GrNoeud)hInd2Nd.get(new Integer(i))).point); + // Connectivités for (int i= 0; i < els.length; i++) { *************** *** 147,168 **** superMail_.connectivites.add(conn); } ! // Création des calques clearResultats(); - // Calque de bathymetrie - double[] z= new double[nds.length]; - for (int i= 0; i < z.length; i++) - z[i]= superMail_.noeuds.renvoie(i).z; - ajouteResultat( - RefondeResultats.nomResultats[RefondeResultats.BATHYMETRIE], - z); - // Calques résultats if (_prj.hasResultats()) { ! RefondeResultats res= _prj.getResultats(); ! String[] nmRes= res.getNomsResultats(); ! for (int i= 0; i < nmRes.length; i++) { ! ajouteResultat(nmRes[i], res.getResultat(nmRes[i])); } } } /** * Suppression des calques de résultats --- 141,169 ---- superMail_.connectivites.add(conn); } ! ! // Création des calques résultats clearResultats(); if (_prj.hasResultats()) { ! RefondeResultats res=_prj.getResultats(); ! ! // Pas dans le panneau des pas. ! pnStep_.clearSteps(); ! for (int i=0; i<res.getNbEtapes(); i++) ! pnStep_.addStep(new Double(res.getInstantEtape(i))); ! ! // Résultats ! for (int i= 0; i < res.getNbColonnes(); i++) { ! ajouteResultat(res.getNomColonne(i)); } } + + // Création du calque Bathy. + ajouteBathy(); + + // Activation ou non des modes de valeurs propres. + btStep_.setEnabled(prj_.hasResultats() && + prj_.getModeleCalcul().typeModele()==RefondeModeleCalcul.MODELE_SEICHE); } + /** * Suppression des calques de résultats *************** *** 173,184 **** cqsResultats_.clear(); } /** * Ajout d'un résultat. Le résultat n'est ajouté que s'il n'existe pas déjà un * calque de même nom. */ ! public void ajouteResultat(String _nom, double[] _valeurs) { BCalque cqRoot= getVueCalque().getCalque(); ! if (cqRoot.getCalqueParTitre(_nom) != null) ! return; RefondeCalqueCarte cq= new RefondeCalqueCarte(); // cq.setPaletteCouleur(new BPaletteCouleurSimple()); --- 174,242 ---- cqsResultats_.clear(); } + + /** + * Ajout de la bathymetrie comme calque de résultat. + */ + public void ajouteBathy() { + BCalque cqRoot= getVueCalque().getCalque(); + + // Modèle de bathymetrie + class ModeleValeurBathy implements ZModeleValeur { + double[] vals_= null; + public ModeleValeurBathy(double[] _vals) { + vals_= _vals; + } + public int nbValeurs() { + return vals_.length; + } + public double valeur(int i) { + return vals_[i]; + } + public double getMin() { + double r= Double.POSITIVE_INFINITY; + for (int i= 0; i < vals_.length; i++) + r= Math.min(r, vals_[i]); + return r; + } + public double getMax() { + double r= Double.NEGATIVE_INFINITY; + for (int i= 0; i < vals_.length; i++) + r= Math.max(r, vals_[i]); + return r; + } + public void addModelChangeListener(ZModeleChangeListener _list) {} // Model doesn't change + public void removeModelChangeListener(ZModeleChangeListener _list) {} // Model doesn't change + } + + double[] z= new double[superMail_.noeuds.nombre()]; + for (int i= 0; i < z.length; i++) + z[i]= superMail_.noeuds.renvoie(i).z; + // BCalque cqRoot=getVueCalque().getCalque(); + RefondeCalqueCarte cq= new RefondeCalqueCarte(); + // cq.setPaletteCouleur(new BPaletteCouleurSimple()); + cq.setMaillage(superMail_); + cq.setName("cq" + "Bathy initiale"); + cq.setTitle("Bathy initiale"); + cq.setModeleValeurs(new ModeleValeurBathy(z)); + cq.setContour(false); + cq.setIsolignes(false); + cq.setSurface(false); + cq.setVisible(false); + cq.setLegende(cqLeg_); + cqRoot.add(cq); + } + /** * Ajout d'un résultat. Le résultat n'est ajouté que s'il n'existe pas déjà un * calque de même nom. */ ! public void ajouteResultat(String _nom) { BCalque cqRoot= getVueCalque().getCalque(); ! if (cqRoot.getCalqueParTitre(_nom)!=null) return; ! ! RefondeModeleVisuResultats mdRes= ! new RefondeModeleVisuResultats(prj_.getResultats(),_nom); ! mdRes.setSelectedStep(pnStep_.getSelectedStep()); ! RefondeCalqueCarte cq= new RefondeCalqueCarte(); // cq.setPaletteCouleur(new BPaletteCouleurSimple()); *************** *** 186,190 **** cq.setName("cq" + _nom); cq.setTitle(_nom); ! cq.setValeurs(_valeurs); cq.setContour(false); cq.setIsolignes(false); --- 244,249 ---- cq.setName("cq" + _nom); cq.setTitle(_nom); ! cq.setModeleValeurs(mdRes); ! mdRes.addModelChangeListener(cq); cq.setContour(false); cq.setIsolignes(false); *************** *** 195,207 **** --- 254,270 ---- cqRoot.add(cq); } + public String[] getEnabledActions() { return super.getEnabledActions(); } + public String[] getDisabledActions() { return super.getDisabledActions(); } + public JMenu[] getSpecificMenus() { return super.getSpecificMenus(); } + /** * Retourne les outils spécifiques *************** *** 224,227 **** --- 287,291 ---- return cps; } + /** * Evènement sur l'arbre (changement d'activation de calque). *************** *** 234,264 **** // if (btTools_.length>0 ) btTools_[0].doLayout(); // Mise a jour du panneau de palette. ! if (cqActif_ instanceof RefondeCalqueCarte) ! if(pnPal_!=null) pnPal_.setPalette(((RefondeCalqueCarte)cqActif_).getPalette()); ! else ! if(pnPal_!=null) pnPal_.setPalette(new RefondePaletteCouleurPlage()); } catch (NullPointerException e) {} } /** ! * Modification de la palette de couleurs ou des options de tracé. */ ! public void propertyChange(PropertyChangeEvent _evt) { if (RefondeResource.DEBUG) System.out.println("Event : " + _evt.getPropertyName()); // Mise a jour du calque de tracé. if (cqActif_ instanceof RefondeCalqueCarte) { if (_evt.getPropertyName().equals("palette")) { ((RefondeCalqueCarte)cqActif_).setPalette(pnPal_.getPalette()); ! } else if (_evt.getPropertyName().equals("optionsIso")) { ! ((RefondeCalqueCarte)cqActif_).setIsolignes( ! pnIso_.isIsolignesSelected()); ! ((RefondeCalqueCarte)cqActif_).setIsosurfaces( ! pnIso_.isIsosurfacesSelected()); ((RefondeCalqueCarte)cqActif_).setContour(pnIso_.isMaillageSelected()); ! } else ! return; cqActif_.repaint(); } } /** * Création de la barre d'outils avec les outils de tous les calques. --- 298,360 ---- // if (btTools_.length>0 ) btTools_[0].doLayout(); // Mise a jour du panneau de palette. ! if (cqActif_ instanceof RefondeCalqueCarte) { ! pnPal_.setPalette(((RefondeCalqueCarte)cqActif_).getPalette()); ! pnPal_.setBorneMin(((RefondeCalqueCarte)cqActif_).getModeleValeur().getMin()); ! pnPal_.setBorneMax(((RefondeCalqueCarte)cqActif_).getModeleValeur().getMax()); ! } ! else { ! pnPal_.setPalette(new BPaletteCouleurPlage()); ! pnPal_.setBorneMin(pnPal_.getPalette().getMinPalette()); ! pnPal_.setBorneMax(pnPal_.getPalette().getMaxPalette()); ! } } catch (NullPointerException e) {} } + /** ! * Modification des propriétés de calque courant. */ ! public void layerPropertyChange(PropertyChangeEvent _evt) { if (RefondeResource.DEBUG) System.out.println("Event : " + _evt.getPropertyName()); + // Mise a jour du calque de tracé. if (cqActif_ instanceof RefondeCalqueCarte) { if (_evt.getPropertyName().equals("palette")) { ((RefondeCalqueCarte)cqActif_).setPalette(pnPal_.getPalette()); ! } ! else if (_evt.getPropertyName().equals("optionsIso")) { ! ((RefondeCalqueCarte)cqActif_).setIsolignes(pnIso_.isIsolignesSelected()); ! ((RefondeCalqueCarte)cqActif_).setIsosurfaces(pnIso_.isIsosurfacesSelected()); ((RefondeCalqueCarte)cqActif_).setContour(pnIso_.isMaillageSelected()); ! } ! else return; ! cqActif_.repaint(); } } + + /** + * Modification des propriétés de fenetre. + */ + public void windowPropertyChange(PropertyChangeEvent _evt) { + if (_evt.getPropertyName().equals("selectedStep")) { + for (int i= 0; i < cqsResultats_.size(); i++) { + if (cqsResultats_.get(i) instanceof RefondeCalqueCarte) { + RefondeCalqueCarte cq=(RefondeCalqueCarte)cqsResultats_.get(i); + RefondeModeleVisuResultats mdRes= + (RefondeModeleVisuResultats)cq.getModeleValeur(); + mdRes.setSelectedStep(pnStep_.getSelectedStep()); + + if (cq==cqActif_) { + pnPal_.setPalette(cq.getPalette()); + pnPal_.setBorneMin(cq.getModeleValeur().getMin()); + pnPal_.setBorneMax(cq.getModeleValeur().getMax()); + } + } + } + getVueCalque().repaint(); + } + } + /** * Création de la barre d'outils avec les outils de tous les calques. *************** *** 274,280 **** } } ! // Palette de couleurs ! pnPal_= new RefondePnPalette(); ! pnPal_.addPropertyChangeListener(this); BuPopupButton btPal= new BuPopupButton(EbliResource.EBLI.getString("palette"), pnPal_); --- 370,386 ---- } } ! ! // Separator ! vcps.add(null); ! ! // Panneau de palette de couleurs ! pnPal_= new BPanneauPaletteCouleurPlage(); ! pnPal_.addPropertyChangeListener(new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent _evt) { ! layerPropertyChange(_evt); ! } ! }); ! pnPal_.setPanneauTailleEnabled(false); ! BuPopupButton btPal= new BuPopupButton(EbliResource.EBLI.getString("palette"), pnPal_); *************** *** 283,289 **** btPal.setIcon(EbliResource.EBLI.getIcon("palettecouleur")); vcps.add(btPal); ! // Options de tracé d'isocouleurs ! pnIso_= new RefondePnOptionsIso(); ! pnIso_.addPropertyChangeListener(this); BuPopupButton btIso= new BuPopupButton(EbliResource.EBLI.getString("tracé iso"), pnIso_); --- 389,401 ---- btPal.setIcon(EbliResource.EBLI.getIcon("palettecouleur")); vcps.add(btPal); ! ! // Panneau d'options de tracé d'isocouleurs ! pnIso_= new BPanneauOptionsIso(); ! pnIso_.addPropertyChangeListener(new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent _evt) { ! layerPropertyChange(_evt); ! } ! }); ! BuPopupButton btIso= new BuPopupButton(EbliResource.EBLI.getString("tracé iso"), pnIso_); *************** *** 292,298 **** btIso.setIcon(EbliResource.EBLI.getIcon("surface")); vcps.add(btIso); btTools_= (JComponent[])vcps.toArray(new JComponent[0]); for (int i= 0; i < btTools_.length; i++) ! btTools_[i].setEnabled(true); } /** --- 404,427 ---- btIso.setIcon(EbliResource.EBLI.getIcon("surface")); vcps.add(btIso); + + // Panneau de selection de pas + pnStep_= new BPanneauSelectedStep(); + pnStep_.addPropertyChangeListener(new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent _evt) { + windowPropertyChange(_evt); + } + }); + + btStep_= new BuPopupButton("Pas", pnStep_); + btStep_.setMargin(new Insets(0, 0, 0, 0)); + btStep_.setActionCommand("SELECTIONNERPAS"); + btStep_.setToolTipText("Selection de la période de résonnance"); + btStep_.setIcon(RefondeResource.REFONDE.getIcon("temps")); + vcps.add(btStep_); + btTools_= (JComponent[])vcps.toArray(new JComponent[0]); for (int i= 0; i < btTools_.length; i++) ! if (btTools_[i] != null) ! btTools_[i].setEnabled(true); } /** |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:46:56
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14940 Modified Files: RefondeFilleCalques.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeFilleCalques.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeFilleCalques.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RefondeFilleCalques.java 12 Mar 2004 10:17:04 -0000 1.7 --- RefondeFilleCalques.java 15 Apr 2004 07:46:47 -0000 1.8 *************** *** 53,57 **** // private Vector enabledActions_=new Vector(); private BuCommonInterface app_; ! private Object[] bdSelects_; private Hashtable gr2Bd_; // private BGroupeCalque gc_; --- 53,57 ---- // private Vector enabledActions_=new Vector(); private BuCommonInterface app_; ! private Object[] bdSelects_=new Object[0]; private Hashtable gr2Bd_; // private BGroupeCalque gc_; *************** *** 161,165 **** /* JMenu[] mnPere=super.getSpecificMenus(); JMenu[] r =new JMenu[mnPere.length+1]; ! for (int i=0; i<mnPere.length; i++) r[i]=mnPere[i]; r[mnPere.length+0]=mnVoir_; */ --- 161,165 ---- /* JMenu[] mnPere=super.getSpecificMenus(); JMenu[] r =new JMenu[mnPere.length+1]; ! for (int i=0; i<mnPere.length; i++) r[i]=mnPere[i]; r[mnPere.length+0]=mnVoir_; */ *************** *** 240,243 **** --- 240,244 ---- // for (int i=0; i<btTools_.length; i++) if (btTools_[i]!=null) btTools_[i].setEnabled(true); } + /** * Récupération des objets sélectionnés et mise à l'état activables les *************** *** 245,322 **** */ public void selectedObjects(SelectionEvent _evt) { ! VecteurGrContour grSelects_= _evt.getObjects(); // Hashtable grClass=new Hashtable(); ! boolean active; // Stockage des bdObjects ! bdSelects_= new Object[grSelects_.nombre()]; // Cas particulier des angles d'incidence/transmission ! if (_evt.getSource() == cqAngles || _evt.getSource() == cqAnglesTrans) { ! for (int i= 0; i < grSelects_.nombre(); i++) ! bdSelects_[i]= ! ( ! (RefondeSymboleData) ((GrSymbole)grSelects_.renvoie(i)) ! .data()) ! .angle; } // Domaines poreux ! else if (_evt.getSource() == cqDomainePoreux) { ! for (int i= 0; i < grSelects_.nombre(); i++) ! bdSelects_[i]= grSelects_.renvoie(i); } // Points des domaines poreux ! else if (_evt.getSource() == cqDomainePoreuxPts) { ! for (int i= 0; i < grSelects_.nombre(); i++) ! bdSelects_[i]= grSelects_.renvoie(i); ! } else { ! for (int i= 0; i < grSelects_.nombre(); i++) ! bdSelects_[i]= gr2Bd_.get(grSelects_.renvoie(i)); } ! // Activation ou non des boutons et menus ! // for(int i=0; i<grSelects_.nombre(); i++) ! // grClass.put(grSelects_.renvoie(i).getClass(),grSelects_.renvoie(i).getClass()); // Propriétés de bord ! active= (_evt.getSource() == cqContours && // active=(grClass.size()==1 && ! // grClass.get((new GrPolyligne()).getClass())!=null && ! grSelects_.nombre() > 0); app_.setEnabledForAction("PROPRIETESBORD", active); // Propriétés de fond ! active= (_evt.getSource() == cqContours && // active=(grClass.size()==1 && ! // grClass.get((new GrPolyligne()).getClass())!=null && ! grSelects_.nombre() > 0); app_.setEnabledForAction("PROPRIETESFOND", active); // Angles d'incidence ! active= ! ((_evt.getSource() == cqAngles && grSelects_.nombre() > 0) ! || (_evt.getSource() == cqAnglesTrans && grSelects_.nombre() > 0)); app_.setEnabledForAction("MODIFIERANGLE", active); // Angles supplémentaires ! active= ((_evt.getSource() == cqAngles && grSelects_.nombre() > 0)); app_.setEnabledForAction("MODIFIERANGSUP", active); // Création d'un domaine digue ! active= (_evt.getSource() == cqContours && grSelects_.nombre() > 0); app_.setEnabledForAction("CREERDIGUE", active); // Suppression d'un domaine digue ! active= (_evt.getSource() == cqContours && grSelects_.nombre() > 0); app_.setEnabledForAction("SUPPRIMERDIGUE", active); // Modification des propriétés de maillage sur un domaine ! active= (_evt.getSource() == cqContours && grSelects_.nombre() > 0); app_.setEnabledForAction("MODIFIERPROPMAILLAGE", active); // Maillage d'un domaine ! active= (_evt.getSource() == cqContours && grSelects_.nombre() > 0); app_.setEnabledForAction("MAILLER", active); // Suppression d'un maillage ! active= (_evt.getSource() == cqContours && grSelects_.nombre() > 0); app_.setEnabledForAction("SUPPRIMERMAILLAGE", active); // Suppression d'un domaine poreux ! active= (_evt.getSource() == cqDomainePoreux && grSelects_.nombre() > 0); btSupPoreux_.setEnabled(active); // Modification d'un domaine poreux ! active= (_evt.getSource() == cqDomainePoreux && grSelects_.nombre() == 1); btModPoreux_.setEnabled(active); // Modification d'un point du plan d'un domaine poreux ! active= ! (_evt.getSource() == cqDomainePoreuxPts && grSelects_.nombre() == 1); btModPoint_.setEnabled(active); } /** * Modification du calque sélectionné. Si contours, bouton de sélection par 2 --- 246,402 ---- */ public void selectedObjects(SelectionEvent _evt) { ! VecteurGrContour grSelects_=_evt.getObjects(); // Hashtable grClass=new Hashtable(); ! // Stockage des bdObjects ! bdSelects_=new Object[grSelects_.nombre()]; ! // Cas particulier des angles d'incidence/transmission ! if (_evt.getSource()==cqAngles||_evt.getSource()==cqAnglesTrans) { ! for (int i=0; i<grSelects_.nombre(); i++) ! bdSelects_[i]=((RefondeSymboleData)((GrSymbole)grSelects_.renvoie(i)) ! .data()) ! .angle; } + // Domaines poreux ! else if (_evt.getSource()==cqDomainePoreux) { ! for (int i=0; i<grSelects_.nombre(); i++) ! bdSelects_[i]=grSelects_.renvoie(i); } + // Points des domaines poreux ! else if (_evt.getSource()==cqDomainePoreuxPts) { ! for (int i=0; i<grSelects_.nombre(); i++) ! bdSelects_[i]=grSelects_.renvoie(i); } ! ! else { ! for (int i=0; i<grSelects_.nombre(); i++) ! bdSelects_[i]=gr2Bd_.get(grSelects_.renvoie(i)); ! } ! ! valideActions(); ! /* // Activation ou non des boutons et menus ! // Propriétés de bord ! active=(_evt.getSource()==cqContours&& // active=(grClass.size()==1 && ! // grClass.get((new GrPolyligne()).getClass())!=null && ! grSelects_.nombre()>0); app_.setEnabledForAction("PROPRIETESBORD", active); + // Propriétés de fond ! active=(_evt.getSource()==cqContours && // active=(grClass.size()==1 && ! // grClass.get((new GrPolyligne()).getClass())!=null && ! grSelects_.nombre()>0); app_.setEnabledForAction("PROPRIETESFOND", active); + // Angles d'incidence ! active=bHoule && ! (_evt.getSource()==cqAngles && grSelects_.nombre()>0) || ! (_evt.getSource()==cqAnglesTrans && grSelects_.nombre()>0); app_.setEnabledForAction("MODIFIERANGLE", active); + // Angles supplémentaires ! active=bHoule && _evt.getSource()==cqAngles && grSelects_.nombre()>0; app_.setEnabledForAction("MODIFIERANGSUP", active); + // Création d'un domaine digue ! active=bHoule && _evt.getSource()==cqContours && grSelects_.nombre()>0; app_.setEnabledForAction("CREERDIGUE", active); + // Suppression d'un domaine digue ! active=bHoule && _evt.getSource()==cqContours && grSelects_.nombre()>0; app_.setEnabledForAction("SUPPRIMERDIGUE", active); + // Modification des propriétés de maillage sur un domaine ! active=(_evt.getSource()==cqContours && grSelects_.nombre()>0); app_.setEnabledForAction("MODIFIERPROPMAILLAGE", active); + // Maillage d'un domaine ! active=(_evt.getSource()==cqContours && grSelects_.nombre()>0); app_.setEnabledForAction("MAILLER", active); + // Suppression d'un maillage ! active=(_evt.getSource()==cqContours && grSelects_.nombre()>0); app_.setEnabledForAction("SUPPRIMERMAILLAGE", active); + // Suppression d'un domaine poreux ! active=bHoule && _evt.getSource()==cqDomainePoreux && grSelects_.nombre()>0; btSupPoreux_.setEnabled(active); + // Modification d'un domaine poreux ! active=bHoule && _evt.getSource()==cqDomainePoreux && grSelects_.nombre()==1; btModPoreux_.setEnabled(active); + // Modification d'un point du plan d'un domaine poreux ! active=bHoule && _evt.getSource()==cqDomainePoreuxPts && grSelects_.nombre()==1; ! btModPoint_.setEnabled(active);*/ ! } ! ! /** ! * Mise a jour des menus et boutons en fonction du contexte. ! */ ! private void valideActions() { ! BCalque cq=getArbreCalqueModel().getSelectedCalque(); ! ! boolean active; ! boolean bHoule= ! prj_.getModeleCalcul().typeModele()==RefondeModeleCalcul.MODELE_HOULE; ! ! // Propriétés de bord ! active=cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("PROPRIETESBORD", active); ! ! // Propriétés de fond ! active=cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("PROPRIETESFOND", active); ! ! // Angles d'incidence ! active=bHoule && ((cq==cqAngles && bdSelects_.length>0) || ! (cq==cqAnglesTrans && bdSelects_.length>0)); ! app_.setEnabledForAction("MODIFIERANGLE", active); ! ! // Angles supplémentaires ! active=bHoule && cq==cqAngles && bdSelects_.length>0; ! app_.setEnabledForAction("MODIFIERANGSUP", active); ! ! // Création d'un domaine digue ! active=bHoule && cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("CREERDIGUE", active); ! ! // Suppression d'un domaine digue ! active=bHoule && cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("SUPPRIMERDIGUE", active); ! ! // Modification des propriétés de maillage sur un domaine ! active=cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("MODIFIERPROPMAILLAGE", active); ! ! // Maillage d'un domaine ! active=cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("MAILLER", active); ! ! // Suppression d'un maillage ! active=cq==cqContours && bdSelects_.length>0; ! app_.setEnabledForAction("SUPPRIMERMAILLAGE", active); ! ! // Création d'un domaine ! active=bHoule; ! btCreePoreux_.setEnabled(active); ! ! // Suppression d'un domaine poreux ! active=bHoule && cq==cqDomainePoreux && bdSelects_.length>0; ! btSupPoreux_.setEnabled(active); ! ! // Modification d'un domaine poreux ! active=bHoule && cq==cqDomainePoreux && bdSelects_.length==1; ! btModPoreux_.setEnabled(active); ! ! // Modification d'un point du plan d'un domaine poreux ! active=bHoule && cq==cqDomainePoreuxPts && bdSelects_.length==1; btModPoint_.setEnabled(active); } + /** * Modification du calque sélectionné. Si contours, bouton de sélection par 2 *************** *** 466,469 **** --- 546,550 ---- } //---------------------------------------------------------------------------- + /** * Retourne les objets sélectionnés *************** *** 472,475 **** --- 553,557 ---- return bdSelects_; } + /** * Initialise le calque avec les informations issues du projet *************** *** 478,502 **** public void initialise(RefondeProjet _projet) { gr2Bd_.clear(); cqContours.initialise(_projet); - cqAngles.initialise(_projet); - cqAnglesTrans.initialise(_projet); - cqSaisieAngle.initialise(_projet); cqMaillage.initialise(_projet); cqContoursI.initialise(_projet, cqContours); - // Affichage des domaines poreux - cqDomainePoreux.reinitialise(); - cqDomainePoreuxPts.reinitialise(); - // cqDomainePoreuxDir.reinitialise(); - RefondeDomainePoreux[] dms= - _projet.getModeleProprietes().getDomainesPoreux(); - for (int i= 0; i < dms.length; i++) { - cqDomainePoreux.ajoute(dms[i]); - // cqDomainePoreuxDir.ajoute(dms[i].getSymbole()); - GrPoint[] pts= dms[i].getPointsPlan(); - for (int j= 0; j < pts.length; j++) - cqDomainePoreuxPts.ajoute(pts[j]); - } prj_= _projet; } /** * Affichage d'un calque --- 560,615 ---- public void initialise(RefondeProjet _projet) { gr2Bd_.clear(); + bdSelects_=new Object[0]; + + BCalque cqRoot= getVueCalque().getCalque(); + cqRoot.remove(cqDomainePoreux); + cqRoot.remove(cqDomainePoreuxPts); + cqRoot.remove(cqAngles); + cqRoot.remove(cqAnglesTrans); + cqRoot.getCalqueParNom("cqADMIN").remove(cqSaisieAngle); + cqRoot.getCalqueParNom("cqADMIN").remove(cqFormeI); + cqContours.initialise(_projet); cqMaillage.initialise(_projet); cqContoursI.initialise(_projet, cqContours); prj_= _projet; + + // Spécifique en fonction du modèle choisi. + boolean bHoule= + prj_.getModeleCalcul().typeModele()==RefondeModeleCalcul.MODELE_HOULE; + + if (bHoule) { + cqAngles.initialise(_projet); + cqAnglesTrans.initialise(_projet); + cqSaisieAngle.initialise(_projet); + + // Affichage des domaines poreux + cqDomainePoreux.reinitialise(); + cqDomainePoreuxPts.reinitialise(); + // cqDomainePoreuxDir.reinitialise(); + RefondeDomainePoreux[] dms= + _projet.getModeleProprietes().getDomainesPoreux(); + for (int i= 0; i < dms.length; i++) { + cqDomainePoreux.ajoute(dms[i]); + // cqDomainePoreuxDir.ajoute(dms[i].getSymbole()); + GrPoint[] pts= dms[i].getPointsPlan(); + for (int j= 0; j < pts.length; j++) + cqDomainePoreuxPts.ajoute(pts[j]); + } + + // Ajout des calques spécifiques + cqRoot.add(cqDomainePoreux); + cqRoot.add(cqDomainePoreuxPts); + cqRoot.add(cqAngles); + cqRoot.add(cqAnglesTrans); + + cqRoot.getCalqueParNom("cqADMIN").add(cqSaisieAngle); + cqRoot.getCalqueParNom("cqADMIN").add(cqFormeI); + } + + getArbreCalqueModel().refresh(); + valideActions(); } + /** * Affichage d'un calque |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:46:14
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14802 Modified Files: RefondeDialogParametresCalcul.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Dialogue spécifique suivant le modèle de données choisi. Index: RefondeDialogParametresCalcul.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeDialogParametresCalcul.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RefondeDialogParametresCalcul.java 25 Nov 2003 10:14:13 -0000 1.4 --- RefondeDialogParametresCalcul.java 15 Apr 2004 07:46:05 -0000 1.5 *************** *** 97,100 **** --- 97,112 ---- JPanel pnParamsHR= new JPanel(); JLabel lbHtHouleHR= new JLabel(); + JPanel pnGeneSeiche = new JPanel(); + JTextField tfNbValPropres = new JTextField(); + JLabel lbNbValPropres = new JLabel(); + BuGridLayout lyGeneSeiche = new BuGridLayout(2, 5, 5); + JLabel lbHtMerSeiche = new JLabel(); + JTextField tfHtMerSeiche = new JTextField(); + JTextField tfNbIterMax = new JTextField(); + JLabel lbNbIterMax = new JLabel(); + JTextField tfPrec = new JTextField(); + JLabel lbDecalValPropres = new JLabel(); + JTextField tfDecalValPropres = new JTextField(); + JLabel lbPrec = new JLabel(); public RefondeDialogParametresCalcul() { this(null, null); *************** *** 151,154 **** --- 163,181 ---- pnGene.setLayout(lyGene); pnGene.setBorder(bdPnGene); + pnGeneSeiche.setBorder(bdPnGene); + pnGeneSeiche.setLayout(lyGeneSeiche); + lbNbValPropres.setText("Nombre de valeurs propres :"); + lbNbValPropres.setHorizontalAlignment(SwingConstants.TRAILING); + lbHtMerSeiche.setHorizontalAlignment(SwingConstants.TRAILING); + lbHtMerSeiche.setText("Hauteur de mer :"); + lbNbIterMax.setHorizontalAlignment(SwingConstants.TRAILING); + lbNbIterMax.setText("Nombre d\'itérations max :"); + lbDecalValPropres.setText("Décalage des valeurs propres :"); + lbDecalValPropres.setHorizontalAlignment(SwingConstants.TRAILING); + lbPrec.setText("Précision de convergence :"); + lbPrec.setHorizontalAlignment(SwingConstants.TRAILING); + pnGeneSeiche.add(lbHtMerSeiche, null); + pnGeneSeiche.add(tfHtMerSeiche, null); + pnGeneSeiche.add(lbNbValPropres, null); pnGene.add(lbHtMer); pnGene.add(tfHtMer); *************** *** 172,176 **** // B.M. Le 04/02/2003 Le terme dissipatif est autorisé pour la houle aléatoire. /* rbDissipatif.setEnabled(rbHR.isSelected()); ! if (!rbDissipatif.isEnabled() && rbDissipatif.isSelected()) { new BuDialogMessage(null, RefondeImplementation.informationsSoftware(), --- 199,203 ---- // B.M. Le 04/02/2003 Le terme dissipatif est autorisé pour la houle aléatoire. /* rbDissipatif.setEnabled(rbHR.isSelected()); ! if (!rbDissipatif.isEnabled() && rbDissipatif.isSelected()) { new BuDialogMessage(null, RefondeImplementation.informationsSoftware(), *************** *** 352,359 **** pnDefer.add(pnFormule); // Ajout des panneaux au panneau principal ! tpMain.addTab("Général", null, pnGene, "Paramètres généraux"); ! tpMain.addTab("Houle", null, pnHoule, "Pour la houle"); ! tpMain.addTab("Déferlement", null, pnDefer, "Pour le déferlement"); pnAffichage.add("Center", tpMain); // Desactivation par défaut de certains Widgets lbOrdreMax.setEnabled(false); --- 379,394 ---- pnDefer.add(pnFormule); // Ajout des panneaux au panneau principal ! // tpMain.addTab("Général", null, pnGene, "Paramètres généraux"); ! // tpMain.addTab("Houle", null, pnHoule, "Pour la houle"); ! // tpMain.addTab("Déferlement", null, pnDefer, "Pour le déferlement"); pnAffichage.add("Center", tpMain); + pnGeneSeiche.add(tfNbValPropres, null); + // tpMain.add(pnGeneSeiche, "Général"); + pnGeneSeiche.add(lbNbIterMax, null); + pnGeneSeiche.add(tfNbIterMax, null); + pnGeneSeiche.add(lbDecalValPropres, null); + pnGeneSeiche.add(tfDecalValPropres, null); + pnGeneSeiche.add(lbPrec, null); + pnGeneSeiche.add(tfPrec, null); // Desactivation par défaut de certains Widgets lbOrdreMax.setEnabled(false); *************** *** 370,441 **** projet_= _projet; RefondeModeleCalcul mdlCal= projet_.getModeleCalcul(); ! // Paramètres généraux ! tfHtMer.setText("" + mdlCal.hauteurMer()); ! // tfProfExterne.setText(""+mdlCal.profondeurOrigine()); ! switch (mdlCal.casBordOuvert()) { ! case RefondeModeleCalcul.BORD_COND_ORDRE_1 : ! coCasBord.setSelectedIndex(0); ! break; ! case RefondeModeleCalcul.BORD_COND_ORDRE_2 : ! coCasBord.setSelectedIndex(1); ! break; ! case RefondeModeleCalcul.BORD_FORM_ANA_ILE : ! coCasBord.setSelectedIndex(2); ! break; ! case RefondeModeleCalcul.BORD_FORM_ANA_PORT : ! coCasBord.setSelectedIndex(3); ! break; } ! tfOrdreMax.setText("" + mdlCal.ordreMax()); ! cbFondsPoreux.setSelected(mdlCal.fondsPoreux_); ! // Houle régulière ! tfHtHouleHR.setText("" + mdlCal.hauteurHoule()); ! tfPeriodeHR.setText("" + mdlCal.periodeHoule()); ! tfAngleHR.setText("" + ((-mdlCal.angleHoule() + 270) % 360 + 360) % 360); ! // Houle aléatoire ! tfNbPeriodeHA.setText("" + mdlCal.nbPeriodesHoule()); ! tfPeriodeMnHA.setText("" + mdlCal.periodeHouleMini()); ! tfPeriodeMxHA.setText("" + mdlCal.periodeHouleMaxi()); ! tfNbAngleHA.setText("" + mdlCal.nbAnglesHoule()); ! // Important B.M. : Les angles utilisateurs tournant dans le sens inverse ! // des angles internes, les angles mini doivent être les angles maxi et ! // inversement. ! tfAngleMnHA.setText( ! "" + ((-mdlCal.angleHouleMaxi() + 270) % 360 + 360) % 360); ! tfAngleMxHA.setText( ! "" + ((-mdlCal.angleHouleMini() + 270) % 360 + 360) % 360); ! tfHtHouleHA.setText("" + mdlCal.hauteurHoule()); ! tfPeriodeHA.setText("" + mdlCal.periodeHoule()); ! tfPicHA.setText("" + mdlCal.rehaussementPic()); ! tfAngleHA.setText("" + ((-mdlCal.angleHoule() + 270) % 360 + 360) % 360); ! tfPartageHA.setText("" + mdlCal.repartitionAngle()); ! rbHR.setSelected(mdlCal.typeHoule() == mdlCal.HOULE_REG); ! rbHA.setSelected(!rbHR.isSelected()); ! // Déferlement ! switch (mdlCal.deferHoule()) { ! case RefondeModeleCalcul.DEFER_SANS : ! rbSans.setSelected(true); ! break; ! case RefondeModeleCalcul.DEFER_ITERATIF : ! rbDissipatif.setSelected(true); ! break; ! case RefondeModeleCalcul.DEFER_ECRETAGE : ! rbEcretage.setSelected(true); ! break; } - // tfNbIterHR.setText(""+mdlCal.nbIterDeferHoule()); - coFormule.setSelectedIndex(mdlCal.formuleDeferHoule()); } protected void APPLY_BUTTON_actionPerformed(ActionEvent _evt) { if (majBDD()) super.APPLY_BUTTON_actionPerformed(_evt); } protected void OK_BUTTON_actionPerformed(ActionEvent _evt) { if (majBDD()) super.OK_BUTTON_actionPerformed(_evt); } /** * Mise à jour de la base de données. - * * @return <i>true</i> : La mise à jour s'est bien passée. */ --- 405,508 ---- projet_= _projet; RefondeModeleCalcul mdlCal= projet_.getModeleCalcul(); ! ! // Modèle de données Houle ! ! if (mdlCal.typeModele()==RefondeModeleCalcul.MODELE_HOULE) { ! ! // Paramètres généraux ! tfHtMer.setText(""+mdlCal.hauteurMer()); ! switch (mdlCal.casBordOuvert()) { ! case RefondeModeleCalcul.BORD_COND_ORDRE_1: ! coCasBord.setSelectedIndex(0); ! break; ! case RefondeModeleCalcul.BORD_COND_ORDRE_2: ! coCasBord.setSelectedIndex(1); ! break; ! case RefondeModeleCalcul.BORD_FORM_ANA_ILE: ! coCasBord.setSelectedIndex(2); ! break; ! case RefondeModeleCalcul.BORD_FORM_ANA_PORT: ! coCasBord.setSelectedIndex(3); ! break; ! } ! tfOrdreMax.setText(""+mdlCal.ordreMax()); ! cbFondsPoreux.setSelected(mdlCal.fondsPoreux_); ! ! // Houle régulière ! tfHtHouleHR.setText(""+mdlCal.hauteurHoule()); ! tfPeriodeHR.setText(""+mdlCal.periodeHoule()); ! tfAngleHR.setText(""+((-mdlCal.angleHoule()+270)%360+360)%360); ! ! // Houle aléatoire ! tfNbPeriodeHA.setText(""+mdlCal.nbPeriodesHoule()); ! tfPeriodeMnHA.setText(""+mdlCal.periodeHouleMini()); ! tfPeriodeMxHA.setText(""+mdlCal.periodeHouleMaxi()); ! tfNbAngleHA.setText(""+mdlCal.nbAnglesHoule()); ! ! // Important B.M. : Les angles utilisateurs tournant dans le sens inverse ! // des angles internes, les angles mini doivent être les angles maxi et ! // inversement. ! tfAngleMnHA.setText( ! ""+((-mdlCal.angleHouleMaxi()+270)%360+360)%360); ! tfAngleMxHA.setText( ! ""+((-mdlCal.angleHouleMini()+270)%360+360)%360); ! tfHtHouleHA.setText(""+mdlCal.hauteurHoule()); ! tfPeriodeHA.setText(""+mdlCal.periodeHoule()); ! tfPicHA.setText(""+mdlCal.rehaussementPic()); ! tfAngleHA.setText(""+((-mdlCal.angleHoule()+270)%360+360)%360); ! tfPartageHA.setText(""+mdlCal.repartitionAngle()); ! rbHR.setSelected(mdlCal.typeHoule()==mdlCal.HOULE_REG); ! rbHA.setSelected(!rbHR.isSelected()); ! ! // Déferlement ! switch (mdlCal.deferHoule()) { ! case RefondeModeleCalcul.DEFER_SANS: ! rbSans.setSelected(true); ! break; ! case RefondeModeleCalcul.DEFER_ITERATIF: ! rbDissipatif.setSelected(true); ! break; ! case RefondeModeleCalcul.DEFER_ECRETAGE: ! rbEcretage.setSelected(true); ! break; ! } ! ! // tfNbIterHR.setText(""+mdlCal.nbIterDeferHoule()); ! coFormule.setSelectedIndex(mdlCal.formuleDeferHoule()); ! ! tpMain.removeAll(); ! tpMain.addTab("Général", null, pnGene, "Paramètres généraux"); ! tpMain.addTab("Houle", null, pnHoule, "Pour la houle"); ! tpMain.addTab("Déferlement", null, pnDefer, "Pour le déferlement"); ! pack(); } ! ! // Modèle de données Seiche ! ! else { ! tfHtMerSeiche.setText(""+mdlCal.hauteurMer()); ! tfNbValPropres.setText(""+mdlCal.nbValPropres()); ! tfNbIterMax.setText(""+mdlCal.nbIterMax()); ! tfDecalValPropres.setText(""+mdlCal.decalValPropres()); ! tfPrec.setText(""+mdlCal.precision()); ! ! tpMain.removeAll(); ! tpMain.addTab("Général", null, pnGeneSeiche, "Paramètres de seiche"); ! pack(); } } + protected void APPLY_BUTTON_actionPerformed(ActionEvent _evt) { if (majBDD()) super.APPLY_BUTTON_actionPerformed(_evt); } + protected void OK_BUTTON_actionPerformed(ActionEvent _evt) { if (majBDD()) super.OK_BUTTON_actionPerformed(_evt); } + /** * Mise à jour de la base de données. * @return <i>true</i> : La mise à jour s'est bien passée. */ *************** *** 444,448 **** double oldAngle= mdlCal.angleHoule(); double htMer= 0; - // double profExterne=0; int casBord= 0; int ordreMax= 0; --- 511,514 ---- *************** *** 461,523 **** int defer= 0; int formule= 0; // Controle de validité du format des champs try { ! // Paramètres généraux ! htMer= Double.parseDouble(tfHtMer.getText()); ! // profExterne=Double.parseDouble(tfProfExterne.getText()); ! switch (coCasBord.getSelectedIndex()) { ! case 0 : ! casBord= RefondeModeleCalcul.BORD_COND_ORDRE_1; ! break; ! case 1 : ! casBord= RefondeModeleCalcul.BORD_COND_ORDRE_2; ! break; ! case 2 : ! casBord= RefondeModeleCalcul.BORD_FORM_ANA_ILE; ! break; ! case 3 : ! casBord= RefondeModeleCalcul.BORD_FORM_ANA_PORT; ! break; ! } ! ordreMax= Integer.parseInt(tfOrdreMax.getText()); ! fondsPoreux= cbFondsPoreux.isSelected(); ! // Houle régulière ! if (rbHR.isSelected()) { ! htHoule= Double.parseDouble(tfHtHouleHR.getText()); ! periode= Double.parseDouble(tfPeriodeHR.getText()); ! angle= ! ((-Double.parseDouble(tfAngleHR.getText()) + 270) % 360 + 360) % 360; } ! // Houle aléatoire else { ! nbPeriodeHA= Integer.parseInt(tfNbPeriodeHA.getText()); ! periodeMnHA= Double.parseDouble(tfPeriodeMnHA.getText()); ! periodeMxHA= Double.parseDouble(tfPeriodeMxHA.getText()); ! nbAngleHA= Integer.parseInt(tfNbAngleHA.getText()); ! // Important B.M. : Les angles utilisateurs tournant dans le sens inverse ! // des angles internes, les angles mini doivent être les angles maxi et ! // inversement. ! angleMnHA= ! ((-Double.parseDouble(tfAngleMxHA.getText()) + 270) % 360 + 360) ! % 360; ! angleMxHA= ! ((-Double.parseDouble(tfAngleMnHA.getText()) + 270) % 360 + 360) ! % 360; ! htHoule= Double.parseDouble(tfHtHouleHA.getText()); ! periode= Double.parseDouble(tfPeriodeHA.getText()); ! picHA= Double.parseDouble(tfPicHA.getText()); ! angle= ! ((-Double.parseDouble(tfAngleHA.getText()) + 270) % 360 + 360) % 360; ! partageHA= Double.parseDouble(tfPartageHA.getText()); } ! // Déferlement ! if (rbSans.isSelected()) ! defer= RefondeModeleCalcul.DEFER_SANS; ! else if (rbDissipatif.isSelected()) ! defer= RefondeModeleCalcul.DEFER_ITERATIF; ! else ! defer= RefondeModeleCalcul.DEFER_ECRETAGE; ! formule= coFormule.getSelectedIndex(); ! } catch (NumberFormatException _exc) { new BuDialogError( null, --- 527,614 ---- int defer= 0; int formule= 0; + int nbValPropres=0; + int nbIterMax=0; + double decalValPropres=0; + double precision=0; + // Controle de validité du format des champs + try { ! ! // Modèle de houle ! ! if (mdlCal.typeModele()==RefondeModeleCalcul.MODELE_HOULE) { ! ! // Paramètres généraux ! ! htMer=Double.parseDouble(tfHtMer.getText()); ! switch (coCasBord.getSelectedIndex()) { ! case 0: ! casBord=RefondeModeleCalcul.BORD_COND_ORDRE_1; ! break; ! case 1: ! casBord=RefondeModeleCalcul.BORD_COND_ORDRE_2; ! break; ! case 2: ! casBord=RefondeModeleCalcul.BORD_FORM_ANA_ILE; ! break; ! case 3: ! casBord=RefondeModeleCalcul.BORD_FORM_ANA_PORT; ! break; ! } ! ordreMax=Integer.parseInt(tfOrdreMax.getText()); ! fondsPoreux=cbFondsPoreux.isSelected(); ! ! // Houle régulière ! if (rbHR.isSelected()) { ! htHoule=Double.parseDouble(tfHtHouleHR.getText()); ! periode=Double.parseDouble(tfPeriodeHR.getText()); ! angle=((-Double.parseDouble(tfAngleHR.getText())+270)%360+360)%360; ! } ! ! // Houle aléatoire ! else { ! nbPeriodeHA=Integer.parseInt(tfNbPeriodeHA.getText()); ! periodeMnHA=Double.parseDouble(tfPeriodeMnHA.getText()); ! periodeMxHA=Double.parseDouble(tfPeriodeMxHA.getText()); ! nbAngleHA=Integer.parseInt(tfNbAngleHA.getText()); ! ! // Important B.M. : Les angles utilisateurs tournant dans le sens inverse ! // des angles internes, les angles mini doivent être les angles maxi et ! // inversement. ! angleMnHA=((-Double.parseDouble(tfAngleMxHA.getText())+270)%360+360)% ! 360; ! angleMxHA=((-Double.parseDouble(tfAngleMnHA.getText())+270)%360+360)% ! 360; ! ! htHoule=Double.parseDouble(tfHtHouleHA.getText()); ! periode=Double.parseDouble(tfPeriodeHA.getText()); ! picHA=Double.parseDouble(tfPicHA.getText()); ! angle=((-Double.parseDouble(tfAngleHA.getText())+270)%360+360)%360; ! partageHA=Double.parseDouble(tfPartageHA.getText()); ! } ! ! // Déferlement ! if (rbSans.isSelected()) ! defer=RefondeModeleCalcul.DEFER_SANS; ! else if (rbDissipatif.isSelected()) ! defer=RefondeModeleCalcul.DEFER_ITERATIF; ! else ! defer=RefondeModeleCalcul.DEFER_ECRETAGE; ! ! formule=coFormule.getSelectedIndex(); } ! ! // Modèle de seiche ! else { ! htMer=Double.parseDouble(tfHtMerSeiche.getText()); ! nbValPropres=Integer.parseInt(tfNbValPropres.getText()); ! nbIterMax=Integer.parseInt(tfNbIterMax.getText()); ! decalValPropres=Double.parseDouble(tfDecalValPropres.getText()); ! precision=Double.parseDouble(tfPrec.getText()); } ! } ! catch (NumberFormatException _exc) { new BuDialogError( null, *************** *** 527,530 **** --- 618,622 ---- return false; } + // Contrôle de validité des champs class Err extends Exception { *************** *** 533,578 **** } } try { ! // Houle aléatoire ! if (rbHA.isSelected()) { ! if (nbPeriodeHA < 1 || nbPeriodeHA > 20) ! throw new Err( ! "Houle aléatoire : Le nombre de périodes de houle doit " ! + "être compris entre 1 et 20"); ! if (nbAngleHA < 1 || nbAngleHA > 20) ! throw new Err( ! "Houle aléatoire : Le nombre de directions de houle " ! + "doit être compris entre 1 et 20"); ! if (nbPeriodeHA * nbAngleHA <= 1) ! throw new Err( ! "Houle aléatoire : Le nombre de directions ou de " ! + "périodes de houle doit être supérieur à 1"); ! if (nbPeriodeHA > 1 && (periodeMnHA > periodeMxHA)) ! throw new Err( ! "Houle aléatoire : La période mini de houle doit être " ! + "supérieure à la période maxi de houle"); ! if (nbPeriodeHA > 1 ! && (periode < periodeMnHA || periode > periodeMxHA)) ! throw new Err( ! "Houle aléatoire : La période de pic doit être comprise " ! + "entre les périodes de houle mini et maxi"); ! if (picHA < 1 || picHA > 7) throw new Err( ! "Houle aléatoire : Le facteur de réhaussement du pic " ! + "doit être compris entre 1 et 7"); ! // if (nbAngleHA>1 && (angle<angleMnHA || angle>angleMxHA)) ! if (nbAngleHA > 1 ! && ((angleMnHA <= angleMxHA && (angle < angleMnHA || angle > angleMxHA)) ! || (angleMnHA > angleMxHA ! && (angle < angleMnHA && angle > angleMxHA)))) throw new Err( ! "Houle aléatoire : L'angle principal de houle doit " ! + "être compris entre les angles de houle mini et maxi"); ! if (partageHA < 1 || partageHA > 100) throw new Err( ! "Houle aléatoire : Le paramètre principal de " ! + "répartition angulaire doit être compris entre 1 et 100"); } ! } catch (Err _exc) { new BuDialogError( null, --- 625,690 ---- } } + try { ! ! // Modèle de houle ! if (mdlCal.typeModele()==RefondeModeleCalcul.MODELE_HOULE) { ! ! // Houle aléatoire ! if (rbHA.isSelected()) { ! if (nbPeriodeHA<1||nbPeriodeHA>20) ! throw new Err( ! "Houle aléatoire : Le nombre de périodes de houle doit " ! +"être compris entre 1 et 20"); ! if (nbAngleHA<1||nbAngleHA>20) ! throw new Err( ! "Houle aléatoire : Le nombre de directions de houle " ! +"doit être compris entre 1 et 20"); ! if (nbPeriodeHA*nbAngleHA<=1) ! throw new Err( ! "Houle aléatoire : Le nombre de directions ou de " ! +"périodes de houle doit être supérieur à 1"); ! if (nbPeriodeHA>1&&(periodeMnHA>periodeMxHA)) ! throw new Err( ! "Houle aléatoire : La période mini de houle doit être " ! +"supérieure à la période maxi de houle"); ! if (nbPeriodeHA>1 ! &&(periode<periodeMnHA||periode>periodeMxHA)) ! throw new Err( ! "Houle aléatoire : La période de pic doit être comprise " ! +"entre les périodes de houle mini et maxi"); ! if (picHA<1||picHA>7) ! throw new Err( ! "Houle aléatoire : Le facteur de réhaussement du pic " ! +"doit être compris entre 1 et 7"); ! // if (nbAngleHA>1 && (angle<angleMnHA || angle>angleMxHA)) ! if (nbAngleHA>1 ! &&((angleMnHA<=angleMxHA&&(angle<angleMnHA||angle>angleMxHA)) ! ||(angleMnHA>angleMxHA ! &&(angle<angleMnHA&&angle>angleMxHA)))) ! throw new Err( ! "Houle aléatoire : L'angle principal de houle doit " ! +"être compris entre les angles de houle mini et maxi"); ! if (partageHA<1||partageHA>100) ! throw new Err( ! "Houle aléatoire : Le paramètre principal de " ! +"répartition angulaire doit être compris entre 1 et 100"); ! } ! } ! ! // Modèle de seiche ! else { ! if (nbValPropres<1) throw new Err( ! "Le nombre de valeurs propres doit être supérieur à 0."); ! if (nbIterMax<1) throw new Err( ! "Le nombre d'itérations max doit être supérieur à 0."); ! if (precision<0) throw new Err( ! "La précision de convergence doit être positive."); } ! } ! catch (Err _exc) { new BuDialogError( null, *************** *** 582,643 **** return false; } ! // Mise à jour des paramètres du modèle de calcul ! // Paramètres généraux ! mdlCal.hauteurMer(htMer); ! // mdlCal.profondeurOrigine(profExterne); ! mdlCal.casBordOuvert(casBord); ! mdlCal.ordreMax(ordreMax); ! mdlCal.setFondsPoreux(fondsPoreux); ! // Houle régulière ! if (rbHR.isSelected()) { ! mdlCal.typeHoule(mdlCal.HOULE_REG); ! mdlCal.hauteurHoule(htHoule); ! mdlCal.periodeHoule(periode); ! mdlCal.angleHoule(angle); ! } ! // Houle aléatoire ! else { ! mdlCal.typeHoule(mdlCal.HOULE_ALEA); ! mdlCal.nbPeriodesHoule(nbPeriodeHA); ! mdlCal.periodeHouleMini(periodeMnHA); ! mdlCal.periodeHouleMaxi(periodeMxHA); ! mdlCal.nbAnglesHoule(nbAngleHA); ! mdlCal.angleHouleMini(angleMnHA); ! mdlCal.angleHouleMaxi(angleMxHA); ! mdlCal.hauteurHoule(htHoule); ! mdlCal.periodeHoule(periode); ! mdlCal.rehaussementPic(picHA); ! mdlCal.angleHoule(angle); ! mdlCal.repartitionAngle(partageHA); ! } ! // Déferlement ! mdlCal.deferHoule(defer); ! mdlCal.formuleDeferHoule(formule); ! // Mise à jour des angles si l'angle de houle a été modifiée ! if (oldAngle != mdlCal.angleHoule()) { ! BuDialogConfirmation di; ! di= ! new BuDialogConfirmation( ! null, ! RefondeImplementation.informationsSoftware(), ! "L'angle de houle incidente a changé.\n" ! + "Voulez vous recalculer les angles d'incidence sur les bords ?"); ! if (di.activate() == JOptionPane.YES_OPTION) { ! try { ! mdlCal.calculAngles(projet_); ! } catch (IllegalArgumentException _exc) { ! new BuDialogError( null, RefondeImplementation.informationsSoftware(), ! _exc.getMessage()) ! .activate(); ! } finally { ! fnCalques_.cqAngles.initialise(projet_); ! fnCalques_.getVueCalque().repaint(); } } } return true; } /** * Pour test de la boite de dialogue. --- 694,776 ---- return false; } ! ! // Mise à jour des paramètres ! ! // Modèle de houle ! if (mdlCal.typeModele()==RefondeModeleCalcul.MODELE_HOULE) { ! ! // Paramètres généraux ! mdlCal.hauteurMer(htMer); ! mdlCal.casBordOuvert(casBord); ! mdlCal.ordreMax(ordreMax); ! mdlCal.setFondsPoreux(fondsPoreux); ! ! // Houle régulière ! if (rbHR.isSelected()) { ! mdlCal.typeHoule(mdlCal.HOULE_REG); ! mdlCal.hauteurHoule(htHoule); ! mdlCal.periodeHoule(periode); ! mdlCal.angleHoule(angle); ! } ! ! // Houle aléatoire ! else { ! mdlCal.typeHoule(mdlCal.HOULE_ALEA); ! mdlCal.nbPeriodesHoule(nbPeriodeHA); ! mdlCal.periodeHouleMini(periodeMnHA); ! mdlCal.periodeHouleMaxi(periodeMxHA); ! mdlCal.nbAnglesHoule(nbAngleHA); ! mdlCal.angleHouleMini(angleMnHA); ! mdlCal.angleHouleMaxi(angleMxHA); ! mdlCal.hauteurHoule(htHoule); ! mdlCal.periodeHoule(periode); ! mdlCal.rehaussementPic(picHA); ! mdlCal.angleHoule(angle); ! mdlCal.repartitionAngle(partageHA); ! } ! ! // Déferlement ! mdlCal.deferHoule(defer); ! mdlCal.formuleDeferHoule(formule); ! ! // Mise à jour des angles si l'angle de houle a été modifiée ! if (oldAngle!=mdlCal.angleHoule()) { ! BuDialogConfirmation di; ! di= ! new BuDialogConfirmation( null, RefondeImplementation.informationsSoftware(), ! "L'angle de houle incidente a changé.\n" ! +"Voulez vous recalculer les angles d'incidence sur les bords ?"); ! if (di.activate()==JOptionPane.YES_OPTION) { ! try { ! mdlCal.calculAngles(projet_); ! } ! catch (IllegalArgumentException _exc) { ! new BuDialogError( ! null, ! RefondeImplementation.informationsSoftware(), ! _exc.getMessage()) ! .activate(); ! } ! finally { ! fnCalques_.cqAngles.initialise(projet_); ! fnCalques_.getVueCalque().repaint(); ! } } } } + + // Modèle de seiche + else { + mdlCal.hauteurMer(htMer); + mdlCal.nbValPropres(nbValPropres); + mdlCal.nbIterMax(nbIterMax); + mdlCal.decalValPropres(decalValPropres); + mdlCal.precision(precision); + } return true; } + /** * Pour test de la boite de dialogue. *************** *** 650,652 **** new RefondeDialogParametresCalcul().show(); } ! } \ No newline at end of file --- 783,788 ---- new RefondeDialogParametresCalcul().show(); } ! void coCasBord1_actionPerformed(ActionEvent e) { ! ! } ! } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:45:39
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14677 Modified Files: RefondeDialogProprietesProjet.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeDialogProprietesProjet.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeDialogProprietesProjet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeDialogProprietesProjet.java 25 Nov 2003 10:14:13 -0000 1.3 --- RefondeDialogProprietesProjet.java 15 Apr 2004 07:45:30 -0000 1.4 *************** *** 8,22 **** */ package org.fudaa.fudaa.refonde; import java.awt.*; import java.awt.event.*; import java.io.*; - import java.util.*; import javax.swing.*; - //import javax.swing.preview.*; - //import javax.swing.preview.filechooser.*; import com.memoire.bu.*; import org.fudaa.fudaa.commun.*; import org.fudaa.ebli.dialog.BFileChooser; import javax.swing.border.*; /** * Une boite de dialogue affichant les propriétés du projet. --- 8,21 ---- */ package org.fudaa.fudaa.refonde; + import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import com.memoire.bu.*; import org.fudaa.fudaa.commun.*; import org.fudaa.ebli.dialog.BFileChooser; import javax.swing.border.*; + /** * Une boite de dialogue affichant les propriétés du projet. *************** *** 45,51 **** --- 44,61 ---- BFileChooser diCal= new BFileChooser(); String[] exCal; + JPanel pnType=new JPanel(); + BorderLayout lyType = new BorderLayout(); + JLabel lbType = new JLabel(); + JComboBox coType = new JComboBox(); + Border bdpnType; + + boolean enableEvents=false; + private static final String TYPE_MODELE_HOULE ="Modèle de houle"; + private static final String TYPE_MODELE_SEICHE="Modèle de seiches"; + public RefondeDialogProprietesProjet() { this(null); } + public RefondeDialogProprietesProjet(Frame _parent) { // Le frame principal et le panel des boutons est créé et géré par la classe *************** *** 53,59 **** --- 63,73 ---- super(_parent, OK_CANCEL_OPTION); jbInit(); + customize(); + enableEvents=true; } + public void jbInit() { BuFileFilter[] filtresFichier; + bdpnType = BorderFactory.createEmptyBorder(5,5,5,5); lyFichiers.setHgap(3); lyFichiers.setColumns(3); *************** *** 63,66 **** --- 77,91 ---- pnFichiers.setLayout(lyFichiers); pnFichiers.setBorder(bdpnFichiers); + pnType.setLayout(lyType); + lbType.setText("Type de modèle de données"); + lyType.setHgap(5); + lyType.setVgap(5); + pnType.setBorder(bdpnType); + coType.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(ItemEvent e) { + coType_itemStateChanged(e); + } + }); + pnAffichage.add("North", pnType); pnAffichage.add("Center", pnFichiers); lbMai.setText("Maillage"); *************** *** 121,124 **** --- 146,151 ---- diCal.setFileFilter(filtresFichier[0]); // diCal.updateUI(); + // Ajout du panneau du type de modèle + // Ajout des composants au panel pnFichiers.add(lbMai); *************** *** 131,134 **** --- 158,173 ---- pnFichiers.add(tfCal); pnFichiers.add(btCal); + pnType.add(lbType, BorderLayout.WEST); + pnType.add(coType, BorderLayout.CENTER); + // setSize(getPreferredSize()); + } + + /** + * Ce que ne peut faire JB. + */ + public void customize() { + coType.addItem(TYPE_MODELE_HOULE); + coType.addItem(TYPE_MODELE_SEICHE); + // B.M. Pour l'instant, on ne peut modifier les fichiers associés tfMai.setEnabled(false); *************** *** 140,145 **** setResizable(false); pack(); - // setSize(getPreferredSize()); } /** * Affectation du projet à la boite de dialogue --- 179,184 ---- setResizable(false); pack(); } + /** * Affectation du projet à la boite de dialogue *************** *** 156,160 **** --- 195,209 ---- diCal.setSelectedFile(_projet.getFichierCalcul()); diCal.setCurrentDirectory(_projet.getFichierCalcul()); + + // Type de calcul + enableEvents=false; + if (projet_.getModeleCalcul().typeModele()==RefondeModeleCalcul.MODELE_SEICHE) + coType.setSelectedItem(TYPE_MODELE_SEICHE); + else + coType.setSelectedItem(TYPE_MODELE_HOULE); + + enableEvents=true; } + /** * Retourne le projet initialisé *************** *** 166,180 **** --- 215,252 ---- return projet_; } + + /** + * Retourne le type de modèle de données + * @return Le type du modèle (seiche) + */ + private int getTypeModele() { + if (coType.getSelectedItem().equals(TYPE_MODELE_SEICHE)) + return RefondeModeleCalcul.MODELE_SEICHE; + else + return RefondeModeleCalcul.MODELE_HOULE; + } + + //--- Surcharge FudaaDialog { ------------------------------------------------ + protected void OK_BUTTON_actionPerformed(ActionEvent _evt) { projet_= getProjet(); + int type=getTypeModele(); + if (type!=projet_.getModeleCalcul().typeModele()) projet_.transmute(type); super.OK_BUTTON_actionPerformed(_evt); } + protected void APPLY_BUTTON_actionPerformed(ActionEvent _evt) { projet_= getProjet(); + int type=getTypeModele(); + if (type!=projet_.getModeleCalcul().typeModele()) projet_.transmute(type); super.APPLY_BUTTON_actionPerformed(_evt); } + + //--- Surcharge FudaaDialog } ------------------------------------------------ + //---------------------------------------------------------------------------- //--- Actions -------------------------------------------------------------- //---------------------------------------------------------------------------- + private void bt_actionPerformed(ActionEvent _evt) { JButton bt= (JButton)_evt.getSource(); *************** *** 212,214 **** --- 284,299 ---- } } + + private void coType_itemStateChanged(ItemEvent e) { + if (!enableEvents) return; + if (e.getStateChange()==ItemEvent.DESELECTED) return; + + // Avertissement des modifications du modèle de données. + BuDialogMessage di=new BuDialogMessage(RefondeImplementation.application(), + RefondeImplementation.informationsSoftware(), + "Attention : Le projet sera dégradé pour correspondre\n"+ + "au type de modèle de données choisi."); + + di.activate(); + } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:45:21
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14613 Modified Files: RefondeCalqueCarte.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Révision du calque de tracé des résultats pour tenir compte de leur aspect transitoire. Index: RefondeCalqueCarte.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeCalqueCarte.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RefondeCalqueCarte.java 25 Nov 2003 10:14:10 -0000 1.4 --- RefondeCalqueCarte.java 15 Apr 2004 07:45:11 -0000 1.5 *************** *** 8,14 **** */ package org.fudaa.fudaa.refonde; import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.ebli.palette.*; import org.fudaa.ebli.repere.*; import org.fudaa.ebli.trace.*; --- 8,15 ---- */ package org.fudaa.fudaa.refonde; + import org.fudaa.ebli.calque.*; import org.fudaa.ebli.geometrie.*; ! import org.fudaa.fudaa.refonde.commun.*; import org.fudaa.ebli.repere.*; import org.fudaa.ebli.trace.*; *************** *** 26,32 **** * @author Bertrand Marchand , Bertrand Marchand */ ! public class RefondeCalqueCarte extends BCalqueCarte { ! RefondePaletteCouleurPlage pal_; private GrBoite boite_= null; /** * Contructeur du calque --- 27,36 ---- * @author Bertrand Marchand , Bertrand Marchand */ ! public class RefondeCalqueCarte extends BCalqueCarte implements ZModeleChangeListener { ! BPaletteCouleurPlage pal_; private GrBoite boite_= null; + /** Le modèle de valeurs */ + private ZModeleValeur valeurs_=null; + /** * Contructeur du calque *************** *** 34,53 **** public RefondeCalqueCarte() { super(); ! pal_= new RefondePaletteCouleurPlage(); pal_.setTitre(""); pal_.setSousTitre(""); pal_.setNbPlages(10); } ! public void setPalette(RefondePaletteCouleurPlage _pal) { pal_= _pal; construitLegende(); } ! public RefondePaletteCouleurPlage getPalette() { return pal_; } /** * + Réinitialisation de la palette. */ ! public void setValeurs(double[] _vals) { super.setValeurs(_vals); double vmin= Double.POSITIVE_INFINITY; --- 38,60 ---- public RefondeCalqueCarte() { super(); ! pal_= new BPaletteCouleurPlage(); pal_.setTitre(""); pal_.setSousTitre(""); pal_.setNbPlages(10); } ! ! public void setPalette(BPaletteCouleurPlage _pal) { pal_= _pal; construitLegende(); } ! ! public BPaletteCouleurPlage getPalette() { return pal_; } + /** * + Réinitialisation de la palette. */ ! /* public void setValeurs(double[] _vals) { super.setValeurs(_vals); double vmin= Double.POSITIVE_INFINITY; *************** *** 62,66 **** --- 69,106 ---- pal_.ajusteLegendes(); construitLegende(); + }*/ + + /** + * Affectation du modele de valeurs. + * @param _modele Le modele + */ + public void setModeleValeurs(ZModeleValeur _modele) { + //ZModeleValeur vp=valeurs_; + // if (valeurs_!=null) valeurs_.removeModelChangeListener(this); + valeurs_= _modele; + // if (valeurs_!=null) valeurs_.addModelChangeListener(this); + modelChanged(null); + } + /** + * Retourne le modele de valeurs. + * @return Le modele. + */ + public ZModeleValeur getModeleValeur() { + return valeurs_; + } + + // >>> ZModeleChangeListener ------------------------------------------------ + + public void modelChanged(ZModeleChangeEvent _evt) { + // Mise à jour de la palette en fonction des valeurs (désactivé pour le chgt de pas de temps). + pal_.setMinPalette(valeurs_.getMin()); + pal_.setMaxPalette(valeurs_.getMax()); + pal_.ajustePlages(); + pal_.ajusteLegendes(); + construitLegende(); } + + // <<< ZModeleChangeListener ------------------------------------------------ + /** * Construction de la légende. En fait, affecte la légende du calque au calque *************** *** 109,116 **** _g.translate(-_x, -_y); } // Paint public void paintComponent(Graphics _g) { ! if (RefondeResource.DEBUG) ! System.out.println("Paint calque Carte"); boolean attenue= isAttenue(); boolean rapide= isRapide(); --- 149,157 ---- _g.translate(-_x, -_y); } + // Paint public void paintComponent(Graphics _g) { ! if (RefondeResource.DEBUG) System.out.println("Paint calque Carte"); ! boolean attenue= isAttenue(); boolean rapide= isRapide(); *************** *** 120,299 **** // if( !Double.isNaN(minVal_) ) iv=minVal_; // if( !Double.isNaN(maxVal_) ) av=maxVal_; ! if (boite_ == null) ! boite_= getMaillage().boite(); GrMorphisme versEcran= getVersEcran(); Polygon pecr= boite_.enPolygoneXY().applique(versEcran).polygon(); Rectangle clip= _g.getClipBounds(); ! if (clip == null) ! clip= new Rectangle(0, 0, getWidth(), getHeight()); if (clip.intersects(pecr.getBounds())) { if (rapide) { Color c; - // if(surface_) - // { - // c=paletteCouleur_.couleur(0.5); - // if(attenue) c=attenueCouleur(c); - // _g.setColor(c); - // _g.fillPolygon(pecr); - // } c= pal_.getCouleurAutres(); ! if (attenue) ! c= attenueCouleur(c); _g.setColor(c); _g.drawPolygon(pecr); ! } else { if (maillageEcran_ == null) maillageEcran_= getMaillage().applique(versEcran); Color fg= getForeground(); Color bg= getBackground(); ! if (attenue) ! fg= attenueCouleur(fg); ! if (attenue) ! bg= attenueCouleur(bg); // Palette background ! RefondePaletteCouleurPlage pbg= ! (RefondePaletteCouleurPlage)pal_.clone(); pbg.propagerCouleurs(bg, bg); ! RefondePaletteCouleurPlage pisl= pal_; ! if (getIsosurfaces()) ! pisl= pbg; ! RefondeIsoLignes isol= new RefondeIsoLignes(pisl); ! RefondeIsoSurfaces isos= new RefondeIsoSurfaces(pal_); int n= maillageEcran_.nombre(); ! double[] vals= getValeurs(); ! if (getIsosurfaces()) { ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! for (j= 0; j < m; j++) ! v[j]= vals[noeuds[j]]; ! isos.draw(_g, p, v); ! } ! } ! } ! // Tracé des isolignes (dans la couleur du fond si les isocouleurs sont ! // tracées). ! if (getIsolignes()) { ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! for (j= 0; j < m; j++) ! v[j]= vals[noeuds[j]]; ! isol.draw(_g, p, v); ! } } ! } ! // Tracé des contours (dans la couleur du tracé). ! if (getContour()) { ! _g.setColor(fg); ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (clip.intersects(p.getBounds())) ! _g.drawPolygon(p); } } - // if(contour_||surface_) - // { - // Gouraud grd=null; - // - // if(_g instanceof PrintGraphics) - // { - // System.err.println("Gouraud imprimante"); - // grd=new Gouraud(_g,2,2); - // } - // else - // { - // System.err.println("Gouraud écran"); - // grd=new Gouraud(_g, - // paramGouraud_.getNiveau(), - // paramGouraud_.getTaille()); - // } - // - // for(i=0;i<n;i++) - // { - // Polygon p=maillageEcran_.polygon(i); - // if(clip.intersects(p.getBounds())) - // { - // int[] noeuds=(int[])maillageEcran_.connectivites.elementAt(i); - // int m =noeuds.length; - // - // // double v=(valeurs_[noeuds[0]]-iv)/(av-iv); - // - // if(surface_&&!isosurfaces_) - // { - // /* - // _g.setColor(c); - // _g.fillPolygon(p); - // */ - // - // int[] rc=new int[m]; - // int[] vc=new int[m]; - // int[] bc=new int[m]; - // - // for(j=0;j<m;j++) - // { - // double v=(valeurs_[noeuds[j]]-iv)/(av-iv); - // Color c=paletteCouleur_.couleur(v); - // if(attenue) c=attenueCouleur(c); - // - // rc[j]=c.getRed(); - // vc[j]=c.getGreen(); - // bc[j]=c.getBlue(); - // } - // - // grd.fillRectangle(p.xpoints,p.ypoints,rc,vc,bc); - // } - // - // if(contour_) - // { - // double v=0.; - // for(j=0;j<m;j++) - // v+=(valeurs_[noeuds[j]]-iv)/(av-iv); - // v/=(double)m; - // - // Color c=paletteCouleur_.couleur(v); - // if(attenue) c=attenueCouleur(c); - // - // if(surface_||isolignes_||isosurfaces_) - // _g.setColor(bg); - // else - // _g.setColor(c); - // _g.drawPolygon(p); - // } - // } - // } - // } - // - // if(isolignes_) - // { - // for(i=0;i<n;i++) - // { - // Polygon p=maillageEcran_.polygon(i); - // if(clip.intersects(p.getBounds())) - // { - // int[] noeuds=(int[])maillageEcran_.connectivites.elementAt(i); - // int m=noeuds.length; - // - // double[] v=new double[m]; - // for(j=0;j<m;j++) - // v[j]=Math.max(0., - // Math.min(1., - // (valeurs_[noeuds[j]]-iv)/(av-iv))); - // - // isol.draw(_g,p,v); - // } - // } - // } - // - // // System.err.println("Terminé: "+n); } } - // super.paintComponent(_g); } } --- 161,225 ---- // if( !Double.isNaN(minVal_) ) iv=minVal_; // if( !Double.isNaN(maxVal_) ) av=maxVal_; ! if (boite_ == null) boite_=getMaillage().boite(); ! GrMorphisme versEcran= getVersEcran(); Polygon pecr= boite_.enPolygoneXY().applique(versEcran).polygon(); Rectangle clip= _g.getClipBounds(); ! if (clip==null) clip=new Rectangle(0, 0, getWidth(), getHeight()); ! if (clip.intersects(pecr.getBounds())) { if (rapide) { Color c; c= pal_.getCouleurAutres(); ! if (attenue) c=attenueCouleur(c); _g.setColor(c); _g.drawPolygon(pecr); ! } ! else { if (maillageEcran_ == null) maillageEcran_= getMaillage().applique(versEcran); Color fg= getForeground(); Color bg= getBackground(); ! if (attenue) fg= attenueCouleur(fg); ! if (attenue) bg= attenueCouleur(bg); ! // Palette background ! BPaletteCouleurPlage pbg=(BPaletteCouleurPlage)pal_.clone(); pbg.propagerCouleurs(bg, bg); ! BPaletteCouleurPlage pisl= pal_; ! if (getIsosurfaces()) pisl= pbg; ! TraceIsoLignesPlages isol= new TraceIsoLignesPlages(pisl); ! TraceIsoSurfacesPlages isos= new TraceIsoSurfacesPlages(pal_); ! ! boolean isIsoSurfacesVisible= getIsosurfaces(); ! boolean isIsoLignesVisible= getIsolignes(); ! boolean isContoursVisible= getContour(); ! int n= maillageEcran_.nombre(); ! ! for (i= 0; i < n; i++) { ! Polygon p= maillageEcran_.polygon(i); ! if (!clip.intersects(p.getBounds())) continue; ! ! // Trace des isosurfaces / Isolignes (dans la couleur du fond si les ! // isocouleurs sont tracees). ! if (isIsoSurfacesVisible || isIsoLignesVisible) { ! int[] noeuds= (int[])maillageEcran_.connectivites.elementAt(i); ! int m= noeuds.length; ! double[] v= new double[m]; ! ! for (j= 0; j < m; j++) v[j]= valeurs_.valeur(noeuds[j]); ! if (isIsoSurfacesVisible) isos.draw(_g, p, v); ! if (isIsoLignesVisible) isol.draw(_g, p, v); } ! ! // Trace des contours (dans la couleur du trace). ! if (isContoursVisible) { ! _g.setColor(fg); ! _g.drawPolygon(p); } } } } } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:44:05
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14319 Modified Files: RefondeModeleCalcul.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Ajout d'un type de modèle. Prise en compte des spécificités seiche. Index: RefondeModeleCalcul.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeModeleCalcul.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RefondeModeleCalcul.java 25 Nov 2003 10:14:16 -0000 1.5 --- RefondeModeleCalcul.java 15 Apr 2004 07:43:55 -0000 1.6 *************** *** 8,17 **** */ package org.fudaa.fudaa.refonde; import java.io.*; import java.util.*; import org.fudaa.dodico.refonde.*; - import org.fudaa.dodico.fortran.*; import org.fudaa.ebli.geometrie.*; ! import com.memoire.bu.*; /** * Classe pour la gestion du modèle de calcul du projet. [...1771 lines suppressed...] ! file.println(); ! } ! } ! catch (IOException _exc) { throw new IOException("Erreur d'écriture sur " + _fcCalcul); } *************** *** 2076,2081 **** // } finally { ! if (file != null) ! file.close(); } } --- 2818,2822 ---- // } finally { ! if (file!=null) file.close(); } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:42:58
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14126 Modified Files: RefondeModeleProprietes.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeModeleProprietes.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeModeleProprietes.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RefondeModeleProprietes.java 25 Nov 2003 10:14:16 -0000 1.5 --- RefondeModeleProprietes.java 15 Apr 2004 07:42:48 -0000 1.6 *************** *** 26,31 **** --- 26,33 ---- // private Hashtable bord2Gp=new Hashtable(); boolean modifie; + /** Domaines poreux */ private Vector poreux_= new Vector(); + /** * Création d'un modele de proprietés par défaut depuis le projet *************** *** 63,66 **** --- 65,69 ---- return mdlPrp; } + /** * Retourne le groupe de proprietes associé au bord *************** *** 87,90 **** --- 90,94 ---- modifie= true; } + /** * Ajoute d'un domaine poreux. *************** *** 94,97 **** --- 98,102 ---- modifie= true; } + /** * Suppression d'un domaine poreux. *************** *** 101,104 **** --- 106,118 ---- modifie= true; } + + /** + * Suppression de tous les domaines poreux + */ + public void removeAllDomainesPoreux() { + poreux_.clear(); + modifie=true; + } + /** * Retourne les domaines poreux. *************** *** 107,110 **** --- 121,125 ---- return (RefondeDomainePoreux[])poreux_.toArray(new RefondeDomainePoreux[0]); } + /** * Lecture d'un modele de propriétés. *************** *** 474,477 **** --- 489,496 ---- else if (_file.sval.equals("semi_reflechissant")) tpGp= RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT; + else if (_file.sval.equals("seiche_ouvert")) + tpGp= RefondeGroupeProprietes.SEICHE_BORD_OUVERT; + else if (_file.sval.equals("seiche_ferme")) + tpGp= RefondeGroupeProprietes.SEICHE_BORD_FERME; else throw new IOException(); *************** *** 692,702 **** if (gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) file.println("ouvert_entree"); ! else if ( ! gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) file.println("ouvert_sortie"); ! else if ( ! gp.getType() ! == RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) file.println("semi_reflechissant"); else throw new IOException(); --- 711,722 ---- if (gp.getType() == RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) file.println("ouvert_entree"); ! else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) file.println("ouvert_sortie"); ! else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) file.println("semi_reflechissant"); + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_OUVERT) + file.println("seiche_ouvert"); + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_FERME) + file.println("seiche_ferme"); else throw new IOException(); *************** *** 827,829 **** --- 847,897 ---- } } + + /** + * Change la structure du modèle en fonction du modèle de données. + * @param _typeModele Le type du modele de données + * (RefondeModeleCalcul.MODELE_SEICHE, + * RefondeModeleCalcul.MODELE_HOULE) + * @param _prj Le projet. + */ + public void transmute(int _typeModele, RefondeProjet _prj) { + // Aucun changement si le modèle de données est le même + if (_typeModele==_prj.getModeleCalcul().typeModele()) return; + + poreux_.clear(); + + // Changement des groupes propriétés s'il y a lieu. + + Vector vpls= _prj.getGeometrie().scene_.getPolylignes(); + for (int i= 0; i < vpls.size(); i++) { + RefondePolyligne pl= (RefondePolyligne)vpls.get(i); + RefondeGroupeProprietes gp=pl.getGroupeProprietes(); + + // Modèle de seiche + if (_typeModele==RefondeModeleCalcul.MODELE_SEICHE) { + if (gp==null) {} + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_OUVERT); + } + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_OUVERT); + } + else if (gp.getType()==RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.SEICHE_BORD_FERME); + } + } + + // Modèle de houle + else { + if (gp==null) {} + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_OUVERT) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE); + } + else if (gp.getType()==RefondeGroupeProprietes.SEICHE_BORD_FERME) { + gp=new RefondeGroupeProprietes(RefondeGroupeProprietes.HOULE_BORD_SEMI_REFLECHISSANT); + } + } + pl.setGroupeProprietes(gp); + } + } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:42:46
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14098 Modified Files: RefondeGroupeProprietes.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeGroupeProprietes.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeGroupeProprietes.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeGroupeProprietes.java 25 Nov 2003 10:14:15 -0000 1.3 --- RefondeGroupeProprietes.java 15 Apr 2004 07:42:33 -0000 1.4 *************** *** 8,13 **** */ package org.fudaa.fudaa.refonde; ! import java.io.*; ! import java.util.*; /** * Classe de regroupement de propriétés suivant la nature. --- 8,12 ---- */ package org.fudaa.fudaa.refonde; ! /** * Classe de regroupement de propriétés suivant la nature. *************** *** 19,22 **** --- 18,22 ---- private int type_; private RefondePropriete[] proprietes_; + public static final int HOULE_BORD_OUVERT_SORTIE= 0; public static final int HOULE_BORD_OUVERT_ENTREE= 1; *************** *** 24,86 **** public static final int HOULE_FOND_PAROI_PERFOREE= 3; public static final int HOULE_FOND_DIGUE_TRANSMISSIBLE= 4; /** * Attributs de classes, architecture des groupes de propriétés */ // Types ! public static final int[] types= ! { ! HOULE_BORD_OUVERT_SORTIE, ! HOULE_BORD_OUVERT_ENTREE, ! HOULE_BORD_SEMI_REFLECHISSANT, ! HOULE_FOND_PAROI_PERFOREE, ! HOULE_FOND_DIGUE_TRANSMISSIBLE }; // Noms des groupes de propriétés visibles depuis l'ihm ! public static final String[] labels= ! { ! "Bord ouvert en sortie", ! "Bord ouvert en entrée", ! "Bord semi réflechissant", ! "Paroi perforée", ! "Digue transmissible" }; // Types des propriétés pour le type de groupe ! public static final int[][] typesProprietes= { {}, {}, { ! RefondePropriete.REFLEXION }, { ! RefondePropriete.PERTE_CHARGE_R, ! RefondePropriete.PERTE_CHARGE_I, ! RefondePropriete.POROSITE, ! RefondePropriete.CONTRACTION, ! RefondePropriete.INTG_VERTICALE }, ! { ! RefondePropriete.REFLEXION, ! RefondePropriete.TRANSMISSION, ! RefondePropriete.DP_REFLEXION, ! RefondePropriete.DP_TRANSMISSION } }; // Imposition des proprietes ! public static final int[][] imposeProprietes= { {}, {}, { ! 1 }, { ! 1, 1, 1, 1, 1 }, { ! 1, 1, 1, 1 } }; // Comportement des proprietes (STATIONNAIRE, TRANSITOIRE, MIXTE) ! public static final int[][] cas= { {}, {}, { ! RefondePropriete.STATIONNAIRE }, { RefondePropriete.STATIONNAIRE, - RefondePropriete.STATIONNAIRE, - RefondePropriete.STATIONNAIRE, - RefondePropriete.STATIONNAIRE, - RefondePropriete.STATIONNAIRE }, - { RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE } }; // Valeurs par défaut ! public static final double[][] valeursDefaut= { {}, {}, { ! 1. }, { ! 1., 0., 0., 0., 1. }, { ! 1., 0., 0., 0. } }; /** * Création d'un groupe de propriétés de type donné. Les propriétés sont créées --- 24,116 ---- public static final int HOULE_FOND_PAROI_PERFOREE= 3; public static final int HOULE_FOND_DIGUE_TRANSMISSIBLE= 4; + public static final int SEICHE_BORD_OUVERT=5; + public static final int SEICHE_BORD_FERME=6; + /** * Attributs de classes, architecture des groupes de propriétés */ + // Types ! public static final int[] types={ ! HOULE_BORD_OUVERT_SORTIE, ! HOULE_BORD_OUVERT_ENTREE, ! HOULE_BORD_SEMI_REFLECHISSANT, ! HOULE_FOND_PAROI_PERFOREE, ! HOULE_FOND_DIGUE_TRANSMISSIBLE , ! SEICHE_BORD_OUVERT, ! SEICHE_BORD_FERME ! }; ! // Noms des groupes de propriétés visibles depuis l'ihm ! public static final String[] labels={ ! "Bord ouvert en sortie", ! "Bord ouvert en entrée", ! "Bord semi réflechissant", ! "Paroi perforée", ! "Digue transmissible", ! "Bord ouvert", ! "Bord fermé" ! }; ! // Types des propriétés pour le type de groupe ! public static final int[][] typesProprietes={ ! {}, ! {}, ! { RefondePropriete.REFLEXION }, ! ! { RefondePropriete.PERTE_CHARGE_R, ! RefondePropriete.PERTE_CHARGE_I, ! RefondePropriete.POROSITE, ! RefondePropriete.CONTRACTION, ! RefondePropriete.INTG_VERTICALE }, ! ! { RefondePropriete.REFLEXION, ! RefondePropriete.TRANSMISSION, ! RefondePropriete.DP_REFLEXION, ! RefondePropriete.DP_TRANSMISSION }, ! {}, ! {} }; + // Imposition des proprietes ! public static final int[][] imposeProprietes={ ! {}, ! {}, ! { 1 }, ! { 1, 1, 1, 1, 1 }, ! { 1, 1, 1, 1 }, ! {}, ! {} }; + // Comportement des proprietes (STATIONNAIRE, TRANSITOIRE, MIXTE) ! public static final int[][] cas={ ! {}, ! {}, ! { RefondePropriete.STATIONNAIRE }, ! { RefondePropriete.STATIONNAIRE, RefondePropriete.STATIONNAIRE, RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE }, ! { RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE, ! RefondePropriete.STATIONNAIRE }, ! {}, ! {} }; + // Valeurs par défaut ! public static final double[][] valeursDefaut={ ! {}, ! {}, ! { 1. }, ! { 1., 0., 0., 0., 1. }, ! { 1., 0., 0., 0. }, ! {}, ! {} }; + /** * Création d'un groupe de propriétés de type donné. Les propriétés sont créées *************** *** 96,99 **** --- 126,130 ---- proprietes_= prps; } + /** * Création d'un groupe de proprietes *************** *** 103,109 **** --- 134,142 ---- proprietes_= _proprietes; } + public int getType() { return type_; } + public RefondePropriete[] getProprietes() { return proprietes_; |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:42:30
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14035 Modified Files: RefondeCalqueContour.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Prise en compte des spécificités seiche. Index: RefondeCalqueContour.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeCalqueContour.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeCalqueContour.java 25 Nov 2003 10:14:11 -0000 1.3 --- RefondeCalqueContour.java 15 Apr 2004 07:42:22 -0000 1.4 *************** *** 53,59 **** gpe= ((RefondePolyligne)_ligne).getGroupeProprietes(); int type= gpe.getType(); ! if (type == RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE) typeTrait= TraceLigne.POINTILLE; ! else if (type == RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) typeTrait= TraceLigne.TIRETE; else --- 53,60 ---- gpe= ((RefondePolyligne)_ligne).getGroupeProprietes(); int type= gpe.getType(); ! if (type==RefondeGroupeProprietes.HOULE_BORD_OUVERT_ENTREE || ! type==RefondeGroupeProprietes.SEICHE_BORD_OUVERT) typeTrait= TraceLigne.POINTILLE; ! else if (type==RefondeGroupeProprietes.HOULE_BORD_OUVERT_SORTIE) typeTrait= TraceLigne.TIRETE; else *************** *** 96,105 **** /* for (Iterator i=ctrs.iterator(); i.hasNext();) { ctr=(Vector)i.next(); ! pl=(IPolyligne)ctr.elementAt(0); coor=pl.point(0).coordonnees(); grPt=new GrPoint(coor[0],coor[1],coor[2]); grPtSav=grPt; ! for (Iterator j=ctr.iterator(); j.hasNext();) { grPl=new GrPolyligne(); --- 97,106 ---- /* for (Iterator i=ctrs.iterator(); i.hasNext();) { ctr=(Vector)i.next(); ! pl=(IPolyligne)ctr.elementAt(0); coor=pl.point(0).coordonnees(); grPt=new GrPoint(coor[0],coor[1],coor[2]); grPtSav=grPt; ! for (Iterator j=ctr.iterator(); j.hasNext();) { grPl=new GrPolyligne(); *************** *** 109,117 **** grPt=new GrPoint(coor[0],coor[1],coor[2]); grPl.sommets.ajoute(grPt); ! ajoute(grPl); gr2Bd_.put(grPl,pl); } ! // remplacement du dernier point par le premier du contour grPl.sommets.remplace(grPtSav,grPl.sommets.indice(grPt)); --- 110,118 ---- grPt=new GrPoint(coor[0],coor[1],coor[2]); grPl.sommets.ajoute(grPt); ! ajoute(grPl); gr2Bd_.put(grPl,pl); } ! // remplacement du dernier point par le premier du contour grPl.sommets.remplace(grPtSav,grPl.sommets.indice(grPt)); |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:41:23
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13796 Modified Files: RefondeDialogCombiResultats.java RefondeDataSource.java Refonde3DSimple.java Refonde3D.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Passage à des résultats transitoires. Index: Refonde3DSimple.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/Refonde3DSimple.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Refonde3DSimple.java 25 Nov 2003 10:14:10 -0000 1.4 --- Refonde3DSimple.java 15 Apr 2004 07:41:14 -0000 1.5 *************** *** 37,40 **** --- 37,45 ---- .start(); } + + /** + * Ne s'occupe que du premier pas de temps. + * @todo Gérer éventuellement le pas de temps. + */ public void creer3D() { BuMainPanel mainpanel= refonde.getMainPanel(); *************** *** 74,78 **** if (projet_.hasResultats()) { RefondeResultats res= projet_.getResultats(); ! double[] htHoule= res.getResultat(res.nomResultats[res.HAUTEUR_HOULE]); for (int i= 0; i < noeuds.length; i++) noeuds[i].point.z= htHoule[i]; --- 79,84 ---- if (projet_.hasResultats()) { RefondeResultats res= projet_.getResultats(); ! // double[] htHoule= res.getResultat(res.nomResultats[res.HAUTEUR_HOULE]); ! double[] htHoule= res.getColonne(res.indexOfColonne(res.nomResultats[res.HAUTEUR_HOULE]))[0]; for (int i= 0; i < noeuds.length; i++) noeuds[i].point.z= htHoule[i]; Index: Refonde3D.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/Refonde3D.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Refonde3D.java 25 Nov 2003 10:14:10 -0000 1.3 --- Refonde3D.java 15 Apr 2004 07:41:14 -0000 1.4 *************** *** 102,109 **** RefondeResultats res= projet_.getResultats(); System.out.print("generation des Resultats"); // generation des noeuds format Java3D Point3d[] noeuds_res= new Point3d[nbnoeuds]; ! double[] htHoule= res.getResultat(res.nomResultats[res.HAUTEUR_HOULE]); ! double[] prof= res.getResultat(res.nomResultats[res.BATHYMETRIE]); for (int i= 0; i < nbnoeuds; i++) { noeuds_res[i]= --- 102,110 ---- RefondeResultats res= projet_.getResultats(); System.out.print("generation des Resultats"); + // generation des noeuds format Java3D Point3d[] noeuds_res= new Point3d[nbnoeuds]; ! double[] htHoule=res.getColonne(res.indexOfColonne(res.nomResultats[res.HAUTEUR_HOULE]))[0]; ! double[] prof=res.getColonne(res.indexOfColonne(res.nomResultats[res.BATHYMETRIE]))[0]; for (int i= 0; i < nbnoeuds; i++) { noeuds_res[i]= Index: RefondeDataSource.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeDataSource.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeDataSource.java 25 Nov 2003 10:14:12 -0000 1.3 --- RefondeDataSource.java 15 Apr 2004 07:41:14 -0000 1.4 *************** *** 28,37 **** T_= _T; } ! // public void setGeometrie(int nb_noeuds,Point3d[] noeuds,int nb_indices,int[] indices,Color[] _c) public double[] getDonnees(double t) { double[] sxx= ! resultats_.getResultat(resultats_.nomResultats[resultats_.SXX]); double[] sxy= ! resultats_.getResultat(resultats_.nomResultats[resultats_.SXY]); double[] h= new double[sxx.length]; for (int i= 0; i < h.length; i++) --- 28,43 ---- T_= _T; } ! ! /** ! * ATTENTION : La méthode ne s'occupe que du premier pas de temps. ! * @todo Gerer les pas de temps. ! * @param t double ! * @return double[] ! */ public double[] getDonnees(double t) { double[] sxx= ! resultats_.getColonne(resultats_.indexOfColonne(resultats_.nomResultats[resultats_.SXX]))[0]; double[] sxy= ! resultats_.getColonne(resultats_.indexOfColonne(resultats_.nomResultats[resultats_.SXY]))[0]; double[] h= new double[sxx.length]; for (int i= 0; i < h.length; i++) Index: RefondeDialogCombiResultats.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeDialogCombiResultats.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeDialogCombiResultats.java 25 Nov 2003 10:14:12 -0000 1.3 --- RefondeDialogCombiResultats.java 15 Apr 2004 07:41:14 -0000 1.4 *************** *** 260,272 **** public void initialise(RefondeProjet _prj) { prj_= _prj; // Pas de résultat disponible, l'action de combinaison des résultats ne doit // pas être disponible. ! if (!_prj.hasResultats()) ! return; RefondeResultats res= _prj.getResultats(); mdlsCombiDispo.removeAllElements(); mdlsCombiLoad.removeAllElements(); for (int i= 0; i < icombinaisons.length; i++) { ! if (res.getResultat(res.nomResultats[icombinaisons[i]]) == null) mdlsCombiDispo.addElement(res.nomResultats[icombinaisons[i]]); else --- 260,274 ---- public void initialise(RefondeProjet _prj) { prj_= _prj; + // Pas de résultat disponible, l'action de combinaison des résultats ne doit // pas être disponible. ! if (!_prj.hasResultats()) return; ! RefondeResultats res= _prj.getResultats(); mdlsCombiDispo.removeAllElements(); mdlsCombiLoad.removeAllElements(); for (int i= 0; i < icombinaisons.length; i++) { ! // if (res.getResultat(res.nomResultats[icombinaisons[i]]) == null) ! if (res.indexOfColonne(res.nomResultats[icombinaisons[i]])==-1) mdlsCombiDispo.addElement(res.nomResultats[icombinaisons[i]]); else |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:41:04
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13722 Modified Files: RefondeResultats.java Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Passage à des résultats transitoires. Index: RefondeResultats.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeResultats.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RefondeResultats.java 25 Nov 2003 10:14:17 -0000 1.3 --- RefondeResultats.java 15 Apr 2004 07:40:55 -0000 1.4 *************** *** 20,24 **** */ public class RefondeResultats { ! // @todo A mettre plutot dans CResultatsRefonde dés que possible public static final int PHASE= 0; public static final int HAUTEUR_HOULE= 1; --- 20,24 ---- */ public class RefondeResultats { ! /** @todo A mettre plutot dans CResultatsRefonde dés que possible */ public static final int PHASE= 0; public static final int HAUTEUR_HOULE= 1; *************** *** 32,37 **** public static final int DIFF_SXY= 9; public static final int DIFF_SYY= 10; public static final String[] nomResultats= ! { "Phase", "Hauteur_de_houle", --- 32,38 ---- public static final int DIFF_SXY= 9; public static final int DIFF_SYY= 10; + public static final String[] nomResultats= ! { "Phase", "Hauteur_de_houle", *************** *** 44,53 **** "Diff_de_contraintes_Sxx", "Diff_de_contraintes_Sxy", ! "Diff_de_contraintes_Syy" }; ! // public SResultatsRefonde resultats_; ! private Vector nomRes_= new Vector(); // Vecteur des noms des résultats ! private Vector resultats_= new Vector(); ! // Vecteur de double[] contenant les valeurs de résultats boolean modifie; /** * Lecture des résultats depuis un fichier. --- 45,61 ---- "Diff_de_contraintes_Sxx", "Diff_de_contraintes_Sxy", ! "Diff_de_contraintes_Syy" ! }; ! ! /** Vecteur<String> des noms des colonnes */ ! private Vector vnomRes_= new Vector(); ! /** Vecteur<double> des instants d'étapes */ ! private Vector vinstants_=new Vector(); ! /** Vecteur"Etapes"<Vecteur"Colonnes"<double[]"Valeurs_noeuds">> contenant les ! valeurs de résultats. */ ! private Vector vres_= new Vector(); ! boolean modifie; + /** * Lecture des résultats depuis un fichier. *************** *** 59,78 **** public static RefondeResultats ouvrir(File _fichier, int _nbNoeuds) throws IOException { RefondeResultats p= new RefondeResultats(); String fichier= _fichier.getPath(); fichier= fichier.substring(0, fichier.lastIndexOf(".sol")); - // DResultatsRefonde dr=new DResultatsRefonde(); - // dr.setFichier(fichier,_nbNoeuds); - // SResultatsRefonde res=dr.resultatsRefonde(); SResultatsRefonde res= DResultatsRefonde.litSurFichiers(fichier, _nbNoeuds); ! for (int i= 0; i < res.noms.length; i++) { ! double[] col= new double[_nbNoeuds]; ! for (int j= 0; j < _nbNoeuds; j++) ! col[j]= res.lignes[j].valeurs[i]; ! p.resultats_.add(col); ! p.nomRes_.add(res.noms[i]); ! } return p; } /** * Enregistrement des résultats. --- 67,80 ---- public static RefondeResultats ouvrir(File _fichier, int _nbNoeuds) throws IOException { + RefondeResultats p= new RefondeResultats(); String fichier= _fichier.getPath(); fichier= fichier.substring(0, fichier.lastIndexOf(".sol")); SResultatsRefonde res= DResultatsRefonde.litSurFichiers(fichier, _nbNoeuds); ! p.fromStruct(res); ! return p; } + /** * Enregistrement des résultats. *************** *** 81,107 **** */ public void enregistrer(RefondeProjet _projet, File _fichier) { ! SResultatsRefonde res= new SResultatsRefonde(); ! res.noms= (String[])nomRes_.toArray(new String[0]); ! int nbLigs= ((double[])resultats_.get(0)).length; ! int nbCols= resultats_.size(); ! res.lignes= new SResultatsLigneRefonde[nbLigs]; ! for (int i= 0; i < nbLigs; i++) ! res.lignes[i]= new SResultatsLigneRefonde(i + 1, new double[nbCols]); ! for (int i= 0; i < nbCols; i++) { ! double[] col= (double[])resultats_.get(i); ! for (int j= 0; j < nbLigs; j++) { ! res.lignes[j].valeurs[i]= col[j]; } } ! DResultatsRefonde.ecritSurFichiers(_fichier.getPath(), res); } /** * Ajout d'un résultat. Ajoute un résultat à la suite des résultats existants. * @param _valeurs Le nombre de valeurs est considéré comme étant exact. */ public void ajouteResultat(String _nom, double[] _valeurs) { ! nomRes_.add(_nom); ! resultats_.add(_valeurs); } /** * Suppression d'un résultat. Supprime le résultat de nom désigné. Ceci --- 83,154 ---- */ public void enregistrer(RefondeProjet _projet, File _fichier) { ! DResultatsRefonde.ecritSurFichiers(_fichier.getPath(), toStruct()); ! } ! ! /** ! * Initialisation des résultats depuis une structure IDL. ! * @param _res La structure IDL en provenance du serveur. ! */ ! public void fromStruct(SResultatsRefonde _res) { ! supprimeTout(); ! ! for (int i=0; i<_res.etapes.length; i++) { ! double instant=_res.etapes[i].instant; ! double[][] vals=new double[_res.etapes[i].lignes[0].valeurs.length] ! [_res.etapes[i].lignes.length]; ! ! for (int j=0; j<_res.etapes[i].lignes.length; j++) { ! for (int k=0; k<_res.etapes[i].lignes[j].valeurs.length; k++) { ! vals[k][j]=_res.etapes[i].lignes[j].valeurs[k]; ! } } + ajouteEtape(instant,vals); } ! ! setNomsColonnes(_res.noms); } + + /** + * Initialisation de la strucute IDL equivalente. + * @return La structure IDL au format serveur. + */ + public SResultatsRefonde toStruct() { + SResultatsRefonde r=new SResultatsRefonde(); + r.noms=getNomsColonnes(); + + r.etapes=new SResultatsEtapeRefonde[getNbEtapes()]; + for (int i=0; i<getNbEtapes(); i++) { + double[][] vals=getEtape(i); + r.etapes[i]=new SResultatsEtapeRefonde(); + + r.etapes[i].lignes=new SResultatsLigneRefonde[vals[0].length]; + for (int j=0; j<vals[0].length; j++) { + r.etapes[i].lignes[j]=new SResultatsLigneRefonde(); + + r.etapes[i].lignes[j].valeurs=new double[vals.length]; + for (int k=0; k<vals.length; k++) { + r.etapes[i].lignes[j].valeurs[k]=vals[k][j]; + } + } + r.etapes[i].instant=getInstantEtape(i); + } + + return r; + } + /** * Ajout d'un résultat. Ajoute un résultat à la suite des résultats existants. * @param _valeurs Le nombre de valeurs est considéré comme étant exact. + * @deprecated Pour le cas ou plusieurs pas de temps existent, les valeurs + * sont introduites à chaque fois. */ public void ajouteResultat(String _nom, double[] _valeurs) { ! vnomRes_.add(_nom); ! for (int i=0; i<vres_.size(); i++) { ! ((Vector)vres_.get(i)).add(_valeurs); ! } ! // vres_.add(_valeurs); } + /** * Suppression d'un résultat. Supprime le résultat de nom désigné. Ceci *************** *** 109,136 **** * @param _nom Nom du résultat à supprimer. Si le résultat n'existe pas, * la méthode ne fait rien. */ public void supprimeResultat(String _nom) { ! int ind= nomRes_.indexOf(_nom); if (ind >= 0) { ! nomRes_.remove(ind); ! resultats_.remove(ind); ! } } /** ! * Retourne les valeurs de résultat de nom donné. * * @param _nom Le nom de résultats pour lequel on désire avoir les valeurs. * @return Les valeurs de résultats ou <i>null</i> si aucun résultat pour le * nom. */ public double[] getResultat(String _nom) { ! int ind= nomRes_.indexOf(_nom); ! return ind >= 0 ? (double[])resultats_.get(ind) : null; } /** * Retourne les noms de résultats existants. */ public String[] getNomsResultats() { ! return (String[])nomRes_.toArray(new String[0]); } } --- 156,416 ---- * @param _nom Nom du résultat à supprimer. Si le résultat n'existe pas, * la méthode ne fait rien. + * @deprecated Utiliser supprimeColonne à la place */ public void supprimeResultat(String _nom) { ! supprimeColonne(indexOfColonne(_nom)); ! /* int ind= vnomRes_.indexOf(_nom); if (ind >= 0) { ! vnomRes_.remove(ind); ! vres_.remove(ind); ! }*/ } + /** ! * Retourne les valeurs de résultat de nom donné. On considère un seul pas de ! * temps. * * @param _nom Le nom de résultats pour lequel on désire avoir les valeurs. * @return Les valeurs de résultats ou <i>null</i> si aucun résultat pour le * nom. + * @deprecated */ public double[] getResultat(String _nom) { ! int ind= vnomRes_.indexOf(_nom); ! return ind >= 0 ? (double[])((Vector)vres_.get(0)).get(ind) : null; } + /** * Retourne les noms de résultats existants. + * @deprecated */ public String[] getNomsResultats() { ! return (String[])vnomRes_.toArray(new String[0]); ! } ! ! // Nouvelle API -------------------------------------------------------------- ! ! /** ! * Ajoute une étape aux résultats. L'étape est ajoutée en fin sans respect ! * d'un ordre croissant des instants. ! * @param _t L'instant de l'étape. ! * @param _v Les valeurs pour cette étapes. _v[iColonne][iNoeud]; ! */ ! public void ajouteEtape(double _t, double[][] _v) { ! // Première fois : Ajout des noms de colonne par défaut. ! if (vres_.size()==0) { ! for (int i=0; i<_v.length; i++) vnomRes_.add("Col"+i); ! } ! ! Vector vcols=new Vector(); ! vcols.addAll(Arrays.asList(_v)); ! vres_.add(vcols); ! vinstants_.add(new Double(_t)); ! } ! ! /** ! * Ajoute une colonne aux résultats. ! * @param _s Le nom de la colonne. ! * @param _v Les valeurs pour cette colonne. _v[iEtape][iNoeud]; ! */ ! public void ajouteColonne(String _s, double[][] _v) { ! // Première fois : Ajout des étapes avec des instants par défaut. ! if (vres_.size()==0) { ! for (int i=0; i<_v.length; i++) { ! vres_.add(new Vector()); ! vinstants_.add(new Double(i)); ! } ! } ! ! for (int i=0; i<_v.length; i++) ((Vector)vres_.get(i)).add(_v[i]); ! vnomRes_.add(_s); ! } ! ! /** ! * Supprime une étape. Si l'indice est hors de la table, ne fait rien. ! * @param _i L'indice de l'étape dans la table. ! */ ! public void supprimeEtape(int _i) { ! if (_i<0 || _i>=vres_.size()) return; ! ! vres_.remove(_i); ! vinstants_.remove(_i); ! ! synchoniseVecteurs(); ! } ! ! /** ! * Supprime une colonne. Si l'indice est hors de la table, ne fait rien. ! * @param _i L'indice de la colonne dans la table. ! */ ! public void supprimeColonne(int _i) { ! if (vres_.size()==0) return; ! ! for (int i=0; i<vres_.size(); i++) { ! Vector vcols=(Vector)vres_.get(i); ! if (_i<0 || _i>=vcols.size()) return; ! vcols.remove(_i); ! } ! vnomRes_.remove(_i); ! ! synchoniseVecteurs(); ! } ! ! /** ! * Retourne le nombre d'étapes des résultats. ! * @return Le nombre d'étapes. ! */ ! public int getNbEtapes() { ! return vinstants_.size(); ! } ! ! /** ! * Retourne le nombre de colonnes des résultats. ! * @return Le nombre de colonnes. ! */ ! public int getNbColonnes() { ! return vnomRes_.size(); ! } ! ! /** ! * Définit le nom de toutes les colonnes. Le nombre de noms doit correspondre ! * au nombre de colonnes déjà stockées. ! * @param _n Le nom des colonnes dans l'ordre. Ce nombre doit corrspandre ! */ ! public void setNomsColonnes(String[] _n) { ! vnomRes_.clear(); ! vnomRes_.addAll(Arrays.asList(_n)); ! } ! ! /** ! * Retourne le nom de toutes les colonnes. ! * @return Le nom des colonnes dans l'ordre. ! */ ! public String[] getNomsColonnes() { ! return (String[])vnomRes_.toArray(new String[0]); ! } ! ! /** ! * Définit les instants pour toutes les étapes. Le nombre d'instants doit ! * correspondre au nombre d'étapes déjà stockées. ! * @param _n Le nom des colonnes dans l'ordre. ! */ ! public void setInstantsEtapes(double[] _n) { ! vinstants_.clear(); ! for (int i=0; i<_n.length; i++) vinstants_.add(new Double(_n[i])); ! } ! ! /** ! * Retourne les instants pour toutes les étapes. ! * @return Les instants des étapes. ! */ ! public double[] getInstantsEtapes() { ! double[] r=new double[vinstants_.size()]; ! for (int i=0; i<vinstants_.size(); i++) ! r[i]=((Double)vinstants_.get(i)).doubleValue(); ! ! return r; ! } ! ! /** ! * Supprime tous les résultats. ! */ ! public void supprimeTout() { ! vres_.clear(); ! synchoniseVecteurs(); ! } ! ! /** ! * Retourne la valeur de l'instant de l'étape. -1 si l'indice est hors tableau. ! * @param _i L'indice de l'étape dans la table. ! * @return La valeur de l'instant. ! */ ! public double getInstantEtape(int _i) { ! if (_i<0 || _i>=vinstants_.size()) return -1; ! return ((Double)vinstants_.get(_i)).doubleValue(); ! } ! ! /** ! * Retourne le nom de la colonne. null si l'indice est hors tableau. ! * @param _i L'indice de la colonne dans la table. ! * @return Le nom de la colonne. ! */ ! public String getNomColonne(int _i) { ! if (_i<0 || _i>=vnomRes_.size()) return null; ! return (String)vnomRes_.get(_i); ! } ! ! /** ! * Retourne les valeurs d'une étape. null si l'indice est hors tableau. ! * @param _i L'indice de l'étape dans la table. ! * @return Les valeurs pour cette étape. double[iColonne][iNoeud]; ! */ ! public double[][] getEtape(int _i) { ! double[][] r=null; ! if (_i<0 || _i>=vinstants_.size()) return null; ! ! Vector vcols=(Vector)vres_.get(_i); ! r=(double[][])vcols.toArray(new double[0][]); ! ! return r; ! } ! ! /** ! * Retourne les valeurs d'une colonne. ! * @param _i L'indice de la colonne dans la table. ! * @return Les valeurs pour cette colonne. double[iEtape][iNoeud]; ! */ ! public double[][] getColonne(int _i) { ! double[][] r=null; ! if (_i<0 || _i>=vnomRes_.size()) return null; ! ! r=new double[vres_.size()][]; ! for (int i=0; i<vres_.size(); i++) { ! Vector vcols=(Vector)vres_.get(i); ! r[i]=((double[])vcols.get(_i)); ! } ! return r; ! } ! ! /** ! * Retourne l'index de la première colonne correspondant au nom donné. -1 si ! * la colonne n'existe pas. ! * @param _s Le nom de la colonne ! * @return L'indice de la colonne dans la table. ! */ ! public int indexOfColonne(String _s) { ! return vnomRes_.indexOf(_s); ! ! // for (int i=0; i<vnomRes_.size(); i++) { ! // if (((String)vnomRes_.get(i)).equals(_s)) return i; ! // } ! // return -1; ! } ! ! /** ! * Retourne l'index de la première étape correspondant à l'instant donné. -1 ! * si l'étape n'existe pas. ! * @param _t L'instant de l'étape. ! * @return L'indice de l'étape dans la table. ! */ ! public int indexOfEtape(double _t) { ! return vinstants_.indexOf(new Double(_t)); ! ! // for (int i=0; i<vinstants_.size(); i++) { ! // if (((Double)vinstants_.get(i)).doubleValue()==_t) return i; ! // } ! // return -1; ! } ! ! /** ! * Pour effacer le contenu des vecteurs d'instant et de nom de colonne si le ! * vecteur de valeurs ne contient plus rien. ! */ ! private void synchoniseVecteurs() { ! if (vres_.size()==0 || ((Vector)vres_.get(0)).size()==0) { ! vres_.clear(); ! vinstants_.clear(); ! vnomRes_.clear(); ! } } } |
From: Bertrand M. <bma...@us...> - 2004-04-15 07:39:02
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13303 Added Files: temps.gif Log Message: Intégration du calcul des seiches dans Fudaa-Refonde : Ajout d'un bouton de sélection du pas de temps. --- NEW FILE: temps.gif --- (This appears to be a binary file; contents omitted.) |