From: <had...@us...> - 2008-10-30 19:48:49
|
Revision: 4134 http://fudaa.svn.sourceforge.net/fudaa/?rev=4134&view=rev Author: hadouxad Date: 2008-10-30 19:48:39 +0000 (Thu, 30 Oct 2008) Log Message: ----------- maj donn?\195?\169es Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator2.java Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator2.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator2.java 2008-10-30 19:48:39 UTC (rev 4134) @@ -0,0 +1,255 @@ +package org.fudaa.fudaa.tr.post; + +import java.io.File; + +import org.fudaa.ctulu.CtuluLibGenerator; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.fileformat.FileFormat; +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; +import org.fudaa.dodico.ef.FileFormatGridVersion; +import org.fudaa.dodico.fichiers.FileFormatSoftware; +import org.fudaa.dodico.reflux.io.RefluxRefondeSolutionSequentielResult; +import org.fudaa.dodico.telemac.io.SerafinFileFormat; +import org.fudaa.fudaa.tr.common.TrFileFormatManager; + +import com.memoire.bu.BuLib; + +public class TrPostMultiSourceActivator2 { + + public TrPostProjet projetCourant_; + + public TrPostMultiSourceActivator2(final TrPostProjet _projet) { + super(); + projetCourant_ = _projet; + + } + + /** + * @param _s la source + * @param _impl l'impl parente + */ + protected static void afficheFrame(final TrPostProjet _p, final TrPostCommonImplementation _impl) { + + _impl.setProjet(_p); + + + } + + public static void activeFile(final File _f, final TrPostCommonImplementation _impl) { + TrPostProjet pro = _impl.getCurrentProject(); + if (pro == null) { + pro = new TrPostProjet(_impl); + } + new TrPostMultiSourceActivator(pro).active(_f, _impl); + + } + + /** + * @param _f le fichier a ouvrir + * @param _impl l'impl parent + */ + public void activeSerafin(final File _f, final TrPostCommonImplementation _impl,final String id) { + + final TrPostSource source = activeSerafinAction(_f, _impl, _impl.getMainProgression()); + if (source == null) { return; } + source.setId(id); + if (SerafinFileFormat.is3DGrid(source.getGrid())) { + + TrPostSourceBuilder.affiche3D(source, _impl); + + + + } else { + afficheFrame(projetCourant_, _impl); + } + + + } + + public void activeGrid(final File _f, final FileFormatGridVersion _fmt, final TrPostCommonImplementation _impl,final String id) { + + activeGridAction(_f, _fmt, _impl, _impl.getMainProgression(),id); + if (projetCourant_ != null) { + afficheFrame(projetCourant_, _impl); + } + + } + + + public void active(final File _f, final TrPostCommonImplementation _impl){ + + String uniqueId; + if(_impl.c_!=null) + uniqueId=_impl.c_.deliverSourceId(_f.getName()); + else + uniqueId=CtuluLibGenerator.getInstance().deliverUniqueStringId(); + + active(_f,_impl,uniqueId); + } + + /** + * Ouvre le fichier en fonction de l'extension. + * + * @param _f le fichier correct + * @param _impl l'impl parent + */ + public void active(final File _f, final TrPostCommonImplementation _impl,String IdSourceToActive) { + if (_f == null) { return; } + final TrFileFormatManager mng = TrFileFormatManager.INSTANCE; + final String name = _f.getName(); + if (TrPostSourceBuilder.isReflux(name)) { + activeINP(_f, _impl,IdSourceToActive); + return; + } + if (mng.isRubarTPSFile(name)) { + activeRubar(_f, _impl,IdSourceToActive); + return; + } + // mettre serafin en dernier car le test est tres large .... + if (SerafinFileFormat.getInstance().createFileFilter().accept(_f)) { + activeSerafin(_f, _impl,IdSourceToActive); + return; + } + final FileFormat ft = FileFormat.findFileFormat(TrFileFormatManager.getAllGridFormat(), _f); + if (ft == null) { + final String id = _impl.getLauncher().getCurrentPrefHydId(); + if (FileFormatSoftware.REFLUX_IS.name.equals(id)) { + activeINP(_f, _impl,IdSourceToActive); + } else if (FileFormatSoftware.TELEMAC_IS.name.equals(id)) { + activeSerafin(_f, _impl,IdSourceToActive); + } else if (FileFormatSoftware.RUBAR_IS.name.equals(id)) { + activeRubar(_f, _impl,IdSourceToActive); + } + } else { + activeGrid(_f, (FileFormatGridVersion) ft, _impl,IdSourceToActive); + } + } + + /** + * Ouvir une boite de dialogue pour determiner le fichier inp et le fichier sov. + * + * @param _f le fichier xinp,sov ou inp + * @param _impl l'impl parent + */ + public void activeINP(final File _f, final TrPostCommonImplementation _impl,final String id) { + if (RefluxRefondeSolutionSequentielResult.isRefonde(_f)) { + final File inp = TrPostSourceBuilder.getInpFileForRefonde(_f, _impl); + if (inp != null) { + activeINP(inp, _f, _impl,id); + } + return; + } + final TrPostSourceBuilder.INPChooseFile pn = new TrPostSourceBuilder.INPChooseFile(_f); + if (CtuluDialogPanel.isOkResponse(pn.afficheModale(_impl.getFrame()))) { + activeINP(pn.getInp(), pn.getsov(), _impl,id); + } + } + + /** + * @param _f le fichier tps + * @param _impl l'impl parente + */ + public void activeRubar(final File _f, final TrPostCommonImplementation _impl,final String id) { + + final ProgressionInterface prog = _impl.getMainProgression(); + final TrPostSourceRubar src = activeRubarAction(_f, _impl, prog); + if(src!=null) + src.setId(id); + final TrPostRubarLoader loader = new TrPostRubarLoader(src, _f, true); + loader.active(_impl, prog); + afficheFrame(projetCourant_, _impl); + + + } + + /** + * @param _f le fichier inp + * @param _sov le fichier sov + * @param _impl l'impl parente + */ + public void activeINP(final File _f, final File _sov, final TrPostCommonImplementation _impl,final String id) { + + activeINPAction(_f, _sov, _impl, _impl.getMainProgression(),id); + if (projetCourant_ != null) { + afficheFrame(projetCourant_, _impl); + } + + } + + /** + * @param _f le fichier serafin + * @param _impl l'impl parent + * @param _inter la barre de progress + * @return le source post + */ + public TrPostSource activeSerafinAction(final File _f, final TrPostCommonImplementation _impl, + final ProgressionInterface _inter) { + final TrPostSource r = TrPostSourceBuilder.activeSerafinSourceAction(_f, _impl, _inter, null); + if (r != null) { + + // ajout de la source au postProjet + this.projetCourant_.ajouterSource(r); + } + return r; + } + + /** + * @param _f le fichier serafin + * @param _impl l'impl parent + * @param _inter la barre de progress + * @return le source post + */ + public TrPostSourceRubar activeRubarAction(final File _f, final TrPostCommonImplementation _impl, + final ProgressionInterface _inter) { + final TrPostSourceRubar src = TrPostSourceBuilder.activeRubarSrcAction(_f, _impl, _inter); + if (src == null) { return null; } + + this.projetCourant_.ajouterSource(src); + + return src; + } + + public static void loadData(final CtuluUI _impl, final ProgressionInterface _inter, final TrPostProjet _proj) { + if (_proj != null && _proj.openSrcDataAndIsModified(_impl, _inter)) { + _proj.setProjectModified(); + } + } + + /** + * @param _gridFile le fichier inp ou ximp + * @param _sovFile le fichier contenant les solutions + * @param _impl l'impl parent + * @param _inter la barre de progression + * @return le source + */ + public void activeINPAction(final File _gridFile, final File _sovFile, final CtuluUI _impl, + final ProgressionInterface _inter,String id) { + + final TrPostSourceReflux retour = (TrPostSourceReflux) TrPostSourceBuilder.activeINPSource(_gridFile, _sovFile, + _impl, _inter); + if (retour == null) { return; } + retour.setId(id); + retour.buildDefaultVarUpdateLists(); + + projetCourant_.ajouterSource(retour); + + loadData(_impl, _inter, projetCourant_); + return; + } + + public void activeGridAction(final File _f, final FileFormatGridVersion _ftGrid, + final TrPostCommonImplementation _impl, final ProgressionInterface _inter,String id) { + + final TrPostSource retour = TrPostSourceBuilder.activeGridSource(_f, _ftGrid, _impl, _inter); + if (retour == null) { return; } + retour.setId(id); + this.projetCourant_.ajouterSource(retour); + + loadData(_impl, _inter, projetCourant_); + return; + } + + } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2008-10-30 19:48:29 UTC (rev 4133) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2008-10-30 19:48:39 UTC (rev 4134) @@ -43,9 +43,11 @@ import org.fudaa.fudaa.tr.post.TrPostCommonImplementation; import org.fudaa.fudaa.tr.post.TrPostLayoutFille; import org.fudaa.fudaa.tr.post.TrPostMultiSourceActivator; +import org.fudaa.fudaa.tr.post.TrPostMultiSourceActivator2; import org.fudaa.fudaa.tr.post.TrPostProjet; import org.fudaa.fudaa.tr.post.TrPostSource; import org.fudaa.fudaa.tr.post.TrPostSourceAbstract; +import org.fudaa.fudaa.tr.post.TrPostTimeModelSaver; import org.fudaa.fudaa.tr.post.TrPostUserVariableSaver; import org.fudaa.fudaa.tr.post.actions.TrPostActionFusionCalques; import org.netbeans.api.visual.widget.Widget; @@ -526,6 +528,7 @@ final List<TrPostSourcePersist> listeCouplesIdSources = new ArrayList<TrPostSourcePersist>(); final List<TrPostUserVariableSaver> listeVar = new ArrayList<TrPostUserVariableSaver>();// getPersitantVariablesList + final List<TrPostTimeModelSaver> listePdt = new ArrayList<TrPostTimeModelSaver>(); // ( // pathVariables // , @@ -543,6 +546,7 @@ // -- sauveagrde de la variable correspondante --// final TrPostUserVariableSaver var = TrPostUserVariableSaver.saveIn((TrPostSourceAbstract) src, null); listeVar.add(var); + listePdt.add(new TrPostTimeModelSaver(src)); } // -- sauvegarde du fichier contenant les liens path/Sources --// @@ -552,10 +556,13 @@ // -- sauvegarde dans le repertoire variable c un fichier par donnees // persistantes --// int cpt=0; - for (TrPostUserVariableSaver var : listeVar) { + for (int i=0;i<listeVar.size();i++) { + TrPostUserVariableSaver var=listeVar.get(i); + TrPostTimeModelSaver ptd=listePdt.get(i); out = getParser().createObjectOutputStream( new FileWriter(pathVariables + File.separator + "variables_" + listeCouplesIdSources.get(cpt++).IdSource)); out.writeObject(var); + out.writeObject(ptd); out.close(); } @@ -584,7 +591,7 @@ in = getParser().createObjectInputStream(new FileReader(file)); // -- recuperation du multiSourceActivator--// - final TrPostMultiSourceActivator multiProjectActivator = new TrPostMultiSourceActivator(trprojet_); + final TrPostMultiSourceActivator2 multiProjectActivator = new TrPostMultiSourceActivator2(trprojet_); //-- lecture des commentaires --// Object debutFichier=in.readObject(); @@ -675,6 +682,14 @@ final TrPostUserVariableSaver varUser = (TrPostUserVariableSaver) var; varUser.restore(src, new CtuluAnalyze(), ui_.createProgressionInterface(this), ui_); } + + var = in.readObject(); + if (var instanceof TrPostTimeModelSaver) { + final TrPostTimeModelSaver varUser = (TrPostTimeModelSaver) var; + varUser.restore(src, ui_.createProgressionForMainPanel(), true); + } + + } catch (FileNotFoundException e) { e.printStackTrace(); @@ -895,15 +910,17 @@ progression("Chargement du fichier descripteur de sources", 15); file = new File(projet_.getAbsolutePath() + File.separator + setupProject); loadSource(file); - + // -- etape 6; lecture des variables --// + progression("Lecture variables", 20); + loadVariables(pathVariables); // -- etape 3: sauvegarde du fichier de descriptions des layout // --// - progression("Cr\xE9ation du descripteur de layout", 20); + progression("Cr\xE9ation du descripteur de layout", 30); file = new File(projet_.getAbsolutePath() + File.separator + INFOSCENE); final List<String> listeFichiers = loadDescriptorScenes(file); // -- etape 4 chargement des ebliscene unitairement --// - progression("Cr\xE9ation des fichiers layout", 30); + progression("Cr\xE9ation des fichiers layout", 40); // -- creation des params pour les datas --// final HashMap<String, Object> parametres = new HashMap<String, Object>(); parametres.put("path", projet_.getAbsolutePath()); @@ -917,7 +934,7 @@ for (final String fichier : listeFichiers) { file = new File(fichier); - if (listeFichiers.size() != 0) progression("chargement du fichier " + fichier, 30 + 70 / listeFichiers.size()); + if (listeFichiers.size() != 0) progression("chargement du fichier " + fichier, 40 + 60 / listeFichiers.size()); // -- creation de la trpostlayoutFille --// final TrPostLayoutFille postFrame = new TrPostLayoutFille(trprojet_); @@ -928,9 +945,8 @@ loadPersitSceneXml(file, postFrame, parametres, listeCouplesNoms); } - // -- etape 6; lecture des variables --// - progression("Lecture variables", 90); - loadVariables(pathVariables); + + progression("", 100); managerError.showDialog(ui_); @@ -965,6 +981,9 @@ xstream.alias("SOURCE", TrPostSourcePersist.class); xstream.alias("LAYOUTDESCRIPTOR", LayoutDescriptor.class); xstream.alias("README", XmlCommentaire.class); + xstream.alias("TIMEMODEL", TrPostTimeModelSaver.class); + xstream.alias("USERVAR", TrPostUserVariableSaver.class); + // xstream.addImplicitCollection(EbliWidgetSerializeXml.CoupleNomId.class, // "FRAMENAME"); // xstream.alias( "NbElements",Integer.class); @@ -1171,7 +1190,8 @@ final HashMap<String, HashSet<Object>> listeGroupToPerform = new HashMap<String, HashSet<Object>>(); List<EbliWidgetSerializeXml> listeWidgetLinked=new ArrayList<EbliWidgetSerializeXml>(); - + Map<EbliWidgetSerializeXml, Integer> listePositionWidgetLinked=new HashMap<EbliWidgetSerializeXml, Integer> (); + // -- r\xE9cup\xE9ration via xml des eblinode/widgets --// for (int i = 0; i < sceneXml.getNbFrames(); i++) { @@ -1207,6 +1227,7 @@ // -- on ajoute la widget liee a la liste des widget a cree au // final--// listeWidgetLinked.add(widgetXml); + listePositionWidgetLinked.put(widgetXml, new Integer(i)); } } @@ -1214,12 +1235,17 @@ // --On executre les widgets liees --// for (EbliWidgetSerializeXml widgetXml : listeWidgetLinked) { + // generation de la widget dans la scene parametres.put("nodeName", getNodeName(listeCouplesNoms, widgetXml.getId())); final EbliNode node = widgetXml.generateWidgetInScene(parametres, scenToUpdate); // ajout des noeuds a ajouter dans la selection if (widgetXml.isSelected()) listeNodeSelect.add(node); + Integer position=listePositionWidgetLinked.get(widgetXml); + if(position!=null) + scenToUpdate.moveWidgetTo(node.getWidget(), position.intValue()); + // ajout de la creation d'un groupe if (!widgetXml.getIdGroup().equals(EbliWidgetGroup.NOGROUP)) { // il y a un group a prendre en compte d'id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |