You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <opa...@us...> - 2008-08-05 15:08:05
|
Revision: 3710 http://fudaa.svn.sourceforge.net/fudaa/?rev=3710&view=rev Author: opasteur Date: 2008-08-05 15:08:13 +0000 (Tue, 05 Aug 2008) Log Message: ----------- Modified Paths: -------------- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/mascaret/MascaretImplementation.java Modified: trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/mascaret/MascaretImplementation.java =================================================================== --- trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/mascaret/MascaretImplementation.java 2008-08-05 07:51:22 UTC (rev 3709) +++ trunk/fudaa_devel/fudaa/src/org/fudaa/fudaa/mascaret/MascaretImplementation.java 2008-08-05 15:08:13 UTC (rev 3710) @@ -15,8 +15,10 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Map; import javax.swing.JCheckBox; @@ -244,6 +246,7 @@ removeAction("DUPLIQUER"); removeAction("CREER"); removeAction("INDEX_THEMA"); + removeAction("POINTEURAIDE"); //fred inutile fait par FudaaCommonImplementation ((BuMenu)mb.getMenu("MENU_EDITION")).addMenuItem( "Console", @@ -450,6 +453,10 @@ paramsGenerauxQualiteDEau(); } else if (action.equals("PARAM_RESULTAT_POUR_QUALITEDEAU")) { paramsGResultatPourQualiteDEau(); + /* } else if (action.equals("AIDE_INDEX")) { + //final FudaaHelpPanel panel = getHelpPanel(); + //panel.showHelp(); + */ } else if ( action.equals("ASSISTANT") || action.equals("TACHE") @@ -2173,6 +2180,29 @@ } +///On surcharge displayHelp pour pouvoir modifier le nom de l'application, +//le nom utilis\xE9 \xE9tant celui fournit dans isApp_.name + public void displayHelp(final String _url) { + super.displayHelp(FuLib.replace(_url,"fudaa-mascaret","src\\mascaret")); + } + + + public void contextHelp(String _url) { + System.err.println("MascaretImplementation contextHelp called"+_url); + + try { + + if (_url==null || _url.length()==0) _url ="mascaret/index.html"; + + _url= "aide\\src\\"+_url; + System.err.println(_url); + displayURL(_url); + + } catch (Exception ex) { + + ex.printStackTrace(); + } + } /* private void setEtat(int etat_) { etat= etat_; }*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-05 07:51:16
|
Revision: 3709 http://fudaa.svn.sourceforge.net/fudaa/?rev=3709&view=rev Author: hadouxad Date: 2008-08-05 07:51:22 +0000 (Tue, 05 Aug 2008) Log Message: ----------- AFFECT?\195?\137 - # 40: L?\195?\169gende pour les courbe 1d http://mantis.genesis-groupe.com//view.php?id=40 - creation du package visual librarie - creation de EbliWidget - creation de LineWidget : dessin de la ligne et icone - creation de TitleWidget : label du titre Les libell?\195?\169s et couleurs icones se mettent a jour a la modification de la conf de la courbe Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -0,0 +1,35 @@ +package org.fudaa.ebli.visuallibrary; + +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.laf.LookFeel; +import org.netbeans.api.visual.model.ObjectState; +import org.netbeans.api.visual.widget.Scene; +import org.netbeans.api.visual.widget.Widget; + + +/** + * Widget version EBLI + * @author genesis + * + */ +class EbliWidget extends Widget { + + /** + * @param scene + */ + public EbliWidget(Scene scene) { + super(scene); + getActions().addAction( ActionFactory.createResizeAction()); + getActions().addAction(ActionFactory.createMoveAction()); + getActions().addAction(scene.createWidgetHoverAction());//a voir pour que le parent soit + //aussi en hover : a voir apr\xE8s. + setBorder(getScene().getLookFeel().getMiniBorder(ObjectState.createNormal())); + } + + @Override + public void notifyStateChanged(ObjectState previousState, ObjectState newState) { + LookFeel lookFeel = getScene().getLookFeel(); + setBorder(lookFeel.getMiniBorder(newState)); + } + +} \ No newline at end of file Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -0,0 +1,52 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.Rectangle; + +import org.fudaa.ebli.courbe.EGCourbe; +import org.fudaa.ebli.trace.TraceIcon; +import org.fudaa.ebli.trace.TraceIconModel; +import org.fudaa.ebli.trace.TraceLigne; +import org.netbeans.api.visual.widget.Scene; + + +/** + * Legende + * Widget qui contient le trac\xE9 de la ligne de la l\xE9gende courbe + * @author genesis + * + */ +public class LineWidget extends EbliWidget { + + EGCourbe cb_; + + /** + * @param _scene + */ + public LineWidget(Scene _scene, EGCourbe _cb) { + super(_scene); + cb_ = _cb; + setMinimumSize(new Dimension(30, 10)); + setPreferredSize(new Dimension(40, 10)); + } + + /** + * + */ + @Override + protected void paintWidget() { + Graphics2D g = getGraphics(); + Rectangle rec = getClientArea(); + g.translate(rec.x, rec.y); + //la ligne + TraceLigne l = new TraceLigne(cb_.getLigneModel()); + l.dessineTrait(g, 0, rec.height / 2, rec.width, rec.height / 2); + //l'icone + TraceIconModel icm = new TraceIconModel(cb_.getIconModel()); + icm.setTaille(Math.min(rec.width / 2, rec.height));//a voir + TraceIcon ic = new TraceIcon(icm); + ic.paintIconCentre(g, rec.width / 2, rec.height / 2); + g.translate(-rec.x, -rec.y); + } +} Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -0,0 +1,57 @@ +package org.fudaa.ebli.visuallibrary; + +import org.fudaa.ebli.courbe.EGCourbe; +import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; +import org.netbeans.api.visual.widget.LabelWidget; +import org.netbeans.api.visual.widget.Scene; +import org.netbeans.modules.visual.layout.FlowLayout; + + +/** + * Legende + * Widget qui contient le titre de la ligne de la l\xE9gende courbe + * @author genesis + * + */ +public class TitleWidget extends EbliWidget { + + EGCourbe cb_; + + LabelWidget intern; + + /** + * @param _scene + */ + public TitleWidget(Scene _scene, EGCourbe _cb) { + super(_scene); + setLayout(new FlowLayout(true, SerialAlignment.LEFT_TOP, 0)); + intern = new LabelWidget(_scene); + intern.setForeground(_cb.getAspectContour()); + addChild(intern); + setCourbe(_cb); + } + + public void majLabel(){ + intern.setForeground(cb_.getAspectContour()); + intern.setLabel(cb_.getTitle()); + } + + + /** + * @return the cb_ + */ + public EGCourbe getCourbe() { + return cb_; + } + + /** + * @param _cb the cb_ to set + */ + public void setCourbe(EGCourbe _cb) { + this.cb_ = _cb; + if (cb_ != null) { + intern.setLabel(cb_.getTitle()); + } + } + +} \ No newline at end of file Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -0,0 +1,108 @@ +package org.fudaa.ebli.visuallibrary; + + + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.Rectangle; + +import javax.swing.JFrame; +import javax.swing.JPanel; + +import org.fudaa.ctulu.iterator.LogarithmicNumberIterator; +import org.fudaa.ebli.courbe.EGAxe; +import org.fudaa.ebli.courbe.EGAxeHorizontal; +import org.fudaa.ebli.courbe.EGAxeVertical; +import org.fudaa.ebli.courbe.EGCourbe; +import org.fudaa.ebli.courbe.EGCourbeChild; +import org.fudaa.ebli.courbe.EGCourbeModelDefault; +import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.ebli.courbe.EGGrapheModelListener; +import org.fudaa.ebli.courbe.EGGrapheTreeModel; +import org.fudaa.ebli.courbe.EGGroup; +import org.fudaa.ebli.courbe.EGObject; +import org.fudaa.ebli.trace.TraceIcon; +import org.fudaa.ebli.trace.TraceIconModel; +import org.fudaa.ebli.trace.TraceLigne; +import org.fudaa.ebli.trace.TraceLigneModel; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.graph.GraphScene; +import org.netbeans.api.visual.laf.LookFeel; +import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; +import org.netbeans.api.visual.model.ObjectState; +import org.netbeans.api.visual.widget.LabelWidget; +import org.netbeans.api.visual.widget.LayerWidget; +import org.netbeans.api.visual.widget.Scene; +import org.netbeans.api.visual.widget.Widget; +import org.netbeans.modules.visual.layout.FlowLayout; + +/** + * @author denf01a adrien hadous + * @creation 5 ao\xFBt 2008 + * @version + * + */ +public class WidgetLegendeManager { + + + + //exemple a ameliorer + public static EbliWidget createLegende(EGGraphe g, Scene scene) { + EGCourbe[] cs = g.getModel().getCourbes(); + EbliWidget res = new EbliWidget(scene); + res.setLayout(new FlowLayout(true, SerialAlignment.LEFT_TOP, 10));// a modifier pour setter le gap + for (int i = 0; i < cs.length; i++) { + final EbliWidget line = new EbliWidget(scene); + line.setLayout(new FlowLayout(false, SerialAlignment.CENTER, 5)); + + //creation de la widget titre + final TitleWidget tw=new TitleWidget(scene, cs[i]); + + //creation de la widget ligne + LineWidget lw=new LineWidget(scene, cs[i]); + + line.addChild(lw); + line.addChild(tw); + res.addChild(line); + + //-- ajouter le listener EGGraphe pour ecouter et \xE9ettre a jour els l\xE9gendes --// + g.getModel().addModelListener(new EGGrapheModelListener() { + + public void structureChanged() { + line.repaint(); + tw.majLabel(); + + } + + public void courbeContentChanged(EGObject _c, boolean restore) { + line.repaint(); + tw.majLabel(); + + } + + public void courbeAspectChanged(EGObject _c, boolean _visibil) { + line.repaint(); + tw.majLabel(); + + } + + public void axeContentChanged(EGAxe _c) { + line.repaint(); + tw.majLabel(); + } + + public void axeAspectChanged(EGAxe _c) { + line.repaint(); + tw.majLabel(); + } + }); + + } + return res; + } + + + +} Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java (from rev 3708, branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -0,0 +1,184 @@ +package org.fudaa.ebli.visuallibrary; + + + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.image.CtuluImageProducer; +import org.fudaa.ctulu.image.CtuluLibImage; +import org.fudaa.ebli.courbe.EGAxe; +import org.fudaa.ebli.courbe.EGCourbe; +import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.ebli.courbe.EGGrapheModelListener; +import org.fudaa.ebli.courbe.EGObject; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.action.SelectProvider; +import org.netbeans.api.visual.action.TextFieldInplaceEditor; +import org.netbeans.api.visual.graph.GraphScene; +import org.netbeans.api.visual.laf.LookFeel; +import org.netbeans.api.visual.model.ObjectState; +import org.netbeans.api.visual.widget.ImageWidget; +import org.netbeans.api.visual.widget.LabelWidget; +import org.netbeans.api.visual.widget.LayerWidget; +import org.netbeans.api.visual.widget.Widget; + +import sun.awt.image.ToolkitImage; + + + +/** + * Classe qui g\xE9n\xE8re les l\xE9gendes de chacun des graphes + * + * + * @author Adrien Hadoux + * + */ + +public class WidgetLegendeManagerOLD { + + + static List<ImageWidget> listeWidgets=null; + + //gap vertical entre chaque widget legendes + final static int Vgap=10; + //gap horizontal entre chaque widget legendes + final static int Hgap=10; + + final static int widthDefault=100; + final static int heightDefault=30; + + + public static void createWidgetLegendeGraphe(GraphScene scene,LayerWidget visu,EGGraphe graphe, Rectangle areaGraphe) { + + + listeWidgets=new ArrayList<ImageWidget>(); + + //-- cr\xE9ation, affichage et ajout du listener du graphe pour chacune des widgets suivantes --// + + for(int i=0; i<graphe.getModel().getCourbes().length;i++){ + + final EGCourbe courbe=graphe.getModel().getCourbes()[i]; + final int cpt=i; + + + + //--creation d un nouveau widget image --// + final ImageWidget legendeWidget=new ImageWidget (scene){ + public void notifyStateChanged(ObjectState previousState, + ObjectState newState) { + LookFeel lookFeel = getScene().getLookFeel(); + // setBorder(lookFeel.getBorder(newState)); + // setForeground(lookFeel.getForeground(newState)); + + setBorder(lookFeel.getBorder(newState)); + // setBorder(newState.isSelected() ? + // (DEFAULT_SELECTED_BORDER) : + // (newState.isHovered() ? RESIZE_BORDER + // : DEFAULT_BORDER)); + //repaint(); + + } + + //-- redessinne la l\xE9gende + protected void paintWidget() { + + // recuperation du rectangle contour + Rectangle rec = getClientArea(); + Graphics2D g=getGraphics(); + + g.translate(rec.x, rec.y); + + + //dimension du cadre de la l\xE9gende // + int widthCadre=rec.width; + int heightCadre=rec.height; + + //cas initial: dessin vide + if(widthCadre==0) + widthCadre=widthDefault; + if(heightCadre==0) + heightCadre=heightDefault; + + g.setColor(Color.GRAY); + g.drawRect(rec.x, rec.y,widthCadre - 1, heightCadre - 1); + + //-- dessin du titre et des lignes --// + g.setFont(new Font("Serif",Font.PLAIN,rec.height/2)); + g.setColor(courbe.getAspectContour()); + g.drawString(courbe.getTitle(),rec.x + Hgap/2 , (int)(rec.y + rec.height/2)); + //FIXME Comment je peux obtenir les icones et les lignes et les dimensionner? + } + + }; +legendeWidget.setPreferredSize(new Dimension(widthDefault,heightDefault)); + + //-- ajouter le listener EGGraphe pour ecouter et \xE9ettre a jour els l\xE9gendes --// + graphe.getModel().addModelListener(new EGGrapheModelListener() { + + public void structureChanged() { + legendeWidget.repaint(); + + } + + public void courbeContentChanged(EGObject _c, boolean restore) { + legendeWidget.repaint(); + + } + + public void courbeAspectChanged(EGObject _c, boolean _visibil) { + legendeWidget.repaint(); + // TODO Auto-generated method stub + + } + + public void axeContentChanged(EGAxe _c) { + legendeWidget.repaint(); + + } + + public void axeAspectChanged(EGAxe _c) { + legendeWidget.repaint(); + + } + }); + + //-- ajouter les actions liees au widget --// + legendeWidget.getActions().addAction( ActionFactory.createResizeAction()); + legendeWidget.getActions().addAction(ActionFactory.createMoveAction()); + legendeWidget.getActions().addAction(scene.createWidgetHoverAction()); + + + //-- ajout de la widget dans la liste --// + listeWidgets.add(legendeWidget); + + //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --// + //FIXME am\xE9eliorer en discuter avec Fred + legendeWidget.setPreferredLocation (new Point ((widthDefault+Hgap)*cpt, Vgap)); + + scene.addChild(legendeWidget); + + }//fin for + + //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --// + //TODO am\xE9eliorer en discuter avec Fred + //visu.addChildren(listeWidgets); + + } + + +} + + Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-05 06:21:31 UTC (rev 3708) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-05 07:51:22 UTC (rev 3709) @@ -41,9 +41,10 @@ import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGGroup; import org.fudaa.ebli.courbe.EGObject; -import org.fudaa.ebli.courbe.WidgetLegendeManager; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; +import org.fudaa.ebli.visuallibrary.WidgetLegendeManager; +import org.fudaa.ebli.visuallibrary.WidgetLegendeManagerOLD; import org.netbeans.api.visual.action.ActionFactory; import org.netbeans.api.visual.graph.GraphScene; import org.netbeans.api.visual.laf.LookFeel; @@ -324,8 +325,9 @@ }; - WidgetLegendeManager.createWidgetLegendeGraphe(this, visu, courbe, graphe.getClientArea()); + //WidgetLegendeManagerOLD.createWidgetLegendeGraphe(this, visu, courbe, graphe.getClientArea()); + visu.addChild (WidgetLegendeManager.createLegende(courbe, this)); //ajout des resize et drag imageWidget.getActions().addAction( ActionFactory.createResizeAction()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-05 06:21:24
|
Revision: 3708 http://fudaa.svn.sourceforge.net/fudaa/?rev=3708&view=rev Author: hadouxad Date: 2008-08-05 06:21:31 +0000 (Tue, 05 Aug 2008) Log Message: ----------- AFFECT?\195?\137 - # 40: L?\195?\169gende pour les courbe 1d http://mantis.genesis-groupe.com//view.php?id=40 Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java 2008-08-04 22:00:16 UTC (rev 3707) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java 2008-08-05 06:21:31 UTC (rev 3708) @@ -106,6 +106,7 @@ //-- dessin du titre et des lignes --// g.setFont(new Font("Serif",Font.PLAIN,rec.height/2)); + g.setColor(courbe.getAspectContour()); g.drawString(courbe.getTitle(),rec.x + Hgap/2 , (int)(rec.y + rec.height/2)); //FIXME Comment je peux obtenir les icones et les lignes et les dimensionner? } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-04 22:00:16 UTC (rev 3707) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-05 06:21:31 UTC (rev 3708) @@ -16,6 +16,7 @@ import java.awt.image.BufferedImage; import java.util.Collections; +import javax.swing.Box; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JMenu; @@ -145,7 +146,10 @@ final JTree t = new JTree(grapheModel); t.setSelectionModel(grapheModel.getSelectionModel()); t.setRootVisible(false); - p.add(new BuScrollPane(t), BuBorderLayout.EAST); + + Box boxEast=Box.createVerticalBox(); + boxEast.add(new BuScrollPane(t)); + p.add(boxEast, BuBorderLayout.EAST); p.doLayout(); f.setContentPane(p); final EGFillePanel pn = new EGFillePanel(g); @@ -384,6 +388,11 @@ scene.addNode(g); // fin p.add(new JScrollPane(scene.createView()), BuBorderLayout.CENTER); + + //ajout de la vue sattelite en bas \xE4 gauche + boxEast.add(scene.createSatelliteView()); + + final JMenu menu = new JMenu(); menu.setName("essai"); menu.setText("essai"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-08-04 22:00:13
|
Revision: 3707 http://fudaa.svn.sourceforge.net/fudaa/?rev=3707&view=rev Author: deniger Date: 2008-08-04 22:00:16 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Added Paths: ----------- tags/Prepro-0.91bis/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-04 20:47:11
|
Revision: 3706 http://fudaa.svn.sourceforge.net/fudaa/?rev=3706&view=rev Author: hadouxad Date: 2008-08-04 20:47:14 +0000 (Mon, 04 Aug 2008) Log Message: ----------- AFFECT?\195?\137 - # 40: L?\195?\169gende pour les courbe 1d d?\195?\169dut de cr?\195?\169ation du manager de widget legendes reste a corriger 1)la position des widget par rapport au graphe 2)l ajout des icones et trac?\195?\169 Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java 2008-08-04 20:47:14 UTC (rev 3706) @@ -0,0 +1,171 @@ +package org.fudaa.ebli.courbe; + + + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.image.CtuluImageProducer; +import org.fudaa.ctulu.image.CtuluLibImage; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.graph.GraphScene; +import org.netbeans.api.visual.laf.LookFeel; +import org.netbeans.api.visual.model.ObjectState; +import org.netbeans.api.visual.widget.ImageWidget; +import org.netbeans.api.visual.widget.LayerWidget; + +import sun.awt.image.ToolkitImage; + +/** + * Classe qui g\xE9n\xE8re les l\xE9gendes de chacun des graphes + * + * + * @author Adrien Hadoux + * + */ + +public class WidgetLegendeManager { + + + static List<ImageWidget> listeWidgets=null; + + //gap vertical entre chaque widget legendes + final static int Vgap=10; + //gap horizontal entre chaque widget legendes + final static int Hgap=10; + + final static int widthDefault=100; + final static int heightDefault=30; + + + public static void createWidgetLegendeGraphe(GraphScene scene,LayerWidget visu,EGGraphe graphe, Rectangle areaGraphe) { + + + listeWidgets=new ArrayList<ImageWidget>(); + + //-- cr\xE9ation, affichage et ajout du listener du graphe pour chacune des widgets suivantes --// + + for(int i=0; i<graphe.getModel().getCourbes().length;i++){ + + final EGCourbe courbe=graphe.getModel().getCourbes()[i]; + final int cpt=i; + + + + //--creation d un nouveau widget image --// + final ImageWidget legendeWidget=new ImageWidget (scene){ + public void notifyStateChanged(ObjectState previousState, + ObjectState newState) { + LookFeel lookFeel = getScene().getLookFeel(); + // setBorder(lookFeel.getBorder(newState)); + // setForeground(lookFeel.getForeground(newState)); + + setBorder(lookFeel.getBorder(newState)); + // setBorder(newState.isSelected() ? + // (DEFAULT_SELECTED_BORDER) : + // (newState.isHovered() ? RESIZE_BORDER + // : DEFAULT_BORDER)); + //repaint(); + + } + + //-- redessinne la l\xE9gende + protected void paintWidget() { + + // recuperation du rectangle contour + Rectangle rec = getClientArea(); + Graphics2D g=getGraphics(); + + g.translate(rec.x, rec.y); + + + //dimension du cadre de la l\xE9gende // + int widthCadre=rec.width; + int heightCadre=rec.height; + + //cas initial: dessin vide + if(widthCadre==0) + widthCadre=widthDefault; + if(heightCadre==0) + heightCadre=heightDefault; + + g.setColor(Color.GRAY); + g.drawRect(rec.x, rec.y,widthCadre - 1, heightCadre - 1); + + //-- dessin du titre et des lignes --// + g.setFont(new Font("Serif",Font.PLAIN,rec.height/2)); + g.drawString(courbe.getTitle(),rec.x + Hgap/2 , (int)(rec.y + rec.height/2)); + //FIXME Comment je peux obtenir les icones et les lignes et les dimensionner? + } + + }; +legendeWidget.setPreferredSize(new Dimension(widthDefault,heightDefault)); + + //-- ajouter le listener EGGraphe pour ecouter et \xE9ettre a jour els l\xE9gendes --// + graphe.getModel().addModelListener(new EGGrapheModelListener() { + + public void structureChanged() { + legendeWidget.repaint(); + + } + + public void courbeContentChanged(EGObject _c, boolean restore) { + legendeWidget.repaint(); + + } + + public void courbeAspectChanged(EGObject _c, boolean _visibil) { + legendeWidget.repaint(); + // TODO Auto-generated method stub + + } + + public void axeContentChanged(EGAxe _c) { + legendeWidget.repaint(); + + } + + public void axeAspectChanged(EGAxe _c) { + legendeWidget.repaint(); + + } + }); + + //-- ajouter les actions liees au widget --// + legendeWidget.getActions().addAction( ActionFactory.createResizeAction()); + legendeWidget.getActions().addAction(ActionFactory.createMoveAction()); + legendeWidget.getActions().addAction(scene.createWidgetHoverAction()); + + + + //-- ajout de la widget dans la liste --// + listeWidgets.add(legendeWidget); + + //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --// + //FIXME am\xE9eliorer en discuter avec Fred + legendeWidget.setPreferredLocation (new Point ((widthDefault+Hgap)*cpt, Vgap)); + + scene.addChild(legendeWidget); + + }//fin for + + //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --// + //TODO am\xE9eliorer en discuter avec Fred + //visu.addChildren(listeWidgets); + + } + + +} Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-04 12:24:25 UTC (rev 3705) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-04 20:47:14 UTC (rev 3706) @@ -9,132 +9,395 @@ import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.util.Collections; +import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; +import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.WindowConstants; +import javax.swing.text.Utilities; -import com.memoire.bu.BuBorderLayout; -import com.memoire.bu.BuPanel; -import com.memoire.bu.BuScrollPane; - +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.gui.CtuluLibSwing; +import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ctulu.iterator.LogarithmicNumberIterator; - +import org.fudaa.ebli.courbe.EGAxe; import org.fudaa.ebli.courbe.EGAxeHorizontal; import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbeChild; import org.fudaa.ebli.courbe.EGCourbeModelDefault; import org.fudaa.ebli.courbe.EGFillePanel; import org.fudaa.ebli.courbe.EGGraphe; +import org.fudaa.ebli.courbe.EGGrapheModelListener; import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGGroup; +import org.fudaa.ebli.courbe.EGObject; +import org.fudaa.ebli.courbe.WidgetLegendeManager; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.graph.GraphScene; +import org.netbeans.api.visual.laf.LookFeel; +import org.netbeans.api.visual.model.ObjectState; +import org.netbeans.api.visual.widget.ImageWidget; +import org.netbeans.api.visual.widget.LabelWidget; +import org.netbeans.api.visual.widget.LayerWidget; +import org.netbeans.api.visual.widget.Widget; +import org.netbeans.api.visual.widget.general.IconNodeWidget; +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuScrollPane; + /** * @author Fred Deniger * @version $Id: TestGraphe2.java,v 1.8 2007-01-17 10:45:17 deniger Exp $ */ public final class TestGraphe2 { - private TestGraphe2() { - super(); - } + private TestGraphe2() { + super(); + } - /** - * @param _args non utilise - */ - public static void main(final String[] _args) { - final EGGrapheTreeModel grapheModel = new EGGrapheTreeModel(); - final EGGraphe g = new EGGraphe(grapheModel); - final EGAxeHorizontal x = new EGAxeHorizontal(false); - x.setTitre("temps"); - x.setUnite("sec"); - x.setBounds(0.0001, 1000000); - x.setAxisIterator(new LogarithmicNumberIterator()); - x.setGraduations(true); - g.setXAxe(x); - EGGroup gr = new EGGroup(); - gr.setTitle("gr 1"); - EGCourbeModelDefault m = new EGCourbeModelDefault(new double[] { 0.0001, 3, 4, 1000000 }, new double[] { 10000, 4, - 5, 3 }); - EGCourbeChild c = new EGCourbeChild(gr); - m.setTitle("toto bleue"); - c.setModel(m); - c.setAspectContour(Color.cyan); + /** + * @param _args + * non utilise + */ + public static void main(final String[] _args) { + final EGGrapheTreeModel grapheModel = new EGGrapheTreeModel(); + final EGGraphe g = new EGGraphe(grapheModel); + final EGAxeHorizontal x = new EGAxeHorizontal(false); + x.setTitre("temps"); + x.setUnite("sec"); + x.setBounds(0.0001, 1000000); + x.setAxisIterator(new LogarithmicNumberIterator()); + x.setGraduations(true); + g.setXAxe(x); + EGGroup gr = new EGGroup(); + gr.setTitle("gr 1"); + EGCourbeModelDefault m = new EGCourbeModelDefault(new double[] { + 0.0001, 3, 4, 1000000 }, new double[] { 10000, 4, 5, 3 }); + EGCourbeChild c = new EGCourbeChild(gr); + m.setTitle("toto bleue"); + c.setModel(m); + c.setAspectContour(Color.cyan); - gr.addEGComponent(c); + gr.addEGComponent(c); - m = new EGCourbeModelDefault(new double[] { 0.0002, 5, 7, 900000 }, new double[] { 0.001, 1, 3, 4 }); - c = new EGCourbeChild(gr); - c.setAspectContour(Color.RED); - m.setTitle("toto rouge"); - c.setModel(m); + m = new EGCourbeModelDefault(new double[] { 0.0002, 5, 7, 900000 }, + new double[] { 0.001, 1, 3, 4 }); + c = new EGCourbeChild(gr); + c.setAspectContour(Color.RED); + m.setTitle("toto rouge"); + c.setModel(m); - gr.addEGComponent(c); + gr.addEGComponent(c); - EGAxeVertical y = new EGAxeVertical(); - y.setGraduations(true); - y.setGrille(new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); - y.setDroite(true); - y.setAxisIterator(new LogarithmicNumberIterator()); - y.setBounds(0.0001, 10000); - y.setLineColor(Color.blue); - y.setTitre("essai 2"); - gr.setAxeY(y); - grapheModel.add(gr); - gr = new EGGroup(); - gr.setTitle("gr 2"); - m = new EGCourbeModelDefault(new double[] { 1, 8, 9, 10 }, new double[] { 10, 4, 2, 24 }); - c = new EGCourbeChild(gr); - c.setAspectContour(Color.yellow); - m.setTitle("toto jaune"); - c.setModel(m); - gr.addEGComponent(c); - y = new EGAxeVertical(); - y.setGraduations(true); - y.setBounds(0, 55); - y.setTitre("essai 1"); - gr.setAxeY(y); - gr.addEGComponent(c); - m = new EGCourbeModelDefault(new double[] { 1, 3, 4, 5 }, new double[] { 14, 54, 25, 43 }); - c = new EGCourbeChild(gr); - m.setTitle("toto vert"); - c.setAspectContour(Color.green); - c.setModel(m); - gr.addEGComponent(c); - grapheModel.add(gr); - final JFrame f = new JFrame(); - f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - final BuPanel p = new BuPanel(); - p.setLayout(new BuBorderLayout()); + EGAxeVertical y = new EGAxeVertical(); + y.setGraduations(true); + y.setGrille(new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); + y.setDroite(true); + y.setAxisIterator(new LogarithmicNumberIterator()); + y.setBounds(0.0001, 10000); + y.setLineColor(Color.blue); + y.setTitre("essai 2"); + gr.setAxeY(y); + grapheModel.add(gr); + gr = new EGGroup(); + gr.setTitle("gr 2"); + m = new EGCourbeModelDefault(new double[] { 1, 8, 9, 10 }, + new double[] { 10, 4, 2, 24 }); + c = new EGCourbeChild(gr); + c.setAspectContour(Color.yellow); + m.setTitle("toto jaune"); + c.setModel(m); + gr.addEGComponent(c); + y = new EGAxeVertical(); + y.setGraduations(true); + y.setBounds(0, 55); + y.setTitre("essai 1"); + gr.setAxeY(y); + gr.addEGComponent(c); + m = new EGCourbeModelDefault(new double[] { 1, 3, 4, 5 }, new double[] { + 14, 54, 25, 43 }); + c = new EGCourbeChild(gr); + m.setTitle("toto vert"); + c.setAspectContour(Color.green); + c.setModel(m); + gr.addEGComponent(c); + grapheModel.add(gr); + final JFrame f = new JFrame(); + f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + f.setSize(new Dimension(1024,768)); + final BuPanel p = new BuPanel(); + p.setLayout(new BuBorderLayout()); - g.setPreferredSize(new Dimension(200, 300)); - g.setSize(g.getPreferredSize()); - final JTree t = new JTree(grapheModel); - t.setSelectionModel(grapheModel.getSelectionModel()); - t.setRootVisible(false); - p.add(new BuScrollPane(t), BuBorderLayout.EAST); - p.doLayout(); - f.setContentPane(p); - final EGFillePanel pn = new EGFillePanel(g); + g.setPreferredSize(new Dimension(200, 300)); + g.setSize(g.getPreferredSize()); + final JTree t = new JTree(grapheModel); + t.setSelectionModel(grapheModel.getSelectionModel()); + t.setRootVisible(false); + p.add(new BuScrollPane(t), BuBorderLayout.EAST); + p.doLayout(); + f.setContentPane(p); + final EGFillePanel pn = new EGFillePanel(g); + final GraphScene scene = new GraphScene() { + LayerWidget visu; - p.add(pn, BuBorderLayout.CENTER); - final JMenu menu = new JMenu(); - menu.setName("essai"); - menu.setText("essai"); - pn.fillSpecificMenu(menu); - final JMenuBar b = new JMenuBar(); - b.add(menu); - f.setJMenuBar(b); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + { + visu = new LayerWidget(this); + addChild(visu); + } - f.pack(); - f.show(); - g.computeMarges(); - g.fullRepaint(); + @Override + protected Widget attachNodeWidget(Object arg0) { + final EGGraphe courbe = (EGGraphe) arg0; + final Widget graphe = new Widget(this) { + public void notifyStateChanged(ObjectState previousState, + ObjectState newState) { + LookFeel lookFeel = getScene().getLookFeel(); + // setBorder(lookFeel.getBorder(newState)); + // setForeground(lookFeel.getForeground(newState)); + setBorder(lookFeel.getBorder(newState)); + // setBorder(newState.isSelected() ? + // (DEFAULT_SELECTED_BORDER) : + // (newState.isHovered() ? RESIZE_BORDER + // : DEFAULT_BORDER)); - } + } + + @Override + protected void paintWidget() { + Rectangle rec = getClientArea(); + + // BufferedImage image = courbe.produceImage( + // rec.width - 1, rec.height - 1, + // Collections.EMPTY_MAP); + getGraphics().translate(rec.x, rec.y); + courbe.setSize(rec.width - 1, + rec.height - 1); + courbe.computeMarges(getGraphics()); + courbe.dessine(getGraphics(), rec.width - 1, + rec.height - 1, false ); + } + // } + }; + courbe.getModel().addModelListener(new EGGrapheModelListener() { + + public void structureChanged() { + repaint(); + + } + + public void courbeContentChanged(EGObject _c, boolean restore) { + repaint(); + + } + + public void courbeAspectChanged(EGObject _c, boolean _visibil) { + graphe.paint(); + paint(); + // TODO Auto-generated method stub + + } + + public void axeContentChanged(EGAxe _c) { + repaint(); + + } + + public void axeAspectChanged(EGAxe _c) { + repaint(); + + } + }); + graphe.setPreferredSize(new Dimension(100, 100)); + visu.addChild(graphe); + + +// //creation d un label widget +// LabelWidget labelWidget=new LabelWidget(this, "test") { +// public void notifyStateChanged(ObjectState previousState, +// ObjectState newState) { +// LookFeel lookFeel = getScene().getLookFeel(); +// // setBorder(lookFeel.getBorder(newState)); +// // setForeground(lookFeel.getForeground(newState)); +// +// setBorder(lookFeel.getBorder(newState)); +// // recuperation du rectangle contour +// Rectangle rec = getClientArea(); +// //setFont(new Font("Times New Roman", Font.PLAIN,rec.width )); +// repaint(); +// +// // setBorder(newState.isSelected() ? +// // (DEFAULT_SELECTED_BORDER) : +// // (newState.isHovered() ? RESIZE_BORDER +// // : DEFAULT_BORDER)); +// +// } +// +// +// +// +// +// +// +// }; +// +// +// //marche pas il faut un container jscrollpane +// //graphe.getActions().addAction(ActionFactory.createCenteredZoomAction (500)); +// +// +// labelWidget.getActions().addAction(ActionFactory.createResizeAction()); +// labelWidget.getActions().addAction(ActionFactory.createMoveAction()); +// labelWidget.getActions().addAction(this.createWidgetHoverAction()); +// //zoom de la scene en maintenant ctrl + molette +// labelWidget.getActions().addAction(ActionFactory.createZoomAction()); +// +// +// // +// labelWidget.getActions().addAction(ActionFactory.createPanAction()); +// +// //-- ajout du labelWidget dans le visuel --// +// visu.addChild(labelWidget); +// +// +// //creation d un image widget + ImageWidget imageWidget=new ImageWidget (this,CtuluResource.CTULU.getImage("crystal_oui")){ + public void notifyStateChanged(ObjectState previousState, + ObjectState newState) { + LookFeel lookFeel = getScene().getLookFeel(); + // setBorder(lookFeel.getBorder(newState)); + // setForeground(lookFeel.getForeground(newState)); + + setBorder(lookFeel.getBorder(newState)); + // setBorder(newState.isSelected() ? + // (DEFAULT_SELECTED_BORDER) : + // (newState.isHovered() ? RESIZE_BORDER + // : DEFAULT_BORDER)); + repaint(); + + } + + //-- redessinne la l\xE9gende + protected void paintWidget() { + + // recuperation du rectangle contour + Rectangle rec = getClientArea(); + Graphics2D g=getGraphics(); + + g.translate(rec.x, rec.y); + + + //dimension du cadre de la l\xE9gende // + int widthCadre=rec.width; + int heightCadre=rec.height; + + //cas initial: dessin vide + if(widthCadre==0) + widthCadre=10; + if(heightCadre==0) + heightCadre=10; + + + g.fillRect(rec.x, rec.y,widthCadre - 1, heightCadre - 1); + //courbe.setSize(rec.width - 1,rec.height - 1); + //courbe.computeMarges(getGraphics()); + //courbe.dessine(getGraphics(), rec.width - 1,rec.height - 1, false ); + + + } + + }; + + + WidgetLegendeManager.createWidgetLegendeGraphe(this, visu, courbe, graphe.getClientArea()); + + + //ajout des resize et drag + imageWidget.getActions().addAction( ActionFactory.createResizeAction()); + imageWidget.getActions().addAction(ActionFactory.createMoveAction()); + imageWidget.getActions().addAction(this.createWidgetHoverAction()); + //ajout du label widget + visu.addChild (imageWidget); + + + //test avec iconwidget + IconNodeWidget iconNode = new IconNodeWidget (this); + iconNode.setImage (CtuluResource.CTULU.getImage("crystal_non")); + iconNode.setLabel ("MyIconNode"); + this.addChild (iconNode); + this.getActions ().addAction (ActionFactory.createCenteredZoomAction (1.1)); + this.getActions ().addAction (ActionFactory.createPanAction ()); + // assign HoverAction - the actual hovered widget is held by the scene + iconNode.getActions ().addAction (this.createWidgetHoverAction ()); + // MoveAction has to be after the hover action + // otherwise MoveAction will always consume the event and HoverAction will never be invoked + iconNode.getActions ().addAction (ActionFactory.createMoveAction ()); + + + // proprietes graphes + graphe.getActions().addAction( + ActionFactory.createResizeAction()); + graphe.getActions().addAction(ActionFactory.createMoveAction()); + graphe.getActions().addAction(this.createWidgetHoverAction()); + return graphe; + } + + @Override + protected Widget attachEdgeWidget(Object arg0) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected void attachEdgeTargetAnchor(Object arg0, Object arg1, + Object arg2) { + // TODO Auto-generated method stub + + } + + @Override + protected void attachEdgeSourceAnchor(Object arg0, Object arg1, + Object arg2) { + // TODO Auto-generated method stub + + } + }; + + + + + + + // debut + // scene.addNode(g); + scene.addNode(g); + // fin + p.add(new JScrollPane(scene.createView()), BuBorderLayout.CENTER); + final JMenu menu = new JMenu(); + menu.setName("essai"); + menu.setText("essai"); + pn.fillSpecificMenu(menu); + final JMenuBar b = new JMenuBar(); + b.add(menu); + f.setJMenuBar(b); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + //f.pack(); + f.show(); + scene.setFont(CtuluLibSwing.getMiniFont()); + g.computeMarges(scene.getGraphics()); + g.fullRepaint(); + + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-04 12:24:20
|
Revision: 3705 http://fudaa.svn.sourceforge.net/fudaa/?rev=3705&view=rev Author: hadouxad Date: 2008-08-04 12:24:25 +0000 (Mon, 04 Aug 2008) Log Message: ----------- AFFECT?\195?\137 - # 40: L?\195?\169gende pour les courbe 1d http://mantis.genesis-groupe.com//view.php?id=40 R?\195?\137SOLU - # 16: Test http://mantis.genesis-groupe.com//view.php?id=16 Modified Paths: -------------- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGrapheModelListener.java trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGRepere.java Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2008-08-04 12:21:24 UTC (rev 3704) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2008-08-04 12:24:25 UTC (rev 3705) @@ -391,7 +391,7 @@ RenderingHints old = null; if (isRapide()) { old = graphics2D.getRenderingHints(); - final RenderingHints newRenderer = new RenderingHints(old); + final RenderingHints newRenderer = (RenderingHints)old.clone(); newRenderer.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); newRenderer.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); newRenderer.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); @@ -403,7 +403,7 @@ graphics2D.setRenderingHints(newRenderer); } else if (isAntialiasSupported() && antialiasing_) { old = graphics2D.getRenderingHints(); - final RenderingHints newRenderer = new RenderingHints(old); + final RenderingHints newRenderer = (RenderingHints)old.clone(); newRenderer.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); newRenderer.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); graphics2D.setRenderingHints(newRenderer); Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java 2008-08-04 12:21:24 UTC (rev 3704) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGraphe.java 2008-08-04 12:24:25 UTC (rev 3705) @@ -247,9 +247,12 @@ } public void componentShown(final ComponentEvent _e) {} + + public EGMarges computeMarges() { + return computeMarges((Graphics2D) getGraphics()); + } - public EGMarges computeMarges() { - final Graphics2D gr = (Graphics2D) getGraphics(); + public EGMarges computeMarges(Graphics2D gr) { final EGMarges m = new EGMarges(); final EGAxeHorizontal xaxe = transformer_.getXAxe(); if (xaxe == null) { @@ -331,7 +334,7 @@ structureChanged(_mustRestore); } - private void dessine(final Graphics _g, final int _w, final int _h, final boolean _fill) { + public void dessine(final Graphics _g, final int _w, final int _h, final boolean _fill) { if (!isVisible()) { return; } @@ -350,7 +353,7 @@ g2d.setColor(Color.black); final EGGrapheModel model = getModel(); final int nbElement = model.getNbEGObject(); - transformer_.initFor(this); + transformer_.initFor(this,g2d); // dessine axe horizontal final Shape oldClip = g2d.getClip(); // g2d.clip(new Rectangle(xMarge, yMarge, wMarge, hMarge)); Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGrapheModelListener.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGrapheModelListener.java 2008-08-04 12:21:24 UTC (rev 3704) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGGrapheModelListener.java 2008-08-04 12:24:25 UTC (rev 3705) @@ -19,7 +19,7 @@ public interface EGGrapheModelListener extends EventListener{ /** - * Envoye si l'organisation des courbes a ete modifiee. + * Envoye si l'organisation des courbes a \xE9t\xE9 modifiee. */ void structureChanged(); Modified: trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGRepere.java =================================================================== --- trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGRepere.java 2008-08-04 12:21:24 UTC (rev 3704) +++ trunk/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGRepere.java 2008-08-04 12:24:25 UTC (rev 3705) @@ -7,6 +7,7 @@ */ package org.fudaa.ebli.courbe; +import java.awt.Graphics2D; import java.awt.geom.Point2D; /** @@ -38,10 +39,10 @@ return marges_.getBas(); } - public void initFor(final EGGraphe _g){ + public void initFor(final EGGraphe _g,Graphics2D g2d){ w_ = _g.getWidth(); h_ = _g.getHeight(); - marges_ = _g.computeMarges(); + marges_ = _g.computeMarges(g2d); marges_.ajouteEmptyBorder(3); xAxe_=_g.getModel().getAxeX(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-04 12:21:15
|
Revision: 3704 http://fudaa.svn.sourceforge.net/fudaa/?rev=3704&view=rev Author: hadouxad Date: 2008-08-04 12:21:24 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-08-04 08:44:15
|
Revision: 3703 http://fudaa.svn.sourceforge.net/fudaa/?rev=3703&view=rev Author: hadouxad Date: 2008-08-04 08:44:21 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Fudaa-Prepro avant projet Post Added Paths: ----------- tags/Prepro-0.91/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-07-29 22:04:13
|
Revision: 3702 http://fudaa.svn.sourceforge.net/fudaa/?rev=3702&view=rev Author: hadouxad Date: 2008-07-29 22:04:21 +0000 (Tue, 29 Jul 2008) Log Message: ----------- R?\195?\137SOLU - # 16: Test http://mantis.genesis-groupe.com//view.php?id=16 Modified Paths: -------------- trunk/fudaa_devel/ebli/.classpath.defaults Modified: trunk/fudaa_devel/ebli/.classpath.defaults =================================================================== --- trunk/fudaa_devel/ebli/.classpath.defaults 2008-07-29 21:29:17 UTC (rev 3701) +++ trunk/fudaa_devel/ebli/.classpath.defaults 2008-07-29 22:04:21 UTC (rev 3702) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> + <classpathentry exported="true" kind="src" path="/ctulu"/> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="test"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-07-29 21:29:11
|
Revision: 3701 http://fudaa.svn.sourceforge.net/fudaa/?rev=3701&view=rev Author: hadouxad Date: 2008-07-29 21:29:17 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Test genesis Modified Paths: -------------- trunk/fudaa_devel/ctulu/.classpath.defaults Modified: trunk/fudaa_devel/ctulu/.classpath.defaults =================================================================== --- trunk/fudaa_devel/ctulu/.classpath.defaults 2008-07-18 14:02:51 UTC (rev 3700) +++ trunk/fudaa_devel/ctulu/.classpath.defaults 2008-07-29 21:29:17 UTC (rev 3701) @@ -16,22 +16,13 @@ <classpathentry exported="true" kind="lib" path="lib/liquidlnf.jar"/> <classpathentry exported="true" kind="lib" path="lib/db4o.jar" sourcepath="lib/db4o.src.zip"/> <classpathentry exported="true" kind="var" path="JRE_LIB" sourcepath="JRE_SRC"> - <attributes> - <attribute name="javadoc_location" value="file:/C:/java/j2sdk-1_4_2-doc/docs/api"/> - </attributes> <accessrules> <accessrule kind="nonaccessible" pattern="ibm/**,apache/**"/> </accessrules> + </classpathentry> <classpathentry exported="true" kind="lib" path="lib/jep.jar" sourcepath="lib/jep.src.zip"/> <classpathentry exported="true" kind="lib" path="lib/fgis.jar" sourcepath="lib/fgis.src.jar"/> - <classpathentry exported="true" kind="lib" path="C:/java/JAI 1.1.3/lib/jai_codec.jar"/> - <classpathentry exported="true" kind="lib" path="C:/java/JAI 1.1.3/lib/jai_core.jar"> - <attributes> - <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="C:/java/JAI 1.1.3/lib/dll"/> - </attributes> - </classpathentry> - <classpathentry exported="true" kind="lib" path="C:/java/JAI 1.1.3/lib/mlibwrapper_jai.jar"/> <classpathentry exported="true" kind="lib" path="lib/jfreechart.jar"/> <classpathentry exported="true" kind="lib" path="lib/jcommon.jar"/> <classpathentry kind="output" path="build/classes"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-18 14:02:42
|
Revision: 3700 http://fudaa.svn.sourceforge.net/fudaa/?rev=3700&view=rev Author: bmarchan Date: 2008-07-18 14:02:51 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Created tag FudaaModeleur_0_05. Added Paths: ----------- tags/FudaaModeleur_0_05/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jm_...@us...> - 2008-07-18 13:45:38
|
Revision: 3699 http://fudaa.svn.sourceforge.net/fudaa/?rev=3699&view=rev Author: jm_lacombe Date: 2008-07-18 13:45:46 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Guide utilisateur fudaa-mascaret 3.0 Modified Paths: -------------- trunk/fudaa_devel/aide/src/mascaret/GuidePriseEnMainFudaaMascaret.pdf Added Paths: ----------- trunk/fudaa_devel/aide/src/mascaret/guidepriseenmainmascaret-version3_0.odt Property changes on: trunk/fudaa_devel/aide/src/mascaret/guidepriseenmainmascaret-version3_0.odt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-18 08:27:36
|
Revision: 3698 http://fudaa.svn.sourceforge.net/fudaa/?rev=3698&view=rev Author: bmarchan Date: 2008-07-18 08:27:43 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Chgt du nom du calque par d?\195?\169faut + conforme au cdc. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java 2008-07-18 07:32:53 UTC (rev 3697) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dDirectionLine.java 2008-07-18 08:27:43 UTC (rev 3698) @@ -36,7 +36,7 @@ setLineModelOuvert(getLineModel(0)); // _model.addListener(this); A implementer. setName(getExtName()); - setTitle(MdlResource.MDL.getString("Lignes de direction")); + setTitle(MdlResource.MDL.getString("Lignes directrices")); } public MdlLayer2dDirectionLine(FSigEditor _editor) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-18 07:32:46
|
Revision: 3697 http://fudaa.svn.sourceforge.net/fudaa/?rev=3697&view=rev Author: bmarchan Date: 2008-07-18 07:32:53 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Correctif #41 : Taille des entr?\195?\169es de texte augment?\195?\169e dans le panneau de translation/rotation + correction pour dz toujours actif Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneDeplacementAction.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneRotationAction.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteDeplacement.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteRotation.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueDeplacement.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneDeplacementAction.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneDeplacementAction.java 2008-07-18 07:32:10 UTC (rev 3696) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneDeplacementAction.java 2008-07-18 07:32:53 UTC (rev 3697) @@ -1,93 +1,87 @@ -/* - * @creation 1 avr. 2005 - * @modification $Date: 2008-05-13 12:10:47 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ebli.calque.action; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -import javax.swing.tree.TreeSelectionModel; - -import org.fudaa.ebli.calque.ZScene; -import org.fudaa.ebli.calque.edition.BPaletteDeplacement; -import org.fudaa.ebli.calque.edition.BPaletteEdition; -import org.fudaa.ebli.calque.edition.ZCalqueDeplacement; -import org.fudaa.ebli.calque.edition.ZCalqueEditable; -import org.fudaa.ebli.calque.edition.ZEditorInterface; -import org.fudaa.ebli.calque.edition.BPaletteRotation; -import org.fudaa.ebli.calque.edition.ZSceneEditor; -import org.fudaa.ebli.commun.BPalettePanelInterface; -import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; -import org.fudaa.ebli.commun.EbliFormatterInterface; -import org.fudaa.ebli.ressource.EbliResource; - -import com.memoire.fu.FuLog; - -/** - * Une action pour faire une rotation d'objets GIS, reagissant au changement de calque selectionn\xE9. - * @author Fred Deniger - * @version $Id: SceneDeplacementAction.java,v 1.1.2.1 2008-05-13 12:10:47 bmarchan Exp $ - */ -public class SceneDeplacementAction extends EbliActionPaletteTreeModel implements PropertyChangeListener { - - ZSceneEditor sceneEditor_; - EbliFormatterInterface formatter_; - ZCalqueDeplacement cqDep_; - - /** - * @param _m l'arbre des calques - */ - public SceneDeplacementAction(final TreeSelectionModel _m, final ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter, ZCalqueDeplacement _cqDep) { - super(EbliResource.EBLI.getString("D\xE9placer des objets"), EbliResource.EBLI.getToolIcon("draw-move"), "GLOBAL_MOVE", _m); - formatter_=_formatter; - cqDep_=_cqDep; - setSceneEditor(_sceneEditor); - setEnabled(isTargetValid(null)); - cqDep_.addPropertyChangeListener(this); - } - /** - * @param _editor l'editeur - */ - private void setSceneEditor(final ZSceneEditor _sceneEditor) { - sceneEditor_ = _sceneEditor; - } - - protected boolean isTargetValid(final Object _o) { - return (sceneEditor_!=null && (!sceneEditor_.getScene().isRestrictedToCalqueActif() || sceneEditor_.getScene().isCalqueActifEditable())); - } - - public void changeAction(){ - cqDep_.setGele(!super.isSelected()); - super.changeAction(); - } - - /** - * Le calque target, c'est \xE0 dire le calque actif. - */ - protected void setTarget(final Object _o) { - setDisableWhenHide_ = !isTargetValid(null); - if (palette_!=null) palette_.setPalettePanelTarget(_o); - } - - public void updateBeforeShow() { - if (palette_!=null) ((BPaletteDeplacement)palette_).updateState(); - } - - protected BPalettePanelInterface buildPaletteContent() { - BPaletteDeplacement pal=new BPaletteDeplacement(sceneEditor_,formatter_); - pal.setCalqueDeplacement(cqDep_); - return pal; - } - - public void propertyChange(final PropertyChangeEvent _evt){ -// changeAction(); - if (isSelected() == cqDep_.isGele()) { - super.setSelected(!cqDep_.isGele()); - } -// super.changeAction(); - } -} +/* + * @creation 1 avr. 2005 + * @modification $Date: 2008-05-13 12:10:47 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque.action; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +import javax.swing.tree.TreeSelectionModel; + +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.edition.BPaletteDeplacement; +import org.fudaa.ebli.calque.edition.BPaletteEdition; +import org.fudaa.ebli.calque.edition.ZCalqueDeplacement; +import org.fudaa.ebli.calque.edition.ZCalqueEditable; +import org.fudaa.ebli.calque.edition.ZEditorInterface; +import org.fudaa.ebli.calque.edition.BPaletteRotation; +import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.commun.BPalettePanelInterface; +import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; +import org.fudaa.ebli.commun.EbliFormatterInterface; +import org.fudaa.ebli.ressource.EbliResource; + +import com.memoire.fu.FuLog; + +/** + * Une action pour faire une rotation d'objets GIS, reagissant au changement de calque selectionn\xE9. + * @author Fred Deniger + * @version $Id: SceneDeplacementAction.java,v 1.1.2.1 2008-05-13 12:10:47 bmarchan Exp $ + */ +public class SceneDeplacementAction extends EbliActionPaletteTreeModel implements PropertyChangeListener { + + ZSceneEditor sceneEditor_; + EbliFormatterInterface formatter_; + ZCalqueDeplacement cqDep_; + + /** + * @param _m l'arbre des calques + */ + public SceneDeplacementAction(final TreeSelectionModel _m, final ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter, ZCalqueDeplacement _cqDep) { + super(EbliResource.EBLI.getString("D\xE9placer des objets"), EbliResource.EBLI.getToolIcon("draw-move"), "GLOBAL_MOVE", _m); + formatter_=_formatter; + cqDep_=_cqDep; + setSceneEditor(_sceneEditor); + setEnabled(isTargetValid(null)); + cqDep_.addPropertyChangeListener(this); + } + /** + * @param _editor l'editeur + */ + private void setSceneEditor(final ZSceneEditor _sceneEditor) { + sceneEditor_ = _sceneEditor; + } + + protected boolean isTargetValid(final Object _o) { + // On n'utilise pas le calque actif de la scene (probablement pas encore initialis\xE9), mais l'objet pass\xE9. + return (sceneEditor_!=null && (!sceneEditor_.getScene().isRestrictedToCalqueActif() || _o instanceof ZCalqueEditable/*sceneEditor_.getScene().isCalqueActifEditable()*/)); + } + + public void changeAction(){ + cqDep_.setGele(!super.isSelected()); + super.changeAction(); + } + + + public void updateBeforeShow() { + if (palette_!=null) ((BPaletteDeplacement)palette_).updateState(); + } + + protected BPalettePanelInterface buildPaletteContent() { + BPaletteDeplacement pal=new BPaletteDeplacement(sceneEditor_,formatter_); + pal.setCalqueDeplacement(cqDep_); + return pal; + } + + public void propertyChange(final PropertyChangeEvent _evt){ +// changeAction(); + if (isSelected() == cqDep_.isGele()) { + super.setSelected(!cqDep_.isGele()); + } +// super.changeAction(); + } +} Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneRotationAction.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneRotationAction.java 2008-07-18 07:32:10 UTC (rev 3696) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneRotationAction.java 2008-07-18 07:32:53 UTC (rev 3697) @@ -1,70 +1,64 @@ -/* - * @creation 1 avr. 2005 - * @modification $Date: 2008-05-13 12:10:45 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ebli.calque.action; - -import javax.swing.tree.TreeSelectionModel; - -import org.fudaa.ebli.calque.ZScene; -import org.fudaa.ebli.calque.edition.BPaletteEdition; -import org.fudaa.ebli.calque.edition.ZCalqueEditable; -import org.fudaa.ebli.calque.edition.ZEditorInterface; -import org.fudaa.ebli.calque.edition.BPaletteRotation; -import org.fudaa.ebli.calque.edition.ZSceneEditor; -import org.fudaa.ebli.commun.BPalettePanelInterface; -import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; -import org.fudaa.ebli.commun.EbliFormatterInterface; -import org.fudaa.ebli.ressource.EbliResource; - -import com.memoire.fu.FuLog; - -/** - * Une action pour faire une rotation d'objets GIS, reagissant au changement de calque selectionn\xE9. - * @author Fred Deniger - * @version $Id: SceneRotationAction.java,v 1.1.2.1 2008-05-13 12:10:45 bmarchan Exp $ - */ -public class SceneRotationAction extends EbliActionPaletteTreeModel { - - ZSceneEditor sceneEditor_; - EbliFormatterInterface formatter_; - - /** - * @param _m l'arbre des calques - */ - public SceneRotationAction(final TreeSelectionModel _m, final ZEditorInterface _editor, ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter) { - super(EbliResource.EBLI.getString("Rotation des objets"), EbliResource.EBLI.getToolIcon("draw-rotation"), "GLOBAL_ROTATE", _m); - formatter_=_formatter; - setSceneEditor(_sceneEditor); - setEnabled(isTargetValid(null)); - } - /** - * @param _editor l'editeur - */ - private void setSceneEditor(final ZSceneEditor _sceneEditor) { - sceneEditor_ = _sceneEditor; - } - - protected boolean isTargetValid(final Object _o) { - return (sceneEditor_!=null && (!sceneEditor_.getScene().isRestrictedToCalqueActif() || sceneEditor_.getScene().isCalqueActifEditable())); - } - - /** - * Le calque target, c'est \xE0 dire le calque actif. - */ - protected void setTarget(final Object _o) { - setDisableWhenHide_ = !isTargetValid(null); - if (palette_!=null) palette_.setPalettePanelTarget(_o); - } - - public void updateBeforeShow() { - if (palette_!=null) ((BPaletteRotation)palette_).updateForSelectionChanged(); - } - - protected BPalettePanelInterface buildPaletteContent() { - return new BPaletteRotation(sceneEditor_,formatter_); - } -} +/* + * @creation 1 avr. 2005 + * @modification $Date: 2008-05-13 12:10:45 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque.action; + +import javax.swing.tree.TreeSelectionModel; + +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.edition.BPaletteEdition; +import org.fudaa.ebli.calque.edition.ZCalqueEditable; +import org.fudaa.ebli.calque.edition.ZEditorInterface; +import org.fudaa.ebli.calque.edition.BPaletteRotation; +import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.commun.BPalettePanelInterface; +import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; +import org.fudaa.ebli.commun.EbliFormatterInterface; +import org.fudaa.ebli.ressource.EbliResource; + +import com.memoire.fu.FuLog; + +/** + * Une action pour faire une rotation d'objets GIS, reagissant au changement de calque selectionn\xE9. + * @author Fred Deniger + * @version $Id: SceneRotationAction.java,v 1.1.2.1 2008-05-13 12:10:45 bmarchan Exp $ + */ +public class SceneRotationAction extends EbliActionPaletteTreeModel { + + ZSceneEditor sceneEditor_; + EbliFormatterInterface formatter_; + + /** + * @param _m l'arbre des calques + */ + public SceneRotationAction(final TreeSelectionModel _m, final ZEditorInterface _editor, ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter) { + super(EbliResource.EBLI.getString("Rotation des objets"), EbliResource.EBLI.getToolIcon("draw-rotation"), "GLOBAL_ROTATE", _m); + formatter_=_formatter; + setSceneEditor(_sceneEditor); + setEnabled(isTargetValid(null)); + } + /** + * @param _editor l'editeur + */ + private void setSceneEditor(final ZSceneEditor _sceneEditor) { + sceneEditor_ = _sceneEditor; + } + + protected boolean isTargetValid(final Object _o) { + // On n'utilise pas le calque actif de la scene (probablement pas encore initialis\xE9), mais l'objet pass\xE9. + return (sceneEditor_!=null && (!sceneEditor_.getScene().isRestrictedToCalqueActif() || _o instanceof ZCalqueEditable/*sceneEditor_.getScene().isCalqueActifEditable()*/)); + } + + + public void updateBeforeShow() { + if (palette_!=null) ((BPaletteRotation)palette_).updateForSelectionChanged(); + } + + protected BPalettePanelInterface buildPaletteContent() { + return new BPaletteRotation(sceneEditor_,formatter_); + } +} Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteDeplacement.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteDeplacement.java 2008-07-18 07:32:10 UTC (rev 3696) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteDeplacement.java 2008-07-18 07:32:53 UTC (rev 3697) @@ -1,190 +1,184 @@ -/* - * @creation 5 avr. 2005 - * @modification $Date: 2008-05-13 12:10:31 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ebli.calque.edition; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Arrays; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JPanel; - -import com.memoire.bu.BuGridLayout; -import com.memoire.bu.BuLabel; -import com.memoire.bu.BuPanel; -import com.memoire.bu.BuResource; -import com.memoire.bu.BuTextField; -import com.memoire.bu.BuToolButton; -import com.memoire.fu.FuLog; - -import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.gis.GISAttributeInterface; - -import org.fudaa.ebli.calque.ZSelectionEvent; -import org.fudaa.ebli.calque.ZSelectionListener; -import org.fudaa.ebli.commun.BPalettePanelInterface; -import org.fudaa.ebli.commun.EbliFormatterInterface; - -/** - * Un panneau pour saisir les coordonn\xE9es de d\xE9placement d'objets GIS. - * Ce panneau est int\xE9gr\xE9 dans la palette des outils lorsque l'outil "d\xE9placement" est s\xE9lectionn\xE9. - * - * @author Fred Deniger - * @version $Id: BPaletteDeplacement.java,v 1.1.2.1 2008-05-13 12:10:31 bmarchan Exp $ - */ -public class BPaletteDeplacement extends JPanel implements BPalettePanelInterface, ZSelectionListener, - ZCalqueDeplacement.SpecPanel, ActionListener { - - JButton btApply_; - - ZCalqueDeplacement deplacement_; - private ZSceneEditor sceneEditor_; - EbliFormatterInterface formatter_; - - BuTextField tfDx_; - BuTextField tfDy_; - BuTextField tfDz_; - BuLabel lbDz_; - boolean bZ_=false; - - /** - * @param _deplacement le calque de deplacement - * @param _formatter - */ - public BPaletteDeplacement(ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter) { - super(); - -// deplacement_ = _deplacement; -// deplacement_.specPanel_ = this; - - formatter_ = _formatter; - sceneEditor_=_sceneEditor; - - tfDx_ = BuTextField.createDoubleField(); - tfDx_.setSize(new Dimension(50,tfDx_.getPreferredSize().height)); - tfDx_.setValue(new Double(0)); - tfDy_ = BuTextField.createDoubleField(); - tfDy_.setValue(new Double(0)); - tfDz_ = BuTextField.createDoubleField(); - tfDz_.setValue(new Double(0)); - lbDz_=new BuLabel("dz:"); - - btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer")); - btApply_.addActionListener(this); - - BuPanel pnMain=new BuPanel(); - pnMain.setLayout(new BuGridLayout(2,2,2)); - pnMain.add(new BuLabel("dx:")); - pnMain.add(tfDx_); - pnMain.add(new BuLabel("dy:")); - pnMain.add(tfDy_); - pnMain.add(lbDz_); - pnMain.add(tfDz_); - - BuPanel pnButtons=new BuPanel(); - pnButtons.setLayout(new BorderLayout(5,5)); - pnButtons.add(btApply_,BorderLayout.SOUTH); - - setLayout(new BorderLayout(5,5)); - add(pnMain,BorderLayout.CENTER); - add(pnButtons,BorderLayout.EAST); - - setName("pnMove"); - - sceneEditor_.getScene().addSelectionListener(this); - } - - public void actionPerformed(final ActionEvent _e){ - if (btApply_.isEnabled() && btApply_ == _e.getSource()) { - Double dx = (Double) tfDx_.getValue(); - Double dy = (Double) tfDy_.getValue(); - Double dz=new Double(0); - if (tfDz_.isEnabled()) dz=(Double) tfDz_.getValue(); - if (dx != null && dy != null && dz!=null) { - deplacement_.manualMove(dx.doubleValue(), dy.doubleValue(), dz.doubleValue()); - } - - } - } - - public void setCalqueDeplacement(ZCalqueDeplacement _dep) { - deplacement_=_dep; - deplacement_.specPanel_ = this; - } -// public void close(){ -// if (FuLog.isTrace()) { -// FuLog.trace("EBL: " + getClass().getName() + " close"); -// } -// deplacement_.specPanel_ = null; -// } - - public JComponent getComponent(){ - return this; - } - - public void targetChanged(final ZCalqueEditable _target) { - bZ_= (_target != null && _target.getModelEditable() != null && _target.getModelEditable().getGeomData().getAttributeIsZ() != null); - lbDz_.setEnabled(bZ_); - tfDz_.setEnabled(bZ_); - } - - public void updateState(){ - if (deplacement_.isDragged()) { - tfDx_.setEditable(false); - tfDy_.setEditable(false); - tfDz_.setEditable(false); - btApply_.setEnabled(false); - tfDx_.setText(formatter_.getXYFormatter().format(deplacement_.getReelDx())); - tfDy_.setText(formatter_.getXYFormatter().format(deplacement_.getReelDy())); - } - else { - if (!tfDx_.isEditable()) { - tfDx_.setText(CtuluLibString.ZERO); - tfDy_.setText(CtuluLibString.ZERO); - } - tfDx_.setEditable(true); - tfDy_.setEditable(true); - tfDz_.setEditable(bZ_); - btApply_.setEnabled(!deplacement_.isSelectionEmpty()); - } - - } - - /* (non-Javadoc) - * @see org.fudaa.ebli.commun.BPalettePanelInterface#doAfterDisplay() - */ - public void doAfterDisplay() { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see org.fudaa.ebli.commun.BPalettePanelInterface#paletteDeactivated() - */ - public void paletteDeactivated() { - FuLog.trace("BPaletteDeplacement.paletteDeactivated"); - } - - /* (non-Javadoc) - * @see org.fudaa.ebli.commun.BPalettePanelInterface#setPalettePanelTarget(java.lang.Object) - */ - public boolean setPalettePanelTarget(Object _target) { - // TODO Auto-generated method stub - return false; - } - - /* (non-Javadoc) - * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) - */ - public void selectionChanged(ZSelectionEvent _evt) { - updateState(); - } -} +/* + * @creation 5 avr. 2005 + * @modification $Date: 2008-05-13 12:10:31 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque.edition; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Arrays; + +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; + +import com.memoire.bu.BuGridLayout; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuResource; +import com.memoire.bu.BuTextField; +import com.memoire.bu.BuToolButton; +import com.memoire.fu.FuLog; + +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.gis.GISAttributeInterface; + +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.commun.BPalettePanelInterface; +import org.fudaa.ebli.commun.EbliFormatterInterface; + +/** + * Un panneau pour saisir les coordonn\xE9es de d\xE9placement d'objets GIS. + * Ce panneau est int\xE9gr\xE9 dans la palette des outils lorsque l'outil "d\xE9placement" est s\xE9lectionn\xE9. + * + * @author Fred Deniger + * @version $Id: BPaletteDeplacement.java,v 1.1.2.1 2008-05-13 12:10:31 bmarchan Exp $ + */ +public class BPaletteDeplacement extends JPanel implements BPalettePanelInterface, ZSelectionListener, + ZCalqueDeplacement.SpecPanel, ActionListener { + + JButton btApply_; + + ZCalqueDeplacement deplacement_; + private ZSceneEditor sceneEditor_; + EbliFormatterInterface formatter_; + + BuTextField tfDx_; + BuTextField tfDy_; + BuTextField tfDz_; + BuLabel lbDz_; + + /** + * @param _deplacement le calque de deplacement + * @param _formatter + */ + public BPaletteDeplacement(ZSceneEditor _sceneEditor, EbliFormatterInterface _formatter) { + super(); + +// deplacement_ = _deplacement; +// deplacement_.specPanel_ = this; + + formatter_ = _formatter; + sceneEditor_=_sceneEditor; + + tfDx_ = BuTextField.createDoubleField(); + tfDx_.setPreferredSize(new Dimension(70,tfDx_.getPreferredSize().height)); + tfDx_.setValue(new Double(0)); + tfDy_ = BuTextField.createDoubleField(); + tfDy_.setValue(new Double(0)); + tfDz_ = BuTextField.createDoubleField(); + tfDz_.setValue(new Double(0)); + lbDz_=new BuLabel("dz:"); + + btApply_ = new BuToolButton(BuResource.BU.getToolIcon("appliquer")); + btApply_.addActionListener(this); + + BuPanel pnMain=new BuPanel(); + pnMain.setLayout(new BuGridLayout(2,2,2)); + pnMain.add(new BuLabel("dx:")); + pnMain.add(tfDx_); + pnMain.add(new BuLabel("dy:")); + pnMain.add(tfDy_); + pnMain.add(lbDz_); + pnMain.add(tfDz_); + + BuPanel pnButtons=new BuPanel(); + pnButtons.setLayout(new BorderLayout(5,5)); + pnButtons.add(btApply_,BorderLayout.SOUTH); + + setLayout(new BorderLayout(5,5)); + add(pnMain,BorderLayout.CENTER); + add(pnButtons,BorderLayout.EAST); + + setName("pnMove"); + + sceneEditor_.getScene().addSelectionListener(this); + } + + public void actionPerformed(final ActionEvent _e){ + if (btApply_.isEnabled() && btApply_ == _e.getSource()) { + Double dx = (Double) tfDx_.getValue(); + Double dy = (Double) tfDy_.getValue(); + Double dz=new Double(0); + if (tfDz_.isEnabled()) dz=(Double) tfDz_.getValue(); + if (dx != null && dy != null && dz!=null) { + deplacement_.manualMove(dx.doubleValue(), dy.doubleValue(), dz.doubleValue()); + } + + } + } + + public void setCalqueDeplacement(ZCalqueDeplacement _dep) { + deplacement_=_dep; + deplacement_.specPanel_ = this; + } +// public void close(){ +// if (FuLog.isTrace()) { +// FuLog.trace("EBL: " + getClass().getName() + " close"); +// } +// deplacement_.specPanel_ = null; +// } + + public JComponent getComponent(){ + return this; + } + + + public void updateState(){ + if (deplacement_.isDragged()) { + tfDx_.setEditable(false); + tfDy_.setEditable(false); + tfDz_.setEditable(false); + btApply_.setEnabled(false); + tfDx_.setText(formatter_.getXYFormatter().format(deplacement_.getReelDx())); + tfDy_.setText(formatter_.getXYFormatter().format(deplacement_.getReelDy())); + } + else { + if (!tfDx_.isEditable()) { + tfDx_.setText(CtuluLibString.ZERO); + tfDy_.setText(CtuluLibString.ZERO); + } + tfDx_.setEditable(true); + tfDy_.setEditable(true); + tfDz_.setEditable(true); + btApply_.setEnabled(!deplacement_.isSelectionEmpty()); + } + + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.commun.BPalettePanelInterface#doAfterDisplay() + */ + public void doAfterDisplay() { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.commun.BPalettePanelInterface#paletteDeactivated() + */ + public void paletteDeactivated() { + FuLog.trace("BPaletteDeplacement.paletteDeactivated"); + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.commun.BPalettePanelInterface#setPalettePanelTarget(java.lang.Object) + */ + public boolean setPalettePanelTarget(Object _target) { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) + */ + public void selectionChanged(ZSelectionEvent _evt) { + updateState(); + } +} Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteRotation.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteRotation.java 2008-07-18 07:32:10 UTC (rev 3696) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteRotation.java 2008-07-18 07:32:53 UTC (rev 3697) @@ -79,7 +79,7 @@ BuLabel lbAng=new BuLabel(BuResource.BU.getString("Angle:")); lbAng.setToolTipText(BuResource.BU.getString("En degr\xE9s")); tfX0_ = BuTextField.createDoubleField(); - tfX0_.setSize(new Dimension(50,tfX0_.getPreferredSize().height)); + tfX0_.setPreferredSize(new Dimension(70,tfX0_.getPreferredSize().height)); tfX0_.setValue(new Double(0)); tfY0_ = BuTextField.createDoubleField(); tfY0_.setValue(new Double(0)); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueDeplacement.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueDeplacement.java 2008-07-18 07:32:10 UTC (rev 3696) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueDeplacement.java 2008-07-18 07:32:53 UTC (rev 3697) @@ -66,9 +66,9 @@ * @param _dy dy reel */ public final void manualMove(final double _dx, final double _dy, final double _dz) { - if (isGele()) { - return; - } +// if (isGele()) { +// return; +// } isDragged_ = false; if (target_ != null) { target_.moved(_dx, _dy, _dz); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-18 07:32:01
|
Revision: 3696 http://fudaa.svn.sourceforge.net/fudaa/?rev=3696&view=rev Author: bmarchan Date: 2008-07-18 07:32:10 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Un peu de doc... Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/BPalettePanelInterface.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteSpecAbstract.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteTreeModel.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/BPalettePanelInterface.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/BPalettePanelInterface.java 2008-07-17 12:46:28 UTC (rev 3695) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/BPalettePanelInterface.java 2008-07-18 07:32:10 UTC (rev 3696) @@ -21,16 +21,21 @@ JComponent getComponent(); /** - * @param target la cible de cette palette + * @param _target la cible de cette palette. La cible peut \xEAtre un calque, une liste de calques, n'importe quoi, + * qui va permettre de configurer la palette ou faire les traitements. * @return true si la cible est correcte */ boolean setPalettePanelTarget(Object _target); /** * appele lorsque le selecteur n'est plus activ\xE9e. + * BM: A priori n'est pas appel\xE9, donc ne pas se crever \xE0 implementer. */ void paletteDeactivated(); + /** + * BM: A priori appel\xE9 apr\xE8s que la palette soit visible, en cas de chgt de cible. Par exemple pour refaire un pack(). + */ void doAfterDisplay(); } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java 2008-07-17 12:46:28 UTC (rev 3695) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java 2008-07-18 07:32:10 UTC (rev 3696) @@ -31,6 +31,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; /** + * Une action d\xE9clenchant l'affichage d'une palette. * @author deniger * @version $Id: EbliActionPaletteAbstract.java,v 1.21 2007-06-13 12:57:45 deniger Exp $ */ @@ -118,6 +119,11 @@ } } + /** + * Controle que la cible est acceptable par l'action/la palette. N'affecte pas la cible courante. + * @param _o La cible + * @return true si cible acceptable. + */ protected boolean isTargetValid(final Object _o) { return true; } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteSpecAbstract.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteSpecAbstract.java 2008-07-17 12:46:28 UTC (rev 3695) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteSpecAbstract.java 2008-07-18 07:32:10 UTC (rev 3696) @@ -20,6 +20,7 @@ public abstract class EbliActionPaletteSpecAbstract extends EbliActionPaletteAbstract { protected transient BPalettePanelInterface palette_; + /** L'action est d\xE9sactiv\xE9e sitot que la palette est cach\xE9e. */ protected boolean setDisableWhenHide_; protected Object target_; @@ -75,6 +76,10 @@ return false; } + /** + * D\xE9finit le calque actif. + * @param _o Le calque, null si pas de selection. + */ protected void setTarget(final Object _o) { final boolean isValid = isTargetValid(_o); if (target_ != _o) { Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteTreeModel.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteTreeModel.java 2008-07-17 12:46:28 UTC (rev 3695) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteTreeModel.java 2008-07-18 07:32:10 UTC (rev 3696) @@ -15,7 +15,7 @@ import javax.swing.tree.TreeSelectionModel; /** - * Cette action permet de mettre \xE0 jour la palette \xE0 partir de du calque selectionne. + * Une action qui r\xE9agit au calque selectionne. * * @author Fred Deniger * @version $Id: EbliActionPaletteTreeModel.java,v 1.3 2007-05-04 13:49:47 deniger Exp $ @@ -38,6 +38,11 @@ setEnabled(isTargetValid(target_)); } + /** + * Retourne le calque selectionn\xE9 dans l'arbre. + * @param _m Le modele de selection. + * @return Le calque selectionn\xE9. Normalement de type BCalque ?? + */ protected Object getTarget(final TreeSelectionModel _m) { final TreePath path = _m.getSelectionPath(); return path == null ? null : path.getLastPathComponent(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-17 12:46:49
|
Revision: 3695 http://fudaa.svn.sourceforge.net/fudaa/?rev=3695&view=rev Author: bmarchan Date: 2008-07-17 12:46:28 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Renommage des classes Dunesxxx en DunesMAIxxx Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesAdapter.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/olb/OLBExec.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/reflux/TestJDunes.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/impl/MvActLoadDefault.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigWizardFileMng.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java Added Paths: ----------- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIFileFormat.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIReader.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIWriter.java Removed Paths: ------------- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesFileFormat.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesReader.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesWriter.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesAdapter.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesAdapter.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -47,7 +47,7 @@ } public FileFormat getFileFormat() { - return DunesFileFormat.getInstance(); + return DunesMAIFileFormat.getInstance(); } } Deleted: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesFileFormat.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesFileFormat.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesFileFormat.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -1,136 +0,0 @@ -/* - * @creation 13 mars 2003 - * @modification $Date: 2006-11-15 09:22:54 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - */ -package org.fudaa.dodico.dunes.io; - -import java.io.File; - -import org.fudaa.ctulu.CtuluIOOperationSynthese; -import org.fudaa.ctulu.ProgressionInterface; -import org.fudaa.ctulu.fileformat.FileFormatUnique; -import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; -import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; - -import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.EfGridSource; -import org.fudaa.dodico.ef.FileFormatGridVersion; -import org.fudaa.dodico.fichiers.FileFormatSoftware; -import org.fudaa.dodico.h2d.resource.H2dResource; -import org.fudaa.dodico.h2d.type.H2dFileFormatType; - -/** - * @author deniger - * @version $Id: DunesFileFormat.java,v 1.25 2006-11-15 09:22:54 deniger Exp $ - */ -public final class DunesFileFormat extends FileFormatUnique implements DunesVersionInterface, FileFormatGridVersion { - - public static final DunesFileFormat INSTANCE = new DunesFileFormat(); - - /** - * @return le singleton - */ - public static DunesFileFormat getInstance() { - return INSTANCE; - } - - private DunesFileFormat() { - super(1); - extensions_ = new String[] { "mail", "geo", "dunes" }; - id_ = "DUNES"; - nom_ = "Dunes"; - description_ = H2dResource.getS("utilis\xE9 par le mailleur Dunes"); - software_ = FileFormatSoftware.REFLUX_IS; - type_ = H2dFileFormatType.MAILLAGE; - } - - public boolean containsGrid() { - return true; - } - - /** - * Returns the aDAPTATIF. - * - * @return int - */ - public int getAdaptatifCode() { - return 2; - } - - /** - * Returns the eLEMENT_ID. - * - * @return String - */ - public String getElementCode() { - return "ELEMENT"; - } - - /** - * Returns the nOEUD_ID. - * - * @return String - */ - public String getNoeudCode() { - return "NOEUD"; - } - - /** - * Returns the nON_ADAPTATIF. - * - * @return int - */ - public int getNonAdaptatifCode() { - return 1; - } - - public FileReadOperationAbstract createReader() { - return new DunesReader(this); - } - - public FileWriteOperationAbstract createWriter() { - return new DunesWriter(this); - } - - /** - * @param _f le fichier cible a ecrire - * @param _inter le source des donnees - * @param _prog la barre de progression - * @return la synthese de l'operation - */ - public CtuluIOOperationSynthese write(final File _f, final DunesInterface _inter, final ProgressionInterface _prog) { - final DunesWriter w = new DunesWriter(this); - w.setFile(_f); - w.setProgressReceiver(_prog); - return w.write(_inter); - } - - /** - * @param _f le fichier cible - * @param _m le maillage a ecrire - * @param _prog la barre de progression - * @return la synthese - */ - public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridInterface _m, final ProgressionInterface _prog) { - final DunesAdapter inter = new DunesAdapter(); - inter.setMaillage(_m); - return write(_f, inter, _prog); - } - - public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridSource _m, final ProgressionInterface _prog) { - return writeGrid(_f, _m.getGrid(), _prog); - } - - public CtuluIOOperationSynthese readGrid(final File _f, final ProgressionInterface _prog) { - return read(_f, _prog); - } - - public CtuluIOOperationSynthese readListPoint(final File _f, final ProgressionInterface _prog) { - final CtuluIOOperationSynthese s = readGrid(_f, _prog); - s.setSource(((EfGridSource) s.getSource()).getGrid()); - return s; - } - -} \ No newline at end of file Copied: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIFileFormat.java (from rev 3624, branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesFileFormat.java) =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIFileFormat.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIFileFormat.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -0,0 +1,136 @@ +/* + * @creation 13 mars 2003 + * @modification $Date: 2006-11-15 09:22:54 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + */ +package org.fudaa.dodico.dunes.io; + +import java.io.File; + +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; + +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.ef.EfGridSource; +import org.fudaa.dodico.ef.FileFormatGridVersion; +import org.fudaa.dodico.fichiers.FileFormatSoftware; +import org.fudaa.dodico.h2d.resource.H2dResource; +import org.fudaa.dodico.h2d.type.H2dFileFormatType; + +/** + * @author deniger + * @version $Id: DunesFileFormat.java,v 1.25 2006-11-15 09:22:54 deniger Exp $ + */ +public final class DunesMAIFileFormat extends FileFormatUnique implements DunesVersionInterface, FileFormatGridVersion { + + public static final DunesMAIFileFormat INSTANCE = new DunesMAIFileFormat(); + + /** + * @return le singleton + */ + public static DunesMAIFileFormat getInstance() { + return INSTANCE; + } + + private DunesMAIFileFormat() { + super(1); + extensions_ = new String[] { "mail", "dunes" }; + id_ = "DUNES"; + nom_ = "Dunes maillage"; + description_ = H2dResource.getS("utilis\xE9 par le mailleur Dunes"); + software_ = FileFormatSoftware.REFLUX_IS; + type_ = H2dFileFormatType.MAILLAGE; + } + + public boolean containsGrid() { + return true; + } + + /** + * Returns the aDAPTATIF. + * + * @return int + */ + public int getAdaptatifCode() { + return 2; + } + + /** + * Returns the eLEMENT_ID. + * + * @return String + */ + public String getElementCode() { + return "ELEMENT"; + } + + /** + * Returns the nOEUD_ID. + * + * @return String + */ + public String getNoeudCode() { + return "NOEUD"; + } + + /** + * Returns the nON_ADAPTATIF. + * + * @return int + */ + public int getNonAdaptatifCode() { + return 1; + } + + public FileReadOperationAbstract createReader() { + return new DunesMAIReader(this); + } + + public FileWriteOperationAbstract createWriter() { + return new DunesMAIWriter(this); + } + + /** + * @param _f le fichier cible a ecrire + * @param _inter le source des donnees + * @param _prog la barre de progression + * @return la synthese de l'operation + */ + public CtuluIOOperationSynthese write(final File _f, final DunesInterface _inter, final ProgressionInterface _prog) { + final DunesMAIWriter w = new DunesMAIWriter(this); + w.setFile(_f); + w.setProgressReceiver(_prog); + return w.write(_inter); + } + + /** + * @param _f le fichier cible + * @param _m le maillage a ecrire + * @param _prog la barre de progression + * @return la synthese + */ + public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridInterface _m, final ProgressionInterface _prog) { + final DunesAdapter inter = new DunesAdapter(); + inter.setMaillage(_m); + return write(_f, inter, _prog); + } + + public CtuluIOOperationSynthese writeGrid(final File _f, final EfGridSource _m, final ProgressionInterface _prog) { + return writeGrid(_f, _m.getGrid(), _prog); + } + + public CtuluIOOperationSynthese readGrid(final File _f, final ProgressionInterface _prog) { + return read(_f, _prog); + } + + public CtuluIOOperationSynthese readListPoint(final File _f, final ProgressionInterface _prog) { + final CtuluIOOperationSynthese s = readGrid(_f, _prog); + s.setSource(((EfGridSource) s.getSource()).getGrid()); + return s; + } + +} \ No newline at end of file Copied: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIReader.java (from rev 3624, branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesReader.java) =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIReader.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIReader.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -0,0 +1,240 @@ +/* + * @creation 19 f\xE9vr. 2003 + * @modification $Date: 2007-01-19 13:07:22 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.dodico.dunes.io; + +import java.io.EOFException; +import java.io.IOException; + +import org.fudaa.ctulu.CtuluLibMessage; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.ProgressionUpdater; +import org.fudaa.ctulu.fileformat.FileFormat; +import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; + +import org.fudaa.dodico.ef.EfElement; +import org.fudaa.dodico.ef.EfLib; +import org.fudaa.dodico.ef.EfNode; +import org.fudaa.dodico.ef.impl.EfGrid; +import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract; +import org.fudaa.dodico.h2d.resource.H2dResource; + +/** + * Lecteur de fichiers dunes (.mail). + * + * @author deniger + * @version $Id: DunesReader.java,v 1.28 2007-01-19 13:07:22 deniger Exp $ + */ +public class DunesMAIReader extends FileOpReadCharSimpleAbstract { + + DunesVersionInterface version_; + + /** + * Utilise la derniere version de DunesFileFormat. + */ + public DunesMAIReader() { + this(DunesMAIFileFormat.getInstance()); + } + + /** + * @param _f le format a utiliser + */ + public DunesMAIReader(final DunesVersionInterface _f) { + version_ = _f; + } + + protected Object internalRead() { + return readDunes(); + } + + private EfElement[] readElement(final ProgressionUpdater _up) throws IOException { + final int nbElem = in_.intField(0); + // Les donnees utiles pour l'etat d'avancement + _up.setValue(2, nbElem, 50, 50); + _up.majProgessionStateOnly(); + int[] index; + + final EfElement[] elems = new EfElement[nbElem]; + for (int i = 0; i < nbElem; i++) { + in_.readFields(); + if (in_.getNumberOfFields() < 2) { + analyze_.addInfo(H2dResource.getS("Format attendu") + "NUM_ELEMENT NB_POINT P[1] ...P[NB_POINT]", in_ + .getLineNumber()); + analyze_.addError(H2dResource.getS("La d\xE9finition de l'\xE9l\xE9ment {0} n'est pas valide"), in_.getLineNumber()); + return null; + } + // le numero d'element + int temp = in_.intField(0); + if (temp != (i + 1)) { + analyze_ + .addInfo(H2dResource.getS("L'index de l'\xE9l\xE9ment ne correspond pas \xE0 l'index r\xE9el"), in_.getLineNumber()); + } + temp = in_.intField(1); + if (temp <= 0) { + analyze_.addError(H2dResource.getS("Le nombre de points est n\xE9gatif ou nul pour l'\xE9l\xE9ment d'indice {0}", + CtuluLibString.getString(i + 1)), in_.getLineNumber()); + return null; + } + if (in_.getNumberOfFields() != (temp + 2)) { + analyze_.addInfo(H2dResource.getS("Nombre indiqu\xE9") + ": " + temp + CtuluLibString.DOT + H2dResource.getS("Nombre lu") + ": " + + (in_.getNumberOfFields() - 2), in_.getLineNumber()); + analyze_.addFatalError(H2dResource.getS("Le nombre d'\xE9l\xE9ments est incorrect"), in_.getLineNumber()); + return null; + } + index = new int[temp]; + for (int j = 0; j < temp; j++) { + // on stocke les indexs en commencant a 0. + index[j] = in_.intField(2 + j) - 1; + } + elems[i] = new EfElement(index); + _up.majAvancement(); + } + return elems; + } + + private EfNode[] readNodes(final int _nbNoeuds, final ProgressionUpdater _up, final double[] _adaptatifs) throws IOException { + final EfNode[] points = new EfNode[_nbNoeuds]; + _up.setValue(2, _nbNoeuds, 0, 50); + _up.majProgessionStateOnly(); + int temp; + // lecture des noeuds + for (int i = 0; i < _nbNoeuds; i++) { + in_.readFields(); + if (in_.getNumberOfFields() != 4) { + analyze_.addInfo(H2dResource.getS("Format attendu") + ": NUM_POINT X Y Z", in_.getLineNumber()); + analyze_.addError(H2dResource.getS("La d\xE9finition du noeud {0} n'est pas valide", CtuluLibString + .getString(i + 1)), in_.getLineNumber()); + return null; + } + temp = in_.intField(0); + if (temp != (i + 1)) { + analyze_.addInfo(H2dResource.getS("Le num\xE9ro du point ne correspond pas au num\xE9ro r\xE9el"), in_.getLineNumber()); + } + points[i] = new EfNode(in_.doubleField(1), in_.doubleField(2), in_.doubleField(3)); + if (_adaptatifs != null) { + in_.readFields(); + if (in_.getNumberOfFields() != 1) { + analyze_.addWarn(H2dResource.getS("La ligne du coefficient adaptatif ne doit contenir qu'un champ"), in_ + .getLineNumber()); + } + _adaptatifs[i] = in_.doubleField(0); + } + _up.majAvancement(); + } + return points; + + } + + private DunesInterface readDunes() { + DunesAdapter source = null; + EfNode[] points = null; + EfElement[] elems = null; + double[] adaptatifs = null; + in_.setJumpBlankLine(true); + try { + // lit jusqu'a la premiere ligne non vide. + // Lecture de l'identifiant NOEUD + in_.readFields(); + if ((in_.getNumberOfFields() != 1) || (!version_.getNoeudCode().equals(in_.stringField(0)))) { + analyze_.addError(H2dResource.getS("L'identifiant {0} est attendu", version_.getNoeudCode()), in_ + .getLineNumber()); + return null; + + } + in_.readFields(); + // Lecture du nombre de noeud et format du maillage (apaptatif ou non) + // NOMBRE_DE_NOEUD TYPE_DE_MAILLAGE + + // verification que l'on a bien 2 champs + if (in_.getNumberOfFields() != 2) { + analyze_.addFatalError(H2dResource.getS("Nombre de noeuds non trouv\xE9"), in_.getLineNumber()); + return null; + } + // le nombre de noeud + final int nbNoeuds = in_.intField(0); + // le type de maillage. + // Si 2, des infos sur le maillage adaptatif seront presentes + final int typeMaillage = in_.intField(1); + // Si adaptatif, on initialise le tableau stockant les valeurs. + if (typeMaillage == version_.getAdaptatifCode()) { + adaptatifs = new double[nbNoeuds]; + // on affecte a source le tableau. + } + final ProgressionUpdater up = new ProgressionUpdater(progress_); + points = readNodes(nbNoeuds, up, adaptatifs); + if (points == null) { + return null; + } + // Lecture du mot cle ELEMENT + in_.readFields(); + if ((in_.getNumberOfFields() != 1) && (!version_.getElementCode().equals(in_.stringField(0)))) { + analyze_.addError(H2dResource.getS("L'identifiant {0} est attendu", version_.getElementCode()), in_ + .getLineNumber()); + return null; + } + // Lecture du nombre d'elements. + in_.readFields(); + // Un seul champ attendu + if (in_.getNumberOfFields() != 1) { + analyze_.addFatalError(H2dResource.getS("Cette ligne est invalide"), in_.getLineNumber()); + return null; + } + elems = readElement(up); + if (elems == null) { + return null; + } + in_.readFields(); + if (!"0 0 0 0".equals(in_.getLine().trim())) { + if (in_.getLine().trim().length() > 0) { + analyze_.addWarn(H2dResource + .getS("Cette ligne et les suivantes sont ignor\xE9es"), in_.getLineNumber()); + } + } + in_.readFields(); + if (in_.getLine().trim().length() > 0) { + analyze_.addWarn(H2dResource + .getS("Cette ligne et les suivantes sont ignor\xE9es"), in_.getLineNumber()); + } + } catch (final EOFException e) { + if (CtuluLibMessage.DEBUG) { + CtuluLibMessage.debug("Dunes Read end"); + } + } catch (final NumberFormatException fe) { + analyze_.manageException(fe, in_.getLineNumber()); + } catch (final IOException _e) { + analyze_.manageException(_e); + } + // Le mot clef noeud est trouve, on peut creer le maillage. + final EfGrid maillage = new EfGrid(points, elems); + EfLib.orienteGrid(maillage, progress_, true, analyze_); + source = new DunesAdapter(); + source.setMaillage(maillage); + source.setAdaptatif(adaptatifs); + return source; + } + + /** + * @return le format + */ + public FileFormat getFileFormat() { + return getDunesFileFormat(); + } + + /** + * @return le format utilise + */ + public DunesMAIFileFormat getDunesFileFormat() { + return (DunesMAIFileFormat) version_.getFileFormat(); + } + + /** + * @return la version utilisee + */ + public FileFormatVersionInterface getVersion() { + return version_; + } +} \ No newline at end of file Copied: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIWriter.java (from rev 3624, branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesWriter.java) =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIWriter.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesMAIWriter.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -0,0 +1,197 @@ +/* + * @creation 2003-02-20 + * @modification $Date: 2006-10-16 07:55:47 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.dodico.dunes.io; + +import java.io.IOException; + +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.ProgressionUpdater; +import org.fudaa.ctulu.fileformat.FileFormat; +import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; + +import org.fudaa.dodico.commun.DodicoLib; +import org.fudaa.dodico.ef.EfElement; +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract; +import org.fudaa.dodico.h2d.resource.H2dResource; + +/** + * @author deniger + * @version $Id: DunesWriter.java,v 1.27 2006-10-16 07:55:47 deniger Exp $ + */ +public class DunesMAIWriter extends FileOpWriterCharSimpleAbstract { + + DunesVersionInterface version_; + + /** + * Construit avec une version par defaut. + */ + public DunesMAIWriter() { + this(DunesMAIFileFormat.getInstance()); + } + + /** + * @param _f la version a utiliser + */ + public DunesMAIWriter(final DunesVersionInterface _f) { + version_ = _f; + } + + /** + * @return le format utilise + */ + public FileFormat getFileFormat() { + return version_.getFileFormat(); + } + + /** + * Ecrire les donnees de l'interface <code>DunesInterface</code> sur la sortie <code>Writer</code>. L'ecriture + * n'est effectu\xE9e que si les points et elements du maillage sont non nuls. La m\xE9thode se termine par un flush mais ne + * ferme pas le flux. + */ + protected void writeDunes(final DunesInterface _d) { + final DunesInterface dunes = _d; + // Test sur les objets a ecrire + if (dunes == null) { + analyze_.addFatalError(H2dResource.getS("Les donn\xE9es sont nulles")); + return; + } + if (out_ == null) { + analyze_.addFatalError(DodicoLib.getS("Le flux de sortie est nul")); + return; + } + final EfGridInterface maillage = dunes.getGrid(); + if (maillage == null) { + analyze_.addFatalError("Le maillage est nul"); + return; + } + final int nPts = maillage.getPtsNb(); + if (nPts == 0) { + analyze_.addFatalError(H2dResource.getS("Le maillage ne contient pas de points")); + return; + } + // H2dElement[] elems= maillage.getElts(); + // if (elems == null) + // { + // analyze_.addFatalError("Le maillage ne contient pas d'\xE9l\xE9ments !"); + // return; + // } + final int nElems = maillage.getEltNb(); + if (nElems == 0) { + analyze_.addFatalError(H2dResource.getS("Le maillage ne contient pas d'\xE9l\xE9ments")); + return; + } + try { + StringBuffer b = new StringBuffer(600); + b.append(version_.getNoeudCode()); + b.append(' '); + b.append(lineSep_); + b.append(nPts); + boolean printAdaptatifV = false; + final double[] adValeur = dunes.getAdaptatifValeur(); + b.append(' '); + if (adValeur == null) { + b.append(version_.getNonAdaptatifCode()); + } else { + b.append(version_.getAdaptatifCode()); + printAdaptatifV = true; + } + writelnToOut(b.toString()); + // Gestion de l'etat d'avancement + // le pas pour afficher l'etat d'avancement + final int pourc = 0; + final boolean afficheAvance = (progress_ == null ? false : true); + if (afficheAvance) { + progress_.setProgression(pourc); + progress_.setDesc(H2dResource.getS("Ecriture fichier") + " dunes"); + } + final ProgressionUpdater up = new ProgressionUpdater(progress_); + up.setValue(2, nPts); + + for (int i = 0; i < nPts; i++) { + b = new StringBuffer(); + b.append((i + 1)); + b.append(' '); + b.append(maillage.getPtX(i)); + b.append(' '); + b.append(maillage.getPtY(i)); + b.append(' '); + b.append(maillage.getPtZ(i)); + b.append(lineSep_); + if (printAdaptatifV&&adValeur!=null) { + b.append(adValeur[i]); + b.append(lineSep_); + } + writeToOut(b.toString()); + up.majAvancement(); + } + b = new StringBuffer(); + // Cette ligne blanche est-elle utile ? + b.append(lineSep_); + // L'identifiant element + b.append(version_.getElementCode()); + b.append(lineSep_); + // le nb d'\xE9l\xE9ments + b.append(nElems); + writelnToOut(b.toString()); + // pour afficher l'etat d'avancement + up.setValue(2, nElems, 50, 50); + up.majAvancement(); + // les points par elements + EfElement ppel; + // le nombre de points par elements. + int nppel; + for (int i = 0; i < nElems; i++) { + b = new StringBuffer(); + ppel = maillage.getElement(i); + nppel = ppel.getPtNb(); + // le num d'elements + b.append((i + 1)); + b.append(' '); + // le nombre de point pour l'\xE9l\xE9ment i + b.append(nppel); + // les indices des points pour l'element i + for (int j = 0; j < nppel; j++) { + b.append(' '); + // Les indices sont stock\xE9s a partir de 0. + b.append(ppel.getPtIndex(j) + 1); + } + writelnToOut(b.toString()); + // mis a jour de l'etat d'avancement au cas ou. + up.majAvancement(); + } + out_.flush(); + } catch (final IOException _ex) { + analyze_.manageException(_ex); + } + } + + protected void internalWrite(final Object _o) { + if (_o instanceof DunesInterface) { + writeDunes((DunesInterface) _o); + } else { + analyze_.addFatalError(DodicoLib.getS("Donn\xE9es invalides")); + } + } + + /** + * @param _o la source a ecrire + * @return la synthese de l'operation + */ + public final CtuluIOOperationSynthese write(final DunesInterface _o) { + writeDunes(_o); + return closeOperation(_o); + } + + /** + * @return la version utilisee + */ + public FileFormatVersionInterface getVersion() { + return version_; + } +} Deleted: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesReader.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesReader.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesReader.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -1,240 +0,0 @@ -/* - * @creation 19 f\xE9vr. 2003 - * @modification $Date: 2007-01-19 13:07:22 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.dodico.dunes.io; - -import java.io.EOFException; -import java.io.IOException; - -import org.fudaa.ctulu.CtuluLibMessage; -import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.ProgressionUpdater; -import org.fudaa.ctulu.fileformat.FileFormat; -import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; - -import org.fudaa.dodico.ef.EfElement; -import org.fudaa.dodico.ef.EfLib; -import org.fudaa.dodico.ef.EfNode; -import org.fudaa.dodico.ef.impl.EfGrid; -import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract; -import org.fudaa.dodico.h2d.resource.H2dResource; - -/** - * Lecteur de fichiers dunes (.mail). - * - * @author deniger - * @version $Id: DunesReader.java,v 1.28 2007-01-19 13:07:22 deniger Exp $ - */ -public class DunesReader extends FileOpReadCharSimpleAbstract { - - DunesVersionInterface version_; - - /** - * Utilise la derniere version de DunesFileFormat. - */ - public DunesReader() { - this(DunesFileFormat.getInstance()); - } - - /** - * @param _f le format a utiliser - */ - public DunesReader(final DunesVersionInterface _f) { - version_ = _f; - } - - protected Object internalRead() { - return readDunes(); - } - - private EfElement[] readElement(final ProgressionUpdater _up) throws IOException { - final int nbElem = in_.intField(0); - // Les donnees utiles pour l'etat d'avancement - _up.setValue(2, nbElem, 50, 50); - _up.majProgessionStateOnly(); - int[] index; - - final EfElement[] elems = new EfElement[nbElem]; - for (int i = 0; i < nbElem; i++) { - in_.readFields(); - if (in_.getNumberOfFields() < 2) { - analyze_.addInfo(H2dResource.getS("Format attendu") + "NUM_ELEMENT NB_POINT P[1] ...P[NB_POINT]", in_ - .getLineNumber()); - analyze_.addError(H2dResource.getS("La d\xE9finition de l'\xE9l\xE9ment {0} n'est pas valide"), in_.getLineNumber()); - return null; - } - // le numero d'element - int temp = in_.intField(0); - if (temp != (i + 1)) { - analyze_ - .addInfo(H2dResource.getS("L'index de l'\xE9l\xE9ment ne correspond pas \xE0 l'index r\xE9el"), in_.getLineNumber()); - } - temp = in_.intField(1); - if (temp <= 0) { - analyze_.addError(H2dResource.getS("Le nombre de points est n\xE9gatif ou nul pour l'\xE9l\xE9ment d'indice {0}", - CtuluLibString.getString(i + 1)), in_.getLineNumber()); - return null; - } - if (in_.getNumberOfFields() != (temp + 2)) { - analyze_.addInfo(H2dResource.getS("Nombre indiqu\xE9") + ": " + temp + CtuluLibString.DOT + H2dResource.getS("Nombre lu") + ": " - + (in_.getNumberOfFields() - 2), in_.getLineNumber()); - analyze_.addFatalError(H2dResource.getS("Le nombre d'\xE9l\xE9ments est incorrect"), in_.getLineNumber()); - return null; - } - index = new int[temp]; - for (int j = 0; j < temp; j++) { - // on stocke les indexs en commencant a 0. - index[j] = in_.intField(2 + j) - 1; - } - elems[i] = new EfElement(index); - _up.majAvancement(); - } - return elems; - } - - private EfNode[] readNodes(final int _nbNoeuds, final ProgressionUpdater _up, final double[] _adaptatifs) throws IOException { - final EfNode[] points = new EfNode[_nbNoeuds]; - _up.setValue(2, _nbNoeuds, 0, 50); - _up.majProgessionStateOnly(); - int temp; - // lecture des noeuds - for (int i = 0; i < _nbNoeuds; i++) { - in_.readFields(); - if (in_.getNumberOfFields() != 4) { - analyze_.addInfo(H2dResource.getS("Format attendu") + ": NUM_POINT X Y Z", in_.getLineNumber()); - analyze_.addError(H2dResource.getS("La d\xE9finition du noeud {0} n'est pas valide", CtuluLibString - .getString(i + 1)), in_.getLineNumber()); - return null; - } - temp = in_.intField(0); - if (temp != (i + 1)) { - analyze_.addInfo(H2dResource.getS("Le num\xE9ro du point ne correspond pas au num\xE9ro r\xE9el"), in_.getLineNumber()); - } - points[i] = new EfNode(in_.doubleField(1), in_.doubleField(2), in_.doubleField(3)); - if (_adaptatifs != null) { - in_.readFields(); - if (in_.getNumberOfFields() != 1) { - analyze_.addWarn(H2dResource.getS("La ligne du coefficient adaptatif ne doit contenir qu'un champ"), in_ - .getLineNumber()); - } - _adaptatifs[i] = in_.doubleField(0); - } - _up.majAvancement(); - } - return points; - - } - - private DunesInterface readDunes() { - DunesAdapter source = null; - EfNode[] points = null; - EfElement[] elems = null; - double[] adaptatifs = null; - in_.setJumpBlankLine(true); - try { - // lit jusqu'a la premiere ligne non vide. - // Lecture de l'identifiant NOEUD - in_.readFields(); - if ((in_.getNumberOfFields() != 1) || (!version_.getNoeudCode().equals(in_.stringField(0)))) { - analyze_.addError(H2dResource.getS("L'identifiant {0} est attendu", version_.getNoeudCode()), in_ - .getLineNumber()); - return null; - - } - in_.readFields(); - // Lecture du nombre de noeud et format du maillage (apaptatif ou non) - // NOMBRE_DE_NOEUD TYPE_DE_MAILLAGE - - // verification que l'on a bien 2 champs - if (in_.getNumberOfFields() != 2) { - analyze_.addFatalError(H2dResource.getS("Nombre de noeuds non trouv\xE9"), in_.getLineNumber()); - return null; - } - // le nombre de noeud - final int nbNoeuds = in_.intField(0); - // le type de maillage. - // Si 2, des infos sur le maillage adaptatif seront presentes - final int typeMaillage = in_.intField(1); - // Si adaptatif, on initialise le tableau stockant les valeurs. - if (typeMaillage == version_.getAdaptatifCode()) { - adaptatifs = new double[nbNoeuds]; - // on affecte a source le tableau. - } - final ProgressionUpdater up = new ProgressionUpdater(progress_); - points = readNodes(nbNoeuds, up, adaptatifs); - if (points == null) { - return null; - } - // Lecture du mot cle ELEMENT - in_.readFields(); - if ((in_.getNumberOfFields() != 1) && (!version_.getElementCode().equals(in_.stringField(0)))) { - analyze_.addError(H2dResource.getS("L'identifiant {0} est attendu", version_.getElementCode()), in_ - .getLineNumber()); - return null; - } - // Lecture du nombre d'elements. - in_.readFields(); - // Un seul champ attendu - if (in_.getNumberOfFields() != 1) { - analyze_.addFatalError(H2dResource.getS("Cette ligne est invalide"), in_.getLineNumber()); - return null; - } - elems = readElement(up); - if (elems == null) { - return null; - } - in_.readFields(); - if (!"0 0 0 0".equals(in_.getLine().trim())) { - if (in_.getLine().trim().length() > 0) { - analyze_.addWarn(H2dResource - .getS("Cette ligne et les suivantes sont ignor\xE9es"), in_.getLineNumber()); - } - } - in_.readFields(); - if (in_.getLine().trim().length() > 0) { - analyze_.addWarn(H2dResource - .getS("Cette ligne et les suivantes sont ignor\xE9es"), in_.getLineNumber()); - } - } catch (final EOFException e) { - if (CtuluLibMessage.DEBUG) { - CtuluLibMessage.debug("Dunes Read end"); - } - } catch (final NumberFormatException fe) { - analyze_.manageException(fe, in_.getLineNumber()); - } catch (final IOException _e) { - analyze_.manageException(_e); - } - // Le mot clef noeud est trouve, on peut creer le maillage. - final EfGrid maillage = new EfGrid(points, elems); - EfLib.orienteGrid(maillage, progress_, true, analyze_); - source = new DunesAdapter(); - source.setMaillage(maillage); - source.setAdaptatif(adaptatifs); - return source; - } - - /** - * @return le format - */ - public FileFormat getFileFormat() { - return getDunesFileFormat(); - } - - /** - * @return le format utilise - */ - public DunesFileFormat getDunesFileFormat() { - return (DunesFileFormat) version_.getFileFormat(); - } - - /** - * @return la version utilisee - */ - public FileFormatVersionInterface getVersion() { - return version_; - } -} \ No newline at end of file Deleted: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesWriter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesWriter.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesWriter.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -1,197 +0,0 @@ -/* - * @creation 2003-02-20 - * @modification $Date: 2006-10-16 07:55:47 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.dodico.dunes.io; - -import java.io.IOException; - -import org.fudaa.ctulu.CtuluIOOperationSynthese; -import org.fudaa.ctulu.ProgressionUpdater; -import org.fudaa.ctulu.fileformat.FileFormat; -import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; - -import org.fudaa.dodico.commun.DodicoLib; -import org.fudaa.dodico.ef.EfElement; -import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract; -import org.fudaa.dodico.h2d.resource.H2dResource; - -/** - * @author deniger - * @version $Id: DunesWriter.java,v 1.27 2006-10-16 07:55:47 deniger Exp $ - */ -public class DunesWriter extends FileOpWriterCharSimpleAbstract { - - DunesVersionInterface version_; - - /** - * Construit avec une version par defaut. - */ - public DunesWriter() { - this(DunesFileFormat.getInstance()); - } - - /** - * @param _f la version a utiliser - */ - public DunesWriter(final DunesVersionInterface _f) { - version_ = _f; - } - - /** - * @return le format utilise - */ - public FileFormat getFileFormat() { - return version_.getFileFormat(); - } - - /** - * Ecrire les donnees de l'interface <code>DunesInterface</code> sur la sortie <code>Writer</code>. L'ecriture - * n'est effectu\xE9e que si les points et elements du maillage sont non nuls. La m\xE9thode se termine par un flush mais ne - * ferme pas le flux. - */ - protected void writeDunes(final DunesInterface _d) { - final DunesInterface dunes = _d; - // Test sur les objets a ecrire - if (dunes == null) { - analyze_.addFatalError(H2dResource.getS("Les donn\xE9es sont nulles")); - return; - } - if (out_ == null) { - analyze_.addFatalError(DodicoLib.getS("Le flux de sortie est nul")); - return; - } - final EfGridInterface maillage = dunes.getGrid(); - if (maillage == null) { - analyze_.addFatalError("Le maillage est nul"); - return; - } - final int nPts = maillage.getPtsNb(); - if (nPts == 0) { - analyze_.addFatalError(H2dResource.getS("Le maillage ne contient pas de points")); - return; - } - // H2dElement[] elems= maillage.getElts(); - // if (elems == null) - // { - // analyze_.addFatalError("Le maillage ne contient pas d'\xE9l\xE9ments !"); - // return; - // } - final int nElems = maillage.getEltNb(); - if (nElems == 0) { - analyze_.addFatalError(H2dResource.getS("Le maillage ne contient pas d'\xE9l\xE9ments")); - return; - } - try { - StringBuffer b = new StringBuffer(600); - b.append(version_.getNoeudCode()); - b.append(' '); - b.append(lineSep_); - b.append(nPts); - boolean printAdaptatifV = false; - final double[] adValeur = dunes.getAdaptatifValeur(); - b.append(' '); - if (adValeur == null) { - b.append(version_.getNonAdaptatifCode()); - } else { - b.append(version_.getAdaptatifCode()); - printAdaptatifV = true; - } - writelnToOut(b.toString()); - // Gestion de l'etat d'avancement - // le pas pour afficher l'etat d'avancement - final int pourc = 0; - final boolean afficheAvance = (progress_ == null ? false : true); - if (afficheAvance) { - progress_.setProgression(pourc); - progress_.setDesc(H2dResource.getS("Ecriture fichier") + " dunes"); - } - final ProgressionUpdater up = new ProgressionUpdater(progress_); - up.setValue(2, nPts); - - for (int i = 0; i < nPts; i++) { - b = new StringBuffer(); - b.append((i + 1)); - b.append(' '); - b.append(maillage.getPtX(i)); - b.append(' '); - b.append(maillage.getPtY(i)); - b.append(' '); - b.append(maillage.getPtZ(i)); - b.append(lineSep_); - if (printAdaptatifV&&adValeur!=null) { - b.append(adValeur[i]); - b.append(lineSep_); - } - writeToOut(b.toString()); - up.majAvancement(); - } - b = new StringBuffer(); - // Cette ligne blanche est-elle utile ? - b.append(lineSep_); - // L'identifiant element - b.append(version_.getElementCode()); - b.append(lineSep_); - // le nb d'\xE9l\xE9ments - b.append(nElems); - writelnToOut(b.toString()); - // pour afficher l'etat d'avancement - up.setValue(2, nElems, 50, 50); - up.majAvancement(); - // les points par elements - EfElement ppel; - // le nombre de points par elements. - int nppel; - for (int i = 0; i < nElems; i++) { - b = new StringBuffer(); - ppel = maillage.getElement(i); - nppel = ppel.getPtNb(); - // le num d'elements - b.append((i + 1)); - b.append(' '); - // le nombre de point pour l'\xE9l\xE9ment i - b.append(nppel); - // les indices des points pour l'element i - for (int j = 0; j < nppel; j++) { - b.append(' '); - // Les indices sont stock\xE9s a partir de 0. - b.append(ppel.getPtIndex(j) + 1); - } - writelnToOut(b.toString()); - // mis a jour de l'etat d'avancement au cas ou. - up.majAvancement(); - } - out_.flush(); - } catch (final IOException _ex) { - analyze_.manageException(_ex); - } - } - - protected void internalWrite(final Object _o) { - if (_o instanceof DunesInterface) { - writeDunes((DunesInterface) _o); - } else { - analyze_.addFatalError(DodicoLib.getS("Donn\xE9es invalides")); - } - } - - /** - * @param _o la source a ecrire - * @return la synthese de l'operation - */ - public final CtuluIOOperationSynthese write(final DunesInterface _o) { - writeDunes(_o); - return closeOperation(_o); - } - - /** - * @return la version utilisee - */ - public FileFormatVersionInterface getVersion() { - return version_; - } -} Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/olb/OLBExec.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/olb/OLBExec.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/olb/OLBExec.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -20,7 +20,7 @@ import org.fudaa.dodico.calcul.CalculExecBatch; import org.fudaa.dodico.commun.DodicoLib; import org.fudaa.dodico.dunes.io.DunesAdapter; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.dunes.io.DunesInterface; import org.fudaa.dodico.ef.EfElement; import org.fudaa.dodico.ef.EfElementType; @@ -89,7 +89,7 @@ double offsetY = (_init.getMinY() + _init.getMaxY()) / 2; final EfGridInterface init = new EfGridTranslate(_init, -offsetX, -offsetY); interfaceDunes.setMaillage(init); - CtuluIOOperationSynthese op = DunesFileFormat.getInstance().getLastVersionInstance(null).write(inFile, + CtuluIOOperationSynthese op = DunesMAIFileFormat.getInstance().getLastVersionInstance(null).write(inFile, interfaceDunes, _prog); if (stop_) { deleteFiles(inFile, outFile); @@ -112,7 +112,7 @@ deleteFiles(inFile, outFile); return null; } - op = DunesFileFormat.getInstance().getLastVersionInstance(outFile).read(outFile, _prog); + op = DunesMAIFileFormat.getInstance().getLastVersionInstance(outFile).read(outFile, _prog); if ((_ui != null) && (op.containsFatalError())) { _ui.error("OLB", op.getAnalyze().getFatalError().getMessage(), false); } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/reflux/TestJDunes.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/reflux/TestJDunes.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/reflux/TestJDunes.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -18,7 +18,7 @@ import org.fudaa.ctulu.ProgressionBuAdapter; import org.fudaa.dodico.all.TestIO; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.dunes.io.DunesInterface; import org.fudaa.dodico.ef.EfElement; import org.fudaa.dodico.ef.EfGridInterface; @@ -88,7 +88,7 @@ final DunesInterface inter = getInter(fic_); final File tmpFile = createTempFile(); final CtuluIOOperationSynthese syntheseR = - DunesFileFormat.getInstance().write( + DunesMAIFileFormat.getInstance().write( tmpFile, inter, null); @@ -102,7 +102,7 @@ */ public static DunesInterface getInter(final File _f) { final CtuluIOOperationSynthese syntheseR = - DunesFileFormat.getInstance().read(_f, null); + DunesMAIFileFormat.getInstance().read(_f, null); final DunesInterface r = (DunesInterface) syntheseR.getSource(); if (syntheseR.containsMessages()) { syntheseR.getAnalyze().printResume(); @@ -140,7 +140,7 @@ } final ProgressionBuAdapter progress = new ProgressionBuAdapter(new BuTask()); final CtuluIOOperationSynthese op = - DunesFileFormat.getInstance().read(f, progress); + DunesMAIFileFormat.getInstance().read(f, progress); final DunesInterface inter = (DunesInterface) op.getSource(); if (op.containsMessages()) { op.getAnalyze().printResume(); @@ -156,7 +156,7 @@ return; } final CtuluIOOperationSynthese opw = - DunesFileFormat.getInstance().write( + DunesMAIFileFormat.getInstance().write( out, inter, progress); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportFactory.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -34,7 +34,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.ef.EfGridData; import org.fudaa.dodico.ef.FileFormatGridVersion; import org.fudaa.dodico.reflux.io.CorEleBthFileFormat; @@ -66,7 +66,7 @@ public static FileFormat[] getT3Format() { // serafin et rubar mai sont g\xE9r\xE9 differemment - return new FileFormat[] { DunesFileFormat.getInstance(), TrigridFileFormat.getInstance(), + return new FileFormat[] { DunesMAIFileFormat.getInstance(), TrigridFileFormat.getInstance(), CorEleBthFileFormat.getInstance() }; } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/impl/MvActLoadDefault.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/impl/MvActLoadDefault.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/impl/MvActLoadDefault.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -32,7 +32,7 @@ import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.ef.EfGridSource; import org.fudaa.dodico.ef.FileFormatGridVersion; import org.fudaa.dodico.reflux.io.CorEleBthFileFormat; @@ -93,7 +93,7 @@ * */ public final static CtuluPermanentList FT_LIST = new CtuluPermanentList(CtuluLibArray.sort(new FileFormat[] { - INPFileFormat.getInstance(), DunesFileFormat.getInstance(), CorEleBthFileFormat.getInstance(), + INPFileFormat.getInstance(), DunesMAIFileFormat.getInstance(), CorEleBthFileFormat.getInstance(), SerafinFileFormat.getInstance(), TrigridFileFormat.getInstance(), RubarDATFileFormat.getInstance(), RubarMAIFileFormat.getInstance() })); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigWizardFileMng.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigWizardFileMng.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigWizardFileMng.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -37,7 +37,7 @@ import org.fudaa.ctulu.gui.CtuluCellTextRenderer; import org.fudaa.ctulu.gui.CtuluFileChooser; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.ef.FileFormatGridVersion; import org.fudaa.dodico.reflux.io.CorEleBthFileFormat; import org.fudaa.dodico.rubar.io.RubarDATFileFormat; @@ -160,7 +160,7 @@ r.add(CorEleBthFileFormat.getInstance()); r.add(RubarMAIFileFormat.getInstance()); r.add(TrigridFileFormat.getInstance()); - r.add(DunesFileFormat.getInstance()); + r.add(DunesMAIFileFormat.getInstance()); r.add(RubarDATFileFormat.getInstance()); return r; } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java 2008-07-17 11:36:00 UTC (rev 3694) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/common/TrFileFormatManager.java 2008-07-17 12:46:28 UTC (rev 3695) @@ -18,7 +18,7 @@ import org.fudaa.ctulu.fileformat.FileFormat; -import org.fudaa.dodico.dunes.io.DunesFileFormat; +import org.fudaa.dodico.dunes.io.DunesMAIFileFormat; import org.fudaa.dodico.h2d.type.H2dFileFormatType; import org.fudaa.dodico.reflux.io.CorEleBthFileFormat; import org.fudaa.dodico.reflux.io.INPFileFormat; @@ -73,7 +73,7 @@ } else if (_sofwareId == TrRefluxImplHelper.getID()) { r.add(INPFileFormat.getInstance()); r.add(CorEleBthFileFormat.getInstance()); - r.add(DunesFileFormat.getInstance()); + r.add(DunesMAIFileFormat.getInstance()); } r.add(SerafinFileFormat.getInstance()); return getArray(r); @@ -134,7 +134,7 @@ r.add(RubarDATFileFormat.getInstance()); r.add(SerafinFileFormat.getInstance()); r.add(INPFileFormat.getInstance()); - r.add(DunesFileFormat.getInstance()); + r.add(DunesMAIFileFormat.getInstance()); return getArray(r); } @@ -151,7 +151,7 @@ } else if (_sofwareId == TrRefluxImplHelper.getID()) { r.add(CorEleBthFileFormat.getInstance()); r.add(INPFileFormat.getInstance()); - r.add(DunesFileFormat.getInstance()); + r.add(DunesMAIFileFormat.getInstance()); r.add(SerafinFileFormat.getInstance()); } return getArray(r); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-17 11:36:24
|
Revision: 3694 http://fudaa.svn.sourceforge.net/fudaa/?rev=3694&view=rev Author: bmarchan Date: 2008-07-17 11:36:00 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Implementation de l'export vers Dunes g?\195?\169om?\195?\169trie Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java Added Paths: ----------- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOFileFormat.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOWriter.java Added: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOFileFormat.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOFileFormat.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOFileFormat.java 2008-07-17 11:36:00 UTC (rev 3694) @@ -0,0 +1,61 @@ +/** + * @creation 11 f\xE9vr. 2004 + * @modification $Date: 2007/05/04 13:47:27 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.dodico.dunes.io; + +import java.io.File; + +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; + +import org.fudaa.dodico.commun.DodicoLib; +import org.fudaa.dodico.fichiers.FileFormatSoftware; +import org.fudaa.dodico.h2d.type.H2dFileFormatType; + +/** + * Un format pour les fichiers de modelisation geometriques Dunes. + * @author Bertrand Marchand + * @version $Id: SinusxFileFormat.java,v 1.15 2007/05/04 13:47:27 deniger Exp $ + */ +public final class DunesGEOFileFormat extends FileFormatUnique { + + static final DunesGEOFileFormat INSTANCE = new DunesGEOFileFormat(); + + /** + * @return singleton + */ + public static DunesGEOFileFormat getInstance() { + return INSTANCE; + } + + private DunesGEOFileFormat() { + super(1); + extensions_ = new String[] { "geo" }; + id_ = "DUNESGEO"; + nom_ = "Dunes g\xE9ometrie"; + description_ = DodicoLib.getS("Comporte les d\xE9finitions de points, polylignes et polygones"); + software_ = FileFormatSoftware.REFLUX_IS; +// type_ = : Geometrique => Autre + } + + public FileReadOperationAbstract createReader() { + return null; +// return new DunesGEOReader(this); + } + + public CtuluIOOperationSynthese write(final File _f, final Object _source, final ProgressionInterface _prog) { + return super.write(_f, _source, _prog); + } + + public FileWriteOperationAbstract createWriter() { + return new DunesGEOWriter(this); + } + +} \ No newline at end of file Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOFileFormat.java ___________________________________________________________________ Added: svn:eol-style + native Added: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOWriter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOWriter.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOWriter.java 2008-07-17 11:36:00 UTC (rev 3694) @@ -0,0 +1,268 @@ +/* + * @creation 2002-11-21 + * @modification $Date: 2007/05/04 13:47:27 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.dodico.dunes.io; + +import java.io.IOException; +import java.util.ArrayList; + +import org.fudaa.ctulu.CtuluActivity; +import org.fudaa.ctulu.ProgressionUpdater; +import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; +import org.fudaa.ctulu.gis.GISDataModel; +import org.fudaa.ctulu.gis.GISDataModelPointMultiPointAdapter; +import org.fudaa.ctulu.gis.GISMultiPoint; +import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract; +import org.fudaa.dodico.fortran.FortranWriter; +import org.fudaa.dodico.h2d.resource.H2dResource; + +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.CoordinateSequence; +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.Point; + +/** + * Une classe pour ecrire des fichiers Dunes de mod\xE9lisation (.geo) + * @version $Id: SinusxWriter.java,v 1.24 2007/05/04 13:47:27 deniger Exp $ + * @author Bertrand Marchand + */ +public class DunesGEOWriter extends FileOpWriterCharSimpleAbstract implements CtuluActivity { + + final FileFormatVersionInterface v_; + boolean stop_; + + public void stop() { + stop_ = true; + } + + /** + * @param _v la version utilisee. + */ + public DunesGEOWriter(final FileFormatVersionInterface _v) { + v_ = _v; + } + + /** + * Ecriture des g\xE9om\xE9tries contenues dans les mod\xE8les. Les g\xE9om\xE9tries peuvent \xEAtre + * des points, des polylignes/polygones ou des multipoints. Chaque modele est cens\xE9 contenir + * le m\xEAme type de g\xE9om\xE9tries.<p> + * + * Les doublons de coordonn\xE9es (si X et Y sont equivalents) sont supprim\xE9s. + * @param _geometries Les mod\xE8les de g\xE9om\xE9tries + */ + protected void internalWrite(final Object _o) { + if (!(_o instanceof GISDataModel[])) { + donneesInvalides(_o); + return; + } + + GISDataModel[] mdls=(GISDataModel[])_o; + if (mdls == null) { + analyze_.addFatalError(H2dResource.getS("Les donn\xE9es sont nulles")); + return; + } + + final ProgressionUpdater up = new ProgressionUpdater(progress_); + if (progress_ != null) { + progress_.setProgression(0); + } + up.majProgessionStateOnly(); + + Coordinate[] coords=null; + + // Les coordonn\xE9es, d'abord la totalit\xE9, puis sans les doublons. + ArrayList<Coordinate> vcoords=new ArrayList<Coordinate>(); + int nblig=0; + + // Recuperation des coordonn\xE9es : d'abord les lignes... + GISDataModel[] mdlligs=filtreModels(mdls,1); + if (mdlligs.length==0) { + analyze_.addFatalError(H2dResource.getS("Aucune ligne trouv\xE9e")); + return; + } + + for (int i=0; i<mdlligs.length; i++) { + GISDataModel mdl=mdlligs[i]; + int nbgeo=mdl.getNumGeometries(); + for (int j=0; j<nbgeo; j++) { + LineString g=(LineString)mdl.getGeometry(j); + int nbpt=g.getNumPoints(); + nblig+=nbpt-1; + CoordinateSequence seq=g.getCoordinateSequence(); + for (int k=0; k<nbpt; k++) { + vcoords.add(seq.getCoordinate(k)); + } + } + } + if (stop_) return; + up.setValue(1,1,10,10); + up.majProgessionStateOnly(); + + // ...Ensuite les points + GISDataModel[] mdlpts=filtreModels(mdls,0); + + for (int i=0; i<mdlpts.length; i++) { + GISDataModel mdl=mdlpts[i]; + int nbgeo=mdl.getNumGeometries(); + for (int j=0; j<nbgeo; j++) { + GISMultiPoint g=(GISMultiPoint)mdl.getGeometry(j); + int nbpt=g.getNumPoints(); + CoordinateSequence seq=g.getCoordinateSequence(); + for (int k=0; k<nbpt; k++) { + vcoords.add(seq.getCoordinate(k)); + } + } + } + if (stop_) return; + + coords=vcoords.toArray(new Coordinate[0]); + // Les indexs de coordonn\xE9es pour les lignes. + int[] idxs=new int[coords.length]; + for (int i=0; i<idxs.length; i++) idxs[i]=i; + + // Suppression des doublons (pas optimal, mais fonctionnel). + // Il serait plus efficace d'utiliser un tri suivant X pour supprimer les doublons. + // La difficult\xE9 une fois le tri fait est de retrouver l'indice des points pour les lignes. + up.setValue(100,coords.length,10,70); + int nbsup=0; + for (int i=0; i<coords.length; i++) { + up.majAvancement(); + if (stop_) return; + + if (coords[i]==null) { + nbsup++; + continue; + } + // Reindexation au fur et a mesure des suppressions. + idxs[i]-=nbsup; + + for (int j=i+1; j<coords.length; j++) { + if (coords[j]==null) continue; + if (coords[i].distance(coords[j])<1.e-6) { + idxs[j]=idxs[i]; + coords[j]=null; + } + } + } + + int nbtrous=0; + int nbreg=0; + up.setValue(20, coords.length-nbsup+nblig+nbtrous+nbreg, 80, 20); + + // Ecriture des infos. Repris de DParametresDunes. + final FortranWriter fout = new FortranWriter(out_); + try { + int[] fmt; + + /** Ecriture des coordonnees des points * */ + fmt = new int[] { 8, 8 }; + fout.intField(1, 1); + fout.intField(0, coords.length-nbsup); + fout.writeFields(fmt); + fmt = new int[] { 8, 24, 24, 24 }; + for (int i = 0; i < coords.length; i++) { + if (stop_) return; + if (coords[i]==null) continue; + fout.doubleField(3, coords[i].z); + fout.intField(0, idxs[i]+1); + fout.doubleField(1, coords[i].x); + fout.doubleField(2, coords[i].y); + fout.writeFields(fmt); + up.majAvancement(); + } + + /** Ecriture des polylignes * */ + fmt = new int[] { 8, 8 }; + fout.intField(1, 0); + fout.intField(0, nblig); + fout.writeFields(fmt); + fmt = new int[] { 8, 8, 8 }; + int ilig=0; + for (int i=0; i<mdlligs.length; i++) { + if (stop_) return; + GISDataModel mdl=mdlligs[i]; + int nbgeo=mdl.getNumGeometries(); + for (int j=0; j<nbgeo; j++) { + LineString g=(LineString)mdl.getGeometry(j); + int nbpt=g.getNumPoints(); + for (int k=1; k<nbpt; k++) { + int index1=idxs[ilig]+1; + int index2=idxs[ilig+1]+1; + fout.intField(2, index2); + fout.intField(0, ilig+1); + fout.intField(1, index1); + fout.writeFields(fmt); + ilig++; + up.majAvancement(); + } + } + } + + /** Ecriture des positions des trous * */ + fmt = new int[] { 8 }; + fout.intField(0, nbtrous); + fout.writeFields(fmt); + fmt = new int[] { 8, 24, 24 }; + for (int i = 0; i < nbtrous; i++) { + if (stop_) return; + double x=0; + double y=0; + fout.intField(0, i + 1); + fout.doubleField(1, x); + fout.doubleField(2, y); + fout.writeFields(fmt); + up.majAvancement(); + } + + /** Ecriture des positions des regions * */ + fmt = new int[] { 8 }; + fout.intField(0, nbreg); + fout.writeFields(fmt); + fmt = new int[] { 8, 24, 24, 24, 24 }; + for (int i = 0; i < nbreg; i++) { + if (stop_) return; + double x=0; + double y=0; + double z=0; + final double aireMax = 0; + fout.intField(0, i + 1); + fout.doubleField(1, x); + fout.doubleField(2, y); + fout.doubleField(3, z); + fout.doubleField(4, aireMax); + fout.writeFields(fmt); + up.majAvancement(); + } + } catch (final IOException ex) { + analyze_.manageException(ex); + } + } + + /** + * R\xE9cup\xE8re les modeles d'un type particulier. + * @param _mdls Les models + * @param _type 0 : Points et multipoints. 1 : Lignes, polygones. + * @return Les modeles, une fois filtr\xE9s. + */ + GISDataModel[] filtreModels(GISDataModel[] _mdls, int _type) { + ArrayList<GISDataModel> mdls=new ArrayList<GISDataModel>(); + for (int i=0; i<_mdls.length; i++) { + if (_mdls[i].getNumGeometries()==0) continue; + + Geometry g=_mdls[i].getGeometry(0); + if (_type==0 && g instanceof GISMultiPoint) + mdls.add(_mdls[i]); + else if (_type==0 && g instanceof Point) + mdls.add(new GISDataModelPointMultiPointAdapter(_mdls[i])); + else if (_type==1 && g instanceof LineString) + mdls.add(_mdls[i]); + } + + return mdls.toArray(new GISDataModel[0]); + } +} \ No newline at end of file Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/dunes/io/DunesGEOWriter.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2008-07-17 11:32:59 UTC (rev 3693) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2008-07-17 11:36:00 UTC (rev 3694) @@ -58,6 +58,7 @@ import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ctulu.gui.CtuluFileChooserPanel; +import org.fudaa.dodico.dunes.io.DunesGEOFileFormat; import org.fudaa.dodico.rubar.io.RubarStCnFileFormat; import org.fudaa.dodico.telemac.io.SinusxFileFormat; @@ -196,10 +197,12 @@ private BuFileFilter[] buildFilter2Export() { final BuFileFilter sx = SinusxFileFormat.getInstance().createFileFilter(); final BuFileFilter st = RubarStCnFileFormat.createStFilter(); + final BuFileFilter dunes= DunesGEOFileFormat.getInstance().createFileFilter(); filter2Exporter_ = new HashMap(5);// pour l'instant ..... filter2Exporter_.put(sx, new FSigLayerExporter.ToSinusX()); filter2Exporter_.put(st, new FSigLayerExporter.ToRubar()); + filter2Exporter_.put(dunes, new FSigLayerExporter.ToDunes()); // final Map dataStores = GISExportDataStoreFactory.buildFileFilterMap(false); // for (final Iterator it = dataStores.entrySet().iterator(); it.hasNext();) { // final Map.Entry e = (Map.Entry) it.next(); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-17 11:32:59 UTC (rev 3693) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-17 11:36:00 UTC (rev 3694) @@ -38,6 +38,7 @@ import org.fudaa.ctulu.gis.gml.GISGMLZoneExporter; import org.fudaa.ctulu.gis.mif.MIFDataStoreFactory; +import org.fudaa.dodico.dunes.io.DunesGEOFileFormat; import org.fudaa.dodico.rubar.io.RubarSEMFileFormat; import org.fudaa.dodico.rubar.io.RubarSEMWriterGISAdapter; import org.fudaa.dodico.rubar.io.RubarStCnFileFormat; @@ -142,6 +143,29 @@ } } + public static class ToDunes extends FSigLayerExporter { + + CtuluIOOperationSynthese exportTo(final FSigLayerFilter _filter, final CtuluUI _impl, final File _f, + final ProgressionInterface _prog) { + File f = CtuluLibFile.appendExtensionIfNeeded(_f, DunesGEOFileFormat.getInstance().getExtensions()[0]); + + List<GISDataModel> mdls=new ArrayList<GISDataModel>(); + for (int i=0; i<_filter.pointCq_.size(); i++) { + mdls.add(new GISDataModelPointMultiPointAdapter( + GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.pointCq_.get(i)), null))); + } + for (int i = 0; i < _filter.mlptsCq_.size(); i++) { + mdls.add(_filter.getCollect(_filter.mlptsCq_.get(i))); + } + for (int i = 0; i < _filter.polyCq_.size(); i++) { + final GISZoneCollection collec = _filter.getCollect(_filter.polyCq_.get(i)); + mdls.add(collec); + } + + return DunesGEOFileFormat.getInstance().write(f, mdls.toArray(new GISDataModel[0]), _prog); + } + } + /** * Export des g\xE9om\xE9tries vers les fichiers Rubar (ST, SEM, CN). * @author Bertrand Marchand @@ -164,7 +188,7 @@ for (int i=0; i<_filter.pointCq_.size(); i++) { mdlsemis.add(new GISDataModelPointMultiPointAdapter( - GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null))); + GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.pointCq_.get(i)), null))); } for (int i = 0; i < _filter.mlptsCq_.size(); i++) { mdlsemis.add(GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null)); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2008-07-17 11:32:59 UTC (rev 3693) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2008-07-17 11:36:00 UTC (rev 3694) @@ -34,7 +34,7 @@ */ public class FSigLayerFilter implements BCalqueVisitor { - final Set cq_ = new HashSet(); + final Set cqs_ = new HashSet(); List pointCq_ = new ArrayList(); List polyCq_ = new ArrayList(); List mlptsCq_=new ArrayList(); @@ -89,8 +89,9 @@ // Calque non trait\xE9 si invisible. if (bonlyVisible_ && !_cq.isVisible()) return true; - if (!cq_.contains(_cq) && _cq instanceof ZCalqueAffichageDonneesInterface + if (!cqs_.contains(_cq) && _cq instanceof ZCalqueAffichageDonneesInterface && ((ZCalqueAffichageDonneesInterface) _cq).modeleDonnees() instanceof ZModeleGeom) { + cqs_.add(_cq); final ZModeleGeom geom = (ZModeleGeom) ((ZCalqueAffichageDonneesInterface) _cq).modeleDonnees(); if (geom.getGeomData().getDataStoreClass().equals(Point.class)) { pointCq_.add(_cq); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-17 11:33:13
|
Revision: 3693 http://fudaa.svn.sourceforge.net/fudaa/?rev=3693&view=rev Author: bmarchan Date: 2008-07-17 11:32:59 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Changement de version : passage ?\195?\160 0.05 Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-17 10:56:03 UTC (rev 3692) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-17 11:32:59 UTC (rev 3693) @@ -86,8 +86,8 @@ protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); static { isMdl_.name = "Modeleur"; - isMdl_.version = "0.04"; - isMdl_.date = "2008-06-04"; + isMdl_.version = "0.05"; + isMdl_.date = "2008-07-17"; isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; isMdl_.license = "GPL2"; isMdl_.languages = "fr,en"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-17 10:56:53
|
Revision: 3692 http://fudaa.svn.sourceforge.net/fudaa/?rev=3692&view=rev Author: bmarchan Date: 2008-07-17 10:56:03 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Le support de localisations triable suivant X utilis?\195?\169 par le package d'interpolation est g?\195?\169n?\195?\169ralis?\195?\169 pour ?\195?\170tre utilis?\195?\169 en dehors. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportGISAdapter.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportPoint.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolationBilinearSupportSorted.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolatorBilinear.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/test/org/fudaa/ctulu/interpolation/TestJInterpolation.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/EfGridDataInterpolationValuesAdapter.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolationGridSupportAdapter.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/h2d/TestJMaillage.java Added Paths: ----------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportCoordinate.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationI.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationXYComparator.java Removed Paths: ------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportLocationI.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportGISAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportGISAdapter.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportGISAdapter.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -18,7 +18,7 @@ * @author Fred Deniger * @version $Id: InterpolationSupportGISAdapter.java,v 1.2 2007-06-11 13:03:29 deniger Exp $ */ -public class InterpolationSupportGISAdapter implements InterpolationSupportLocationI, InterpolationSupportValuesI { +public class InterpolationSupportGISAdapter implements SupportLocationI, InterpolationSupportValuesI { final GISDataModel model_; final TObjectIntHashMap attInt_; Deleted: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportLocationI.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportLocationI.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportLocationI.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -1,34 +0,0 @@ -/* - * @creation 4 f\xE9vr. 2004 - * @modification $Date: 2007-06-05 08:57:42 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ctulu.interpolation; - -/** - * @author deniger - * @version $Id: InterpolationSupportLocationI.java,v 1.1 2007-06-05 08:57:42 deniger Exp $ - */ -public interface InterpolationSupportLocationI { - - /** - * @return le nombre de points - */ - int getPtsNb(); - - /** - * @param _i indice - * @return x en _i - */ - double getPtX(int _i); - - /** - * @param _i indice - * @return y en _i - */ - double getPtY(int _i); - - -} \ No newline at end of file Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportPoint.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportPoint.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportPoint.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -14,7 +14,7 @@ * @author Fred Deniger * @version $Id: InterpolationSupportPoint.java,v 1.2 2007-06-11 13:03:29 deniger Exp $ */ -public class InterpolationSupportPoint implements InterpolationSupportLocationI, InterpolationSupportValuesI { +public class InterpolationSupportPoint implements SupportLocationI, InterpolationSupportValuesI { final GISPoint[] list_; Added: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportCoordinate.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportCoordinate.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportCoordinate.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -0,0 +1,45 @@ +/* + * @creation 22 avr. 2005 + * @modification $Date: 2007-06-11 13:03:29 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ctulu.interpolation; + +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.ctulu.gis.GISPoint; + +import com.vividsolutions.jts.geom.Coordinate; + +/** + * Un support de location \xE0 partir de coordonn\xE9es {@link Coordinate} + * @author Bertrand Marchand + * @version $Id: InterpolationSupportPoint.java,v 1.2 2007-06-11 13:03:29 deniger Exp $ + */ +public class SupportCoordinate implements SupportLocationI, InterpolationSupportValuesI { + + final Coordinate[] list_; + + public SupportCoordinate(final Coordinate[] _list) { + list_ = _list; + } + + public int getPtsNb() { + return list_.length; + } + + public double getPtX(final int _i) { + return list_[_i].x; + } + + public double getPtY(final int _i) { + return list_[_i].y; + } + + public double getV(CtuluVariable _var, int _ptIdx) { + /* _var n'est pas utilis\xE9e. */ + return list_[_ptIdx].z; + } + +} Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportCoordinate.java ___________________________________________________________________ Added: svn:eol-style + native Copied: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationI.java (from rev 3624, branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationSupportLocationI.java) =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationI.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationI.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -0,0 +1,34 @@ +/* + * @creation 4 f\xE9vr. 2004 + * @modification $Date: 2007-06-05 08:57:42 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ctulu.interpolation; + +/** + * @author deniger + * @version $Id: InterpolationSupportLocationI.java,v 1.1 2007-06-05 08:57:42 deniger Exp $ + */ +public interface SupportLocationI { + + /** + * @return le nombre de points + */ + int getPtsNb(); + + /** + * @param _i indice + * @return x en _i + */ + double getPtX(int _i); + + /** + * @param _i indice + * @return y en _i + */ + double getPtY(int _i); + + +} \ No newline at end of file Added: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationXYComparator.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationXYComparator.java (rev 0) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationXYComparator.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -0,0 +1,66 @@ +/* + * @creation 16 juil. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ctulu.interpolation; + +import java.util.Comparator; + +/** + * Un comparateur de coordonn\xE9es XY d'un support. Utilis\xE9 pour trier. + * @author Bertrand Marchand + * @version $Id:$ + */ +public class SupportLocationXYComparator implements Comparator<Integer> { + + final SupportLocationI srcData_; + + /** + * @param _data + */ + public SupportLocationXYComparator(final SupportLocationI _data) { + super(); + srcData_ = _data; + } + + /** + * Compare les coordonn\xE9es d'un point _idx avec les coordonn\xE9es _x2, y2. + * @param _idx Le point a comparer. + * @param _x2 Le x a comparer. + * @param _y2 Le y a comparer. + * @return -1 : Si point _idx a coordonn\xE9e X inf\xE9rieur. 1 : Si point a coordonn\xE9e X sup\xE9rieur. + * 0 : Si m\xEAme coordonn\xE9es. + */ + public int compare(final int _idx, final double _x2, final double _y2) { + final double x1 = srcData_.getPtX(_idx); + if (x1 < _x2) { + return -1; + } + if (x1 > _x2) { + return 1; + } + final double y1 = srcData_.getPtY(_idx); + if (y1 < _y2) { + return -1; + } + if (y1 > _y2) { + return 1; + } + return 0; + } + + public int compare(final int _o1, final int _o2) { + if (_o1 == _o2) { + return 0; + } + return compare(_o1, srcData_.getPtX(_o2), srcData_.getPtY(_o2)); + } + + public int compare(final Integer _o1, final Integer _o2) { + return compare(_o1.intValue(),_o2.intValue()); + } + +} \ No newline at end of file Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/SupportLocationXYComparator.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolationBilinearSupportSorted.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolationBilinearSupportSorted.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolationBilinearSupportSorted.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -12,7 +12,8 @@ import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.ProgressionUpdater; -import org.fudaa.ctulu.interpolation.InterpolationSupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationXYComparator; /** * Un classe representant une source pour une interpolation des plus proches voisins. @@ -22,50 +23,7 @@ */ public final class InterpolationBilinearSupportSorted { - private final static class ComparatorIdx implements Comparator { - - final InterpolationSupportLocationI srcData_; - - /** - * @param _data - */ - public ComparatorIdx(final InterpolationSupportLocationI _data) { - super(); - srcData_ = _data; - } - - public int compare(final int _idx, final double _x2, final double _y2) { - final double x1 = srcData_.getPtX(_idx); - if (x1 < _x2) { - return -1; - } - if (x1 > _x2) { - return 1; - } - final double y1 = srcData_.getPtY(_idx); - if (y1 < _y2) { - return -1; - } - if (y1 > _y2) { - return 1; - } - return 0; - } - - public int compare(final int _o1, final int _o2) { - if (_o1 == _o2) { - return 0; - } - return compare(_o1, srcData_.getPtX(_o2), srcData_.getPtY(_o2)); - } - - public int compare(final Object _o1, final Object _o2) { - return compare(((Integer) _o1).intValue(), ((Integer) _o2).intValue()); - } - - } - - public static InterpolationBilinearSupportSorted buildSortedSrc(final InterpolationSupportLocationI _src, + public static InterpolationBilinearSupportSorted buildSortedSrc(final SupportLocationI _src, final ProgressionInterface _prog) { final Integer[] idxs = new Integer[_src.getPtsNb()]; final ProgressionUpdater up = new ProgressionUpdater(_prog); @@ -74,7 +32,7 @@ idxs[i] = new Integer(i); up.majAvancement(); } - Arrays.sort(idxs, new ComparatorIdx(_src)); + Arrays.sort(idxs, new SupportLocationXYComparator(_src)); final int[] sortedIdx = new int[idxs.length]; for (int i = idxs.length - 1; i >= 0; i--) { sortedIdx[i] = idxs[i].intValue(); @@ -83,15 +41,15 @@ } - final private ComparatorIdx comp_; - InterpolationSupportLocationI ref_; + final private SupportLocationXYComparator comp_; + SupportLocationI ref_; final int[] sortedIdx_; - private InterpolationBilinearSupportSorted(final InterpolationSupportLocationI _ref, final int[] _sorted) { + private InterpolationBilinearSupportSorted(final SupportLocationI _ref, final int[] _sorted) { ref_ = _ref; sortedIdx_ = _sorted; - comp_ = new ComparatorIdx(ref_); + comp_ = new SupportLocationXYComparator(ref_); } private int searchIdx(final double _x, final double _y) { Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolatorBilinear.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolatorBilinear.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/bilinear/InterpolatorBilinear.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -20,7 +20,7 @@ import org.fudaa.ctulu.ProgressionUpdater; import org.fudaa.ctulu.interpolation.InterpolationParameters; import org.fudaa.ctulu.interpolation.InterpolationResultsHolderI; -import org.fudaa.ctulu.interpolation.InterpolationSupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationI; import org.fudaa.ctulu.interpolation.InterpolationSupportValuesI; import org.fudaa.ctulu.interpolation.InterpolationTarget; import org.fudaa.ctulu.interpolation.Interpolator; @@ -33,7 +33,7 @@ double distance_; InterpolationBilinearSupportSorted ref_; - final InterpolationSupportLocationI init_; + final SupportLocationI init_; boolean stop_; /** @@ -41,7 +41,7 @@ * @param _ref * @param _results */ - public InterpolatorBilinear(final InterpolationSupportLocationI _ref) { + public InterpolatorBilinear(final SupportLocationI _ref) { super(); init_ = _ref; distance_ = -1; Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/test/org/fudaa/ctulu/interpolation/TestJInterpolation.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/test/org/fudaa/ctulu/interpolation/TestJInterpolation.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/test/org/fudaa/ctulu/interpolation/TestJInterpolation.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -260,7 +260,7 @@ } } - static class InterpolationSrcAdapter implements InterpolationSupportValuesI, InterpolationSupportLocationI { + static class InterpolationSrcAdapter implements InterpolationSupportValuesI, SupportLocationI { final double[] x_ = new double[] { 0, 1, 0, 1 }; final double[] y_ = new double[] { 0, 0, 1, 1 }; Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/EfGridDataInterpolationValuesAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/EfGridDataInterpolationValuesAdapter.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/EfGridDataInterpolationValuesAdapter.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -13,7 +13,7 @@ import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ctulu.collection.CtuluCollectionDouble; -import org.fudaa.ctulu.interpolation.InterpolationSupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationI; import org.fudaa.ctulu.interpolation.InterpolationSupportValuesMultiI; /** @@ -21,7 +21,7 @@ * @version $Id: EfGridDataInterpolationValuesAdapter.java,v 1.2 2007-06-11 13:04:05 deniger Exp $ */ public class EfGridDataInterpolationValuesAdapter implements InterpolationSupportValuesMultiI, - InterpolationSupportLocationI { + SupportLocationI { final EfGridData data_; final int tIdx_; Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolationGridSupportAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolationGridSupportAdapter.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolationGridSupportAdapter.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -8,7 +8,7 @@ package org.fudaa.dodico.ef.interpolation; import org.fudaa.ctulu.CtuluVariable; -import org.fudaa.ctulu.interpolation.InterpolationSupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationI; import org.fudaa.ctulu.interpolation.InterpolationSupportValuesI; import org.fudaa.dodico.ef.EfGridInterface; @@ -17,7 +17,7 @@ * @author Fred Deniger * @version $Id: EfInterpolationGridSupportAdapter.java,v 1.2 2007-06-11 13:04:06 deniger Exp $ */ -public abstract class EfInterpolationGridSupportAdapter implements InterpolationSupportLocationI, +public abstract class EfInterpolationGridSupportAdapter implements SupportLocationI, InterpolationSupportValuesI { final EfGridInterface grid_; Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/h2d/TestJMaillage.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/h2d/TestJMaillage.java 2008-07-17 10:41:09 UTC (rev 3691) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/test/org/fudaa/dodico/h2d/TestJMaillage.java 2008-07-17 10:56:03 UTC (rev 3692) @@ -43,7 +43,7 @@ import org.fudaa.ctulu.gis.GISPoint; import org.fudaa.ctulu.interpolation.InterpolationParameters; import org.fudaa.ctulu.interpolation.InterpolationResultsHolderI; -import org.fudaa.ctulu.interpolation.InterpolationSupportLocationI; +import org.fudaa.ctulu.interpolation.SupportLocationI; import org.fudaa.ctulu.interpolation.InterpolationSupportPoint; import org.fudaa.ctulu.interpolation.InterpolationSupportValuesI; import org.fudaa.ctulu.interpolation.TestJInterpolation; @@ -818,7 +818,7 @@ assertTrue(mail_.getFrontiers().isSame(l.toNativeArray())); } - private static class GridRef implements InterpolationSupportLocationI, InterpolationSupportValuesI { + private static class GridRef implements SupportLocationI, InterpolationSupportValuesI { final EfGridInterface g_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-17 10:41:08
|
Revision: 3691 http://fudaa.svn.sourceforge.net/fudaa/?rev=3691&view=rev Author: bmarchan Date: 2008-07-17 10:41:09 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Correction de l'updater + details d'utilisation. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/ProgressionUpdater.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/ProgressionUpdater.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/ProgressionUpdater.java 2008-07-15 15:26:24 UTC (rev 3690) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/ProgressionUpdater.java 2008-07-17 10:41:09 UTC (rev 3691) @@ -9,8 +9,10 @@ /** * Cette classe permet de mettre a jour automatiquement la progression d'une boucle. Il faut donner le nombre - * d'iteration attendu et le nombre de mise a jour ( ou etape) voulue.Exemple <br> + * d'iteration attendu et le nombre de mise a jour (ou etape) voulue.<p> * + * Exemple: + * * <pre> * int nbEle = _getNombreElementATraiter(); * ProgressionUpdater prog = new ProgressionUpdater(_inter); @@ -76,8 +78,10 @@ } /** - * Permet d'initialiser cet updater avec le nombre d'\xE9tapes voulues et le nombre d'iteration attendue. Exemple: <br> - * vous avez une boucle qui contient 200 iteration et vous voulez mettre a jour la progression tous les 50 (soit 4 + * Initialise l'updater avec le nombre d'\xE9tapes voulues et le nombre d'iteration attendues.<p> + * + * Exemple: <br> + * vous avez une boucle qui contient 200 iteration et vous voulez mettre a jour la progression toutes les 50 (soit 4 * \xE9tapes). Il suffit d'appeler setValue(4,200). Appelle la fonction setValue(int,int,0,100) * * @see #setValue(int, int, int, int) @@ -91,13 +95,18 @@ boolean maxStepUsed_ = true; /** - * Permet d'initialiser cet updater avec le nombre d'\xE9tapes voulues et le nombre d'iteration attendue. De plus, il est - * possible de preciser le pourcentage initial et l'\xE9tendu du pourcentage. Exemple: <br> - * vous avez une boucle qui contient 300 iteration et vous voulez mettre a jour la progression tous les 100 (soit 3 - * \xE9tapes). Par contre, vous voulez que la progression commence \xE0 20 et qu'elle se finisse a 60 ( soit une \xE9tendue de - * 60) Il suffit d'appeler setValue(3,300,20,60). Attention : si le nombre d'iteration pour chaque etape est trop - * faible (<20) le nombre d'etape sera de 2. C'est pour eviter de mettre a jour trop souvent l'interface + * Initialise l'updater avec le nombre d'\xE9tapes voulues et le nombre d'iterations attendues, le pourcentage initial + * et l'\xE9tendu du pourcentage.<p> * + * Exemple: <br> + * vous avez une boucle qui contient 300 iterations et vous voulez mettre a jour la progression toutes les 100 (soit 3 + * \xE9tapes). De plus, vous voulez que la progression commence \xE0 20% et qu'elle se finisse a 80% ( soit une \xE9tendue de + * 60). Il suffit d'appeler setValue(3,300,20,60).<p> + * + * Attention: <br> + * si le nombre d'iteration pour chaque etape est trop + * faible (<20) le nombre d'etape sera de 2 pour eviter de mettre a jour trop souvent l'interface. + * * @param _nbStepToShow le nombre de maj voulue * @param _nbTotalIteration le nombre d'iteration * @param _pourcentOffSet le depart des pourcentages @@ -109,6 +118,7 @@ if (maxStepUsed_) { step = ((_nbTotalIteration / _nbStepToShow) < 20) ? 4 : _nbStepToShow; } + step=Math.min(step, _pourcentRange); // Le nombre de pas ne peut \xEAtre sup\xE9rieur \xE0 l'intervalle, sinon pas d'avanc\xE9e. pourcStep_ = _pourcentRange / step; pas_ = _nbTotalIteration / step; nextPas_ = pas_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-15 15:27:54
|
Revision: 3690 http://fudaa.svn.sourceforge.net/fudaa/?rev=3690&view=rev Author: bmarchan Date: 2008-07-15 08:26:24 -0700 (Tue, 15 Jul 2008) Log Message: ----------- Cr?\195?\169ation d'une valeur d'attribut String global a partir d'un tableau de String Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeString.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelPointMultiPointAdapter.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-15 15:24:26 UTC (rev 3689) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-15 15:26:24 UTC (rev 3690) @@ -116,10 +116,11 @@ // Si la valeur en entr\xE9e est la valeur par d\xE9faut, alors une nouvelle valeur en sortie est cr\xE9\xE9e. // Ceci permet d'affecter automatiquement un nom nouveau \xE0 une g\xE9om\xE9trie cr\xE9\xE9e. if (r == null || def_.equals(r)) { - r="Geom_"+(++numid_); + return r="Geom_"+(++numid_); } - return r; - + else { + return super.createGlobalValues(_initValues); + } } public Object getDefaultValue() { Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeString.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeString.java 2008-07-15 15:24:26 UTC (rev 3689) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeString.java 2008-07-15 15:26:24 UTC (rev 3690) @@ -41,6 +41,15 @@ public Object getDefaultValue(){ return CtuluLibString.EMPTY_STRING; } + + protected Object createGlobalValues(final Object _initValues) { + if (_initValues instanceof Object[]) { // Plusieurs valeurs en entr\xE9e : On prend la premi\xE8re. + return ((Object[])_initValues)[0]; + } + else { + return super.createGlobalValues(_initValues); + } + } public int getPrecision(){ return 50; Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelPointMultiPointAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelPointMultiPointAdapter.java 2008-07-15 15:24:26 UTC (rev 3689) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelPointMultiPointAdapter.java 2008-07-15 15:26:24 UTC (rev 3690) @@ -134,7 +134,7 @@ ArrayList<Integer> idxpts=hibloc2ListPts_.get(_idxGeom); Object[] vals=new Object[idxpts.size()]; for (int i=0; i<idxpts.size(); i++) vals[i]=initmd_.getValue(_idxAtt,idxpts.get(i)); - datas_[_idxAtt][_idxGeom]=getAttribute(_idxAtt).createAtomicModel(vals, vals.length); + datas_[_idxAtt][_idxGeom]=getAttribute(_idxAtt).createDataForGeom(vals, vals.length); } return datas_[_idxAtt][_idxGeom]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-15 15:25:53
|
Revision: 3689 http://fudaa.svn.sourceforge.net/fudaa/?rev=3689&view=rev Author: bmarchan Date: 2008-07-15 08:24:26 -0700 (Tue, 15 Jul 2008) Log Message: ----------- Correction sur addGeometry(), qui se fait directement depuiis la g?\195?\169om?\195?\169trie cr?\195?\169?\195?\169e. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-07-15 15:22:51 UTC (rev 3688) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-07-15 15:24:26 UTC (rev 3689) @@ -182,12 +182,12 @@ } } - public void addGeometry(final Geometry _seq, final Object[] _data, final CtuluCommandContainer _cmd) { - final LineString s = (LineString) _seq; - if (s.isClosed()) { - addPolygone(s.getCoordinateSequence(), _data, _cmd); - } else { - addPolyligne(s.getCoordinateSequence(), _data, _cmd); + public void addGeometry(final Geometry _geom, final Object[] _data, final CtuluCommandContainer _cmd) { + if (!(_geom instanceof LineString)) + throw new IllegalArgumentException("Bad type geometry"); + + if (isGeomModifiable_) { + geometry_.add(_geom, Arrays.asList(createAttributeList(_data, _geom, true)), _cmd); } } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-07-15 15:22:51 UTC (rev 3688) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-07-15 15:24:26 UTC (rev 3689) @@ -173,9 +173,11 @@ } public void addGeometry(final Geometry _geom, final Object[] _data, final CtuluCommandContainer _cmd) { - if (!(_geom instanceof GISMultiPoint)) return; + if (!(_geom instanceof GISMultiPoint)) + throw new IllegalArgumentException("Bad type geometry"); + if (isGeomModifiable_) { - super.geometry_.add(_geom, Arrays.asList(createAttributeList(_data, _geom, true)), _cmd); + geometry_.add(_geom, Arrays.asList(createAttributeList(_data, _geom, true)), _cmd); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-15 15:23:35
|
Revision: 3688 http://fudaa.svn.sourceforge.net/fudaa/?rev=3688&view=rev Author: bmarchan Date: 2008-07-15 08:22:51 -0700 (Tue, 15 Jul 2008) Log Message: ----------- Impl?\195?\169mentation import/export SinusX. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxReader.java branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxWriter.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigDataModelSinusxAdapter.java branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderSinusX.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxReader.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxReader.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxReader.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -12,8 +12,12 @@ import java.io.EOFException; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.Geometry; import com.memoire.fu.FuLog; @@ -21,8 +25,14 @@ import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; +import org.fudaa.ctulu.gis.GISAttribute; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISCoordinateSequence; +import org.fudaa.ctulu.gis.GISDataModelPointMultiPointAdapter; +import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISZone; +import org.fudaa.ctulu.gis.GISZoneCollection; import org.fudaa.ctulu.gis.GISZoneCollectionPoint; import org.fudaa.ctulu.gis.GISZoneCollectionPolygone; import org.fudaa.ctulu.gis.GISZoneCollectionPolyligne; @@ -89,7 +99,9 @@ /** * En retour, les polylignes sont stock\xE9es dans une seule GISZoneCollectionPolyligne, les polygones dans une - * seule GISZoneCollectionPolygone, les points par blocs, chaque bloc correspondant \xE0 une GISZoneCollectionPoint. + * seule GISZoneCollectionPolygone, les points par blocs, chaque bloc correspondant \xE0 une GISZoneCollectionPoint.<p> + * Les collections de points poss\xE8dent un attribut TITLE, chaque point de la collection ayant m\xEAme TITLE, qui correspond + * au nom du semis dont ils font partie. Ils poss\xE8dent \xE9galement un attribut ATT_NUM_BLOC pour pouvoir les regrouper.<p> * * Utilise FortranReader ( donc un buffer). * @@ -101,7 +113,18 @@ GISZoneCollectionPoint ptDefZone = null; GISZoneCollectionPolygone polygones = null; GISZoneCollectionPolyligne polylignes = null; - int idx = 1; + +// GISAttribute[] atts=new GISAttribute[]{GISAttributeConstants.BATHY,GISAttributeConstants.TITRE}; + GISAttributeInterface[] attPts=new GISAttributeInterface[]{ + GISAttributeConstants.BATHY, + GISAttributeConstants.TITRE, + GISDataModelPointMultiPointAdapter.ATT_NUM_BLOC + }; + +// Geometry geom; + String name = ""; + + int idx = 0; defZone.setNom(name_); // GISZone profilZone = null; if (super.in_ == null) { @@ -135,7 +158,6 @@ } } while (key.isBlocCommentaire(bloc)); String type = null; - // String nom = ""; // MNTEntite ent = null; // approximation lu += 150; @@ -157,9 +179,10 @@ while (!estPoint(bloc)) { if (key.isBlocNomEntite(bloc)) { - if (FuLog.isDebug()) { - FuLog.debug("DTE: name " + in_.getLine().substring(key.getBlocNomEntite().length()).trim()); - } + name=in_.getLine().substring(key.getBlocNomEntite().length()).trim(); +// if (FuLog.isDebug()) { +// FuLog.debug("DTE: name " + in_.getLine().substring(key.getBlocNomEntite().length()).trim()); +// } } else if (key.isBlocInfos(bloc)) { final String t1 = in_.stringField(1); final int nbChamps = in_.getNumberOfFields(); @@ -185,40 +208,57 @@ if (key.isTypeCourbe(type)) { // DEBUG:FERME?? polyligneXyz = new TDoubleArrayList(); - } else if (key.isTypeCourbeNiveau(type)) { + } + else if (key.isTypeCourbeNiveau(type)) { polyligneXyz = new TDoubleArrayList(); niveau = true; /* * temp.niveau(true); defZone.ajoutePolyligne(temp); ent = temp; temp = null; ent.setNom(nom); */ // ent.setNom(nom); - } else if (key.isTypeProfil(type)) { - analyze_.addWarn(H2dResource.getS("Pofils non g\xE9r\xE9s"), in_.getLineNumber()); + } + else if (key.isTypeProfil(type)) { + analyze_.addWarn(H2dResource.getS("Profils non g\xE9r\xE9s"), in_.getLineNumber()); pt = defZone.createPointContainer(); - pt.setTitle("profil", null); - } else { - if (!key.isTypeSemis(type)) { - analyze_.addWarn(H2dResource.getS("TYPE inconnu : assimil\xE9 a un semis"), in_.getLineNumber()); + pt.setAttributes(attPts, null); + idx++; +// pt.setTitle("profil", null); + } + else if (key.isTypeSemis(type)) { + if (ptDefZone == null) { + ptDefZone = defZone.createPointContainer(); + pt = ptDefZone; + pt.setAttributes(attPts, null); + idx++; + } else { pt = defZone.createPointContainer(); - pt.setTitle(H2dResource.getS("type inconnu"), null); - } else { - if (ptDefZone == null) { - ptDefZone = defZone.createPointContainer(); - pt = ptDefZone; - } else { - pt = defZone.createPointContainer(); - pt.setTitle(name_ + " " + (idx++), null); - } + pt.setAttributes(attPts, null); + idx++; +// pt.setTitle(name_ + " " + (idx++), null); } } - } else { + else { + analyze_.addWarn(H2dResource.getS("TYPE inconnu : assimil\xE9 a un semis"), in_.getLineNumber()); + pt = defZone.createPointContainer(); + pt.setAttributes(attPts, null); + idx++; +// pt.setTitle(H2dResource.getS("type inconnu"), null); + } + } + else { analyze_.addWarn(H2dResource.getS("Liste de points uniquement"), in_.getLineNumber()); if (ptDefZone == null) { ptDefZone = defZone.createPointContainer(); pt = ptDefZone; + pt.setAttributes(attPts, null); + idx++; + name=name_+" "+(idx); } else { pt = defZone.createPointContainer(); - pt.setTitle(name_ + " " + (idx++), null); + pt.setAttributes(attPts, null); + idx++; + name=name_+" "+(idx); +// pt.setTitle(name_ + " " + (idx++), null); } } lu += 30; @@ -229,7 +269,7 @@ } if (estPoint(bloc)) { if (pt != null) { - pt.add(Double.parseDouble(bloc), in_.doubleField(1), in_.doubleField(2)); + pt.add(Double.parseDouble(bloc), in_.doubleField(1), in_.doubleField(2),Arrays.asList(new Object[]{null,name,idx-1}),null); } else if (polyligneXyz != null) { polyligneXyz.add(Double.parseDouble(bloc)); polyligneXyz.add(in_.doubleField(1)); @@ -246,34 +286,41 @@ } // Fin de lecture des points du bloc => Si polyligne ou polygone, cr\xE9ation et ajout des points. if (polyligneXyz != null) { - if (!ferme) { - ferme = isClosed(polyligneXyz); - } - if (ferme) { - if (polygones == null) { - polygones = defZone.createPolygoneContainer(); - } - polyligneXyz.add(polyligneXyz.getQuick(0)); - polyligneXyz.add(polyligneXyz.getQuick(1)); - polyligneXyz.add(polyligneXyz.getQuick(2)); - if (niveau) { - polygones.addPolygoneNiveau(new GISCoordinateSequence(polyligneXyz), null); - } else { - polygones.addPolygone(new GISCoordinateSequence(polyligneXyz), null); - } - } else { - if (polylignes == null) { - polylignes = defZone.createPolyligneContainer(); - } - if (niveau) { - polylignes.addPolyligneNiveau(new GISCoordinateSequence(polyligneXyz), null); - } else { - polylignes.addPolyligne(new GISCoordinateSequence(polyligneXyz), null); - } - } - ferme = false; - niveau = false; + addLigne(defZone, polyligneXyz, name, polygones, polylignes, ferme, niveau); +// if (!ferme) { +// ferme = isClosed(polyligneXyz); +// } +// if (ferme) { +// if (polygones == null) { +// polygones = defZone.createPolygoneContainer(); +// polygones.setAttributes(atts, null); +// } +// polyligneXyz.add(polyligneXyz.getQuick(0)); +// polyligneXyz.add(polyligneXyz.getQuick(1)); +// polyligneXyz.add(polyligneXyz.getQuick(2)); +// if (niveau) { +// geom=GISGeometryFactory.INSTANCE.createLinearRingNiveau(new GISCoordinateSequence(polyligneXyz)); +// } else { +// geom=GISGeometryFactory.INSTANCE.createLinearRing(new GISCoordinateSequence(polyligneXyz)); +// } +// polygones.addGeometry(geom, new Object[]{null,name}, null); +// } else { +// if (polylignes == null) { +// polylignes = defZone.createPolyligneContainer(); +// polylignes.setAttributes(atts, null); +// } +// if (niveau) { +// geom=GISGeometryFactory.INSTANCE.createLineStringNiveau(new GISCoordinateSequence(polyligneXyz)); +// } else { +// geom=GISGeometryFactory.INSTANCE.createLineString(new GISCoordinateSequence(polyligneXyz)); +// } +// polylignes.addGeometry(geom, new Object[]{null,name}, null); +// } +// ferme = false; +// niveau = false; } + ferme = false; + niveau = false; } } catch (final EOFException e) {} catch (final IOException e) { analyze_.manageException(e); @@ -284,33 +331,90 @@ return null; } if (polyligneXyz != null) { - if (!ferme) { - ferme = isClosed(polyligneXyz); + addLigne(defZone, polyligneXyz, name, polygones, polylignes, ferme, niveau); +// if (!ferme) { +// ferme = isClosed(polyligneXyz); +// } +// if (ferme) { +// if (polygones == null) { +// polygones = defZone.createPolygoneContainer(); +// polygones.setAttributes(atts, null); +// } +// polyligneXyz.add(polyligneXyz.getQuick(0)); +// polyligneXyz.add(polyligneXyz.getQuick(1)); +// polyligneXyz.add(polyligneXyz.getQuick(2)); +// if (niveau) { +// geom=GISGeometryFactory.INSTANCE.createLinearRingNiveau(new GISCoordinateSequence(polyligneXyz)); +// } else { +// geom=GISGeometryFactory.INSTANCE.createLinearRing(new GISCoordinateSequence(polyligneXyz)); +// } +// polygones.addGeometry(geom, new Object[]{null,name}, null); +// } else { +// if (polylignes == null) { +// polylignes = defZone.createPolyligneContainer(); +// polylignes.setAttributes(atts, null); +// } +// if (niveau) { +// geom=GISGeometryFactory.INSTANCE.createLineStringNiveau(new GISCoordinateSequence(polyligneXyz)); +// } else { +// geom=GISGeometryFactory.INSTANCE.createLineString(new GISCoordinateSequence(polyligneXyz)); +// } +// polylignes.addGeometry(geom, new Object[]{null,name}, null); +// } + } + + for (int i=0; i<defZone.getNumGeometries(); i++) { + ((GISZoneCollection)defZone.getGeometry(i)).postImport(0); + } + return defZone; + } + + private void addLigne(GISZone _defZone, TDoubleArrayList _polyligneXyz, String _name, GISZoneCollection _polygones, GISZoneCollection _polylignes, + boolean _ferme, boolean _niveau) { + + if (_polyligneXyz.size()<=3) { // Une polyligne ne peut pas contenir moins de 2 points. + analyze_.addWarn(H2dResource.getS("La polyligne {0} est vide ou ne contient qu'un point",_name), in_.getLineNumber()); + return; + } + + GISAttribute[] atts=new GISAttribute[]{GISAttributeConstants.BATHY,GISAttributeConstants.TITRE}; + Geometry geom; + + if (!_ferme) { + _ferme = isClosed(_polyligneXyz); + } + if (_ferme) { + if (_polygones == null) { + _polygones = _defZone.createPolygoneContainer(); + _polygones.setAttributes(atts, null); } - if (ferme) { - if (polygones == null) { - polygones = defZone.createPolygoneContainer(); - } - polyligneXyz.add(polyligneXyz.getQuick(0)); - polyligneXyz.add(polyligneXyz.getQuick(1)); - polyligneXyz.add(polyligneXyz.getQuick(2)); - if (niveau) { - polygones.addPolygoneNiveau(new GISCoordinateSequence(polyligneXyz), null); - } else { - polygones.addPolygone(new GISCoordinateSequence(polyligneXyz), null); - } + _polyligneXyz.add(_polyligneXyz.getQuick(0)); + _polyligneXyz.add(_polyligneXyz.getQuick(1)); + _polyligneXyz.add(_polyligneXyz.getQuick(2)); + if (_niveau) { + geom=GISGeometryFactory.INSTANCE.createLinearRingNiveau(new GISCoordinateSequence(_polyligneXyz)); +// polygones.addPolygoneNiveau(new GISCoordinateSequence(polyligneXyz), null); } else { - if (polylignes == null) { - polylignes = defZone.createPolyligneContainer(); - } - if (niveau) { - polylignes.addPolyligneNiveau(new GISCoordinateSequence(polyligneXyz), null); - } else { - polylignes.addPolyligne(new GISCoordinateSequence(polyligneXyz), null); - } + geom=GISGeometryFactory.INSTANCE.createLinearRing(new GISCoordinateSequence(_polyligneXyz)); +// polygones.addPolygone(new GISCoordinateSequence(polyligneXyz), null); } + _polygones.addGeometry(geom, new Object[]{null,_name}, null); + } else { + if (_polylignes == null) { + _polylignes = _defZone.createPolyligneContainer(); + _polylignes.setAttributes(atts, null); + } + if (_niveau) { + geom=GISGeometryFactory.INSTANCE.createLineStringNiveau(new GISCoordinateSequence(_polyligneXyz)); +// polylignes.addPolyligneNiveau(new GISCoordinateSequence(polyligneXyz), null); + } else { + geom=GISGeometryFactory.INSTANCE.createLineString(new GISCoordinateSequence(_polyligneXyz)); +// polylignes.addPolyligne(new GISCoordinateSequence(polyligneXyz), null); + } + _polylignes.addGeometry(geom, new Object[]{null,_name}, null); } - return defZone; + _ferme = false; + _niveau = false; } public boolean isClosed(final TDoubleArrayList _list) { Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxWriter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxWriter.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/telemac/io/SinusxWriter.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -17,6 +17,7 @@ import com.vividsolutions.jts.geom.CoordinateSequence; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.LinearRing; +import com.vividsolutions.jts.geom.MultiPoint; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; @@ -24,8 +25,13 @@ import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.ProgressionUpdater; import org.fudaa.ctulu.fileformat.FileFormatVersionInterface; +import org.fudaa.ctulu.gis.GISAttribute; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISCollection; +import org.fudaa.ctulu.gis.GISCoordinateSequenceContainerInterface; import org.fudaa.ctulu.gis.GISGeometry; import org.fudaa.ctulu.gis.GISLib; +import org.fudaa.ctulu.gis.GISMultiPoint; import org.fudaa.ctulu.gis.GISPolygone; import org.fudaa.ctulu.gis.GISPolyligne; import org.fudaa.ctulu.gis.GISVisitorDefault; @@ -228,34 +234,65 @@ if (g == null) { continue; } + int attName=g.getIndiceOf(GISAttributeConstants.TITRE); + // Les lignes et polygones if (g.getDataStoreClass() == LineString.class || g.getDataStoreClass() == LinearRing.class) { final int nbPoly = g.getNumGeometries(); for (int polyIdx = 0; polyIdx < nbPoly; polyIdx++) { final StringBuffer buf = new StringBuffer(); buf.append(bs_).append(CtuluLibString.ESPACE); - final LineString l = (LineString) g.getGeometryN(polyIdx); - ((GISGeometry) l).accept(identifieur); + final LineString geom = (LineString) g.getGeometryN(polyIdx); + ((GISGeometry) geom).accept(identifieur); final boolean ferme = identifieur.isClosed_; - final String nom = ((ferme) ? "polygone" : "polyligne"); + + final String nom; + if (attName==-1) + nom= ((ferme) ? "polygone" : "polyligne") + CtuluLibString.ESPACE + (j + 1) + "-" + (polyIdx + 1); + else + nom=(String)g.getValue(attName, polyIdx); + if (identifieur.isNiveau_) { buf.append(key_.getTypeCourbeNiveau()); - spec = formate_.format(l.getCoordinateSequence().getOrdinate(0, 2)); + spec = formate_.format(geom.getCoordinateSequence().getOrdinate(0, 2)); } else { buf.append(key_.getTypeCourbe()); spec = courbeDefaut(key_.getCourbeNBIndic()); } writeToOut(buf.toString()); - writeEntete(j + polyIdx, nom + CtuluLibString.ESPACE + (j + 1) + "-" + (polyIdx + 1), spec, ferme); - writeCoordinateSequence(l.getCoordinateSequence(), up, ferme); + writeEntete(j + polyIdx, nom, spec, ferme); + writeCoordinateSequence(geom.getCoordinateSequence(), up, ferme); } // DEBUG: Que veut dire ferme?? // if(ent instanceof MNTPolygone) fermee=true; } - /* - * else if (ent instanceof MNTProfil) { buf.append(key.getTypeProfil()); spec = profilDefaut(); } - */ + + // Multipoints + else if (g.getDataStoreClass() == GISMultiPoint.class) { + final int nbPoly = g.getNumGeometries(); + for (int polyIdx = 0; polyIdx < nbPoly; polyIdx++) { + final StringBuffer buf = new StringBuffer(); + buf.append(bs_).append(CtuluLibString.ESPACE); + final GISMultiPoint geom = (GISMultiPoint) g.getGeometryN(polyIdx); + + final String nom; + if (attName==-1) + nom = "semis"+ CtuluLibString.ESPACE + (j + 1) + "-" + (polyIdx + 1); + else + nom=(String)g.getValue(attName, polyIdx); + + buf.append(key_.getTypeSemis()); + spec = null; + writeToOut(buf.toString()); + writeEntete(j + polyIdx, nom , spec, false); + writeCoordinateSequence(geom.getCoordinateSequence(), up, false); + } + // DEBUG: Que veut dire ferme?? + // if(ent instanceof MNTPolygone) fermee=true; + } + + // Points else { final StringBuffer buf = new StringBuffer(50); buf.append(bs_).append(' '); Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -22,6 +22,7 @@ import org.fudaa.ctulu.gis.GISPolygone; import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; import org.fudaa.ctulu.gis.GISZoneCollectionMultiPoint; +import org.fudaa.ebli.calque.dessin.DeForme; import org.fudaa.ebli.calque.edition.ZCalqueEditable; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dLine; @@ -51,8 +52,11 @@ @Override public void doTask() { - if (data_==null) data_ = fileLoader_.loadAll(null, new CtuluAnalyze()); - + CtuluAnalyze analyze=new CtuluAnalyze(); + if (data_==null) data_ = fileLoader_.loadAll(null, analyze); + // Affiche les erreurs dans une boite de dialogue. + impl_.manageAnalyzeAndIsFatal(analyze); + // Pas de fichier, retour sans message. done_=true; if (data_==null) return; @@ -83,8 +87,8 @@ protected void importData(ProgressionInterface _prog) { final CtuluCommandComposite cmp = new CtuluCommandComposite(); - // Calque des semis de points. - if (selectedLayer_ instanceof MdlLayer2dMultiPoint) { + // Les semis de points. + if (selectedLayer_ instanceof MdlLayer2dMultiPoint && selectedLayer_.canAddForme(DeForme.MULTI_POINT)) { final GISZoneCollectionMultiPoint col = (GISZoneCollectionMultiPoint)((MdlModel2dMultiPoint)selectedLayer_.modeleDonnees()).getGeomData(); final GISAttributeInterface[] attChosen=col.getAttributes(); final GISDataModel[] pts = data_.getPoints(); @@ -95,8 +99,8 @@ } } - // Les autres calques. - else if (selectedLayer_ instanceof MdlLayer2dLine) { + // Les polylignes. + if (selectedLayer_ instanceof MdlLayer2dLine && selectedLayer_.canAddForme(DeForme.LIGNE_BRISEE)) { final GISZoneCollectionLigneBrisee col = (GISZoneCollectionLigneBrisee)((MdlModel2dLine)selectedLayer_.modeleDonnees()).getGeomData(); final GISAttributeInterface[] attChosen=col.getAttributes(); GISDataModel[] lines = data_.getPolylignes(); @@ -106,6 +110,18 @@ col.addAll(model, cmp, true); } } + + // Les polygones. + if (selectedLayer_ instanceof MdlLayer2dLine && selectedLayer_.canAddForme(DeForme.POLYGONE)) { + final GISZoneCollectionLigneBrisee col = (GISZoneCollectionLigneBrisee)((MdlModel2dLine)selectedLayer_.modeleDonnees()).getGeomData(); + final GISAttributeInterface[] attChosen=col.getAttributes(); + GISDataModel[] lines = data_.getPolygones(); + final int nb=lines.length; + for (int i=0; i<nb; i++) { + final GISDataModel model=GISDataModelFilterAdapter.buildLigneAdapter(lines[i], attChosen); + col.addAll(model, cmp, true); + } + } if (mng_!=null) mng_.addCmd(cmp.getSimplify()); } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -132,6 +132,11 @@ final GISZoneCollection collec = _filter.getCollect(_filter.polyCq_.get(i)); z.add(collec); } + nb = _filter.mlptsCq_.size(); + for (int i = 0; i < nb; i++) { + final GISZoneCollection collec = _filter.getCollect(_filter.mlptsCq_.get(i)); + z.add(collec); + } return SinusxFileFormat.getInstance().write(f, z, _prog); } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigDataModelSinusxAdapter.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigDataModelSinusxAdapter.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigDataModelSinusxAdapter.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -50,10 +50,10 @@ * @param _progress la barre de progression * @return le model correspondant */ - public static GISDataModel readSxFilePoly(final File _f, final Class _filterClass, final CtuluUI _impl, - final ProgressionInterface _progress) { - return readSxFilePoly(_f, _filterClass, _impl, _progress, null); - } +// public static GISDataModel readSxFilePoly(final File _f, final Class _filterClass, final CtuluUI _impl, +// final ProgressionInterface _progress) { +// return readSxFilePoly(_f, _filterClass, _impl, _progress, null); +// } public Envelope getEnvelopeInternal() { return GISLib.computeEnveloppe(geoms_); @@ -69,143 +69,171 @@ * @param _isPolygoneAccepted true si les polygones sont acceptees dans le modele * @param _progress la barre de progression * @param _res le resultat peut etre null - * @return le model + * @return le model, null si aucune g\xE9om\xE9trie. */ public static GISDataModel analyseSxFile(final GISZone _zi, final boolean _isPointAccepted, final boolean _isPolyligneAccepted, final boolean _isPolygoneAccepted, final ProgressionInterface _progress, final FSigFileLoadResult _res) { - int ibloc=0; - final List res = new ArrayList(100); - // final TDoubleArrayList zAverage = new TDoubleArrayList(100); - final List z = new ArrayList(); - final TIntArrayList numBloc=new TIntArrayList(); - final GISAttributeDouble zAtt = (GISAttributeDouble) GISAttributeConstants.BATHY; - final GISAttributeInterface numBlocAtt=GISDataModelPointMultiPointAdapter.ATT_NUM_BLOC; - if (_res != null) { - _res.allAttribute_.add(zAtt); - _res.allAttribute_.add(numBlocAtt); - } +// int ibloc=0; +// final List res = new ArrayList(100); +// // final TDoubleArrayList zAverage = new TDoubleArrayList(100); +// final List z = new ArrayList(); +// final TIntArrayList numBloc=new TIntArrayList(); +// final GISAttributeDouble zAtt = (GISAttributeDouble) GISAttributeConstants.BATHY; +// final GISAttributeInterface numBlocAtt=GISDataModelPointMultiPointAdapter.ATT_NUM_BLOC; +// final GISAttribute nameAtt = GISAttributeConstants.TITRE; +// if (_res != null) { +// _res.allAttribute_.add(zAtt); +// _res.allAttribute_.add(numBlocAtt); +// _res.allAttribute_.add(nameAtt); +// } final GISZoneCollectionPolygone[] polygones = _zi.getPolygoneCollections(); // on parcourt les polygones if (polygones != null && _isPolygoneAccepted) { + if (polygones.length==0) return null; final int nbPolyg = polygones.length; for (int j = 0; j < nbPolyg; j++) { - final GISZoneCollectionPolygone polyzj = polygones[j]; - final int nbpoly = polyzj.getNumGeometries(); - for (int k = 0; k < nbpoly; k++) { - final GISPolygone pk = (GISPolygone) polyzj.getGeometry(k); - res.add(pk); - if (_res != null) { - _res.nbPolygones_++; - _res.nbPointTotal_ += pk.getNumGeometries(); - } - final CoordinateSequence seq = pk.getCoordinateSequence(); - final GISAttributeModelDoubleArray zl = zAtt.createAtomicModelDouble(pk.getNumPoints()); - for (int l = zl.getSize() - 1; l >= 0; l--) { - zl.set(l, seq.getOrdinate(l, 2)); - } - z.add(zl); - numBloc.add(ibloc++); - } - + _res.nbPolygones_+=polygones[j].getNumGeometries(); + _res.nbPointTotal_+=polygones[j].getNumPoints(); } + GISDataModel mdl=new GISDataModelMultiAdapter(polygones); + return mdl; +// final int nbPolyg = polygones.length; +// for (int j = 0; j < nbPolyg; j++) { +// final GISZoneCollectionPolygone polyzj = polygones[j]; +// final int nbpoly = polyzj.getNumGeometries(); +// for (int k = 0; k < nbpoly; k++) { +// final GISPolygone pk = (GISPolygone) polyzj.getGeometry(k); +// res.add(pk); +// if (_res != null) { +// _res.nbPolygones_++; +// _res.nbPointTotal_ += pk.getNumGeometries(); +// } +// final CoordinateSequence seq = pk.getCoordinateSequence(); +// final GISAttributeModelDoubleArray zl = zAtt.createAtomicModelDouble(pk.getNumPoints()); +// for (int l = zl.getSize() - 1; l >= 0; l--) { +// zl.set(l, seq.getOrdinate(l, 2)); +// } +// z.add(zl); +// numBloc.add(ibloc++); +// } +// +// } } final GISZoneCollectionPolyligne[] polyligne = _zi.getPolyligneCollections(); // on parcourt les polygones if (polyligne != null && _isPolyligneAccepted) { - final int nbLignes = polyligne.length; - for (int j = 0; j < nbLignes; j++) { - final GISZoneCollectionPolyligne lignes = polyligne[j]; - final int nbpoly = lignes.getNumGeometries(); - for (int k = 0; k < nbpoly; k++) { - final GISPolyligne pk = (GISPolyligne) lignes.getGeometry(k); - res.add(pk); - if (_res != null) { - _res.nbPolylignes_++; - _res.nbPointTotal_ += pk.getNumGeometries(); - } - final CoordinateSequence seq = pk.getCoordinateSequence(); - final double[] zl = new double[pk.getNumPoints()]; - for (int l = zl.length - 1; l >= 0; l--) { - zl[l] = seq.getOrdinate(l, 2); - } - z.add(new GISAttributeModelDoubleArray(zl, zAtt)); - numBloc.add(ibloc++); - } - + if (polyligne.length==0) return null; + final int nbPolyg = polyligne.length; + for (int j = 0; j < nbPolyg; j++) { + _res.nbPolylignes_+=polyligne[j].getNumGeometries(); + _res.nbPointTotal_+=polyligne[j].getNumPoints(); } + GISDataModel mdl=new GISDataModelMultiAdapter(polyligne); + return mdl; +// final int nbLignes = polyligne.length; +// for (int j = 0; j < nbLignes; j++) { +// final GISZoneCollectionPolyligne lignes = polyligne[j]; +// final int nbpoly = lignes.getNumGeometries(); +// for (int k = 0; k < nbpoly; k++) { +// final GISPolyligne pk = (GISPolyligne) lignes.getGeometry(k); +// res.add(pk); +// if (_res != null) { +// _res.nbPolylignes_++; +// _res.nbPointTotal_ += pk.getNumGeometries(); +// } +// final CoordinateSequence seq = pk.getCoordinateSequence(); +// final double[] zl = new double[pk.getNumPoints()]; +// for (int l = zl.length - 1; l >= 0; l--) { +// zl[l] = seq.getOrdinate(l, 2); +// } +// z.add(new GISAttributeModelDoubleArray(zl, zAtt)); +// numBloc.add(ibloc++); +// } +// +// } } final GISZoneCollectionPoint[] pts = _zi.getPointCollections(); if (pts != null && _isPointAccepted) { final int nbPts = pts.length; + if (pts.length==0) return null; for (int j = 0; j < nbPts; j++) { - final GISZoneCollectionPoint lignes = pts[j]; - final int nbpoly = lignes.getNumGeometries(); - if (_res != null) { - _res.nbPoint_ += lignes.getNumPoints(); - _res.nbPointTotal_ += lignes.getNumPoints(); - } - for (int k = 0; k < nbpoly; k++) { - final Point pk = (Point) lignes.getGeometry(k); - res.add(pk); - z.add(CtuluLib.getDouble(pk.getCoordinateSequence().getOrdinate(0, 2))); - numBloc.add(ibloc); - } - ibloc++; + _res.nbPoint_+=pts[j].getNumPoints(); + _res.nbPointTotal_+=pts[j].getNumPoints(); } + GISDataModel mdl=new GISDataModelMultiAdapter(pts); + return mdl; +// final int nbPts = pts.length; +// for (int j = 0; j < nbPts; j++) { +// final GISZoneCollectionPoint lignes = pts[j]; +// final int nbpoly = lignes.getNumGeometries(); +// if (_res != null) { +// _res.nbPoint_ += lignes.getNumPoints(); +// _res.nbPointTotal_ += lignes.getNumPoints(); +// } +// for (int k = 0; k < nbpoly; k++) { +// final Point pk = (Point) lignes.getGeometry(k); +// res.add(pk); +// z.add(CtuluLib.getDouble(pk.getCoordinateSequence().getOrdinate(0, 2))); +// numBloc.add(ibloc); +// } +// ibloc++; +// } } - final FSigDataModelSinusxAdapter r = new FSigDataModelSinusxAdapter(); - r.geoms_ = new Geometry[res.size()]; - res.toArray(r.geoms_); - r.model_ = new GISAttributeModel[2]; - r.model_[0] = new GISAttributeModelObjectList(z, zAtt); - r.model_[1] = new GISAttributeModelIntegerList(numBloc.toNativeArray(),numBlocAtt); - return r; +// final FSigDataModelSinusxAdapter r = new FSigDataModelSinusxAdapter(); +// r.geoms_ = new Geometry[res.size()]; +// res.toArray(r.geoms_); +// r.model_ = new GISAttributeModel[2]; +// r.model_[0] = new GISAttributeModelObjectList(z, zAtt); +// r.model_[1] = new GISAttributeModelIntegerList(numBloc.toNativeArray(),numBlocAtt); +// r.model_[2] = new GISAttributeModelObjectList(nameAtt); +// return r; + return null; } - public static GISDataModel analyseSinusxRes(final GISZone _zones, final Class _filterClass, - final ProgressionInterface _progress, final FSigFileLoadResult _res) { - // on part sur 100 objets - boolean isPolygoneAccepted = true; - boolean isPolyligneAccepted = true; - boolean isPointAccepted = true; - if (_filterClass != null) { - if (LineString.class.equals(_filterClass)) { - isPointAccepted = false; - } else if (LinearRing.class.equals(_filterClass)) { - isPointAccepted = false; - isPolyligneAccepted = false; - } else if (Point.class.equals(_filterClass)) { - isPolyligneAccepted = false; - isPolygoneAccepted = false; - } - } - return analyseSxFile(_zones, isPointAccepted, isPolyligneAccepted, isPolygoneAccepted, _progress, _res); +// public static GISDataModel analyseSinusxRes(final GISZone _zones, final Class _filterClass, +// final ProgressionInterface _progress, final FSigFileLoadResult _res) { +// // on part sur 100 objets +// boolean isPolygoneAccepted = true; +// boolean isPolyligneAccepted = true; +// boolean isPointAccepted = true; +// if (_filterClass != null) { +// if (LineString.class.equals(_filterClass)) { +// isPointAccepted = false; +// } else if (LinearRing.class.equals(_filterClass)) { +// isPointAccepted = false; +// isPolyligneAccepted = false; +// } else if (Point.class.equals(_filterClass)) { +// isPolyligneAccepted = false; +// isPolygoneAccepted = false; +// } +// } +// return analyseSxFile(_zones, isPointAccepted, isPolyligneAccepted, isPolygoneAccepted, _progress, _res); +// +// } - } - /** * @param _f * @param _impl * @param _progress * @return la source correspondante */ - public static GISDataModel readSxFilePoly(final File _f, final Class _filterClass, final CtuluUI _impl, - final ProgressionInterface _progress, final FSigFileLoadResult _res) { - final CtuluIOOperationSynthese result = SinusxFileFormat.getInstance().read(_f, _progress); - // si erreur fatale on renvoie null - if (_impl.manageErrorOperationAndIsFatal(result)) { - return null; - } - final GISZone zones = (GISZone) result.getSource(); - if (zones == null || zones.getNumGeometries() == 0) { - return null; - } - return analyseSinusxRes(zones, _filterClass, _progress, _res); +// public static GISDataModel readSxFilePoly(final File _f, final Class _filterClass, final CtuluUI _impl, +// final ProgressionInterface _progress, final FSigFileLoadResult _res) { +// final CtuluIOOperationSynthese result = SinusxFileFormat.getInstance().read(_f, _progress); +// // si erreur fatale on renvoie null +// if (_impl.manageErrorOperationAndIsFatal(result)) { +// return null; +// } +// final GISZone zones = (GISZone) result.getSource(); +// if (zones == null || zones.getNumGeometries() == 0) { +// return null; +// } +// return analyseSinusxRes(zones, _filterClass, _progress, _res); +// +// } - } - public GISAttributeInterface getAttribute(final int _idxAtt) { return model_ == null ? null : model_[_idxAtt].getAttribute(); } Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderSinusX.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderSinusX.java 2008-07-15 15:11:13 UTC (rev 3687) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderSinusX.java 2008-07-15 15:22:51 UTC (rev 3688) @@ -55,8 +55,8 @@ final CtuluAnalyze _analyze) { if (zones_ == null) { final CtuluIOOperationSynthese op = SinusxFileFormat.getInstance().read(_f, _prog); + _analyze.merge(op.getAnalyze()); if (op.containsMessages() && op.getAnalyze().containsErrors()) { - _analyze.merge(op.getAnalyze()); return; } zones_ = (GISZone) op.getSource(); @@ -64,17 +64,17 @@ if (zones_ != null) { GISDataModel data=null; data = FSigDataModelSinusxAdapter.analyseSxFile(zones_, true, false, false, _prog, _r); - if (data.getNumGeometries() > 0) { + if (data!=null && data.getNumGeometries() > 0) { _r.pointModel_.add(data); _r.addUsedAttributes(GISLib.getAttributeFrom(data)); } data = FSigDataModelSinusxAdapter.analyseSxFile(zones_, false, true, false, _prog, _r); - if (data.getNumGeometries() > 0) { + if (data!=null && data.getNumGeometries() > 0) { _r.ligneModel_.add(data); _r.addUsedAttributes(GISLib.getAttributeFrom(data)); } data = FSigDataModelSinusxAdapter.analyseSxFile(zones_, false, false, true, _prog, _r); - if (data.getNumGeometries() > 0) { + if (data!=null && data.getNumGeometries() > 0) { _r.polygoneModel_.add(data); _r.addUsedAttributes(GISLib.getAttributeFrom(data)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-15 15:12:39
|
Revision: 3687 http://fudaa.svn.sourceforge.net/fudaa/?rev=3687&view=rev Author: bmarchan Date: 2008-07-15 08:11:13 -0700 (Tue, 15 Jul 2008) Log Message: ----------- Diff?\195?\169rents controles effectu?\195?\169s pour eviter des plantages. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-07-14 16:44:47 UTC (rev 3686) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-07-15 15:11:13 UTC (rev 3687) @@ -41,7 +41,7 @@ /** La valeur de la nature pour pour cette collection si elle est impos\xE9e. null : non impos\xE9e. */ protected Map fixedAttributes_=new HashMap(); - protected GISAttributeDouble attributeIsZ_ = GISAttributeConstants.BATHY; // Devrait \xEAtre null par defaut. + protected GISAttributeDouble attributeIsZ_ = null;//GISAttributeConstants.BATHY; // Devrait \xEAtre null par defaut. protected boolean isGeomModifiable_ = true; @@ -250,7 +250,13 @@ public abstract void addCoordinateSequence(CoordinateSequence _seq, Object[] _datas, CtuluCommandContainer _cmd); - public abstract void addGeometry(Geometry _seq, Object[] _datas, CtuluCommandContainer _cmd); + /** + * Ajoute une g\xE9om\xE9trie du bon type \xE0 la collection. En cas de mauvaise g\xE9ometrie ajout\xE9e, une Exception est lev\xE9e. + * @param _geom La g\xE9om\xE9trie. + * @param _datas Les valeurs d'attributs, dans l'ordre. + * @param _cmd Le manager de commandes. + */ + public abstract void addGeometry(Geometry _geom, Object[] _datas, CtuluCommandContainer _cmd); public void removeGeometries(final int[] _idx, CtuluCommandContainer _cmd) { super.geometry_.remove(_idx, _cmd); @@ -360,8 +366,21 @@ } public Object getValue(final int _idxAtt, final int _idxGeom) { + if (_idxAtt<0 || _idxAtt>getNbAttributes()) return null; return getModel(_idxAtt).getObjectValueAt(_idxGeom); } + + /** + * Wrapper pour d\xE9finir la valeur d'un attribut. + * @param _idxAtt L'indice de l'attribut. + * @param _idxGeom La g\xE9om\xE9trie. + * @param _data La valeur de l'attribut. + * @param _cmd Le manager undo/redo. + */ + public void setAttributValue(final int _idxAtt, final int _idxGeom, Object _data, CtuluCommandContainer _cmd) { + if (_idxAtt<0 || _idxAtt>getNbAttributes()) return; + getModel(_idxAtt).setObject(_idxGeom, _data, _cmd); + } public void gisDataChanged(final GISAttributeInterface _src) { if (listener_ != null) { @@ -424,12 +443,14 @@ /** * D\xE9finit l'attribut qui correspond \xE0 Z. Il est alors utilis\xE9 lors des d\xE9placements en Z de l'objet, * ou pour la persistence en chaque point s'il est atomique. Seul les attributs de type {@link GISAttributeDouble} - * sont autoris\xE9s. + * sont autoris\xE9s.<p> + * Remarque : L'attribut doit \xEAtre dans la liste des attributs de la collection, sinon l'appel de la m\xE9thode n'a pas d'effet. * * @param _attributeIsZ l'attribut qui correspond \xE0 z: il sera automatiquement mis \xE0 jour lors de * l'ajout de geometrie. Peut \xEAtre null. */ public final void setAttributeIsZ(final GISAttributeDouble _attributeIsZ) { + if (getIndiceOf(_attributeIsZ)==-1) return; attributeIsZ_ = _attributeIsZ; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-07-14 16:44:41
|
Revision: 3686 http://fudaa.svn.sourceforge.net/fudaa/?rev=3686&view=rev Author: bmarchan Date: 2008-07-14 09:44:47 -0700 (Mon, 14 Jul 2008) Log Message: ----------- Ticket#38 : Correction suite ?\195?\160 plantage lors du d?\195?\169placement de sommets de semis. Modified Paths: -------------- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-07-11 16:26:37 UTC (rev 3685) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-07-14 16:44:47 UTC (rev 3686) @@ -558,8 +558,8 @@ GISAttributeModelDoubleArray oldvals=null; if (zAtt!=null && zAtt.isAtomicValue()) { if (getGeomData().getModel(zAtt)!=null) { - oldvals=(GISAttributeModelDoubleArray)getGeomData().getModel(zAtt).getObjectValueAt(i); - newvals=(GISAttributeModelDoubleArray)zAtt.createDataForGeom(oldvals, geometries_.getGeometry(i).getNumPoints()); + oldvals=(GISAttributeModelDoubleArray)getGeomData().getModel(zAtt).getObjectValueAt(idx); + newvals=(GISAttributeModelDoubleArray)zAtt.createDataForGeom(oldvals, geometries_.getGeometry(idx).getNumPoints()); } else FuLog.warning("EBL:Pb l'attribut pour Z n'est pas dans la liste des attributs du calque!"); @@ -604,7 +604,7 @@ } if (newvals!=null) - getGeomData().getModel(zAtt).setObject(i, newvals, cmp); + getGeomData().getModel(zAtt).setObject(idx, newvals, cmp); } } if (_cmd != null) { Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java =================================================================== --- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-11 16:26:37 UTC (rev 3685) +++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-14 16:44:47 UTC (rev 3686) @@ -642,8 +642,8 @@ GISAttributeModelDoubleArray oldvals=null; if (zAtt!=null && zAtt.isAtomicValue()) { if (getGeomData().getModel(zAtt)!=null) { - oldvals=(GISAttributeModelDoubleArray)getGeomData().getModel(zAtt).getObjectValueAt(i); - newvals=(GISAttributeModelDoubleArray)zAtt.createDataForGeom(oldvals, geometries_.getGeometry(i).getNumPoints()); + oldvals=(GISAttributeModelDoubleArray)getGeomData().getModel(zAtt).getObjectValueAt(idx); + newvals=(GISAttributeModelDoubleArray)zAtt.createDataForGeom(oldvals, geometries_.getGeometry(idx).getNumPoints()); } else FuLog.warning("EBL:Pb l'attribut pour Z n'est pas dans la liste des attributs du calque!"); @@ -669,7 +669,7 @@ geometries_.setValue(idx, geo, cmp); if (newvals!=null) - getGeomData().getModel(zAtt).setObject(i, newvals, cmp); + getGeomData().getModel(zAtt).setObject(idx, newvals, cmp); } } if (_cmd != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |