From: <had...@us...> - 2008-10-01 16:07:45
|
Revision: 4017 http://fudaa.svn.sourceforge.net/fudaa/?rev=4017&view=rev Author: hadouxad Date: 2008-10-01 16:07:21 +0000 (Wed, 01 Oct 2008) Log Message: ----------- commit partiel Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/ScopeStructure.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/tr_en.fr_txt branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogBilan.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogCubature.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostWizardImportScope.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeImporterScope.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaGrapheWizardImportScope.java Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/ScopeStructure.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/ScopeStructure.java 2008-10-01 11:00:40 UTC (rev 4016) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/ScopeStructure.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -99,6 +99,23 @@ private void insertX(double x) { getAllX().add(x); } + + public double getXMax(){ + double max=getX(0); + for(int i=1;i<getAllX().size();i++) + if(max<getX(i)) + max=getX(i); + return max; + } + + public double getXMin(){ + double min=getX(0); + for(int i=1;i<getAllX().size();i++) + if(min>getX(i)) + min=getX(i); + return min; + } + /** * Methode qui insert le x dans les variables que si il n'existe pas deja. * @@ -177,6 +194,51 @@ return evolReg; } + + /** + * Methode qui restreint lq structure en ne prenant que les variqbles choisies et la plage de x. + * @param selectedVariables + * @param xMin + * @param xMax + */ + public void restreindreStructure(int[] selectedVariables,double xMin,double xMax){ + + //--on retire toutes les variables qui ne sont pas voulues --// + Map<String, List<Double>> newdatas_ = new HashMap<String, List<Double>>(); + ArrayList<String> newVariables=new ArrayList<String>(); + + //ajout des x + newVariables.add(getVariable(0)); + newdatas_.put(getVariable(0), getAllX()); + + for(int i=0;i<selectedVariables.length;i++){ + //la bonne variable est selectedVariables[i]+1 car dans le choix on avait enlev\xE9 les X + newdatas_.put(getVariable(selectedVariables[i]+1), getListValueForVariable(selectedVariables[i]+1)); + newVariables.add(getVariable(selectedVariables[i]+1)); + } + + + //on retire les x qui ne sont pas les plages + for(int k=0;k<getNbValuePerVariables();k++){ + if(getX(k)>xMax || getX(k)<xMin){ + for(String var:newVariables){ + newdatas_.get(var).remove(k); + } + k--; + } + } + + //-- on remplace les nouvelles valeurs --// + data_=newdatas_; + listeVariales_=newVariables; + + //test + printResults(); + + + } + + @Override public void printResults() { Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeImporterScope.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeImporterScope.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeImporterScope.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -0,0 +1,93 @@ +package org.fudaa.fudaa.commun.courbe; + +import java.awt.event.ActionEvent; + +import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.dodico.telemac.io.ScopeStructure; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.courbe.EGCourbeChild; +import org.fudaa.ebli.courbe.EGCourbeModelDefault; +import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.ebli.courbe.EGGrapheTreeModel; +import org.fudaa.ebli.courbe.EGGroup; +import org.fudaa.ebli.courbe.EGModel; +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; + +import com.memoire.bu.BuResource; +import com.memoire.bu.BuWizardDialog; + +/** + * Gere l'importation de donn\xE9es scope s ou t et cr\xE9e un graphe temporel ou spatial selon le format + * S'utilise avec le wizard FudaaCourbeWizardImportScope + * @author Adrien Hadoux + * + */ +public class FudaaCourbeImporterScope { + + /** + * Action qui genere un wizard pour le parametrage des structures import\xE9es. + * @author Adrien Hadoux + * + */ + + + public static EGGraphe createGrapheTemporel(ScopeStructure.SorT data_,ProgressionInterface prog){ + + + return createGrapheSpatialGraphe(data_, prog); + } + + /** + * genere un graphe spatial + * @param data_ + * @return + */ + public static EGGraphe createGrapheSpatialGraphe(ScopeStructure.SorT data_,ProgressionInterface prog){ + + EGGrapheTreeModel model=new EGGrapheTreeModel(); + double[] tabX=new double[data_.getAllX().size()]; + for(int i=0;i<data_.getAllX().size();i++) + tabX[i]=data_.getX(i); + + + for(int i=0;i<data_.getNbVariables();i++){ + + EGGroup varg=new EGGroup(); + varg.setTitle(data_.getVariable(i)); + model.add(varg); + + //--remplissage de valeurs --// + //tableau des y + double[] tabY=new double[tabX.length]; + + for(int j=0;j<tabX.length;j++) + tabY[j]=data_.getValueOfvariable(i, j); + EGCourbeModelDefault modelCourbe=new EGCourbeModelDefault(tabX,tabY); + EGCourbeChild courbe=new EGCourbeChild(varg,modelCourbe); + + varg.addEGComponent(courbe); + + } + + + EGGraphe graphe=new EGGraphe(model); + + + return graphe; + } + + +public static EGGraphe createGrapheSpatialGENE(ScopeStructure.Gene data_,ProgressionInterface prog){ + + + return null; + } + + +public static EGGraphe createGrapheTemporelGENE(ScopeStructure.Gene data_,ProgressionInterface prog){ + + + return null; +} +} Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaGrapheWizardImportScope.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaGrapheWizardImportScope.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaGrapheWizardImportScope.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -0,0 +1,434 @@ +package org.fudaa.fudaa.commun.courbe; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; + +import javax.swing.AbstractAction; +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.filechooser.FileFilter; + +import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.fileformat.FileFormat; +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.gui.CtuluFileChooser; +import org.fudaa.ctulu.gui.CtuluLibSwing; +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; +import org.fudaa.dodico.mesure.EvolutionFileFormat; +import org.fudaa.dodico.reflux.io.CLTransitoireFileFormat; +import org.fudaa.dodico.reflux.io.CrbFileFormat; +import org.fudaa.dodico.rubar.io.RubarCLIFileFormat; +import org.fudaa.dodico.rubar.io.RubarTARFileFormat; +import org.fudaa.dodico.telemac.io.ScopeGENEFileFormat; +import org.fudaa.dodico.telemac.io.ScopeSFileFormat; +import org.fudaa.dodico.telemac.io.ScopeStructure; +import org.fudaa.dodico.telemac.io.ScopeTFileFormat; +import org.fudaa.dodico.telemac.io.TelemacLiquideFileFormat; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporter; +import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporterScope; +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.commun.impl.FudaaGuiLib; +import org.fudaa.fudaa.tr.common.TrResource; + +import com.memoire.bu.BuButton; +import com.memoire.bu.BuButtonPanel; +import com.memoire.bu.BuCharValidator; +import com.memoire.bu.BuFileFilter; +import com.memoire.bu.BuResource; +import com.memoire.bu.BuStringValidator; +import com.memoire.bu.BuTextField; +import com.memoire.bu.BuValueValidator; +import com.memoire.bu.BuWizardDialog; +import com.memoire.bu.BuWizardTask; + +/** + * Wizard qui se charge d'importer des courbes au format scope dans le post. + * + * Pour personnaliser le format final du graphe et son affichage, il faut surcharger la methode + * createGraphImported() + * @author Adrien Hadoux + * + */ +public class FudaaGrapheWizardImportScope extends BuWizardTask { + + //donnees haut niveau + FudaaCommonImplementation impl_; + + /** + * type de fomat: + * 0 => scops + * 1 =>scopT + * 2=>scopgene + */ + int typeFormat_; + File fileChoosen_=null; + ScopeStructure data_; + EGGraphe result_; + + //choix du fichier + JPanel panelFichier_; + BuTextField filePath_; + + //choix parametres s t ou gene + JPanel panelParametres_; + + //choix donnees S et T + BuTextField plageDeb_=new BuTextField(5); + BuTextField plageFin_=new BuTextField(5); + JList listVariables_; + + + public static class ImportAction extends EbliActionSimple { + final FudaaCommonImplementation ui_; + public ImportAction(final FudaaCommonImplementation _ui) { + super(BuResource.BU.getString("Importer au format scope"), BuResource.BU.getIcon("IMPORTER"), "IMPORTER"); + ui_ = _ui; + } + public void actionPerformed(final ActionEvent _e) { + FudaaGrapheWizardImportScope wizard=new FudaaGrapheWizardImportScope(ui_); + BuWizardDialog DialogWizard = new BuWizardDialog(ui_.getFrame(), wizard); + // --affichage du wizard --// + DialogWizard.setSize(600, 500); + DialogWizard.setLocationRelativeTo(ui_.getFrame()); + DialogWizard.setVisible(true); + } + } + + + public FudaaGrapheWizardImportScope(FudaaCommonImplementation impl) { + super(); + + impl_=impl; + } + + + @Override + public JComponent getStepComponent() { + switch (current_) { + case 0: { + + if(panelFichier_==null) + panelFichier_=buildFilePanel(); + return panelFichier_; + } + case 1: { + + if(data_==null){ + return new JLabel(TrResource.getS("Erreur. Veuillez choisir un fichier valide")); + } + + if(panelParametres_==null) + panelParametres_=buildPanelParametresImportation(); + return panelParametres_; + } + + } + + return null; + } + + @Override + public int getStepCount() { + // TODO Auto-generated method stub + return 2; + } + + @Override + public String getStepText() { + // TODO Auto-generated method stub + return null; + } + + ScopeStructure.SorT dataST(){ + return (ScopeStructure.SorT)data_; + } + + ScopeStructure.Gene dataG(){ + return (ScopeStructure.Gene)data_; + } + + @Override + public String getStepTitle() { + String r = null; + + switch (current_) { + case 0: + r = TrResource.getS("Choisir le fichier"); + break; + case 1: + r = TrResource.getS("Param\xE8tres de cr\xE9ation"); + break; + + } + return r; + } + + /** + * construit le panel de selection du fichier + * @return + */ + JPanel buildFilePanel(){ + JPanel content=new JPanel(new FlowLayout(FlowLayout.CENTER)); + content.add(new JLabel(TrResource.getS("Choisir le fichier:"))); + filePath_=new BuTextField(20); + filePath_.setEnabled(false); + content.add(filePath_); + BuButton parcourir =new BuButton(TrResource.getS("Parcourir...")); + parcourir.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent arg0) { + final FileFormat[] ft = getFileFormatForImport(); + Arrays.sort(ft); + final BuFileFilter[] filters = FileFormat.createFilters(ft); + final CtuluFileChooser fileChooser = FudaaGuiLib.getFileChooser(BuResource.BU.getString("Importer"), filters, + null); + fileChooser.setAcceptAllFileFilterUsed(false); + for (int i = filters.length - 1; i >= 0; i--) { + if (ft[i].getID() == EvolutionFileFormat.getInstance().getID()) { + fileChooser.setFileFilter(filters[i]); + break; + } + } + final File initFile = FudaaGuiLib.chooseFile(CtuluLibSwing.getFrameAncestor(impl_.getParentComponent()), true,fileChooser); + if (initFile == null) { + return; + } + filePath_.setText(initFile.getAbsolutePath()); + + final FileFilter filter = fileChooser.getFileFilter(); + final int i = CtuluLibArray.getIndex(filter, filters); + if (i < 0) { + return; + } + typeFormat_=i; + fileChoosen_=initFile; + importData(); + + + + } + + }); + content.add(parcourir); + return content; + } + + /** + * Retourne les formats de fichiers disponibles + * @return + */ + public static FileFormat[] getFileFormatForImport() { + final ArrayList<FileFormatUnique> r = new ArrayList<FileFormatUnique>(10); + r.add(ScopeSFileFormat.getInstance()); + r.add(ScopeTFileFormat.getInstance()); + r.add(ScopeGENEFileFormat.getInstance()); + final FileFormat[] rf = new FileFormat[r.size()]; + r.toArray(rf); + return rf; + } + + + /** + * Methode iumportante d'importation des datas en fonction du fichier choisi et du type. + * Remplit la structure scope + */ + private void importData(){ + new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Importation graphe")) { + public void act() { + final ProgressionInterface prog = getMainStateReceiver(); + + switch(typeFormat_){ + case 0: + //cas s + data_=lectureScopeS(fileChoosen_,prog); + break; + case 1: + //cas scopT + data_=lectureScopeT(fileChoosen_,prog); + break; + case 2: + //cas scopGENE + data_=lectureScopeGENE(fileChoosen_,prog); + break; + } + + }}.start(); + + } + + private ScopeStructure.SorT lectureScopeS(final File _f,ProgressionInterface prog) { + final CtuluIOOperationSynthese op = ScopeSFileFormat.getInstance().getLastVersionInstance(null).read(_f, prog); + final ScopeStructure.SorT struct = (ScopeStructure.SorT) op.getSource(); + return struct; + } + private ScopeStructure.SorT lectureScopeT(final File _f,ProgressionInterface prog) { + final CtuluIOOperationSynthese op = ScopeTFileFormat.getInstance().getLastVersionInstance(null).read(_f, prog); + final ScopeStructure.SorT struct = (ScopeStructure.SorT) op.getSource(); + return struct; + } + private ScopeStructure.Gene lectureScopeGENE(final File _f,ProgressionInterface prog) { + final CtuluIOOperationSynthese op = ScopeGENEFileFormat.getInstance().getLastVersionInstance(null).read(_f, prog); + final ScopeStructure.Gene struct = (ScopeStructure.Gene) op.getSource(); + return struct; + } + + + /** + * Construit le panel de choix des donn\xE9es a importer pour les formats s et t + * @return + */ + double Xmin,Xmax; + JPanel buildPanelScopeSorT(){ + JPanel content=new JPanel(new BorderLayout()); + + String[] listeVar=new String[dataST().getNbVariables()-1]; + + //on ne prends pas les x + for(int i=1;i<dataST().getNbVariables();i++) + listeVar[i-1]=dataST().getVariable(i); + + listVariables_=new JList(listeVar); + listVariables_.setSelectedIndex(0); + content.add(listVariables_,BorderLayout.CENTER); + listVariables_.setBorder(BorderFactory.createTitledBorder(TrResource.getS("S\xE9lection des variables"))); + + plageDeb_.setCharValidator(BuCharValidator.FLOAT); + plageDeb_.setStringValidator(BuStringValidator.FLOAT); + plageDeb_.setValueValidator(BuValueValidator.FLOAT); + plageFin_.setCharValidator(BuCharValidator.FLOAT); + plageFin_.setStringValidator(BuStringValidator.FLOAT); + plageFin_.setValueValidator(BuValueValidator.FLOAT); + + //-- on init les plages --// + Xmin=dataST().getXMin(); + plageDeb_.setText(""+Xmin); + Xmax=dataST().getXMax(); + plageFin_.setText(""+Xmax); + + JPanel plages=new JPanel(new FlowLayout(FlowLayout.CENTER)); + plages.add(new JLabel(TrResource.getS("Choisir la plage des abscisses"))); + plages.add(plageDeb_); + plages.add(new JLabel("-")); + plages.add(plageFin_); + plages.add(new JLabel("(Min: "+Xmin+", Max: "+Xmax+")")); + content.add(plages,BorderLayout.SOUTH); + + return content; + } + + JPanel buildPanelScopeGENE(){ + return null; + } + + JPanel buildPanelParametresImportation(){ + switch(typeFormat_){ + case 0: + //cas s + return buildPanelScopeSorT(); + case 1: + //cas scopT + return buildPanelScopeSorT(); + case 2: + //cas scopGENE + return buildPanelScopeGENE(); + } + + return null; + } + + public String getTaskTitle() { + // TODO Auto-generated method stub + return TrResource.getS("Importation depuis les formats Scop S, T et GENE"); + } + + /** + * MEthode utilisee pour disabler ou non les boutons suivants + */ + public int getStepDisabledButtons() { + int r = super.getStepDisabledButtons(); + if (current_ == 1) { + + //cas scope s ou t + if(typeFormat_==1 || typeFormat_==0){ + if(data_==null) + r |= BuButtonPanel.TERMINER; + else + if(plageDeb_.getText().equals("") || plageFin_.getText().equals("")) + r |= BuButtonPanel.TERMINER; + else{ + //verifier que les plages ne sont pas depassees + double valDeb=Double.parseDouble(plageDeb_.getText()); + double valFin=Double.parseDouble(plageFin_.getText()); + if(valDeb<Xmin || Xmax<valFin) + r |= BuButtonPanel.TERMINER; + } + + }else{ + //cas scope gene + } + + } + return r; + } + + + public void doTask() { + done_ = true; + new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Importation graphe")) { + public void act() { + final ProgressionInterface prog = getMainStateReceiver(); + //mise a jour de la structure + impl_.setMainProgression(10); + impl_.setMainMessage(CtuluLib.getS("Structure modification")); + prog.setProgression(10); + prog.setDesc(CtuluLib.getS("Structure modification")); + if(typeFormat_<=1) + dataST().restreindreStructure(listVariables_.getSelectedIndices(),Double.parseDouble(plageDeb_.getText()),Double.parseDouble(plageFin_.getText())); + + + impl_.setMainProgression(30); + impl_.setMainMessage(CtuluLib.getS("Cr\xE9ation du graphe")); + // creation du graphe + switch(typeFormat_){ + case 0: + //cas s + result_=FudaaCourbeImporterScope.createGrapheSpatialGraphe(dataST(),prog);break; + case 1: + //cas scopT + result_=FudaaCourbeImporterScope.createGrapheTemporel(dataST(),prog);break; + case 2: + //cas scopGENE + result_=FudaaCourbeImporterScope.createGrapheTemporelGENE(dataG(),prog);break; + } + + //-- mise en forme du resultata g\xE9n\xE9r\xE9 --// + createGraphImported(result_); + } + }.start(); + } + + + /** + * Methode a surcharger. + * Appel\xE9e a la toute fin, gere le resultat + */ + public void createGraphImported(EGGraphe grapheGenere){ + //placer le graphe ou vous voulez... + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogBilan.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogBilan.java 2008-10-01 11:00:40 UTC (rev 4016) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogBilan.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -509,8 +509,7 @@ */ private void computeResults() { - new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Calcul Bilan") + CtuluLibString.ESPACE - + EvolutionFileFormat.getInstance().getName()) { + new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Calcul Bilan") ) { public void act() { final ProgressionInterface prog = getMainStateReceiver(); // -- calcul de la EfLineIntersectionsResultsMng --// Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogCubature.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogCubature.java 2008-10-01 11:00:40 UTC (rev 4016) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDialogCubature.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -379,8 +379,7 @@ */ private void computeResults() { - new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Calcul Bilan") + CtuluLibString.ESPACE - + EvolutionFileFormat.getInstance().getName()) { + new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Calcul Bilan")) { public void act() { final ProgressionInterface prog = getMainStateReceiver(); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-10-01 11:00:40 UTC (rev 4016) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -496,6 +496,9 @@ init.add(null); init.add(new EbliWidgetAnimAdapter(getSceneCourante()).createAction()); + init.add(null); + init.add(new TrPostWizardImportScope.ImportAction(projet_)); + actions_ = Collections.unmodifiableList(init); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostWizardImportScope.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostWizardImportScope.java 2008-10-01 11:00:40 UTC (rev 4016) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostWizardImportScope.java 2008-10-01 16:07:21 UTC (rev 4017) @@ -8,18 +8,23 @@ import java.util.Arrays; import javax.swing.AbstractAction; +import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JLabel; +import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.filechooser.FileFilter; +import org.fudaa.ctulu.CtuluIOOperationSynthese; import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.fileformat.FileFormat; import org.fudaa.ctulu.fileformat.FileFormatUnique; import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ctulu.gui.CtuluLibSwing; +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.dodico.mesure.EvolutionFileFormat; import org.fudaa.dodico.reflux.io.CLTransitoireFileFormat; import org.fudaa.dodico.reflux.io.CrbFileFormat; @@ -27,179 +32,66 @@ import org.fudaa.dodico.rubar.io.RubarTARFileFormat; import org.fudaa.dodico.telemac.io.ScopeGENEFileFormat; import org.fudaa.dodico.telemac.io.ScopeSFileFormat; +import org.fudaa.dodico.telemac.io.ScopeStructure; import org.fudaa.dodico.telemac.io.ScopeTFileFormat; import org.fudaa.dodico.telemac.io.TelemacLiquideFileFormat; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.courbe.EGFillePanel; +import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporter; +import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporterScope; +import org.fudaa.fudaa.commun.courbe.FudaaGrapheWizardImportScope; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.commun.impl.FudaaGuiLib; import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuButton; +import com.memoire.bu.BuButtonPanel; +import com.memoire.bu.BuCharValidator; import com.memoire.bu.BuFileFilter; import com.memoire.bu.BuResource; +import com.memoire.bu.BuStringValidator; +import com.memoire.bu.BuTextField; +import com.memoire.bu.BuValueValidator; +import com.memoire.bu.BuWizardDialog; import com.memoire.bu.BuWizardTask; /** - * Wizard qui se charge d'importer des courbes au format scope dans le post. + * Wizard qui surcharge le wizard de parametrage d'import des scope. * @author Adrien Hadoux * */ -public class TrPostWizardImportScope extends BuWizardTask { +public class TrPostWizardImportScope extends FudaaGrapheWizardImportScope { - //donnees haut niveau - FudaaCommonImplementation impl_; TrPostProjet projet_; - /** - * type de fomat: - * 0 => scops - * 1 =>scopet - * 2=>scopgene - */ - int typeFormat_; - File fileChoosen_=null; + - //choix du fichier - JPanel panelFichier_; - JTextField filePath_=new JTextField(20); + public static class ImportAction extends EbliActionSimple { + final FudaaCommonImplementation ui_; + TrPostProjet projet_; + public ImportAction( TrPostProjet projet) { + super(BuResource.BU.getString("Importer"), BuResource.BU.getIcon("IMPORTER"), "IMPORTER"); + ui_ = projet.impl_; + projet_=projet; + } + public void actionPerformed(final ActionEvent _e) { + TrPostWizardImportScope wizard=new TrPostWizardImportScope(projet_); + BuWizardDialog DialogWizard = new BuWizardDialog(ui_.getFrame(), wizard); + // --affichage du wizard --// + DialogWizard.setSize(600, 500); + DialogWizard.setLocationRelativeTo(ui_.getFrame()); + DialogWizard.setVisible(true); + } + } - public TrPostWizardImportScope(TrPostProjet projet_) { - super(); + super(projet_.impl_); this.projet_ = projet_; - impl_=projet_.impl_; } - - @Override - public JComponent getStepComponent() { - switch (current_) { - case 0: { - - if(panelFichier_==null) - panelFichier_=buildFilePanel(); - return panelFichier_; - } - case 1: { - - } - - } - - return null; - } - - @Override - public int getStepCount() { - // TODO Auto-generated method stub - return 2; - } - - @Override - public String getStepText() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getStepTitle() { - String r = null; - - switch (current_) { - case 0: - r = TrResource.getS("Choisir le fichier"); - break; - case 1: - r = TrResource.getS("S\xE9lectionner les variables"); - break; - case 2: - r = TrResource.getS("S\xE9lectionner les graphes"); - break; - } - return r; - } - - - JPanel buildFilePanel(){ - JPanel content=new JPanel(new FlowLayout(FlowLayout.CENTER)); - content.add(new JLabel(TrResource.getS("Choisir le fichier:"))); - content.add(filePath_); - BuButton parcourir =new BuButton(TrResource.getS("Parcourir...")); - parcourir.setAction(new AbstractAction(){ - public void actionPerformed(ActionEvent arg0) { - final FileFormat[] ft = getFileFormatForImport(); - Arrays.sort(ft); - final BuFileFilter[] filters = FileFormat.createFilters(ft); - final CtuluFileChooser fileChooser = FudaaGuiLib.getFileChooser(BuResource.BU.getString("Importer"), filters, - null); - fileChooser.setAcceptAllFileFilterUsed(false); - for (int i = filters.length - 1; i >= 0; i--) { - if (ft[i].getID() == EvolutionFileFormat.getInstance().getID()) { - fileChooser.setFileFilter(filters[i]); - break; - } - } - final File initFile = FudaaGuiLib.chooseFile(CtuluLibSwing.getFrameAncestor(impl_.getParentComponent()), true, - fileChooser); - if (initFile == null) { - return; - } - final FileFilter filter = fileChooser.getFileFilter(); - final int i = CtuluLibArray.getIndex(filter, filters); - if (i < 0) { - return; - } - typeFormat_=i; - fileChoosen_=initFile; - importData(); - - } - - }); - content.add(parcourir); - return content; - } - - /** - * Retourne les formats de fichiers disponibles - * @return - */ - public static FileFormat[] getFileFormatForImport() { - final ArrayList<FileFormatUnique> r = new ArrayList<FileFormatUnique>(10); - r.add(ScopeSFileFormat.getInstance()); - r.add(ScopeTFileFormat.getInstance()); - r.add(ScopeGENEFileFormat.getInstance()); - final FileFormat[] rf = new FileFormat[r.size()]; - r.toArray(rf); - return rf; + public void createGraphImported(EGGraphe grapheGenere){ + projet_.addGrapheNodeInCurrentScene(new EGFillePanel(grapheGenere), "Graphe import\xE9 (format scope)"); } - - - /** - * Methode iumportante d'importation des datas en fonction du fichier choisi et du type. - */ - private void importData(){ - - switch(typeFormat_){ - - case 0: - //cas s - break; - case 1: - //cas scopT - break; - case 2: - //cas scopGENE - break; - } - - } - - - public String getTaskTitle() { - // TODO Auto-generated method stub - return null; - } - - - + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |