From: <fa...@us...> - 2008-09-11 14:33:53
|
Revision: 3907 http://fudaa.svn.sourceforge.net/fudaa/?rev=3907&view=rev Author: fargeix Date: 2008-09-11 14:34:00 +0000 (Thu, 11 Sep 2008) Log Message: ----------- Diverses modifications du code Modified Paths: -------------- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3AlgorithmeDureesParcours.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieLoiJournaliere.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieBief.java trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieEcluse.java Added Paths: ----------- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/LoiJournaliereTableModel.java Added: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/LoiJournaliereTableModel.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/LoiJournaliereTableModel.java (rev 0) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/LoiJournaliereTableModel.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -0,0 +1,159 @@ +package org.fudaa.fudaa.sinavi3; + +import java.util.ArrayList; + +import javax.swing.table.AbstractTableModel; + +import com.memoire.bu.BuDialogError; + +public class LoiJournaliereTableModel extends AbstractTableModel{ + + + + /** + * Donn\xE9es de la loi journaliere + */ + ArrayList loiJournaliere_ = new ArrayList(); + + + CoupleLoiDeterministe nouveauCouple=null; + + private Sinavi3DataSimulation donnees_; + + + public LoiJournaliereTableModel(ArrayList _loiJournaliere, Sinavi3DataSimulation _donnee){ + loiJournaliere_=_loiJournaliere; + donnees_=_donnee; + } + + + public int getColumnCount() { + // TODO Auto-generated method stub + return 1; + } + + public int getRowCount() { + // TODO Auto-generated method stub + return loiJournaliere_.size()+1; + } + + public Object getValueAt(int rowIndex, int columnIndex) { + + if(rowIndex==getRowCount()-1) + { + if(nouveauCouple!=null) + { + if(columnIndex==0 && nouveauCouple.temps_!=-1) + return ""+nouveauCouple.temps_; + } + return ""; + } + + if(columnIndex==0) + return ""+((CoupleLoiDeterministe) this.loiJournaliere_.get(rowIndex)).temps_; + return ""; + + } + + + public String getColumnName(int column) { + if(column==0) + return "Horaire"; + return ""; + } + + + public boolean isCellEditable(int rowIndex, int columnIndex) { + // TODO Auto-generated method stub + return true; + } + + + public void setValueAt(Object aValue, int rowIndex, int columnIndex) { + + if(aValue=="") {loiJournaliere_.remove(this.loiJournaliere_.get(rowIndex)); this.fireTableStructureChanged(); return;} + double temps=-1; + + try { + if(columnIndex==0) + temps=Double.parseDouble((String)aValue); + + } catch (NumberFormatException e) { + new BuDialogError(donnees_.application_.getApp(), Sinavi3Implementation.isSinavi_, + "La saisie n'est pas correcte.").activate(); + return; + } + + + if(columnIndex==0){ + //-- TEST HORAIRE --// + + if(temps>24 || temps<0){ + new BuDialogError(donnees_.application_.getApp(), Sinavi3Implementation.isSinavi_, + "L'horaire doit \xEAtre compris entre 0 et 24 heures.").activate(); + return; + } + + //-- TEST FORMATTAGE HORAIRE --// + String contenu=(String)aValue; + + if(contenu.lastIndexOf(".")!=-1){ + String unite=contenu.substring(contenu.lastIndexOf(".")+1, contenu.length()); + if(unite.length()>2){ + new BuDialogError(donnees_.application_.getApp(), Sinavi3Implementation.isSinavi_, + "Il doit y avoir deux chiffres au maximum apr\xE8s la virgule.").activate(); + + return; + } + + + float valUnite=Float.parseFloat(unite); + if(valUnite>=60){ + new BuDialogError(donnees_.application_.getApp(), Sinavi3Implementation.isSinavi_, + "Les unit\xE9s doivent \xEAtre inf\xE9rieures \xE0 60 minutes.").activate(); + return; + } + } + }// fin test formattage horaire + + //-- MODE AJOUT --// + if(rowIndex==loiJournaliere_.size()) + { + //-- ajout de l'\xE9l\xE9ment --// + if(nouveauCouple==null){ + nouveauCouple=new CoupleLoiDeterministe(-1,-1); + } + + + //-- ajout de la valeur selon la colonne --// + if(columnIndex==0) + nouveauCouple.temps_=temps; + + //-- test si le nouveau couple est complet, on l'ajoute \xE0 la liste des couples --// + if(nouveauCouple.temps_!=-1){ + loiJournaliere_.add(new CoupleLoiDeterministe(0, nouveauCouple.temps_)); + //reinitialisation du couple + nouveauCouple=null; + //la structure du butable doit changer: il faut le faire recalculer car il a une ligne de plus + this.fireTableStructureChanged(); + } + + } + else + { + //-- MODE MODIFICATION --// + CoupleLoiDeterministe coupleAmodifier= (CoupleLoiDeterministe) this.loiJournaliere_.get(rowIndex); + + if(columnIndex==0) + coupleAmodifier.temps_=temps; + + //mise a jour du contenu de la cellule + this.fireTableCellUpdated(rowIndex, columnIndex); + } + + + } + + + +} Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3AlgorithmeDureesParcours.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3AlgorithmeDureesParcours.java 2008-09-10 18:55:59 UTC (rev 3906) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3AlgorithmeDureesParcours.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -44,8 +44,8 @@ resultats.DureeParcoursNavire[i] = new SParametresResultatsDureeParcoursNavires(); // initialisation des dur\xE9es des heures entrees des elements dans les 2 sens resultats.DureeParcoursNavire[i].heure1Entree1Navire = -1; + resultats.DureeParcoursNavire[i].heure1Entree2Navire = -1; resultats.DureeParcoursNavire[i].heure2Entree1Navire = -1; - resultats.DureeParcoursNavire[i].heure1Entree2Navire = -1; resultats.DureeParcoursNavire[i].heure2Entree2Navire = -1; resultats.DureeParcoursNavire[i].categorieAssociee = donnees_.listeResultatsSimu_.listeEvenements[i].categorie; @@ -60,22 +60,25 @@ // si l'\xE9l\xE9ment du trajet est equivalent a celui entr\xE9 en parametre 1 - //-- recuperation de l'entree du premier element --// + //-- recuperation des heures d'entr\xE9e/sortie du premier element --// resultats.DureeParcoursNavire[i].heure1Entree1Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureEntree; + resultats.DureeParcoursNavire[i].heure1Entree2Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureSortie; if (donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].indiceElement == indiceElement2 && donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].typeElement == typeElement2) { - //-- recuperation de la sortie du deuxieme element --// - resultats.DureeParcoursNavire[i].heure1Entree2Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureSortie; + //-- recuperation des heures d'entr\xE9e/sortie du deuxieme element --// + resultats.DureeParcoursNavire[i].heure2Entree1Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureEntree; + resultats.DureeParcoursNavire[i].heure2Entree2Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureSortie; } }// fin du if si l'\xE9l\xE9ment du trajet est egal a celui entree en parametre 1 de l utilisateur else if (donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].indiceElement == indiceElement2 && donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].typeElement == typeElement2) { - //-- recuperation de la sortie du deuxieme element --// - resultats.DureeParcoursNavire[i].heure1Entree2Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureSortie; + //-- recuperation des heures d'entr\xE9e/sortie du deuxieme element --// + resultats.DureeParcoursNavire[i].heure2Entree1Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureEntree; + resultats.DureeParcoursNavire[i].heure2Entree2Navire = donnees_.listeResultatsSimu_.listeEvenements[i].tableauTrajet[k].heureSortie; @@ -114,11 +117,10 @@ // cas normal: type ou element differents - if (resultats.DureeParcoursNavire[k].heure1Entree2Navire!=-1 && resultats.DureeParcoursNavire[k].heure1Entree1Navire!=-1) { + if (resultats.DureeParcoursNavire[k].heure1Entree1Navire!=-1 && resultats.DureeParcoursNavire[k].heure1Entree2Navire!=-1 && resultats.DureeParcoursNavire[k].heure2Entree1Navire!=-1 && resultats.DureeParcoursNavire[k].heure2Entree2Navire!=1) { // sens entrant: // on prend els horaires entrees 1 des element 1 et 2 - duree = Math - .abs((float) (resultats.DureeParcoursNavire[k].heure1Entree2Navire - resultats.DureeParcoursNavire[k].heure1Entree1Navire)); + duree = Math.max((float) (resultats.DureeParcoursNavire[k].heure2Entree2Navire - resultats.DureeParcoursNavire[k].heure1Entree1Navire), (float) (resultats.DureeParcoursNavire[k].heure1Entree2Navire - resultats.DureeParcoursNavire[k].heure2Entree1Navire)); // exploitation de la donnee duree recuperee pour la categorie Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java 2008-09-10 18:55:59 UTC (rev 3906) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -1643,7 +1643,7 @@ String descriptifProb = " WARNING: ecluse " + this.listeEcluse_.retournerEcluse(k).nom_ + " largeur de " + (float) this.listeEcluse_.retournerEcluse(k).largeur_; for (int l = 0; l < this.listeBateaux_.listeNavires_.size(); l++) { - if (this.listeBateaux_.retournerNavire(l).largeurMax > this.listeEcluse_.retournerEcluse(k).largeur_) { + if (this.listeBateaux_.retournerNavire(l).largeurMax >= this.listeEcluse_.retournerEcluse(k).largeur_) { // validiteMethode = false; probleme = true; descriptifProb = descriptifProb + getDescCategorie() + this.listeBateaux_.retournerNavire(l).nom @@ -1676,7 +1676,7 @@ String descriptifProb = " WARNING: ecluse " + this.listeEcluse_.retournerEcluse(k).nom_ + " longueur de " + (float) this.listeEcluse_.retournerEcluse(k).longueur_; for (int l = 0; l < this.listeBateaux_.listeNavires_.size(); l++) { - if (this.listeBateaux_.retournerNavire(l).longueurMax > this.listeEcluse_.retournerEcluse(k).longueur_) { + if (this.listeBateaux_.retournerNavire(l).longueurMax >= this.listeEcluse_.retournerEcluse(k).longueur_) { // validiteMethode = false; probleme = true; descriptifProb = descriptifProb + getDescCategorie() + this.listeBateaux_.retournerNavire(l).nom Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieLoiJournaliere.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieLoiJournaliere.java 2008-09-10 18:55:59 UTC (rev 3906) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieLoiJournaliere.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -27,6 +27,8 @@ import javax.swing.JTable; import javax.swing.border.Border; +import org.jdesktop.swingx.ScrollPaneSelector; + import com.memoire.bu.BuDialogConfirmation; import com.memoire.bu.BuDialogError; import com.memoire.bu.BuDialogMessage; @@ -78,6 +80,8 @@ ArrayList loiJournaliere_ = new ArrayList(); Sinavi3DataSimulation donnees_; + + LoiJournaliereTableModel modeleTableau_; /** * composant destin\xE9 a recevoir el focus desla destruction de la fenetre @@ -89,14 +93,19 @@ * * @param d donn\xE9es de la simulation */ - Sinavi3FrameSaisieLoiJournaliere(final Sinavi3DataSimulation _donnees, final ArrayList _loiDeterministe, final Component c) { + Sinavi3FrameSaisieLoiJournaliere(final Sinavi3DataSimulation _donnees, final ArrayList _loiJournaliere, final Component c) { super("", true, true, true, true); // recuperation des donn\xE9es de la simulation - loiJournaliere_ = _loiDeterministe; + loiJournaliere_ = _loiJournaliere; composant_ = c; donnees_ = _donnees; global.setLayout(new BorderLayout()); - + + //-- creation du tableau --// + modeleTableau_=new LoiJournaliereTableModel(loiJournaliere_,donnees_); + + global.setLayout(new BorderLayout()); + // remplissage des comboBox en onction des donn\xE9es this.remplissage(); // afichage des elements dans le tableau. @@ -143,7 +152,8 @@ getContentPane().setLayout(new BorderLayout()); final JScrollPane ascenceur = new JScrollPane(global); - + // utilisation de swingx + ScrollPaneSelector.installScrollPaneSelector( ascenceur); getContentPane().add(ascenceur, BorderLayout.CENTER); final JPanel controlPanel = new JPanel(); @@ -169,38 +179,23 @@ */ void affichage() { - final Object[][] ndata = new Object[300][1]; + //-- CREATION DU TABLEAU ET DU MODELE + this.tableau = new JTable(modeleTableau_) ; + + tableau.setBorder(this.borduretab); - System.out.println("nb couples ***: " + loiJournaliere_.size()); + tableau.revalidate(); + // this.removeAll(); + this.global.add(/* ascenceur */tableau.getTableHeader(), BorderLayout.PAGE_START); + this.global.add(tableau, BorderLayout.CENTER); - // affichage par defaut des dernieres couples saisis: - for (int i = 0; i < this.loiJournaliere_.size(); i++) { + final JPanel controlePanel = new JPanel(); + controlePanel.add(validation); - // ndata[i][0]=""+((CoupleLoiDeterministe)this.loiDeterministe_.get(i)).jour_; - ndata[i][0] = "" + (float) ((CoupleLoiDeterministe) this.loiJournaliere_.get(i)).temps_; + global.add(controlePanel, BorderLayout.SOUTH); + this.revalidate(); + this.updateUI(); - } - - this.tableau = new JTable(ndata, this.titreColonnes) { - /* - * public boolean isCellEditable(int row,int col ){ return false; } - */ - }; - - tableau.setBorder(this.borduretab); - - tableau.revalidate(); - // this.removeAll(); - this.global.add(/* ascenceur */tableau.getTableHeader(), BorderLayout.PAGE_START); - this.global.add(tableau, BorderLayout.CENTER); - - final JPanel controlePanel = new JPanel(); - controlePanel.add(validation); - - global.add(controlePanel, BorderLayout.SOUTH); - this.revalidate(); - this.updateUI(); - } /** Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieBief.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieBief.java 2008-09-10 18:55:59 UTC (rev 3906) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieBief.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -149,12 +149,14 @@ frequenceMoyenne_.setEnabled(true); frequenceMoyenne2_.setEnabled(true); loiProbaFrequence_.setEnabled(true); + loiProbaDuree_.setEnabled(true); } else if (choixLoi == 1) { // cas 1: loi deterministe frequenceMoyenne_.setEnabled(false); frequenceMoyenne2_.setEnabled(false); loiProbaFrequence_.setEnabled(false); + loiProbaDuree_.setEnabled(false); // donnees_.application_.addInternalFrame(new // SiporFrameSaisieLoiDeterministe(donnees_,loiDeterministe_,dureeIndispo_)); @@ -191,6 +193,7 @@ frequenceMoyenne_.setEnabled(false); loiProbaFrequence_.setEnabled(false); frequenceMoyenne2_.setEnabled(false); + loiProbaDuree_.setEnabled(false); // lancement de la frame de saisie des creneaux de la loi journaliere // donnees_.application_.addInternalFrame(new // SiporFrameSaisieLoiJournaliere(donnees_,loiDeterministe_,dureeIndispo_)); @@ -330,18 +333,17 @@ final JPanel p21 = new JPanel(); - p21.add(new JLabel("Dur\xE9e:")); + p21.add(new JLabel("Dur\xE9e moyenne:")); p21.add(this.dureeIndispo_); p21.add(new JLabel("h.min")); p21.setBorder(Sinavi3Bordures.bordnormal_); dureeIndispo.add(p21); - /* bloc supprim\xE9 par fargeix, la dur\xE9e d'insisponibilit\xE9 \xE9tant maintenant fixe - * final JPanel p23 = new JPanel(); - * p23.add(new JLabel("Ordre loi d'Erlang de la dur\xE9e: ")); - * p23.add(this.loiProbaDuree_); - * p23.setBorder(Sinavi3Bordures.bordnormal_); - * dureeIndispo.add(p23);*/ + final JPanel p23 = new JPanel(); + p23.add(new JLabel("Ordre loi d'Erlang de la dur\xE9e: ")); + p23.add(this.loiProbaDuree_); + p23.setBorder(Sinavi3Bordures.bordnormal_); + dureeIndispo.add(p23); //creneaux Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieEcluse.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieEcluse.java 2008-09-10 18:55:59 UTC (rev 3906) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3PanelSaisieEcluse.java 2008-09-11 14:34:00 UTC (rev 3907) @@ -98,7 +98,7 @@ * Indice de l ecluse a modifier dans le cas ou l on est en mode modification */ int ECLUSE_A_MODIFIER_; - + /** * Constructeur du panel de saisie des ecluses * @@ -180,13 +180,14 @@ frequenceMoyenne_.setEnabled(true); frequenceMoyenne2_.setEnabled(true); loiProbaFrequence_.setEnabled(true); + loiProbaDuree_.setEnabled(true); } else if (choixLoi == 1) { // cas 1: loi deterministe frequenceMoyenne_.setEnabled(false); frequenceMoyenne2_.setEnabled(false); loiProbaFrequence_.setEnabled(false); - + loiProbaDuree_.setEnabled(false); if (fenetreLoideter_ == null) { FuLog.debug("interface nulle"); @@ -221,6 +222,7 @@ frequenceMoyenne_.setEnabled(false); frequenceMoyenne2_.setEnabled(false); loiProbaFrequence_.setEnabled(false); + loiProbaDuree_.setEnabled(false); // lancement de la frame de saisie des creneaux de la loi journaliere // donnees_.application_.addInternalFrame(new @@ -404,18 +406,17 @@ final JPanel p21 = new JPanel(); - p21.add(new JLabel("Dur\xE9e:")); + p21.add(new JLabel("Dur\xE9e moyenne:")); p21.add(this.dureeIndispo_); p21.add(new JLabel("h.min")); p21.setBorder(Sinavi3Bordures.bordnormal_); dureeIndispo.add(p21); - /* bloc supprim\xE9 par fargeix, la dur\xE9e d'insisponibilit\xE9 \xE9tant maintenant fixe - * final JPanel p23 = new JPanel(); - * p23.add(new JLabel("Ordre loi d'Erlang de la dur\xE9e:")); - * p23.add(this.loiProbaDuree_); - * p23.setBorder(Sinavi3Bordures.bordnormal_); - * dureeIndispo.add(p23);*/ + final JPanel p23 = new JPanel(); + p23.add(new JLabel("Ordre loi d'Erlang de la dur\xE9e:")); + p23.add(this.loiProbaDuree_); + p23.setBorder(Sinavi3Bordures.bordnormal_); + dureeIndispo.add(p23); //creneaux This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |