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) { ! ! } ! } |