From: <had...@us...> - 2009-01-19 19:40:46
|
Revision: 4383 http://fudaa.svn.sourceforge.net/fudaa/?rev=4383&view=rev Author: hadouxad Date: 2009-01-19 19:40:40 +0000 (Mon, 19 Jan 2009) Log Message: ----------- am?\195?\169liorations lot 3, am?\195?\169liorations Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/commun/EbliEditorArrow.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionAfficheOrigineCourbe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeModelDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheModel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheSimpleModel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheTreeModel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeDefautModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeTimeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrReplayCurvesData.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacBoundaryCourbeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacWeirCourbeModel.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionReplayDataCourbe.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -764,4 +764,27 @@ return pn_; } +public List<EbliActionInterface> getSelectedNavigationAndStandardActionGroup() { + final List<EbliActionInterface> actions = new ArrayList<EbliActionInterface>(); + if(this.selectedActionGroup_==null) + buildButtonGroupSelection(); + if(this.navigationActionGroup_==null) + buildButtonGroupNavigation(); + if(this.standardActionGroup_==null) + buildButtonGroupStandard(); + + actions.addAll(Arrays.asList(selectedActionGroup_)); + actions.add(null); + actions.addAll(Arrays.asList(navigationActionGroup_)); + actions.add(null); + if (!CtuluLibArray.isEmpty(standardActionGroup_)) { + actions.addAll(Arrays.asList(standardActionGroup_)); + } + + + return actions; } + + + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/commun/EbliEditorArrow.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/commun/EbliEditorArrow.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/commun/EbliEditorArrow.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -112,6 +112,22 @@ public void modifieExtremite(Point newPoint, int position){ if(position>ExtremiteDroite || points_==null)return; + //-- cas particulier si on deplace la queue --// + if(position==ExtremiteQueue && points_[position]!=null && points_[ExtremiteGauche]!=null && points_[ExtremiteDroite]!=null && points_[position]!=points_[ExtremiteQueue]){ + //-- on deplace les arcs selon la meme translation + int translationX=points_[ExtremiteQueue].x-newPoint.x; + int translationY=points_[ExtremiteQueue].y-newPoint.y; + + //-- on applique la translation aux arretes --// + points_[ExtremiteGauche].x+=translationX; + points_[ExtremiteGauche].y+=translationY; + points_[ExtremiteDroite].x+=translationX; + points_[ExtremiteDroite].y+=translationY; + + + } + + points_[position]=newPoint; repaint(); } @@ -188,8 +204,8 @@ } //-- on trace le segment tete/gauche --// - if(getExtremiteTete()!=null && getExtremiteGauche()!=null){ - traceligne.dessineTrait(g2d, getExtremiteTete().x, getExtremiteTete().y, getExtremiteGauche().x,getExtremiteGauche().y); + if(getExtremiteQueue()!=null && getExtremiteGauche()!=null){ + traceligne.dessineTrait(g2d, getExtremiteQueue().x, getExtremiteQueue().y, getExtremiteGauche().x,getExtremiteGauche().y); }else{ // pas de segment complet, on trace juste les points existants if(getExtremiteGauche()!=null) @@ -197,8 +213,8 @@ } //-- on trace le segment tete/droite --// - if(getExtremiteTete()!=null && getExtremiteDroite()!=null){ - traceligne.dessineTrait(g2d, getExtremiteTete().x, getExtremiteTete().y, getExtremiteDroite().x,getExtremiteDroite().y); + if(getExtremiteQueue()!=null && getExtremiteDroite()!=null){ + traceligne.dessineTrait(g2d, getExtremiteQueue().x, getExtremiteQueue().y, getExtremiteDroite().x,getExtremiteDroite().y); }else{ // pas de segment complet, on trace juste les points existants if(getExtremiteDroite()!=null) @@ -231,6 +247,21 @@ _g.setColor(Color.GREEN); _g.fillRect(positionDeplacement_.x-3,positionDeplacement_.y-3,6,6); + //-- on dessine la droite qui va etre deplac\xE9e + int positionDroite=-1; + if(positionPointToMove_==ExtremiteTete) + positionDroite=ExtremiteQueue; + if(positionPointToMove_==ExtremiteQueue) + positionDroite=ExtremiteTete; + if(positionPointToMove_==ExtremiteDroite) + positionDroite=ExtremiteQueue; + if(positionPointToMove_==ExtremiteGauche) + positionDroite=ExtremiteQueue; + + + _g.drawLine(points_[positionDroite].x, points_[positionDroite].y, positionDeplacement_.x, positionDeplacement_.y); + + } @@ -446,8 +477,8 @@ model_=new TraceLigneModel(); modifieExtremite(new Point((int)(getWidth()-model_.getEpaisseur()),(int)(getHeight()/2.0-model_.getEpaisseur()/2.0)), ExtremiteTete); modifieExtremite(new Point((int)(0+model_.getEpaisseur()),(int)(getHeight()/2.0-model_.getEpaisseur()/2.0)), ExtremiteQueue); - modifieExtremite(new Point((int)(2.0/3.0*getWidth()),(int)(model_.getEpaisseur())), ExtremiteDroite); - modifieExtremite(new Point((int)(2.0/3.0*getWidth()),(int)(getHeight()-model_.getEpaisseur())), ExtremiteGauche); + modifieExtremite(new Point((int)(1.0/3.0*getWidth()),(int)(model_.getEpaisseur())), ExtremiteDroite); + modifieExtremite(new Point((int)(1.0/3.0*getWidth()),(int)(getHeight()-model_.getEpaisseur())), ExtremiteGauche); repaint(); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionAfficheOrigineCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionAfficheOrigineCourbe.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionAfficheOrigineCourbe.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -20,7 +20,7 @@ /** * Action utilis\xE9e uniquement pour les courbes unitaires (accessible via clic droit sur la courbe). - * @author genesis + * @author Adrien Hadoux * */ public static class CourbeOnly extends EGActionAfficheOrigineCourbe{ Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionReplayDataCourbe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionReplayDataCourbe.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGActionReplayDataCourbe.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -0,0 +1,73 @@ +package org.fudaa.ebli.courbe; + +import java.awt.event.ActionEvent; +import java.util.HashMap; + +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.ressource.EbliResource; + +/** + * Classe qui permet de rejouer els actions pour une courbe s\xE9lectionn\xE9e. + * Cette action est automatiquement ajout\xE9e dans le EGspecificAction qui liste les actions des courbes (asscessible via clic droit). + * Permet de rejouer les donn\xE9es des courbes. + * Il suffit de surcharger la methode replayData() de EGModel dans le model de courbe d\xE9sir\xE9. + * @author Adrien Hadoux + * + */ +public class EGActionReplayDataCourbe extends EbliActionSimple{ + + /** + * Action utilis\xE9e uniquement pour les courbes unitaires (accessible via clic droit sur la courbe). + * @author Adrien Hadoux + * + */ + public static class CourbeOnly extends EGActionReplayDataCourbe{ + EGModel model_; + EGGrapheTreeModel treemodel_; + public CourbeOnly(EGGrapheTreeModel treemodel,EGModel model,CtuluUI _impl){ + super(); + model_=model; + impl_=_impl; + treemodel_=treemodel; + } + public void actionPerformed(ActionEvent _e) { + if(model_!=null) + model_.replayData( treemodel_,new HashMap(),impl_); + } + } + + EGFillePanel panelGraphe_; + CtuluUI impl_; + EGGrapheTreeModel treemodel_; + public EGActionReplayDataCourbe(EGFillePanel _panel,CtuluUI _impl) { + this(); + panelGraphe_=_panel; + impl_=_impl; + treemodel_=(EGGrapheTreeModel)_panel.getModel(); + } + public EGActionReplayDataCourbe() { + super(EbliResource.EBLI.getString("Rejouer"),EbliResource.EBLI.getIcon("restore"), "REPLAYDATA"); + } + @Override + public void actionPerformed(ActionEvent _e) { + + if(panelGraphe_.getGraphe().getSelectedComponent()==null || !(panelGraphe_.getGraphe().getSelectedComponent() instanceof EGCourbe)){ + impl_.error(EbliResource.EBLI.getString("Aucune courbe s\xE9lectionn\xE9e"),EbliResource.EBLI.getString("Aucune courbe s\xE9lectionn\xE9e"),true); + return; + }else if(panelGraphe_.getGraphe().getSelectedComponent().getModel()==null || !(panelGraphe_.getGraphe().getSelectedComponent().getModel() instanceof EGModel)){ + impl_.error(EbliResource.EBLI.getString("Aucune courbe s\xE9lectionn\xE9e"),EbliResource.EBLI.getString("Aucune courbe s\xE9lectionn\xE9e"),true); + return; + } + + //-- on recupere la courbe selectionnee dans le graphe --// + + EGModel modelSelectionne=panelGraphe_.getGraphe().getSelectedComponent().getModel(); + + modelSelectionne.replayData(treemodel_,new HashMap(),impl_); + + + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeModelDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeModelDefault.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGCourbeModelDefault.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -16,6 +16,7 @@ import org.fudaa.ctulu.CtuluUI; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; + /** * @author Fred Deniger * @version $Id: EGCourbeModelDefault.java,v 1.17 2007-05-22 14:19:04 deniger Exp $ @@ -232,6 +233,12 @@ public void setPersistSpecificDatas(Object _data, Map _infos) {} + +public void replayData(EGGrapheTreeModel model,Map infos, CtuluUI impl) { + // TODO Auto-generated method stub + +} + //@Override //public String getUnite() { // // TODO Auto-generated method stub Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -13,6 +13,7 @@ import javax.swing.JComboBox; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluUI; import org.fudaa.ebli.commun.EbliActionInterface; import java.util.List; @@ -186,7 +187,7 @@ * Par exemple dans tr, le TrPostCourbeTreeModel retourne des actions d'ajout de variables pour les \xE9volutions temporelles. * @return */ - public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target); + public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui); } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheSimpleModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheSimpleModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheSimpleModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -29,6 +29,7 @@ import org.fudaa.ctulu.CtuluCommand; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.CtuluUI; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliLib; @@ -811,7 +812,7 @@ } -public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target) { +public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui) { // TODO Auto-generated method stub return null; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheTreeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGGrapheTreeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -32,6 +32,7 @@ import org.fudaa.ctulu.CtuluCommand; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.gui.CtuluTreeComboboxModel; import org.fudaa.ctulu.gui.CtuluTreeComboboxRenderer; import org.fudaa.ebli.commun.EbliActionInterface; @@ -1133,7 +1134,7 @@ } -public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target) { +public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui) { // TODO Auto-generated method stub return null; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -200,7 +200,17 @@ */ void viewGenerationSource(Map infos, CtuluUI impl); + + /** + * Methode qui une fois appel\xE9e se charge de creer un module ou interface qui permet de rejouer les donn\xE9es de la courbe. + * @param infos + * @param CtuluUI: l'implementation dans laquelle afficher les informations + */ + void replayData(EGGrapheTreeModel model, Map infos, CtuluUI impl); + + + /** * retourner les infos persistantes de la courbe du mod\xE8le. */ Object getPersistSpecificDatas(); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/EGSpecificActions.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -137,8 +137,12 @@ //-- action origine de la courbe. --// menu_.add(new EGActionAfficheOrigineCourbe.CourbeOnly(courbe.getModel(),ui_)); - if(target_.getModel().getSpecificsActionsCurvesOnly(target_)!=null) - for(EbliActionInterface action:target_.getModel().getSpecificsActionsCurvesOnly(target_)) + //-- action replay data --// + // menu_.add(new EGActionReplayDataCourbe.CourbeOnly(courbe.getModel(),ui_)); + + + if(target_.getModel().getSpecificsActionsCurvesOnly(target_,ui_)!=null) + for(EbliActionInterface action:target_.getModel().getSpecificsActionsCurvesOnly(target_,ui_)) menu_.add(action); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -29,6 +29,7 @@ import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.ebli.commun.EbliComponentFactory; import org.fudaa.ebli.courbe.EGActionAfficheOrigineCourbe; +import org.fudaa.ebli.courbe.EGActionReplayDataCourbe; import org.fudaa.ebli.courbe.EGCourbe; import org.fudaa.ebli.courbe.EGFillePanel; import org.fudaa.ebli.courbe.EGGraphe; @@ -515,6 +516,8 @@ BuPanel panelBoutons=new BuPanel(new FlowLayout(FlowLayout.LEFT)); EGActionAfficheOrigineCourbe origine=new EGActionAfficheOrigineCourbe(getGraphePanel(),getWidget().getEbliScene().getCtuluUi()); panelBoutons.add(origine.buildButton(EbliComponentFactory.INSTANCE)); + EGActionReplayDataCourbe replayData=new EGActionReplayDataCourbe(getGraphePanel(),getWidget().getEbliScene().getCtuluUi()); + panelBoutons.add(replayData.buildButton(EbliComponentFactory.INSTANCE)); BuPanel miseEnPage=new BuPanel(new BorderLayout()); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeDefautModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeDefautModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeDefautModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -15,6 +15,7 @@ import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluUI; import org.fudaa.dodico.mesure.EvolutionReguliereInterface; +import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGModel; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; import org.fudaa.fudaa.commun.FudaaLib; @@ -180,4 +181,8 @@ public void viewGenerationSource(Map infos, CtuluUI impl){ } + public void replayData(EGGrapheTreeModel model,Map infos, CtuluUI impl) { + // TODO Auto-generated method stub + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeTimeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeTimeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/courbe/FudaaCourbeTimeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -14,6 +14,7 @@ import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluRange; import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGModel; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; @@ -223,4 +224,8 @@ public void viewGenerationSource(Map infos, CtuluUI impl){ } + public void replayData(EGGrapheTreeModel model,Map infos, CtuluUI impl) { + // TODO Auto-generated method stub + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTreeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -42,6 +42,8 @@ import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.dodico.mesure.EvolutionReguliere; import org.fudaa.dodico.mesure.EvolutionReguliereInterface; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.courbe.EGActionReplayDataCourbe; import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbe; import org.fudaa.ebli.courbe.EGCourbeChild; @@ -58,6 +60,7 @@ import org.fudaa.fudaa.meshviewer.MvResource; import org.fudaa.fudaa.meshviewer.export.MvExportChooseVarAndTime; import org.fudaa.fudaa.tr.post.ScopCourbeTreeModel; + import org.fudaa.fudaa.tr.post.TrPostCourbeModel; import org.fudaa.fudaa.tr.post.TrPostProjet; import org.fudaa.fudaa.tr.post.TrPostSource; @@ -820,5 +823,20 @@ //-- remplissage du model avec les datas--// dataPersistante.fillModelWithData(this,Params); } + + + /** + * Les actions des courbes specifiques: l'ajout de variable. + */ + public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui) { + List<EbliActionInterface> listeActions=new ArrayList<EbliActionInterface>(); + + + //-- action replay data --// + listeActions.add(new EGActionReplayDataCourbe.CourbeOnly(this,this.getSelectedComponent().getModel(),ui)); + return listeActions; + + } + } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/ScopCourbeTreeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -5,12 +5,16 @@ import java.util.List; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.dodico.mesure.EvolutionReguliere; import org.fudaa.dodico.mesure.EvolutionReguliereInterface; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.courbe.EGActionReplayDataCourbe; import org.fudaa.ebli.courbe.EGCourbe; import org.fudaa.ebli.courbe.EGCourbeChild; +import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheDuplicator; import org.fudaa.ebli.courbe.EGGrapheModel; import org.fudaa.ebli.courbe.EGGroup; @@ -137,5 +141,18 @@ public String getSelectedSpecificCourbeInfos(){ return null; } + + /** + * Les actions des courbes specifiques: l'ajout de variable. + */ + public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui) { + List<EbliActionInterface> listeActions=new ArrayList<EbliActionInterface>(); + + + //-- action replay data --// + listeActions.add(new EGActionReplayDataCourbe.CourbeOnly(this,this.getSelectedComponent().getModel(),ui)); + return listeActions; + + } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -36,6 +36,7 @@ import org.fudaa.ebli.courbe.EGModel; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; import org.fudaa.ebli.visuallibrary.EbliWidget; + import org.fudaa.fudaa.commun.courbe.FudaaCourbeTime; import org.fudaa.fudaa.commun.courbe.FudaaCourbeTimeModel; import org.fudaa.fudaa.tr.common.TrResource; @@ -446,6 +447,8 @@ */ public abstract boolean replayData(TrPostSource src,H2dVariableType var,EGGroup groupe,Map infos); + + public void setPersistSpecificDatas(Object data, Map infos) { if(data ==null || !(data instanceof ArrayList))return; @@ -534,4 +537,17 @@ TrReplayCurvesData.getInstance().constructEvolTemporelleOrigine(this, implementation); } + + public void replayData(org.fudaa.ebli.courbe.EGGrapheTreeModel model,Map infos, CtuluUI impl) { + if(!(impl instanceof TrPostCommonImplementation)){ + impl.error(TrResource.getS("Impossible de r\xE9cup\xE9rer la bonne interface fudaa")); + return; + } + TrPostCommonImplementation implementation=(TrPostCommonImplementation)impl; + + //-- on cree une vue 2d a partir du fichier source fourni et on le centre sur le point interpol\xE9 ou non --// + TrReplayCurvesData.getInstance().constructEvolTemporelleReplayData((TrPostCourbeTreeModel)model, this, implementation); + + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -25,6 +25,7 @@ import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.ProgressionUpdater; import org.fudaa.ctulu.gis.GISPrecision; @@ -32,6 +33,7 @@ import org.fudaa.dodico.mesure.EvolutionReguliere; import org.fudaa.dodico.mesure.EvolutionReguliereInterface; import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.courbe.EGActionReplayDataCourbe; import org.fudaa.ebli.courbe.EGAxeHorizontal; import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbe; @@ -1071,12 +1073,13 @@ /** * Les actions des courbes specifiques: l'ajout de variable. */ - public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target) { + public List<EbliActionInterface> getSpecificsActionsCurvesOnly(EGGraphe _target,CtuluUI ui) { List<EbliActionInterface> listeActions=new ArrayList<EbliActionInterface>(); //-- action d'ajout des variables --// listeActions.add(new TrPostCourbeAddVariableAction(projet_.impl_, _target)); - + //-- action replay data --// + listeActions.add(new EGActionReplayDataCourbe.CourbeOnly(this,this.getSelectedComponent().getModel(),ui)); return listeActions; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrReplayCurvesData.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrReplayCurvesData.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrReplayCurvesData.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -1,35 +1,74 @@ package org.fudaa.fudaa.tr.post; +import java.awt.BorderLayout; +import java.awt.Checkbox; import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GridLayout; import java.awt.Rectangle; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import java.util.Vector; +import javax.swing.AbstractButton; import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.JToolBar; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; +import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.gis.GISZoneCollectionPoint; import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluLibSwing; +import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.ebli.calque.BArbreCalque; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BCalqueLegende; +import org.fudaa.ebli.calque.BCalquePaletteInfo; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.ZCalquePoint; +import org.fudaa.ebli.calque.ZCalqueSondeInteraction; +import org.fudaa.ebli.calque.action.CalqueActionSonde; +import org.fudaa.ebli.calque.action.EbliCalqueActionTimeChooser; import org.fudaa.ebli.calque.edition.ZModelePointEditable; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliActionPaletteAbstract; +import org.fudaa.ebli.commun.EbliComponentFactory; +import org.fudaa.ebli.controle.BSelecteurListComboBox; import org.fudaa.ebli.courbe.EGModel; +import org.fudaa.ebli.palette.BPaletteInfo; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.ebli.visuallibrary.calque.CalqueLegendeWidgetAdapter; import org.fudaa.fudaa.meshviewer.profile.MVProfileCourbeModel; import org.fudaa.fudaa.sig.layer.FSigEditor; +import org.fudaa.fudaa.sig.layer.FSigLayerGroup; import org.fudaa.fudaa.sig.layer.FSigLayerPointEditable; import org.fudaa.fudaa.tr.common.TrResource; +import org.fudaa.fudaa.tr.data.TrGisProjectEditor; +import org.openide.util.actions.Presenter.Toolbar; import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuBorders; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuList; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuScrollPane; +import com.memoire.bu.BuToolBar; +import com.memoire.fu.FuComparator; +import com.sun.corba.se.impl.ior.NewObjectKeyTemplateBase; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.LineString; @@ -56,6 +95,8 @@ private TrPostSource srcMemoire_; + private Checkbox ecraser_=new Checkbox("Ecraser la courbe cible",true); + public static TrReplayCurvesData getInstance(){ if(instance_==null) @@ -71,7 +112,7 @@ * @param src * @return */ - private TrPostVisuPanel createVue2d(TrPostCommonImplementation implementation,TrPostSource src){ + private TrPostVisuPanel constructVue2d(TrPostCommonImplementation implementation,TrPostSource src){ //-- petite optimisation --// if(srcMemoire_!=null && memoire_!=null && srcMemoire_==src) return memoire_; @@ -79,7 +120,7 @@ BCalqueLegende legende=new BCalqueLegende(); TrPostVisuPanel vue2d=new TrPostVisuPanel(implementation,implementation.c_,legende,src); vue2d.removeCalqueLegend(); - + vue2d.restaurer(); Rectangle rec=new Rectangle(300,300); vue2d.setPreferredSize(new Dimension(300,300)); @@ -94,28 +135,140 @@ return vue2d; } + BSelecteurListComboBox comboVar_=null; + + + + public JToolBar constructToolBarVue2d(TrPostVisuPanel vue2d){ + JToolBar toolbarCalque = new BuToolBar(); + AbstractButton boutonSelection=null; + //final EbliActionInterface[] actions =vue2d.getController().getSelectedNavigationAndStandardActionGroup(); + final List actions = vue2d.getController().getSelectedNavigationAndStandardActionGroup(); + int i=0; + for (final Iterator iterator = actions.iterator(); iterator.hasNext();) { + // for (int i=0;i<actions.length;i++) { + final EbliActionInterface object = (EbliActionInterface) iterator.next();//actions[i]; + if (object == null) { + toolbarCalque.addSeparator(); + } else { + + if(i==0){ + boutonSelection=object.buildToolButton(EbliComponentFactory.INSTANCE); + toolbarCalque.add(boutonSelection); + }else + toolbarCalque.add(object.buildToolButton(EbliComponentFactory.INSTANCE)); + } + i++; + } + + //-- ajout de l'action sonde --// + final ZCalqueSondeInteraction sonde = vue2d.getController().addCalqueSondeInteraction(); + toolbarCalque.add(new CalqueActionSonde(sonde, vue2d.getArbreCalqueModel())); + + //-- activer par d\xE9faut l'action selection de points --// + if(boutonSelection!=null) + boutonSelection.doClick(); + + + + //-- ajout des variables + pas de temps --// + if(comboVar_!=null) + vue2d.getArbreCalqueModel().getTreeSelectionModel().removeTreeSelectionListener(comboVar_); + comboVar_ = new BSelecteurListComboBox(); + vue2d.getArbreCalqueModel().getTreeSelectionModel().addTreeSelectionListener(comboVar_); + comboVar_.setPalettePanelTarget(vue2d.getArbreCalqueModel().getSelectedCalque()); + comboVar_.setPreferredSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + comboVar_.getCb().setMaximumSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + comboVar_.getCb().setMinimumSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + toolbarCalque.add(comboVar_); + + //-- construction de la liste des pas de temps --// + final EbliCalqueActionTimeChooser chooserT = new EbliCalqueActionTimeChooser(vue2d.getArbreCalqueModel() + .getTreeSelectionModel(), true); + // pour activer l'action + chooserT.setSelected(true); + final BSelecteurListComboBox combo = (BSelecteurListComboBox) chooserT.buildContentPane(); + chooserT.updateBeforeShow(); + combo.setPreferredSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + combo.getCb().setMaximumSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + combo.getCb().setMinimumSize(new Dimension(Math.max(comboVar_.getPreferredSize().width,100),comboVar_.getPreferredSize().height)); + + toolbarCalque.add(combo); + + return toolbarCalque; + + } + /** * Cree la dialog qui affiche tout le contenu d'origine du graphe. * @param vue2d * @param implementation * @param modele */ - private void createDialogOrigine(TrPostVisuPanel vue2d, TrPostCommonImplementation implementation, EGModel modele,JComponent composantAdditionnel){ - //final JScrollPane arbreVue2d = new JScrollPane(new BArbreCalque(vue2d.getArbreCalqueModel())); + private CtuluDialogPanel constructDialog(TrPostVisuPanel vue2d, TrPostCommonImplementation implementation, EGModel modele,JComponent composantAdditionnel,boolean modeEdition,String title){ implementation.createTask(TrResource.getS("Origine ")+" "+modele.getTitle()); final CtuluDialogPanel pn = new CtuluDialogPanel(false); pn.setLayout(new BuBorderLayout()); pn.setBorder(BuBorders.EMPTY3333); //pn.add(new BuLabel(CtuluLib.getS("S\xE9lectionner le fichier r\xE9sultat")), BuBorderLayout.NORTH); pn.add(vue2d,BuBorderLayout.CENTER); + + + if(composantAdditionnel!=null) pn.add(composantAdditionnel,BuBorderLayout.EAST); - //pn.add(arbreVue2d,BuBorderLayout.EAST); - pn.add(vue2d.getLabelSuiviSouris(),BuBorderLayout.SOUTH); - pn.afficheModale(implementation.getParentComponent(), TrResource.getS("Origine ")+" "+modele.getTitle()); + JPanel panelSouth=new JPanel(new FlowLayout(FlowLayout.LEFT)); + panelSouth.add(vue2d.getLabelSuiviSouris()); - implementation.clearMainProgression(); + JPanel panelTotalSouth=new JPanel(new GridLayout(2,1)); + + if(title!=null){ + panelTotalSouth.add(new JLabel(title)); + }else + panelTotalSouth.add(new JLabel("")); + + panelTotalSouth.add(panelSouth); + + pn.add(panelTotalSouth,BuBorderLayout.SOUTH); + + if(modeEdition){ + + //-- ajout de la toolbar --// + pn.add(constructToolBarVue2d(vue2d),BorderLayout.NORTH); + + //-- ajout de la palette d'infos --// + final Collection<EbliActionPaletteAbstract> acts =vue2d.getController().getTabPaletteAction(); + BPaletteInfo comp=null; + for (final EbliActionPaletteAbstract pals : acts) { + final JComponent component = pals.buildContentPane(); + if (component instanceof BCalquePaletteInfo) { + comp=(BPaletteInfo) component; + comp.setAvailable(true); + comp.updateState(); + pals.setEnabled(true); + pals.updateBeforeShow(); + // comp.setMaximumSize(new Dimension(180,300)); + // comp.setPreferredSize(new Dimension(180,300)); + pn.add(comp,BuBorderLayout.EAST); + + } + } + panelSouth.add(this.ecraser_); + //final JScrollPane arbreVue2d = new JScrollPane(new BArbreCalque(vue2d.getArbreCalqueModel())); + //arbreVue2d.setPreferredSize(new Dimension(200,300)); + //arbreVue2d.setMaximumSize(new Dimension(200,300)); + //pn.add(arbreVue2d,BuBorderLayout.WEST); + + + + } + + + + return pn; + + } /** @@ -125,7 +278,7 @@ public void constructEvolTemporelleOrigine(TrPostCourbeModel modele,TrPostCommonImplementation implementation){ //-- on cree une vue 2d a partir du fichier source fourni et on le centre sur le point interpol\xE9 ou non --// - TrPostVisuPanel vue2d=createVue2d(implementation,modele.source_); + TrPostVisuPanel vue2d=constructVue2d(implementation,modele.source_); //-- on affiche sur la vue 2d les points initialement choisis --// GISZoneCollectionPoint collectionPoint=new GISZoneCollectionPoint(); @@ -135,29 +288,29 @@ //point reel int indiceNoeud=((Integer) point).intValue(); // recherche du point cot\xE9 grille - coordonneesPoint=modele.source_.getGrid().getCoor(indiceNoeud); - + coordonneesPoint=modele.source_.getGrid().getCoor(indiceNoeud); + }else{ TrPostInterpolatePoint pt=(TrPostInterpolatePoint) point; coordonneesPoint=new Coordinate(pt.x_,pt.y_,0); } //-- ajout des coordonnees --// collectionPoint.add(coordonneesPoint.x, coordonneesPoint.y,0); - - + + ZModelePointEditable modelePointEdit=new ZModelePointEditable(collectionPoint); //-- creation du calque -// FSigEditor editeur=new FSigEditor(vue2d,vue2d.getCmdMng()); -// FSigLayerPointEditable layer=new FSigLayerPointEditable(modelePointEdit,editeur); -// editeur.getFrame().setVisible(true); - - -// FSigLayerPointEditable layer2=new FSigLayerPointEditable(); -// layer2.addAtome((int)coordonneesPoint.x, (int)coordonneesPoint.y, vue2d.getCmdMng(), implementation); -// layer2.setVisible(true); -// vue2d.addCalque(layer2, true); - + // FSigEditor editeur=new FSigEditor(vue2d,vue2d.getCmdMng()); + // FSigLayerPointEditable layer=new FSigLayerPointEditable(modelePointEdit,editeur); + // editeur.getFrame().setVisible(true); + + + // FSigLayerPointEditable layer2=new FSigLayerPointEditable(); + // layer2.addAtome((int)coordonneesPoint.x, (int)coordonneesPoint.y, vue2d.getCmdMng(), implementation); + // layer2.setVisible(true); + // vue2d.addCalque(layer2, true); + ZCalquePoint calqueZ=new ZCalquePoint(modelePointEdit); //calqueZ.setVisible(true); //calqueZ.setLineModel(0, new TraceLigneModel(1,2,Color.BLACK)); @@ -165,12 +318,16 @@ vue2d.addCalque(calqueZ, true); calqueZ.setVisible(true); //-- on affiche le contenu dans une dialog--// - createDialogOrigine(vue2d, implementation, modele,null); + constructDialog(vue2d, implementation, modele,null,false,TrResource.getS("Origine ")+" "+modele.getTitle()+". Le point est encadr\xE9 en bleu").afficheModale(implementation.getParentComponent(), TrResource.getS("Origine ")+" "+modele.getTitle());; } - + /** + * Affiche une dialog avec une vue 2d qui affiche l'ensemble des points de la polyligne utilis\xE9e pour la construction du graphe. + * @param modele + * @param implementation + */ public void constructProfilSpatialOrigine(MVProfileCourbeModel modele,TrPostCommonImplementation implementation){ if(modele.getData() instanceof TrPostSource){} @@ -182,9 +339,9 @@ implementation.error(TrResource.getS("Erreur"), TrResource.getS("Impossible de r\xE9cup\xE9rer la polyligne"), true); return; } - + //-- on cree une vue 2d a partir du fichier source fourni et on le centre sur le point interpol\xE9 ou non --// - TrPostVisuPanel vue2d=createVue2d(implementation,(TrPostSource)modele.getData()); + TrPostVisuPanel vue2d=constructVue2d(implementation,(TrPostSource)modele.getData()); //-- on affiche sur la vue 2d les points initialement choisis --// GISZoneCollectionPoint collectionPoint=new GISZoneCollectionPoint(); @@ -195,11 +352,11 @@ collectionPoint.add(listePoints.getCoordinateN(i).x,listePoints.getCoordinateN(i).y,0); dataP[i][0]=listePoints.getCoordinateN(i).x; dataP[i][1]=listePoints.getCoordinateN(i).y; - + } ZModelePointEditable modelePointEdit=new ZModelePointEditable(collectionPoint); - + ZCalquePoint calqueZ=new ZCalquePoint(modelePointEdit); //calqueZ.setVisible(true); //calqueZ.setLineModel(0, new TraceLigneModel(1,2,Color.BLACK)); @@ -221,13 +378,164 @@ JScrollPane pane=new JScrollPane(tableauVal); //pane.setMaximumSize(new Dimension(200,300)); pane.setPreferredSize(new Dimension(200,300)); + + constructDialog(vue2d, implementation, modele,pane,false,TrResource.getS("Origine ")+" "+modele.getTitle()+". Les points de la polyligne sont encadr\xE9s en bleu").afficheModale(implementation.getParentComponent(), TrResource.getS("Origine ")+" "+modele.getTitle());; + + } + + + + /** + * Constructeur d'une dialog qui affiche la vue 2d avec le point initial qui a servi a la creation du modele. + * Ajoute \xE9galement la liste des variables \xE0 choisir. Il est possible dans la vue de s\xE9lectionner un autre point ou plusieurs. + * LA validation de la frame permettra de r\xE9cup\xE9rer les nouveaux point ainsi que les variables qui seront utilis\xE9es pour refaire le calcul. + * @param modele + */ + public void constructEvolTemporelleReplayData(TrPostCourbeTreeModel treeModel,TrPostCourbeModel modele,TrPostCommonImplementation implementation){ + + //-- on cree une vue 2d a partir du fichier source fourni et on le centre sur le point interpol\xE9 ou non --// + TrPostVisuPanel vue2d=constructVue2d(implementation,modele.source_); + + //-- on affiche sur la vue 2d les points initialement choisis --// + GISZoneCollectionPoint collectionPoint=new GISZoneCollectionPoint(); + Object point=modele.getSelectionPoint(); + Coordinate coordonneesPoint=null; + if(point instanceof Integer){ + //point reel + int indiceNoeud=((Integer) point).intValue(); + // recherche du point cot\xE9 grille + coordonneesPoint=modele.source_.getGrid().getCoor(indiceNoeud); + + }else{ + TrPostInterpolatePoint pt=(TrPostInterpolatePoint) point; + coordonneesPoint=new Coordinate(pt.x_,pt.y_,0); + } + //-- ajout des coordonnees --// + collectionPoint.add(coordonneesPoint.x, coordonneesPoint.y,0); + + + ZModelePointEditable modelePointEdit=new ZModelePointEditable(collectionPoint); + + //-- creation du calque + FSigLayerPointEditable layer2=new FSigLayerPointEditable(modelePointEdit,vue2d.getGisEditor()); + layer2.setVisible(true); + layer2.setIconModel(0, new TraceIconModel(TraceIcon.CARRE_SELECTION,5,Color.RED)); + layer2.setEnabled(true); + + + //groupeCalque.addPointLayerAct("Origine", new GISZoneCollectionPoint()); + BCalque resultatsCalque=vue2d.getCalqueActif(); + vue2d.addCalque(layer2, true); + vue2d.setCalqueActif(resultatsCalque); + //vue2d.addCalque(layer2, true); + + // ZCalquePoint calqueZ=new ZCalquePoint(modelePointEdit); + // //calqueZ.setVisible(true); + // //calqueZ.setLineModel(0, new TraceLigneModel(1,2,Color.BLACK)); + // calqueZ.setIconModel(0, new TraceIconModel(TraceIcon.CARRE_SELECTION,3,Color.blue)); + // vue2d.addCalque(calqueZ, true); + // calqueZ.setVisible(true); + + //-- creation du panel de choix des variables a selectionner --// + + //-- on affiche le contenu dans une dialog--// + //final Set var = new HashSet(Arrays.asList(modele.source_.getAllVariablesNonVec())); + //final H2dVariableType[] vars = (H2dVariableType[]) var.toArray(new H2dVariableType[var.size()]); + String title=TrResource.getS("Choisir le point et la variable qui seront utilis\xE9s pour refaire le calcul(interpolation possible). Le point rouge d\xE9signe le point d'origine."); - createDialogOrigine(vue2d, implementation, modele,pane); + CtuluDialogPanel dialog=constructDialog(vue2d, implementation, modele,/*constructSelectorVariable(vars)*/null,true,title); + + //-- on restaure la vue --// + vue2d.setSize(300, 300); + vue2d.restaurer(); + + //-- on affiche tant que l'utilisateur valide des r\xE9sultats faux --// + while(CtuluDialogPanel.isOkResponse(dialog.afficheModale(implementation.getParentComponent(), TrResource.getS("Rejouer ")+" "+modele.getTitle())) && !replayEvolutionFor(vue2d,treeModel,modele,implementation)){ + + } + + } - + /** + * Methode qui v\xE9rifie et remplit les bons parametres d'entree avec les nouveaut\xE9s + */ + public boolean replayEvolutionFor(TrPostVisuPanel vue2d,TrPostCourbeTreeModel tree,TrPostCourbeModel modele,TrPostCommonImplementation implementation){ + H2dVariableType newVariable=null; + int newPointReel=-1; + TrPostInterpolatePoint newPointInterpole=null; + if (vue2d.isSelectionOkForEvolution()) { + final ZCalqueAffichageDonnees calque = (ZCalqueAffichageDonnees) vue2d.getCalqueActif(); + final int[] idx = calque.getLayerSelection().getSelectedIndex(); + H2dVariableType selectedVar = null; + if (calque instanceof TrIsoLayer) { + selectedVar = ((TrIsoLayer) calque).getIsoModel().getVariableSelected(); + } else if (calque instanceof TrPostFlecheLayer) { + selectedVar = ((TrPostFlecheLayer) calque).getSelectedVar(); + } + //-- cas point reel + newVariable=selectedVar; + newPointReel=idx[0]; + //-- on rejoue les donn\xE9es avec les nouvelles valeurs --// + if(this.ecraser_.getState()){ + implementation.message("La courbe actuelle de mod\xE8le: variable:"+modele.getVar()+", point N\xB0 "+modele.getSelectionPoint()+" va \xEAtre recalcul\xE9e pour les donn\xE9es suivantes:\n" + +"Variable: "+newVariable.getName()+", point N\xB0 "+newPointReel); + + modele.var_=newVariable; + //modele. + + }else{ + implementation.message("Une nouvelle courbe \xE9volution temporelle va \xEAtre calcul\xE9e pour la variable: "+newVariable.getName()+", et le point N\xB0 "+newPointReel+"La courbe actuelle ne sera pas \xE9cras\xE9e.\n"); + Set varToadd=new HashSet<H2dVariableType>(); + varToadd.add(newVariable); + int[] listeInt=new int[1]; + listeInt[0]=newPointReel; + tree.addPoints(modele.source_,listeInt, vue2d.getCmdMng(), implementation.getMainProgression(),varToadd ); + } + + return true; + + } else if (vue2d.isSelectionOkForEvolutionSonde()) { + //-- cas point interpol\xE9 --// + newVariable=vue2d.getSelectedVarInCalqueActif(); + newPointInterpole=vue2d.getInterpolePointForEvol(); + + //-- on rejoue les donn\xE9es avec les nouvelles valeurs --// + implementation.message("La courbe actuelle de mod\xE8le: variable:"+modele.getVar()+", point N\xB0 "+modele.getSelectionPoint()+" va \xEAtre recalcul\xE9e pour les donn\xE9es suivantes:\n" + +"Variable: "+newVariable.getName()+", point interpol\xE9 ("+newPointInterpole.x_+";"+newPointInterpole.y_+")"); + return true; + } else { + JOptionPane.showMessageDialog(null, "Erreur il faut choisir un seul point afin de recalculer les donn\xE9es de la courbe","erreur",JOptionPane.ERROR_MESSAGE); + return false; + + + } + } + + + /** + * Construit le selecteur de variable en utilisant un BuList. + * Pour r\xE9cup\xE9rer les variables, il suffit de faire l.getSelectedValues(); + * @param listeVar + * @param _title + * @param _parent + * @return + */ + public static JComponent constructSelectorVariable(final Object[] listeVar) { + Arrays.sort(listeVar, FuComparator.STRING_COMPARATOR); + final BuList l = CtuluLibSwing.createBuList(listeVar); + final BuPanel pn = new BuPanel(); + pn.setLayout(new BuBorderLayout()); + pn.setBorder(BuBorders.EMPTY3333); + pn.add(new BuLabel(CtuluLib.getS("S\xE9lectionner les variables \xE0 ajouter")), BuBorderLayout.NORTH); + pn.add(new BuScrollPane(l)); + // if (CtuluDialogPanel.isOkResponse(pn.afficheModale(_parent, _title))) { return l.getSelectedValues(); } + return pn; + } + + } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacBoundaryCourbeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacBoundaryCourbeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacBoundaryCourbeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -18,9 +18,11 @@ import org.fudaa.dodico.h2d.telemac.H2dTelemacBoundaryCondition; import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.ebli.courbe.EGCourbeModelDefault; +import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGModel; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; + /** * @author Fred Deniger * @version $Id: TrTelemacBoundaryCourbeModel.java,v 1.20 2007-05-22 14:20:38 deniger Exp $ @@ -257,4 +259,8 @@ public void viewGenerationSource(Map infos, CtuluUI impl){ } + public void replayData(EGGrapheTreeModel model,Map infos, CtuluUI impl) { + // TODO Auto-generated method stub + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacWeirCourbeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacWeirCourbeModel.java 2009-01-19 17:45:43 UTC (rev 4382) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacWeirCourbeModel.java 2009-01-19 19:40:40 UTC (rev 4383) @@ -20,6 +20,7 @@ import org.fudaa.ebli.courbe.EGModel; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; + /** * @author Fred Deniger * @version $Id: TrTelemacWeirCourbeModel.java,v 1.14 2007-05-22 14:20:38 deniger Exp $ @@ -179,4 +180,8 @@ public void viewGenerationSource(Map infos, CtuluUI impl){ } + public void replayData(org.fudaa.ebli.courbe.EGGrapheTreeModel model,Map infos, CtuluUI impl) { + // TODO Auto-generated method stub + + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |