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: <de...@us...> - 2008-10-30 17:44:58
|
Revision: 4129 http://fudaa.svn.sourceforge.net/fudaa/?rev=4129&view=rev Author: deniger Date: 2008-10-30 17:44:47 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliHtmlWidget.java Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliHtmlWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliHtmlWidget.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliHtmlWidget.java 2008-10-30 17:44:47 UTC (rev 4129) @@ -0,0 +1,52 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Rectangle; + +import javax.swing.JLabel; +import javax.swing.plaf.basic.BasicHTML; +import javax.swing.text.View; + +import org.netbeans.api.visual.widget.Scene; +import org.netbeans.api.visual.widget.Widget; + +/** + * @author deniger + */ +public class EbliHtmlWidget extends Widget { + + View view; + JLabel c = new JLabel(); + + protected EbliHtmlWidget(Scene scene, String html) { + super(scene); + view = BasicHTML.createHTMLView(c, html); + super.setCheckClipping(true); + } + + public void setHtml(String html) { + view = BasicHTML.createHTMLView(c, html); + } + + @Override + protected Rectangle calculateClientArea() { + Rectangle rec = new Rectangle(); + // the preferred size is here + rec.height = (int) view.getPreferredSpan(View.Y_AXIS); + rec.width = (int) view.getPreferredSpan(View.X_AXIS); + return rec; + } + + /** + * + */ + @Override + protected void paintWidget() { + Rectangle clientArea = getClientArea(); + view.paint(getGraphics(), clientArea); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:28:01
|
Revision: 4128 http://fudaa.svn.sourceforge.net/fudaa/?rev=4128&view=rev Author: deniger Date: 2008-10-30 17:27:59 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java 2008-10-30 17:27:07 UTC (rev 4127) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java 2008-10-30 17:27:59 UTC (rev 4128) @@ -49,49 +49,31 @@ super(); liste_ = listeMessage; } - @Override public int getColumnCount() { - // TODO Auto-generated method stub return 1; } - @Override public String getColumnName(int column) { - // TODO Auto-generated method stub return "Messages"; } - @Override public int getRowCount() { - // TODO Auto-generated method stub return liste_.size(); } - @Override public Object getValueAt(int row, int column) { - // TODO Auto-generated method stub return liste_.get(row); } - @Override public void addTableModelListener(TableModelListener l) { - // TODO Auto-generated method stub } - @Override public Class<?> getColumnClass(int columnIndex) { - // TODO Auto-generated method stub return String.class; } - @Override public boolean isCellEditable(int rowIndex, int columnIndex) { - // TODO Auto-generated method stub return false; } - @Override public void removeTableModelListener(TableModelListener l) { - // TODO Auto-generated method stub } - @Override public void setValueAt(Object value, int rowIndex, int columnIndex) { - // TODO Auto-generated method stub } } @@ -116,9 +98,7 @@ JButton ajouter_ = new JButton("Valider", EbliResource.EBLI.getIcon("crystal_valider")); ajouter_.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub dialog_.dispose(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:27:09
|
Revision: 4127 http://fudaa.svn.sourceforge.net/fudaa/?rev=4127&view=rev Author: deniger Date: 2008-10-30 17:27:07 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java 2008-10-30 17:25:15 UTC (rev 4126) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java 2008-10-30 17:27:07 UTC (rev 4127) @@ -1414,8 +1414,8 @@ // } public String getId(){ - if(id_==null) - id_=generateId(); +// if(id_==null) +// id_=generateId(); return id_; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:25:20
|
Revision: 4126 http://fudaa.svn.sourceforge.net/fudaa/?rev=4126&view=rev Author: deniger Date: 2008-10-30 17:25:15 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-10-30 17:11:51 UTC (rev 4125) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-10-30 17:25:15 UTC (rev 4126) @@ -634,7 +634,7 @@ listeActions.add(new TrPostActionBilan((TrPostVisuPanel) creator.getCalque(), projet_.getImpl())); listeActions.add(new TrPostActionCubature((TrPostVisuPanel) creator.getCalque(), projet_.getImpl())); - listeActions.add(new TrPostActionLigneCourants(projet_, (TrPostVisuPanel) creator.getCalque())); + listeActions.add(new TrPostActionLigneCourants((TrPostVisuPanel) creator.getCalque())); _controller.addFonctionsSpecific(listeActions); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:11:53
|
Revision: 4125 http://fudaa.svn.sourceforge.net/fudaa/?rev=4125&view=rev Author: deniger Date: 2008-10-30 17:11:51 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/vag/VagCalqueOrthogonalesInteraction.java branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestJDebit.java branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestProfile.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/vag/VagCalqueOrthogonalesInteraction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/vag/VagCalqueOrthogonalesInteraction.java 2008-10-30 17:11:11 UTC (rev 4124) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/vag/VagCalqueOrthogonalesInteraction.java 2008-10-30 17:11:51 UTC (rev 4125) @@ -6,6 +6,7 @@ * @mail de...@fu... */ package org.fudaa.fudaa.vag; + import java.awt.Color; import java.awt.Container; import java.awt.Font; @@ -41,22 +42,20 @@ /** * Un calque d'interaction pour les resultats de Vag. - * - * @version $Revision: 1.11 $ $Date: 2007-06-28 09:28:18 $ by $Author: deniger $ - * @author Axel von Arnim + * + * @version $Revision: 1.11 $ $Date: 2007-06-28 09:28:18 $ by $Author: deniger $ + * @author Axel von Arnim */ -public class VagCalqueOrthogonalesInteraction - extends BCalqueInteraction - implements MouseListener { +public class VagCalqueOrthogonalesInteraction extends BCalqueInteraction implements MouseListener { // donnees membres privees - static int PAS_CALCUL= 1; - static int ORTHOGONALE= 2; - private static String ANGLE= "Angle"; - private static String LONGUEUR_ONDE= "Longueur d'onde"; - private static String HAUTEUR_EAU= "Hauteur d'eau"; - private static String HAUTEUR_HOULE= "Hauteur de houle"; - static String TABLEAU_ORTH= "Tableau Orth"; - static String TABLEAU_IORTH= "Tableau Inter"; + static int PAS_CALCUL = 1; + static int ORTHOGONALE = 2; + private static String ANGLE = "Angle"; + private static String LONGUEUR_ONDE = "Longueur d'onde"; + private static String HAUTEUR_EAU = "Hauteur d'eau"; + private static String HAUTEUR_HOULE = "Hauteur de houle"; + static String TABLEAU_ORTH = "Tableau Orth"; + static String TABLEAU_IORTH = "Tableau Inter"; VagPopupMessage popup_; boolean isPopupShown; int xsel, ysel; @@ -68,94 +67,92 @@ SResultatPasCalcul05 selectedPas; SResultatUnitaire05 selectedOrth; SResultatUnitaireInterOrth selectedIOrth; + // Constructeur - public VagCalqueOrthogonalesInteraction( - VagCalqueOrthogonales _calque, - BGraphe _graphe, - VagTableauResultats _tableau) { - calque_= _calque; - isPopupShown= false; - stask= null; - nf_= NumberFormat.getInstance(Locale.FRENCH); + public VagCalqueOrthogonalesInteraction(VagCalqueOrthogonales _calque, BGraphe _graphe, VagTableauResultats _tableau) { + calque_ = _calque; + isPopupShown = false; + stask = null; + nf_ = NumberFormat.getInstance(Locale.FRENCH); nf_.setMaximumFractionDigits(2); - nf2_= NumberFormat.getInstance(Locale.US); + nf2_ = NumberFormat.getInstance(Locale.US); nf2_.setMaximumFractionDigits(2); nf2_.setGroupingUsed(false); - nf3_= NumberFormat.getInstance(Locale.US); + nf3_ = NumberFormat.getInstance(Locale.US); nf3_.setMaximumFractionDigits(3); nf3_.setGroupingUsed(false); - graphe_= _graphe; - tableau_= _tableau; + graphe_ = _graphe; + tableau_ = _tableau; } + private double nord_; + public void setFlecheNord(double angle) { - nord_= angle; + nord_ = angle; tableau_.setFlecheNord(angle); } + /**********************************************/ // EVENEMENTS /**********************************************/ // Mouse public void mousePressed(MouseEvent _evt) { - if (isGele()) - return; + if (isGele()) return; if (_evt.getModifiers() == InputEvent.BUTTON1_MASK) { - //int yclick=calque_.getPreferredSize().height-_evt.getY(); - //Graphics g=calque_.getGraphics(); - //g.setColor(Color.blue); - //g.drawRect((int)click.x-1, calque_.getPreferredSize().height-(int)click.y-1, 2, 2); - //g.drawRect((int)click.x-1, (int)click.y-1, 2, 2); - stask= new SelectTask(_evt.getX(), _evt.getY(), PAS_CALCUL); + // int yclick=calque_.getPreferredSize().height-_evt.getY(); + // Graphics g=calque_.getGraphics(); + // g.setColor(Color.blue); + // g.drawRect((int)click.x-1, calque_.getPreferredSize().height-(int)click.y-1, 2, 2); + // g.drawRect((int)click.x-1, (int)click.y-1, 2, 2); + stask = new SelectTask(_evt.getX(), _evt.getY(), PAS_CALCUL); stask.start(); } else if (_evt.getModifiers() == InputEvent.BUTTON3_MASK) { - stask= new SelectTask(_evt.getX(), _evt.getY(), ORTHOGONALE); + stask = new SelectTask(_evt.getX(), _evt.getY(), ORTHOGONALE); stask.start(); } } + public void mouseReleased(MouseEvent _evt) { - if (isGele()) - return; + if (isGele()) return; if (isPopupShown) { - if ((_evt.getModifiers() == InputEvent.BUTTON1_MASK) - || (_evt.getModifiers() == InputEvent.BUTTON3_MASK)) { - if (popup_ != null) - popup_.dispose(); + if ((_evt.getModifiers() == InputEvent.BUTTON1_MASK) || (_evt.getModifiers() == InputEvent.BUTTON3_MASK)) { + if (popup_ != null) popup_.dispose(); calque_.paintImmediately(xsel - 2, ysel - 2, 4, 4); } - isPopupShown= false; + isPopupShown = false; } else if (stask != null) { stask.stopSelect(); - stask= null; + stask = null; } } + public void mouseClicked(MouseEvent _evt) {} + public void mouseEntered(MouseEvent _evt) {} + public void mouseExited(MouseEvent _evt) {} + // Pas beau: trouver autre methode de recuperer l'espacement des orth - // private double espacementOrth=1.; - // public void setEspacementOrth(double _e) { espacementOrth=_e; } + // private double espacementOrth=1.; + // public void setEspacementOrth(double _e) { espacementOrth=_e; } // Methodes privees - String getInfoResultat( - SResultatPasCalcul05 r, - SResultatPasInterOrth s) { - String info= ""; + String getInfoResultat(SResultatPasCalcul05 r, SResultatPasInterOrth s) { + String info = ""; info += "pas : " + r.numeroPas + "\n"; info += "x : " + nf_.format(r.pointCourantX) + " (m)\n"; info += "y : " + nf_.format(r.pointCourantY) + " (m)\n"; - info += "angle : " - + nf_.format(r.angleHoriz * 180 / Math.PI - nord_) - + " (degr\xE9s)\n"; + info += "angle : " + nf_.format(r.angleHoriz * 180 / Math.PI - nord_) + " (degr\xE9s)\n"; info += "longueur d'onde : " + nf_.format(r.longueurOnde) + " (m)\n"; info += "hauteur d'eau : " + nf_.format(r.hauteurEau) + " (m)\n"; - if (s != null) - info += "hauteur de houle: " + nf_.format(s.hauteurHoule) + " (m)\n"; + if (s != null) info += "hauteur de houle: " + nf_.format(s.hauteurHoule) + " (m)\n"; return info; } + void popInfoBox(String info) { - Graphics g= calque_.getGraphics(); - Font f= g.getFont(); - Color c= g.getColor(); - popup_= new VagPopupMessage(calque_); + Graphics g = calque_.getGraphics(); + Font f = g.getFont(); + Color c = g.getColor(); + popup_ = new VagPopupMessage(calque_); popup_.setText(info); popup_.setFont(new Font("Courier", f.getStyle(), f.getSize())); popup_.setLocation(xsel, ysel); @@ -163,179 +160,167 @@ g.setColor(new Color(0, 200, 20)); g.drawRect(xsel - 1, ysel - 1, 2, 2); g.setColor(c); - isPopupShown= true; + isPopupShown = true; } + void popInfoMenu(String title) { - OrthMenuListener listener= new OrthMenuListener(); - JPopupMenu menu= new JPopupMenu(); + OrthMenuListener listener = new OrthMenuListener(); + JPopupMenu menu = new JPopupMenu(); menu.add(new TitleMenuItem(title)); menu.addSeparator(); JMenuItem mi; - mi= new JMenuItem(ANGLE); + mi = new JMenuItem(ANGLE); mi.addActionListener(listener); menu.add(mi); - mi= new JMenuItem(LONGUEUR_ONDE); + mi = new JMenuItem(LONGUEUR_ONDE); mi.addActionListener(listener); menu.add(mi); - mi= new JMenuItem(HAUTEUR_EAU); + mi = new JMenuItem(HAUTEUR_EAU); mi.addActionListener(listener); menu.add(mi); - mi= new JMenuItem(HAUTEUR_HOULE); + mi = new JMenuItem(HAUTEUR_HOULE); mi.addActionListener(listener); - if (selectedIOrth == null) - mi.setEnabled(false); + if (selectedIOrth == null) mi.setEnabled(false); menu.add(mi); - mi= new JMenuItem(TABLEAU_ORTH); + mi = new JMenuItem(TABLEAU_ORTH); mi.addActionListener(listener); menu.add(mi); - mi= new JMenuItem(TABLEAU_IORTH); + mi = new JMenuItem(TABLEAU_IORTH); mi.addActionListener(listener); menu.add(mi); menu.show(this, xsel, ysel); - isPopupShown= true; + isPopupShown = true; } - void sendToGraph( - SResultatUnitaire05 orth, - SResultatUnitaireInterOrth iorth, - String courbe) { - String titre= "Orthogonale " + orth.numeroOrth; - String ordUnite= ""; - String crbTitre= ""; - Vector vals= new Vector(); - Valeur v= null; - double s= 0.; - double maxVal= 0.; - double minVal= 0.; - double deltaX= 0., deltaY= 0.; - if (orth.pas.length == 0) - return; + + void sendToGraph(SResultatUnitaire05 orth, SResultatUnitaireInterOrth iorth, String courbe) { + String titre = "Orthogonale " + orth.numeroOrth; + String ordUnite = ""; + String crbTitre = ""; + Vector vals = new Vector(); + Valeur v = null; + double s = 0.; + double maxVal = 0.; + double minVal = 0.; + double deltaX = 0., deltaY = 0.; + if (orth.pas.length == 0) return; if (courbe.equals(ANGLE)) { - ordUnite= "deg"; - crbTitre= "angle(s)"; + ordUnite = "deg"; + crbTitre = "angle(s)"; // angle ./. Nord - double angle= orth.pas[0].angleHoriz * 180 / Math.PI - 90.; - v= new Valeur(); - v.s_= s; - v.v_= angle; + double angle = orth.pas[0].angleHoriz * 180 / Math.PI - 90.; + v = new Valeur(); + v.s_ = s; + v.v_ = angle; vals.add(v); - maxVal= minVal= angle; + maxVal = minVal = angle; } else if (courbe.equals(LONGUEUR_ONDE)) { - ordUnite= "m"; - crbTitre= "lambda(s)"; - v= new Valeur(); - v.s_= s; - v.v_= orth.pas[0].longueurOnde; + ordUnite = "m"; + crbTitre = "lambda(s)"; + v = new Valeur(); + v.s_ = s; + v.v_ = orth.pas[0].longueurOnde; vals.add(v); - maxVal= minVal= orth.pas[0].longueurOnde; + maxVal = minVal = orth.pas[0].longueurOnde; } else if (courbe.equals(HAUTEUR_EAU)) { - ordUnite= "m"; - crbTitre= "he(s)"; - v= new Valeur(); - v.s_= s; - v.v_= orth.pas[0].hauteurEau; + ordUnite = "m"; + crbTitre = "he(s)"; + v = new Valeur(); + v.s_ = s; + v.v_ = orth.pas[0].hauteurEau; vals.add(v); - maxVal= minVal= orth.pas[0].hauteurEau; + maxVal = minVal = orth.pas[0].hauteurEau; } else if (courbe.equals(HAUTEUR_HOULE)) { - ordUnite= "m"; - crbTitre= "hh(s)"; - // double hhoule=0.; - // try { hhoule=calculeHauteurHoule(orth.numeroOrth, 0); } - // catch( HauteurHouleException e ) {}; - double hhoule= iorth.pas[0].hauteurHoule; - v= new Valeur(); - v.s_= s; - v.v_= hhoule; + ordUnite = "m"; + crbTitre = "hh(s)"; + // double hhoule=0.; + // try { hhoule=calculeHauteurHoule(orth.numeroOrth, 0); } + // catch( HauteurHouleException e ) {}; + double hhoule = iorth.pas[0].hauteurHoule; + v = new Valeur(); + v.s_ = s; + v.v_ = hhoule; vals.add(v); - maxVal= minVal= hhoule; + maxVal = minVal = hhoule; } - for (int i= 1; i < orth.pas.length; i++) { - deltaX= orth.pas[i].pointCourantX - orth.pas[i - 1].pointCourantX; - deltaY= orth.pas[i].pointCourantY - orth.pas[i - 1].pointCourantY; - s += Math.sqrt(deltaX * deltaX + deltaY * deltaY); + for (int i = 1; i < orth.pas.length; i++) { + deltaX = orth.pas[i].pointCourantX - orth.pas[i - 1].pointCourantX; + deltaY = orth.pas[i].pointCourantY - orth.pas[i - 1].pointCourantY; + s += Math.hypot(deltaX, deltaY); if (courbe.equals(ANGLE)) { - double angle= orth.pas[i].angleHoriz * 180 / Math.PI - 90.; - v= new Valeur(); - v.s_= s; - v.v_= angle; + double angle = orth.pas[i].angleHoriz * 180 / Math.PI - 90.; + v = new Valeur(); + v.s_ = s; + v.v_ = angle; vals.add(v); - if (angle > maxVal) - maxVal= angle; - if (angle < minVal) - minVal= angle; + if (angle > maxVal) maxVal = angle; + if (angle < minVal) minVal = angle; } else if (courbe.equals(LONGUEUR_ONDE)) { - v= new Valeur(); - v.s_= s; - v.v_= orth.pas[i].longueurOnde; + v = new Valeur(); + v.s_ = s; + v.v_ = orth.pas[i].longueurOnde; vals.add(v); - if (orth.pas[i].longueurOnde > maxVal) - maxVal= orth.pas[i].longueurOnde; - if (orth.pas[i].longueurOnde < minVal) - minVal= orth.pas[i].longueurOnde; + if (orth.pas[i].longueurOnde > maxVal) maxVal = orth.pas[i].longueurOnde; + if (orth.pas[i].longueurOnde < minVal) minVal = orth.pas[i].longueurOnde; } else if (courbe.equals(HAUTEUR_EAU)) { - v= new Valeur(); - v.s_= s; - v.v_= orth.pas[i].hauteurEau; + v = new Valeur(); + v.s_ = s; + v.v_ = orth.pas[i].hauteurEau; vals.add(v); - if (orth.pas[i].hauteurEau > maxVal) - maxVal= orth.pas[i].hauteurEau; - if (orth.pas[i].hauteurEau < minVal) - minVal= orth.pas[i].hauteurEau; + if (orth.pas[i].hauteurEau > maxVal) maxVal = orth.pas[i].hauteurEau; + if (orth.pas[i].hauteurEau < minVal) minVal = orth.pas[i].hauteurEau; } else if (courbe.equals(HAUTEUR_HOULE)) { - // double hhoule=0.; - // try { hhoule=calculeHauteurHoule(orth.numeroOrth, i); } - // catch( HauteurHouleException e ) {}; - if (i == iorth.pas.length) - break; - double hhoule= iorth.pas[i].hauteurHoule; - v= new Valeur(); - v.s_= s; - v.v_= hhoule; + // double hhoule=0.; + // try { hhoule=calculeHauteurHoule(orth.numeroOrth, i); } + // catch( HauteurHouleException e ) {}; + if (i == iorth.pas.length) break; + double hhoule = iorth.pas[i].hauteurHoule; + v = new Valeur(); + v.s_ = s; + v.v_ = hhoule; vals.add(v); - if (hhoule > maxVal) - maxVal= hhoule; - if (hhoule < minVal) - minVal= hhoule; - titre= "InterOrthogonale " + iorth.orth1 + " - " + iorth.orth2; + if (hhoule > maxVal) maxVal = hhoule; + if (hhoule < minVal) minVal = hhoule; + titre = "InterOrthogonale " + iorth.orth1 + " - " + iorth.orth2; } } - Graphe graphe= new Graphe(); - graphe.titre_= titre + " : " + courbe; - graphe.animation_= false; - graphe.legende_= true; - graphe.marges_= new Marges(); - graphe.marges_.gauche_= 60; - graphe.marges_.droite_= 80; - graphe.marges_.haut_= 45; - graphe.marges_.bas_= 30; - Axe ax= new Axe(); - ax.titre_= "s"; - ax.unite_= "m"; - ax.vertical_= false; - ax.graduations_= true; - ax.grille_= true; - ax.minimum_= 0.; - double xx= Math.round(s); - xx= xx - xx % 10; - ax.pas_= (xx - ax.minimum_) / 10; - ax.maximum_= s; + Graphe graphe = new Graphe(); + graphe.titre_ = titre + " : " + courbe; + graphe.animation_ = false; + graphe.legende_ = true; + graphe.marges_ = new Marges(); + graphe.marges_.gauche_ = 60; + graphe.marges_.droite_ = 80; + graphe.marges_.haut_ = 45; + graphe.marges_.bas_ = 30; + Axe ax = new Axe(); + ax.titre_ = "s"; + ax.unite_ = "m"; + ax.vertical_ = false; + ax.graduations_ = true; + ax.grille_ = true; + ax.minimum_ = 0.; + double xx = Math.round(s); + xx = xx - xx % 10; + ax.pas_ = (xx - ax.minimum_) / 10; + ax.maximum_ = s; graphe.ajoute(ax); - Axe ay= new Axe(); - ay.titre_= courbe; - ay.unite_= ordUnite; - ay.vertical_= true; - ay.graduations_= true; - ay.grille_= true; - ay.minimum_= minVal; - ay.maximum_= maxVal; - ay.pas_= (Math.round(maxVal) - Math.round(minVal)) / 10; - ay.pas_= Math.round(ay.pas_); + Axe ay = new Axe(); + ay.titre_ = courbe; + ay.unite_ = ordUnite; + ay.vertical_ = true; + ay.graduations_ = true; + ay.grille_ = true; + ay.minimum_ = minVal; + ay.maximum_ = maxVal; + ay.pas_ = (Math.round(maxVal) - Math.round(minVal)) / 10; + ay.pas_ = Math.round(ay.pas_); graphe.ajoute(ay); - CourbeDefault c= new CourbeDefault(); - c.titre_= crbTitre; - //c.type="aire"; - c.trace_= "lineaire"; - c.marqueurs_= true; - c.valeurs_= vals; + CourbeDefault c = new CourbeDefault(); + c.titre_ = crbTitre; + // c.type="aire"; + c.trace_ = "lineaire"; + c.marqueurs_ = true; + c.valeurs_ = vals; graphe.ajoute(c); graphe_.setGraphe(graphe); } @@ -345,136 +330,117 @@ public TitleMenuItem(String title) { super(title); } + public boolean isSelected() { return false; } + public void setSelected(boolean b) {} + public boolean isArmed() { return false; } + public void setArmed(boolean b) {} } + class OrthMenuListener implements ActionListener { public void actionPerformed(ActionEvent evt) { - String s= evt.getActionCommand(); + String s = evt.getActionCommand(); if (s.equals(TABLEAU_ORTH)) { tableau_.setResultats05(selectedOrth); - Container frame= tableau_.getParent(); + Container frame = tableau_.getParent(); while ((frame != null) && (!(frame instanceof JInternalFrame))) - frame= frame.getParent(); - if (frame != null) - ((JInternalFrame)frame).setTitle( - "Orthogonale " + selectedOrth.numeroOrth); + frame = frame.getParent(); + if (frame != null) ((JInternalFrame) frame).setTitle("Orthogonale " + selectedOrth.numeroOrth); } else if (s.equals(TABLEAU_IORTH)) { if (selectedIOrth != null) { tableau_.setResultatsInterOrth(selectedIOrth); - Container frame= tableau_.getParent(); + Container frame = tableau_.getParent(); while ((frame != null) && (!(frame instanceof JInternalFrame))) - frame= frame.getParent(); - if (frame != null) - ((JInternalFrame)frame).setTitle( - "Inter-Orthogonale " - + selectedIOrth.orth1 - + "-" - + selectedIOrth.orth2); + frame = frame.getParent(); + if (frame != null) ((JInternalFrame) frame).setTitle("Inter-Orthogonale " + selectedIOrth.orth1 + "-" + + selectedIOrth.orth2); } } else { sendToGraph(selectedOrth, selectedIOrth, evt.getActionCommand()); - if (!graphe_.isInteractif()) - graphe_.setInteractif(true); + if (!graphe_.isInteractif()) graphe_.setInteractif(true); } } } + class SelectTask extends Thread { int xclick, yclick, mode; boolean stop_; + public SelectTask(int _xclick, int _yclick, int _mode) { - xclick= _xclick; - yclick= _yclick; - mode= _mode; + xclick = _xclick; + yclick = _yclick; + mode = _mode; } - public void stopSelect(){ - stop_=true; - selectedPas= null; - selectedOrth= null; - selectedIOrth= null; + public void stopSelect() { + stop_ = true; + selectedPas = null; + selectedOrth = null; + selectedIOrth = null; } + public void run() { - stop_=false; + stop_ = false; double dist, mindist; - GrPoint click= new GrPoint(xclick, yclick, 0.).applique(getVersReel()); - SResultats05 r= calque_.getResultats05(); - SResultatsInterOrth s= calque_.getResultatsInterOrth(); - selectedPas= null; - selectedOrth= null; - selectedIOrth= null; - int noOrth= 0, noPoint= 0; - mindist= - calque_.getPolyligne(0).sommets_.renvoie(0).distance(click); - for (int o= 0; o < r.orthogonales.length; o++) { - for (int p= 0; p < r.orthogonales[o].pas.length; p++) { - GrPoint curp= - new GrPoint( - r.orthogonales[o].pas[p].pointCourantX, - r.orthogonales[o].pas[p].pointCourantY, - 0.); - if ((dist= curp.distance(click)) < mindist) { - mindist= dist; - selectedOrth= r.orthogonales[o]; - if (o < s.interOrth.length) - selectedIOrth= s.interOrth[o]; - else - selectedIOrth= null; - selectedPas= r.orthogonales[o].pas[p]; - noOrth= o; - noPoint= p; + GrPoint click = new GrPoint(xclick, yclick, 0.).applique(getVersReel()); + SResultats05 r = calque_.getResultats05(); + SResultatsInterOrth s = calque_.getResultatsInterOrth(); + selectedPas = null; + selectedOrth = null; + selectedIOrth = null; + int noOrth = 0, noPoint = 0; + mindist = calque_.getPolyligne(0).sommets_.renvoie(0).distance(click); + for (int o = 0; o < r.orthogonales.length; o++) { + for (int p = 0; p < r.orthogonales[o].pas.length; p++) { + GrPoint curp = new GrPoint(r.orthogonales[o].pas[p].pointCourantX, r.orthogonales[o].pas[p].pointCourantY, 0.); + if ((dist = curp.distance(click)) < mindist) { + mindist = dist; + selectedOrth = r.orthogonales[o]; + if (o < s.interOrth.length) selectedIOrth = s.interOrth[o]; + else selectedIOrth = null; + selectedPas = r.orthogonales[o].pas[p]; + noOrth = o; + noPoint = p; } } } - if(stop_) return; + if (stop_) return; if (selectedPas != null) { - GrPoint sel= - new GrPoint( - selectedPas.pointCourantX, - selectedPas.pointCourantY, - 0.).applique( - getVersEcran()); + GrPoint sel = new GrPoint(selectedPas.pointCourantX, selectedPas.pointCourantY, 0.).applique(getVersEcran()); if (sel.distance(new GrPoint(xclick, yclick, 0.)) < 10) { - xsel= (int)sel.x_; - ysel= (int)sel.y_; + xsel = (int) sel.x_; + ysel = (int) sel.y_; if (mode == PAS_CALCUL) { // calcul hauteur de houle - // double H=0.; - // boolean Hok=true; - // try { H=calculeHauteurHoule(noOrth, noPoint); } - // catch( HauteurHouleException e ) { Hok=false; } - popInfoBox( - "Orthogonale " - + noOrth - + "\n" - + getInfoResultat( - selectedPas, - (selectedIOrth == null ? null : selectedIOrth.pas[noPoint]))); + // double H=0.; + // boolean Hok=true; + // try { H=calculeHauteurHoule(noOrth, noPoint); } + // catch( HauteurHouleException e ) { Hok=false; } + popInfoBox("Orthogonale " + noOrth + "\n" + + getInfoResultat(selectedPas, (selectedIOrth == null ? null : selectedIOrth.pas[noPoint]))); } else if (mode == ORTHOGONALE) { popInfoMenu("Orthogonale " + noOrth); } System.err.println("Orthogonale " + noOrth + ", Point " + noPoint); } else { - xsel= xclick; - ysel= yclick; + xsel = xclick; + ysel = yclick; popInfoBox("Pas de point\nr\xE9sultat ici"); } } } } /* - class HauteurHouleException extends Exception - { - public HauteurHouleException() { super(); } - public HauteurHouleException(Exception e) { super(e.getMessage()); } - public HauteurHouleException(String msg) { super(msg); } - } - */ + * class HauteurHouleException extends Exception { public HauteurHouleException() { super(); } public + * HauteurHouleException(Exception e) { super(e.getMessage()); } public HauteurHouleException(String msg) { + * super(msg); } } + */ } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestJDebit.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestJDebit.java 2008-10-30 17:11:11 UTC (rev 4124) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestJDebit.java 2008-10-30 17:11:51 UTC (rev 4125) @@ -11,15 +11,11 @@ import junit.framework.TestCase; -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.LineString; - import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ctulu.collection.CtuluCollectionDoubleUnique; import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; - import org.fudaa.dodico.ef.EfData; import org.fudaa.dodico.ef.EfDataAdapter; import org.fudaa.dodico.ef.EfDataElement; @@ -31,16 +27,17 @@ import org.fudaa.dodico.ef.EfNode; import org.fudaa.dodico.ef.impl.EfGrid; import org.fudaa.dodico.ef.impl.EfGridDataDefault; -import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolatorDefault; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.dodico.ef.operation.EfLineFlowrateResult; import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsI; import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsMng; import org.fudaa.dodico.ef.operation.EfLineIntersectorActivity; import org.fudaa.dodico.h2d.type.H2dVariableType; - import org.fudaa.fudaa.meshviewer.export.MvExportT6Activity; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.LineString; + /** * @author fred deniger * @version $Id: TestJDebit.java,v 1.5 2007-06-13 12:58:12 deniger Exp $ @@ -54,7 +51,7 @@ * +----+-----+ + * | 0 | | 5 | * +----+-----+ + - * 0 1 2 6 + * 0 1 2 6 * </pre> */ // 14 noeuds @@ -103,7 +100,7 @@ InterpolationVectorContainer vectContainer = new InterpolationVectorContainer(); /** * <pre> - * + * * 100 ------ ------ * \ / * \_________/ @@ -135,8 +132,7 @@ final EfData vy = new EfDataAdapter(new CtuluCollectionDoubleUnique(vyValue), true); EfGridDataDefault datas = getDataAdapter(grid, bathy, hauteurEau, vx, vy); // vectContainer.addVxVy(H2dVariableType.VITESSE_U, H2dVariableType.VITESSE_V); - EfGridDataInterpolatorDefault support = new EfGridDataInterpolatorDefault(datas, new EfInterpolator(datas, - vectContainer)); + EfGridDataInterpolator support = new EfGridDataInterpolator(datas, vectContainer); EfLineIntersectorActivity act = new EfLineIntersectorActivity(support); EfLineIntersectionsResultsMng resMng = act.computeForMeshes(string, null); EfLineIntersectionsResultsI res = resMng.getDefaultRes(); @@ -204,7 +200,7 @@ MvExportT6Activity toT6 = new MvExportT6Activity(datas); EfGridData t6 = toT6.process(null, new CtuluAnalyze()); assertTrue(t6.getGrid().getEltType() == EfElementType.T6); - support = new EfGridDataInterpolatorDefault(t6, new EfInterpolator(t6, vectContainer)); + support = new EfGridDataInterpolator(t6, vectContainer); act = new EfLineIntersectorActivity(support); resMng = act.computeForNodes(string, null); res = resMng.getDefaultRes(); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestProfile.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestProfile.java 2008-10-30 17:11:11 UTC (rev 4124) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/mv/TestProfile.java 2008-10-30 17:11:51 UTC (rev 4125) @@ -29,7 +29,7 @@ import org.fudaa.dodico.ef.EfGridData; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.ebli.courbe.EGDialog; @@ -64,7 +64,7 @@ return src_; } - public EfInterpolator getInterpolator() { + public EfGridDataInterpolator getInterpolator() { return src_.getInterpolator(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:11:13
|
Revision: 4124 http://fudaa.svn.sourceforge.net/fudaa/?rev=4124&view=rev Author: deniger Date: 2008-10-30 17:11:11 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvNodeLayer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrPostActionLigneCourants.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiFlecheModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfileSplitter.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiZoneOperation.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrVisuPanelEditor.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostProfileAction.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -19,6 +19,7 @@ import org.fudaa.dodico.ef.EfElementVolume; import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.ef.EfGridVolumeInterface; +import org.fudaa.dodico.ef.operation.EfIndexHelper; import org.fudaa.dodico.ef.operation.EfIndexVisitorHashSet; import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestElt; import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestNode; @@ -261,11 +262,11 @@ if (Fu.DEBUG && FuLog.isDebug()) { FuLog.debug("FMV: layer select from index"); } - final EfGridInterface grid = getGrid(); - final double toleranceReel = GrMorphisme.convertDistanceXY(getVersReel(), _tolerance); - final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid, _pt.x_, _pt.y_, toleranceReel); - grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_pt.x_, _pt.y_, toleranceReel), visitor); - return visitor.getSelection(); + return EfIndexHelper.getNearestElement(getGrid(), _pt.x_, _pt.y_, GrMorphisme.convertDistanceXY(getVersReel(), + _tolerance), null); +// final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid, _pt.x_, _pt.y_, toleranceReel); +// grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_pt.x_, _pt.y_, toleranceReel), visitor); +// return visitor.getSelection(); } @Override Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvNodeLayer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvNodeLayer.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvNodeLayer.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -15,6 +15,7 @@ import org.fudaa.ctulu.CtuluRange; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.ef.operation.EfIndexHelper; import org.fudaa.dodico.ef.operation.EfIndexVisitorHashSetNode; import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestNode; import org.fudaa.ebli.calque.ZCalquePoint; @@ -135,12 +136,14 @@ if (Fu.DEBUG && FuLog.isDebug()) { FuLog.debug("FMV: layer select from index"); } - final double toleranceReel = GrMorphisme.convertDistanceXY(getVersReel(), _tolerance); - final EfIndexVisitorNearestNode visitor = new EfIndexVisitorNearestNode(getNodeModel().getGrid(), _pt.x_, _pt.y_, - toleranceReel); - getNodeModel().getGrid().getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_pt.x_, _pt.y_, toleranceReel), - visitor); - return visitor.getSelection(); + + return EfIndexHelper.getNearestNode(getNodeModel().getGrid(), _pt.x_, _pt.y_, GrMorphisme.convertDistanceXY( + getVersReel(), _tolerance), null); +// final EfIndexVisitorNearestNode visitor = new EfIndexVisitorNearestNode(getNodeModel().getGrid(), _pt.x_, _pt.y_, +// toleranceReel); +// getNodeModel().getGrid().getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_pt.x_, _pt.y_, toleranceReel), +// visitor); +// return visitor.getSelection(); } /** Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -27,6 +27,7 @@ import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.ef.EfGridVolumeInterface; import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup; import org.fudaa.ebli.controle.BSelecteurReduitFonteNewVersion; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; @@ -50,6 +51,7 @@ import com.memoire.bu.BuDynamicMenu; import com.memoire.bu.BuMenu; import com.memoire.bu.BuPopupMenu; +import com.vividsolutions.jts.geom.LineString; /** * @author deniger @@ -168,8 +170,6 @@ private BuMenu edgeDisplayTools_; - - /** * @param _impl l'implementation parente */ @@ -440,6 +440,15 @@ return getName(); } + /** + * @return la ligne selectionnee dans le calque selectionne ou null si aucune + */ + public LineString getSelectedLine() { + // pas de calque s\xE9lectionn\xE9 + if (!(getArbreCalqueModel().getSelectedCalque() instanceof ZCalqueAffichageDonneesInterface)) { return null; } + return ((ZCalqueAffichageDonneesInterface) getArbreCalqueModel().getSelectedCalque()).getSelectedLine(); + } + public void setActive(final boolean _b) {} /** Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrPostActionLigneCourants.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrPostActionLigneCourants.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/TrPostActionLigneCourants.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -4,29 +4,29 @@ import org.fudaa.ctulu.CtuluResource; import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.fudaa.commun.impl.FudaaPanelTask; import org.fudaa.fudaa.meshviewer.MvResource; -import org.fudaa.fudaa.tr.post.TrPostProjet; import org.fudaa.fudaa.tr.post.TrPostVisuPanel; import org.fudaa.fudaa.tr.post.dialogSpec.TrPostDialogLigneCourants; +/** + * Permet d'afficher le dialogue pour les trajectoire/ligne de courant + */ public class TrPostActionLigneCourants extends EbliActionSimple { // final MvProfileTarget src_; - TrPostProjet projet_; TrPostVisuPanel calque_; - public TrPostActionLigneCourants(final TrPostProjet projet, final TrPostVisuPanel panel) { - super(MvResource.getS("Calcul des lignes de courants/trajectoires"), CtuluResource.CTULU.getIcon("crystal_oscilloscope.png"), "BILAN"); - projet_ = projet; + public TrPostActionLigneCourants(final TrPostVisuPanel panel) { + super(MvResource.getS("Calcul des lignes de courants/trajectoires"), CtuluResource.CTULU + .getIcon("crystal_oscilloscope.png"), "TRAJ"); calque_ = panel; } @Override public void actionPerformed(final ActionEvent _e) { - // -- creation du wizard depusi le calque --// - - new TrPostDialogLigneCourants(projet_, projet_.getImpl(), calque_); + new FudaaPanelTask(calque_.getCtuluUI(), new TrPostDialogLigneCourants(calque_)).afficheDialog(); } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiFlecheModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiFlecheModel.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiFlecheModel.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -14,7 +14,7 @@ import org.fudaa.dodico.ef.EfData; import org.fudaa.dodico.ef.EfDataAdapter; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestElt; import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestNode; import org.fudaa.dodico.h2d.H2dSiSourceInterface; @@ -81,8 +81,8 @@ final EfData vxData = new EfDataAdapter(new DoubleCollectionAdapter(_model, false), false); final EfData vyData = new EfDataAdapter(new DoubleCollectionAdapter(_model, true), false); // interpolation sur la norme et l'ange puis retransposition en vx,vy - final double vx = EfInterpolator.interpolate(idxElt, _x, _y, vxData, vyData, true, _grid); - final double vy = EfInterpolator.interpolate(idxElt, _x, _y, vxData, vyData, false, _grid); + final double vx = EfGridDataInterpolator.interpolate(idxElt, _x, _y, vxData, vyData, true, _grid); + final double vy = EfGridDataInterpolator.interpolate(idxElt, _x, _y, vxData, vyData, false, _grid); _seg.e_.x_ = _x + vx; _seg.e_.y_ = _y + vy; return true; @@ -93,7 +93,7 @@ public double getNorme(final int _i) { final double vx = getVx(_i); final double vy = getVy(_i); - return Math.sqrt(vx * vx + vy * vy); + return Math.hypot(vx, vy); } public double getVx(final int _i) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfileSplitter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfileSplitter.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfileSplitter.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -113,7 +113,7 @@ profil.getCoordinateSequence().getCoordinate(idxZone - 1, tmp1_); double vx = -(xAval.y - tmp1_.y); double vy = xAval.x - tmp1_.x; - double norm1 = Math.sqrt(vx * vx + vy * vy); + double norm1 = Math.hypot(vx,vy ); tmp1_.x = xAval.x + (tmp1_.x - xAval.x) / norm1; tmp1_.y = xAval.y + (tmp1_.y - xAval.y) / norm1; pi.x = tmp1_.x + vx; @@ -121,7 +121,7 @@ profil.getCoordinateSequence().getCoordinate(idxZone + 1, tmp2_); vx = -(tmp2_.y - xAval.y); vy = tmp2_.x - xAval.x; - norm1 = Math.sqrt(vx * vx + vy * vy); + norm1 = Math.hypot(vx,vy ); tmp2_.x = xAval.x + (tmp2_.x - xAval.x) / norm1; tmp2_.y = xAval.y + (tmp2_.y - xAval.y) / norm1; pii.x = tmp2_.x + vx; Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiZoneOperation.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiZoneOperation.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrSiZoneOperation.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -159,7 +159,7 @@ _coteEau[_tabIdx] = px_ * (_x - xAmont_) + py_ * (_y - yAmont_) + zAmont_; if (_vx != null || _vy != null) { final double h = _coteEau[_tabIdx] - _fond.getValue(_tabIdx); - final double sss = Math.sqrt(px_ * px_ + py_ * py_); + final double sss = Math.hypot(px_ ,py_); if (_vx != null) { if (h <= 0) { _vx[_tabIdx] = 0; Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrVisuPanelEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrVisuPanelEditor.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/data/TrVisuPanelEditor.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -27,7 +27,7 @@ import org.fudaa.ctulu.gui.CtuluValuesEditorPanel; import org.fudaa.dodico.ef.EfGridData; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.dodico.h2d.H2dParameters; import org.fudaa.dodico.h2d.H2dSIListener; import org.fudaa.dodico.h2d.H2dSiSourceInterface; @@ -395,7 +395,7 @@ public class ProfileAdapter implements MvProfileTarget { final EfGridData data_ = getParams().createGridDataAdapter(); - final EfInterpolator interpolator_ = new EfInterpolator(data_, getParams().getVectorContainer()); + final EfGridDataInterpolator interpolator_ = new EfGridDataInterpolator(data_, getParams().getVectorContainer()); public EfGridData getData() { return data_; @@ -407,7 +407,7 @@ return null; } - public EfInterpolator getInterpolator() { + public EfGridDataInterpolator getInterpolator() { return interpolator_; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostProfileAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostProfileAction.java 2008-10-30 17:10:41 UTC (rev 4123) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostProfileAction.java 2008-10-30 17:11:11 UTC (rev 4124) @@ -5,7 +5,7 @@ import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.dodico.ef.EfGridData; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.commun.courbe.FudaaCourbeTimeListModel; @@ -50,10 +50,10 @@ } public TrPostSource getDataSource() { - return src_; - } - - public EfInterpolator getInterpolator() { + return src_; + } + + public EfGridDataInterpolator getInterpolator() { return src_.getInterpolator(); } @@ -71,9 +71,9 @@ } - public TrPostSource getSrc_() { - return src_; - } + public TrPostSource getSrc_() { + return src_; + } } @@ -114,14 +114,12 @@ public static final ProfileAdapter createProfileAdapter(final TrPostVisuPanel _visu) { return new ProfileAdapter(_visu.getSource(), _visu.getProjet()); } - - public static final ProfileAdapter createProfileAdapter(TrPostSource src,TrPostProjet projet) { - return new ProfileAdapter(src, projet); - } + public static final ProfileAdapter createProfileAdapter(TrPostSource src, TrPostProjet projet) { + return new ProfileAdapter(src, projet); + } + protected LineString getSelectedLine() { - // pas de calque s\xE9lectionn\xE9 - if (!(panel_.getArbreCalqueModel().getSelectedCalque() instanceof ZCalqueAffichageDonneesInterface)) { return null; } - return ((ZCalqueAffichageDonneesInterface) panel_.getArbreCalqueModel().getSelectedCalque()).getSelectedLine(); + return panel_.getSelectedLine(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:10:44
|
Revision: 4123 http://fudaa.svn.sourceforge.net/fudaa/?rev=4123&view=rev Author: deniger Date: 2008-10-30 17:10:41 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTask.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTaskModel.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTask.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTask.java 2008-10-30 17:10:26 UTC (rev 4122) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTask.java 2008-10-30 17:10:41 UTC (rev 4123) @@ -81,6 +81,11 @@ public boolean valide() { return validePanel(); } + + @Override + public void cancel() { + cancelPanel(); + } }; panel_.setLayout(new BuVerticalLayout(2, true, true)); panel_.add(_model.getPanel()); @@ -131,6 +136,7 @@ }); } + final BuLabel[] lbInfo_; public boolean validePanel() { @@ -139,6 +145,10 @@ return err == null; } + public void cancelPanel() { + + } + CtuluDialog dial_; /** @@ -165,6 +175,7 @@ dial_.setTitle(model_.getTitre()); } dial_.afficheDialogModal(); + model_.dialogClosed(); } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTaskModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTaskModel.java 2008-10-30 17:10:26 UTC (rev 4122) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/commun/impl/FudaaPanelTaskModel.java 2008-10-30 17:10:41 UTC (rev 4123) @@ -36,14 +36,18 @@ /** * Cette m\xE9thode longue est lanc\xE9e dans un thread CtuluTaskOperation + * * @param _prog la progression * @param _analyze recupe les erreurs - * @param un tableau de taille 2*getNbMessageMax - * _messages[2*i]: libell\xE9 _messages[2*i+1]=valeur + * @param un tableau de taille 2*getNbMessageMax _messages[2*i]: libell\xE9 _messages[2*i+1]=valeur */ - void actTask(ProgressionInterface _prog,CtuluAnalyze _analyze,String[] _messages); + void actTask(ProgressionInterface _prog, CtuluAnalyze _analyze, String[] _messages); void stopTask(); + /** + * Appele quand le dialog est ferm\xE9 + */ + void dialogClosed(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:10:32
|
Revision: 4122 http://fudaa.svn.sourceforge.net/fudaa/?rev=4122&view=rev Author: deniger Date: 2008-10-30 17:10:26 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrComputeLigneCourantTrajectoire.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeBuilder.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataCreatedNorm.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataVecteur.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostFlecheContentDefaut.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostRubarLimniMng.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSource.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostTimeModel.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrComputeLigneCourantTrajectoire.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrComputeLigneCourantTrajectoire.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrComputeLigneCourantTrajectoire.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -1,34 +1,15 @@ package org.fudaa.fudaa.tr.post; -import gnu.trove.TIntHashSet; -import gnu.trove.TIntIterator; - -import java.io.IOException; import java.util.ArrayList; -import java.util.List; -import org.fudaa.ctulu.CtuluActivity; -import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.ProgressionInterface; -import org.fudaa.ctulu.gis.GISGeometryFactory; -import org.fudaa.dodico.ef.EfData; -import org.fudaa.dodico.ef.EfElement; -import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.EfNeighborMesh; -import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; -import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolatorDefault; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; -import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestElt; -import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestNode; -import org.fudaa.dodico.ef.operation.EfLineIntersection; -import org.fudaa.dodico.ef.operation.EfLineIntersectionParent; -import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsMng; -import org.fudaa.dodico.ef.operation.EfLineIntersectorActivity; +import org.fudaa.dodico.ef.operation.EfTrajectoireActivity; +import org.fudaa.dodico.ef.operation.EfTrajectoireParameters; import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.fudaa.tr.common.TrResource; +import org.fudaa.fudaa.meshviewer.profile.MvProfileCoteTester; import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.LineString; /** * Algorithme de Calcul les lignes de courants TODO mettre la classe dans EF il y a la classe qui est charge de faire le @@ -36,36 +17,14 @@ * * @author Adrien Hadoux */ -public class TrComputeLigneCourantTrajectoire implements EfLineIntersectionParent, CtuluActivity { +public class TrComputeLigneCourantTrajectoire { - /** - * data - */ - TrPostVisuPanel calque_; - final TrPostSource data_; + final TrPostVisuPanel calque_; - /** - * pour interpoler les valeur - */ - final EfInterpolator interpolator_; + boolean stop_; - final EfLineIntersectorActivity lineIntersect_; - ProgressionInterface prog_; - - List<Coordinate> listePointsARepartir_ = new ArrayList<Coordinate>(); // les GrPoint ne sont utilisee que pour - // l'affichage - - /** - * Liste des intersections r\xE9sultats - */ - ArrayList<EfLineIntersection> listeIntersection_ = null; - public TrComputeLigneCourantTrajectoire(final TrPostVisuPanel calque) { - super(); - calque_ = calque; - this.data_ = calque.getSource(); - this.interpolator_ = data_.getInterpolator(); - this.lineIntersect_ = new EfLineIntersectorActivity(data_); + this.calque_ = calque; } /** @@ -128,15 +87,8 @@ return listePointsARepartir; } - public void progression(final String desc, final int completionRate) { - if (prog_ == null) return; - prog_.setDesc(TrResource.getS(desc)); - prog_.setProgression(5); + EfTrajectoireActivity activity_; - } - - EfNeighborMesh voisinage_; - /** * Methode appel\xE9e par l'interface de calcul des lignes de courant. * @@ -145,286 +97,23 @@ * @param indicePdt indice du pas de temps * @param finesse coefficient de finesse double * @param vx la variable a utiliser - * @param prog l'interface de progression, peut etre null + * @param _prog l'interface de progression, peut etre null * @return */ - public ArrayList<EfLineIntersection> computeLigneCourant(final GrPoint extrem1segment, final GrPoint extrem2segment, - final int nbPointsARepartirUniformement, final double dureeIntegration, final int indicePdt, - final double finesse, final CtuluVariable vx, final CtuluVariable vy, final ProgressionInterface prog) {// FIXME - // trop de - // variable - // faire - // une - // classe - prog_ = prog; + public void computeLigneCourant(EfTrajectoireParameters _data, final CtuluAnalyze _analyse, + final ProgressionInterface _prog) { + stop_ = false; + activity_ = new EfTrajectoireActivity(calque_.getSource().getInterpolator(), new MvProfileCoteTester(), calque_ + .getSource().getTime().getTimesInSec()); + activity_.computeLigneCourant(_data, _prog, _analyse); - // on repartit les points uniform\xE9ment sur le segment - listePointsARepartir_ = repartirUniformementPointsSurSegment(extrem1segment, extrem2segment, - nbPointsARepartirUniformement); - - // test de l'algo avec le premier point - final Coordinate init = listePointsARepartir_.get(0); - - // on init le temps total avec l'indice du pas de temps fourni au depart - double tempsTotal = data_.getTimeStep(indicePdt); - double oldTempsTotal; - boolean termine = false; - - // -- variables d'initialisation - // point courant tout au long de l'algo - final Coordinate pointCourant = init; - // element sur lequel on se situe a l'iteration i - int elementCourant; - // intersection courante - EfLineIntersection intersectionCourante; - - // initialisation - progression("Recherche \xE9l\xE9ment englobant", 5); - elementCourant = elementEnglobant(pointCourant); - // creation de l'intersection avec l'\xE9l\xE9ment courant - progression("Recherche des intersection", 7); - intersectionCourante = new EfLineIntersection.ItemMesh(elementCourant, pointCourant.x, pointCourant.y); - - // recup des datas a partir de la var et du pas de temps initial - // donn\xE9es r\xE9cup\xE9r\xE9es fixe pour les lignes de courants - EfData dataX = null; - EfData dataY = null; - try { - dataX = data_.getData(vx, indicePdt); - dataY = data_.getData(vy, indicePdt); - } catch (final IOException e) { - e.printStackTrace();// erreur de lecteur arrrete le tout - } - - // -- Algo principal --// - final Coordinate c = new Coordinate(); - if (elementCourant != -1) { - final TIntHashSet elementsAdjacent = new TIntHashSet(); - - while (!termine && Math.abs(tempsTotal) <= Math.abs(dureeIntegration)) {// FIXME - // faux - // comparaison - // d'une - // duree et - // d'un - // temps. En - // fait la - // duree - // initiale - // ( - // tempsTotal - // ) vaut - // zero - // il faut faire attention: si la dureeIntegration est negative. Il faut comparer les valeurs absolues - oldTempsTotal = tempsTotal; - - // ajout de l'intersection dans la liste r\xE9sultats - listeIntersection_.add(intersectionCourante); - - // recherche des vitesses - // double vitesseX = intersectionCourante.getDistanceFrom(pointCourant.x, pointCourant.y);//FIXME la vitesse - // c'est pas la distance depuis le debut - // mais la valeur de vx - // FIXME attention pour les trajectoires les valeurs dataX et dataY doivent etre recalcule au vrai temps - // il faudra surement interpoler en temps ! - final double vitesseX = intersectionCourante.getValueBadInterpolation(dataX); - final double vitesseY = intersectionCourante.getValueBadInterpolation(dataY); - - // calcul des distances avec son voisinage - progression("Calcul des distances avec le voisinage", 10); - // FIXME ce calcul est long il faut le faire en dehors de la boucld ! - // EfNeighborMesh voisinage = EfNeighborMesh.compute(data_.getGrid(), prog_); - elementsAdjacent.clear(); - // la set elementAdjacent comporte tous les \xE9l\xE9ements adjacents \xE0 l'intersection courante - intersectionCourante.fillWithAdjacentMeshes(elementsAdjacent); - double distanceMaxEntrePoints = 0; - final int[] listeEltVoisins = null; - int voisinChoisi = 0;// ne sert a rien - // ATTENTION: pour calcul le prochain point il faut partir du point en cours, - // et se d\xE9placer selon les vitesses x2=x1*vx*delta T - // REATTENTION: il faut prendre en compte le fait que la duree d'integration peut etre negative - // cas sur un noeud - // FIXME inutile desormais - // if (intersectionCourante.isNodeIntersection()) { - // int nbVoisins = voisinage_.getNbNeighborMeshes(elementCourant); - // listeEltVoisins = new int[nbVoisins]; - // for (int i = 0; i < nbVoisins; i++) { - // // On calcule la distance avec lequel de ces points??? - // // avec tous - // listeEltVoisins[i] = voisinage_.getNeighborMesh(elementCourant, i); - // } - // - // } else { - // // comment faire en fudaa pour les autres cas??? - // // cas des arretes - // - // } - - // calcul de la distance max - // pour calculer la distance max, il faut parcourir tous les \xE9l\xE9ments trouve et tous les noeuds des \xE9l\xE9ments - for (final TIntIterator it = elementsAdjacent.iterator(); it.hasNext();) { - final int idxElt = it.next(); - final EfElement elt = data_.getGrid().getElement(idxElt); - for (int i = 0; i < elt.getPtNb(); i++) { - data_.getGrid().getCoord(elt.getPtIndex(i), c); - distanceMaxEntrePoints = Math.max(distanceMaxEntrePoints, intersectionCourante.getDistanceFrom(c.x, c.y)); - } - } - // maintenant, on a la distance max, on calcul la duree du d\xE9placement. On a la vitesse qui vaut - // sqrt(vx*vx+vy*vy) - // Attenion. si la duree d'integration est negative il faut avoir une duree de deplacement n\xE9gative - // y=y1+vy*(delta t) et meme chose pour x - - // le reste est faux: on calcule une trajectoire et donc il faut se deplacer selon vx et vy et ne pas prendre le - // noeud du voisinage le plus loin ! - if (listeEltVoisins != null && listeEltVoisins.length > 0) voisinChoisi = listeEltVoisins[0];// pourquoi le - // premier ? - for (int i = 0; i < listeEltVoisins.length; i++) { - final int eltVoisin = listeEltVoisins[i]; - - // coordonn\xE9es de l'\xE9l\xE9ment voisin - // double x = 123456789;//getCoordonnees(eltVoisin).x_;//FAUX - // double y = 123456789;//getCoordonnees(eltVoisin).y_;//FAUX - // double distance = Math.sqrt((pointCourant.x - x) * (pointCourant.x - - // x) + (pointCourant.y - y) - // * (pointCourant.y - y)); - // if (distanceMaxEntrePoints > distance) { - // // candidat potentiel - // - // // ACHTUNG!! VERIFIER QUE LE t+ deltaT<dureeIntegration si on choisit - // // cette distance - // if (vitesseY != 0 - // && (Math.abs(tempsTotal) + distance / Math.sqrt(vitesseY * vitesseY + vitesseX * vitesseX) <= - // Math - // .abs(dureeIntegration))) {// FIXME pourquoi seulement la - // // vitesse y. Il faut - // //faire sqrt(vx*vx+vy*vy) - // distanceMaxEntrePoints = distance; - // voisinChoisi = eltVoisin; - // } - // } - // } - // - // - // - // // on calcul le nouveau temps total - // if (vitesseY != 0) tempsTotal += distanceMaxEntrePoints / vitesseY;//FIXME pour calcul le - - // -- calcul du temps pass\xE9 pour aller jusqu'a distance max --// - - double deltaT = 0; - if (Math.sqrt(vitesseY * vitesseY + vitesseX * vitesseX) != 0) deltaT = distanceMaxEntrePoints - / Math.sqrt(vitesseY * vitesseY + vitesseX * vitesseX); - - // -- on ajoute si cela ne fait pas depasser --// - if (Math.abs(tempsTotal + deltaT) <= (Math.abs(dureeIntegration))) tempsTotal += deltaT; - else { - - // FIXME que fait-on si le temps total d\xE9passe? Tu parlais de diviser les intervalles, je n'ai pas bien - // compris mais je tente quand meme - - } - - // on verifie que l'on n'est pas inactif: pas necessaire - if (oldTempsTotal == tempsTotal) { - termine = true; - } else { - - // on a ondc un segment form\xE9 par element courant vers element choisi - final GrPoint pointchoisi = new GrPoint(data_.getGrid().getCoor(voisinChoisi).x, data_.getGrid().getCoor( - voisinChoisi).y, 0); - - // FIXME non on recherche le point le plus eloigne pour savoir sur - // combien de temps on doit bouge - - // listeCoor[1] = new Coordinate(pointchoisi.x, pointchoisi.y); - - // LineString ligne = new LineString(listeCoor, new - // PrecisionModel(),0); - - // utilse GISGeometryFactory.createSegment - final LineString ligne = GISGeometryFactory.INSTANCE.createSegment(pointCourant.x, pointCourant.y, - pointchoisi.x_, pointchoisi.y_); - progression("Recherche des intersections", 50); - final EfLineIntersectionsResultsMng res = lineIntersect_.computeForMeshes(ligne, prog_); - - if (res.isSegmentOut(0)) { - // particules est sortie du maillage, le calcul s'arrete - termine = true; - } else { - - } - // recuperationde la nouvelle intersection aui devien courante - intersectionCourante = res.getFoundIntersect(1);// Je crois qu'il - // faut prendre - // l'intersection 1 - // car la 0 est le - // point de d\xE9part - - // cette intersection sera automatiquement ajout\xE9e a la liste solution a la prochaine it\xE9ration (premiere - // instruction du while) - - } - } - }// fin du while - - } - return listeIntersection_; } /** - * Retourne les coordonn\xE9es associ\xE9es a l \xE9l\xE9ment du point FIXME faux - * - * @param element - * @return - */ - // GrPoint getCoordonnees(int element) { - // GrPoint point = new GrPoint(); - // calque_.getIsoLayer().getIsoModel().point(element, point);// FIXME Faux on passe un element et on renvoie un point - // ! - // return point; - // } - /** - * Recherche l'\xE9l\xE9lment englobant pour un point donn\xE9 - * - * @param _prReel - * @param grid - * @return - */ - public int elementEnglobant(final Coordinate _prReel) { - final EfGridInterface grid = data_.getGrid(); - if (grid.getIndex() != null) { - final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid, _prReel.x, _prReel.y, 0); - grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_prReel.x, _prReel.y, 0), visitor); - return visitor.isIn() ? visitor.getSelected() : -1; - } else return -1; - } - - public void buildNeighbor(final ProgressionInterface _prog) { - if (voisinage_ == null) { - voisinage_ = EfNeighborMesh.compute(data_.getGrid(), _prog); - } - // TODO Auto-generated method stub - - } - - public EfGridInterface getGrid() { - // TODO Auto-generated method stub - return data_.getGrid(); - } - - public EfGridDataInterpolator getGridData() { - // TODO le stocker dans un champ prive - return new EfGridDataInterpolatorDefault(data_, interpolator_); - } - - public EfNeighborMesh getNeighbor() { - return voisinage_; - } - - /** * fonction appel\xE9e en cas de stop de thread */ - public void stop() {} - + public void stop() { + stop_ = true; + if (activity_ != null) activity_.stop(); + } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -36,8 +36,7 @@ import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluRange; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestElt; -import org.fudaa.dodico.ef.operation.EfIndexVisitorNearestNode; +import org.fudaa.dodico.ef.operation.EfIndexHelper; import org.fudaa.dodico.ef.operation.EfIsoRestructuredGridActivity; import org.fudaa.dodico.ef.operation.EfIsoRestructuredGridResult; import org.fudaa.dodico.h2d.type.H2dVariableType; @@ -228,11 +227,7 @@ */ public static int sondeSelection(final GrPoint _prReel, final TrPostModelInterface _model) { final EfGridInterface grid = _model.getGrid(); - if (grid.getIndex() != null) { - final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid, _prReel.x_, _prReel.y_, 0); - grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_prReel.x_, _prReel.y_, 0), visitor); - return visitor.isIn() ? visitor.getSelected() : -1; - } + if (grid.getIndex() != null) { return EfIndexHelper.getElementEnglobant(grid, _prReel.x_, _prReel.y_, null); } return sondeSelectionLong(_prReel, _model); } @@ -244,12 +239,7 @@ * @return */ public static int sondeSelection(final GrPoint _prReel, final EfGridInterface grid) { - - if (grid.getIndex() != null) { - final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid, _prReel.x_, _prReel.y_, 0); - grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_prReel.x_, _prReel.y_, 0), visitor); - return visitor.isIn() ? visitor.getSelected() : -1; - } + if (grid.getIndex() != null) { return EfIndexHelper.getElementEnglobant(grid, _prReel.x_, _prReel.y_, null); } return -1; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeBuilder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeBuilder.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeBuilder.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -42,7 +42,7 @@ } public static EvolutionReguliere getEvol(final TrPostSource _src, final int _idxPtElt, final H2dVariableType _var) { - final double[] times = _src.getTime().getInitTimeSteps(); + final double[] times = _src.getTime().getTimeListModel().getTimesInSec(); if (times == null) { return null; } final double[] values = new double[times.length]; try { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -53,7 +53,7 @@ public class TrPostCourbeTreeModel extends EGGrapheTreeModel implements TrPostTimeContentListener, Target { - FudaaCommonImplementation impl_; + FudaaCommonImplementation impl_; Set intepolPt_; @@ -536,25 +536,25 @@ // -- verification si le point du model choisi est reel ou interpol\xE9 // dans la nouvelle source --// - if (srcChoisie.getGrid().contientPoint(modelBase.getPtX(), modelBase.getPtY())) { + // if (srcChoisie.getGrid().contientPoint(modelBase.getPtX(), modelBase.getPtY())) { + // + // // -- CREATION DE LA COURBE REELE DEPUIS COURBE REELLE --// + // newCurve = TrPostCourbeModel.buildCourbeModel(var, ((TrPostCourbeModel.Node) modelBase).ptIdx_, _child + // .getParentGroup(), srcChoisie); + // } else { + // -- on recupere le point le plus proche pour interpoler --// + final GrPoint pointAInterpole = new GrPoint(modelBase.getPtX(), modelBase.getPtY(), 0); + final int newPtIdx = TrIsoLayerDefault.sondeSelection(pointAInterpole, srcChoisie.getGrid()); - // -- CREATION DE LA COURBE REELE DEPUIS COURBE REELLE --// - newCurve = TrPostCourbeModel.buildCourbeModel(var, ((TrPostCourbeModel.Node) modelBase).ptIdx_, _child - .getParentGroup(), srcChoisie); - } else { - // -- on recupere le point le plus proche pour interpoler --// - final GrPoint pointAInterpole = new GrPoint(modelBase.getPtX(), modelBase.getPtY(), 0); - final int newPtIdx = TrIsoLayerDefault.sondeSelection(pointAInterpole, srcChoisie.getGrid()); + if (newPtIdx != -1) { - if (newPtIdx != -1) { + final TrPostInterpolatePoint interpolatePoint = new TrPostInterpolatePoint(newPtIdx, pointAInterpole.x_, + pointAInterpole.y_, new GISPrecision()); - final TrPostInterpolatePoint interpolatePoint = new TrPostInterpolatePoint(newPtIdx, pointAInterpole.x_, - pointAInterpole.y_, new GISPrecision()); - - // -- CREATION DE LA COURBE INTERPOLEE DEPUIS COURBE REELLE --// - newCurve = TrPostCourbeModel.buildCourbeModel(modelBase.getVar(), interpolatePoint, _child.getParentGroup(), - srcChoisie); - } + // -- CREATION DE LA COURBE INTERPOLEE DEPUIS COURBE REELLE --// + newCurve = TrPostCourbeModel.buildCourbeModel(modelBase.getVar(), interpolatePoint, _child.getParentGroup(), + srcChoisie); + // } } // -- recuperation des y de son duplicata --// @@ -912,26 +912,26 @@ @Override public Object getSpecificPersitDatas(Map Params) { // TODO Auto-generated method stub - TrPostCourbeTreeModelPersist dataPersist=new TrPostCourbeTreeModelPersist(); - //-- on remplit les donn\xE9es persistantes --// - dataPersist.fillDataWithModel(this); - + TrPostCourbeTreeModelPersist dataPersist = new TrPostCourbeTreeModelPersist(); + // -- on remplit les donn\xE9es persistantes --// + dataPersist.fillDataWithModel(this); + return dataPersist; } @Override public void setSpecificPersitDatas(final Object specPersitData, Map params) { // TODO Auto-generated method stub - TrPostCourbeTreeModelPersist data=(TrPostCourbeTreeModelPersist) specPersitData; - - //-- remplissage du model avec les data persistantes --// - data.fillModelWith(this); - - //-- recuperation du trpostprojet specifique au chargement --// - TrPostProjet projet=(TrPostProjet) params.get("TrPostProjet"); - this.projet_=projet; - this.impl_=projet.impl_; - + TrPostCourbeTreeModelPersist data = (TrPostCourbeTreeModelPersist) specPersitData; + + // -- remplissage du model avec les data persistantes --// + data.fillModelWith(this); + + // -- recuperation du trpostprojet specifique au chargement --// + TrPostProjet projet = (TrPostProjet) params.get("TrPostProjet"); + this.projet_ = projet; + this.impl_ = projet.impl_; + } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataCreatedNorm.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataCreatedNorm.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataCreatedNorm.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -56,7 +56,7 @@ for (int i = norm.length - 1; i >= 0; i--) { final double vxi = vx.getValue(i); final double vyi = vy.getValue(i); - norm[i] = Math.sqrt(vxi * vxi + vyi * vyi); + norm[i] = Math.hypot(vxi, vyi); } return vx.isElementData() ? ((EfData) new EfDataElement(norm)) : ((EfData) new EfDataNode(norm)); } @@ -66,7 +66,7 @@ try { final double vx = src_.getData(idxX_, _idxTime, _idxObject); final double vy = src_.getData(idxY_, _idxTime, _idxObject); - return Math.sqrt(vx * vx + vy * vy); + return Math.hypot(vx, vy); } catch (final IOException _e) { FuLog.warning(_e); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataVecteur.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataVecteur.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostDataVecteur.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -11,7 +11,7 @@ import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; import org.fudaa.dodico.ef.EfData; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.ebli.geometrie.GrSegment; /** @@ -47,8 +47,8 @@ vx = x_.getValue(_idxElt); vy = y_.getValue(_idxElt); } else { - vx = EfInterpolator.interpolateDangerous(_idxElt, _x, _y, x_, _grid); - vy = EfInterpolator.interpolateDangerous(_idxElt, _x, _y, y_, _grid); + vx = EfGridDataInterpolator.interpolateDangerous(_idxElt, _x, _y, x_, _grid); + vy = EfGridDataInterpolator.interpolateDangerous(_idxElt, _x, _y, y_, _grid); } _target.e_.x_ = _x + vx; _target.e_.y_ = _y + vy; Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostFlecheContentDefaut.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostFlecheContentDefaut.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostFlecheContentDefaut.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -83,7 +83,7 @@ try { final double vx = src_.getData(varVx_, _idxTime, _idxObject); final double vy = src_.getData(varVy_, _idxTime, _idxObject); - return Math.sqrt(vx * vx + vy * vy); + return Math.hypot(vx,vy); } catch (final IOException _e) { FuLog.warning(_e); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostMultiSourceActivator.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -266,7 +266,6 @@ _impl, _inter); if (retour == null) { return; } retour.setId(id); - retour.buildDefaultVarUpdateLists(); projetCourant_.ajouterSource(retour); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -378,6 +378,7 @@ _src.addVariableListener(new VariableListener()); if (_src.getFile() == null || !isSourceLoaded(_src.getFile().getAbsolutePath())) { listeSrc_.add(_src); + _src.buildDefaultVarUpdateLists(); // -- ajout du menu correspondant uniquement a partir de la 2eme --// // if (listeSrc_.size()>1 || (menuPost_!=null &&)) @@ -500,7 +501,7 @@ */ public String formatInfoSource(final TrPostSource _src) { // --ajout dans la liste des titres --// - return "Fichier: " + formatFichier(_src.getFile())+" |"+formatName(_src.getTitle()) ; + return formatName(_src.getTitle()) + " | Fichier: " + formatFichier(_src.getFile()); } public String formatFichier(final File file) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostRubarLimniMng.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostRubarLimniMng.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostRubarLimniMng.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -145,9 +145,7 @@ // ce test me semble dangereux: mais je ne comprends pas certaines exceptions dues // au TRC ... if (itime < evx.getNbValues() && itime < evy.getNbValues()) { - final double vxi = evx.getY(itime); - final double vyi = evy.getY(itime); - vScalaire[itime] = Math.sqrt(vxi * vxi + vyi * vyi); + vScalaire[itime] = Math.hypot(evx.getY(itime), evy.getY(itime)); } else { vScalaire[itime] = -1; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSource.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSource.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSource.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -25,7 +25,7 @@ import org.fudaa.dodico.ef.EfFilter; import org.fudaa.dodico.ef.EfGridData; import org.fudaa.dodico.ef.EfGridInterface; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.dodico.h2d.type.H2dVariableTypeCreated; import org.fudaa.ebli.calque.BCalqueLegende; @@ -53,7 +53,7 @@ public void activate(); - EfInterpolator getInterpolator(); + EfGridDataInterpolator getInterpolator(); /** * @param _var la var a enlever Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -51,7 +51,7 @@ import org.fudaa.dodico.ef.EfFilter; import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.ef.EfLib; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.dodico.h2d.resource.H2dResource; import org.fudaa.dodico.h2d.type.H2dVariableType; import org.fudaa.dodico.h2d.type.H2dVariableTypeCreated; @@ -196,7 +196,7 @@ protected boolean inspected_; - EfInterpolator interpolator_; + EfGridDataInterpolator interpolator_; GISPrecision precision_; @@ -549,7 +549,7 @@ _m.put("X", CtuluLib.DEFAULT_NUMBER_FORMAT.format(_x)); _m.put("Y", CtuluLib.DEFAULT_NUMBER_FORMAT.format(_y)); _m.put(TrResource.getS("El\xE9ment englobant"), CtuluLibString.getString(_element + 1)); - final EfInterpolator interpolator = getInterpolator(); + final EfGridDataInterpolator interpolator = getInterpolator(); for (int i = 0; i < variable_.length; i++) { try { _m.put(variable_[i].getName(), CtuluLib.DEFAULT_NUMBER_FORMAT.format(interpolator.interpolate(_element, _x, @@ -859,8 +859,8 @@ return null; } - public EfInterpolator getInterpolator() { - if (interpolator_ == null) interpolator_ = new EfInterpolator(this, createVectorInterpolation()); + public EfGridDataInterpolator getInterpolator() { + if (interpolator_ == null) interpolator_ = new EfGridDataInterpolator(this, createVectorInterpolation()); return interpolator_; } @@ -1054,7 +1054,7 @@ */ public boolean interpolate(final H2dVariableType[] _t, final int _time, final double[] _values, final int _elementIdx, final double _x, final double _y) { - final EfInterpolator interpolator = getInterpolator(); + final EfGridDataInterpolator interpolator = getInterpolator(); for (int i = _t.length - 1; i >= 0; i--) { try { _values[i] = interpolator.interpolate(_elementIdx, _x, _y, _t[i], _time); @@ -1414,8 +1414,8 @@ // } public String getId(){ -// if(id_==null) -// id_=generateId(); + if(id_==null) + id_=generateId(); return id_; } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostTimeModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostTimeModel.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostTimeModel.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -34,6 +34,8 @@ */ public class TrPostTimeModel { + + /** * Un modele pour les pas de temps. * @@ -115,6 +117,14 @@ public TrPostTimeModel() { super(); } + + /** + * @return + * @see org.fudaa.fudaa.tr.post.TrPostTimeModel.TimeListModel#getTimesInSec() + */ + public double[] getTimesInSec() { + return getTimeListModel().getTimesInSec(); + } CtuluExpr buildExpr() { final CtuluExpr r = expr_ == null ? new CtuluExpr() : new CtuluExpr(expr_); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java 2008-10-30 17:09:20 UTC (rev 4121) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java 2008-10-30 17:10:26 UTC (rev 4122) @@ -36,7 +36,6 @@ import org.fudaa.ebli.calque.ZCalqueSondeInterface; import org.fudaa.ebli.calque.ZEbliCalquePanelController; import org.fudaa.ebli.calque.ZEbliCalquesPanelPersistManager; -import org.fudaa.ebli.calque.ZebliCalquePersist; import org.fudaa.ebli.calque.action.CalqueActionSonde; import org.fudaa.ebli.calque.action.EbliCalqueActionTimeChooser; import org.fudaa.ebli.calque.action.EbliCalqueActionVariableChooser; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:09:23
|
Revision: 4121 http://fudaa.svn.sourceforge.net/fudaa/?rev=4121&view=rev Author: deniger Date: 2008-10-30 17:09:20 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/tr/TestJTrPostProject.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/tr/TestJTrPostProject.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/tr/TestJTrPostProject.java 2008-10-30 17:09:00 UTC (rev 4120) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/test/org/fudaa/fudaa/tr/TestJTrPostProject.java 2008-10-30 17:09:20 UTC (rev 4121) @@ -337,7 +337,7 @@ for (int i = data.getSize() - 1; i >= 0; i--) { final double vx = _datas[idxVx][t].getValue(i); final double vy = _datas[idxVy][t].getValue(i); - assertEquals(Math.sqrt(vx * vx + vy * vy), data.getValue(i), _prec); + assertEquals(Math.hypot(vx ,vy), data.getValue(i), _prec); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:09:05
|
Revision: 4120 http://fudaa.svn.sourceforge.net/fudaa/?rev=4120&view=rev Author: deniger Date: 2008-10-30 17:09:00 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostWizardProfilSpatial.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java 2008-10-30 17:08:35 UTC (rev 4119) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java 2008-10-30 17:09:00 UTC (rev 4120) @@ -2,89 +2,118 @@ import java.awt.BorderLayout; import java.awt.FlowLayout; -import java.awt.Frame; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import javax.swing.BorderFactory; -import javax.swing.Box; import javax.swing.JButton; import javax.swing.JComboBox; -import javax.swing.JDialog; +import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JTable; import javax.swing.ListModel; import javax.swing.ListSelectionModel; import javax.swing.table.DefaultTableModel; +import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.CtuluNumberFormatDefault; +import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ctulu.ProgressionInterface; -import org.fudaa.ctulu.gui.CtuluLibSwing; -import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.ressource.EbliResource; -import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.ctulu.gis.GISGeometryFactory; +import org.fudaa.ctulu.gui.CtuluComboBoxModelAdapter; +import org.fudaa.ctulu.gui.CtuluValueEditorDouble; +import org.fudaa.ctulu.gui.CtuluValueEditorInteger; +import org.fudaa.ctulu.gui.CtuluValueTimeEditor; +import org.fudaa.dodico.ef.operation.EfIndexHelper; +import org.fudaa.dodico.ef.operation.EfTrajectoireParameters; +import org.fudaa.dodico.h2d.type.H2dVariableType; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.fudaa.commun.impl.FudaaPanelTaskModel; +import org.fudaa.fudaa.meshviewer.profile.MvLineChooser; +import org.fudaa.fudaa.tr.common.TrLib; import org.fudaa.fudaa.tr.common.TrResource; import org.fudaa.fudaa.tr.post.TrComputeLigneCourantTrajectoire; -import org.fudaa.fudaa.tr.post.TrPostCommonImplementation; import org.fudaa.fudaa.tr.post.TrPostFlecheContent; -import org.fudaa.fudaa.tr.post.TrPostProjet; import org.fudaa.fudaa.tr.post.TrPostSource; import org.fudaa.fudaa.tr.post.TrPostVisuPanel; -import com.memoire.bu.BuCharValidator; -import com.memoire.bu.BuStringValidator; -import com.memoire.bu.BuTextField; +import com.memoire.bu.BuComboBox; +import com.memoire.bu.BuGridLayout; +import com.memoire.bu.BuPanel; import com.memoire.bu.BuValueValidator; +import com.memoire.bu.BuVerticalLayout; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.LineString; -public class TrPostDialogLigneCourants { +public class TrPostDialogLigneCourants implements FudaaPanelTaskModel { + /** + * + */ + private static final double MAXDIST = 1E-3; + + TrComputeLigneCourantTrajectoire algoCalcul_; + + /** * booleen qui indique si le wizard a \xE9t\xE9t lanc\xE9 depuis un calque */ // ArrayList<TrPostSource> source_; TrPostVisuPanel calque_; - TrPostSource source_; - TrPostCommonImplementation impl_; - TrComputeLigneCourantTrajectoire algoCalcul_; - // donnees graphiques - JDialog dialog_; - // choix mode - JComboBox choixMode_ = new JComboBox(new String[] { "Lignes de courant", "Trajectoires" }); + JComboBox choixMode_ = new JComboBox(new String[] { TrLib.getString("Lignes de courant"), + TrLib.getString("Trajectoires") }); - // choix segment - BuTextField x_ = new BuTextField(5); - BuTextField y_ = new BuTextField(5); - BuTextField x2_ = new BuTextField(5); - BuTextField y2_ = new BuTextField(5); - BuTextField nbPoints_ = new BuTextField(3); + JComponent duree_; - // variables et pdt - private JPanel panelVariables_; - ListModel modelVariables_; + JComponent finesse_; + + final MvLineChooser lineChooser_; + JComboBox cbFirstTime_; JList listVar_; ListModel modelPdt_; - JList listPdt_; - // finesse et duree et point - private JPanel panelSeuil_; - BuTextField finesse_ = new BuTextField(5); - BuTextField duree_ = new BuTextField(5); + // donnees graphiques + // JDialog dialog_; - // results - JPanel panelResults_; - JLabel results_; - JButton ajouter_ = new JButton("Valider", EbliResource.EBLI.getIcon("crystal_valider")); DefaultTableModel modelResult_; + + // results + // JPanel panelResults_; /** + * Creation du panel graphique. + * + * @return + */ + // JPanel panelSegment_; + // finesse et duree et point + // private JPanel panelSeuil_; + // variables et pdt + // private JPanel panelVariables_; + TrPostSource source_; + CtuluValueEditorDouble doubleEditor = new CtuluValueEditorDouble(false); + CtuluValueEditorInteger integerEditor_ = new CtuluValueEditorInteger(false); + JComboBox cbVitesse_; + JComponent nbPoints_; + + // choix segment + JComponent x_; + JComponent x2_; + JComponent y_; + JComponent y2_; + CtuluValueTimeEditor dureeEditor_; + + /** * Constructeur reserv\xE9 au calques * * @param _builderParams @@ -93,217 +122,131 @@ * @param _panelVariables * @param _source */ - public TrPostDialogLigneCourants(final TrPostProjet projet, final TrPostCommonImplementation impl, - final TrPostVisuPanel calque) { - impl_ = impl; + public TrPostDialogLigneCourants(final TrPostVisuPanel calque) { calque_ = calque; source_ = calque.getSource(); + int nbTimeStep = source_.getNbTimeStep(); + if (nbTimeStep < 2) choixMode_.setEnabled(false); + doubleEditor.setFormatter(CtuluNumberFormatDefault.buildNoneFormatter(3, true)); + x_ = doubleEditor.createEditorComponent(); + x2_ = doubleEditor.createEditorComponent(); + y_ = doubleEditor.createEditorComponent(); + y2_ = doubleEditor.createEditorComponent(); + + dureeEditor_ = new CtuluValueTimeEditor(); + dureeEditor_.setFmt(source_.getTimeFormatter()); + duree_ = dureeEditor_.createEditorComponent(); + double defaut = 60; + if (nbTimeStep > 2) { + defaut = (source_.getTimeStep(nbTimeStep - 1) - source_.getTimeStep(0)) / 2; + } + dureeEditor_.setValue(defaut, duree_); + integerEditor_.setVal(BuValueValidator.MIN(1)); + integerEditor_.setEditable(true); + nbPoints_ = integerEditor_.createEditorComponent(); + finesse_ = integerEditor_.createEditorComponent(); + integerEditor_.setValue(Integer.valueOf(1), nbPoints_); + integerEditor_.setValue(Integer.valueOf(1), finesse_); + lineChooser_ = new MvLineChooser(calque.getSelectedLine(), calque); // modelVariables_ = source_.getNewVarListModel();//doit contenir les vecteurs - modelVariables_ = source_.getNewFlecheListModel();// doit contenir les vecteurs modelPdt_ = source_.getNewTimeListModel(); // -- construction de la dialog --// - buildDialog(); } - private JPanel buildresults() { - final JPanel conteneur = new JPanel(new BorderLayout()); + private List<Coordinate> getPoints() { + Coordinate c = getFirsCoordinate(); + Coordinate cEnd = getEndCoordinate(); + int nbLigne = (Integer) integerEditor_.getValue(nbPoints_); + List<Coordinate> res = new ArrayList<Coordinate>(nbLigne); + if (c.distance(cEnd) < MAXDIST) { + res.add(c); + return res; + } + if (nbLigne == 1) { + c.x = (c.x + cEnd.x) / 2D; + c.y = (c.y + cEnd.y) / 2D; + res.add(c); + return res; + } + int nbIteration = nbLigne - 1; + double deltaX = (cEnd.x - c.x) / nbIteration; + double deltaY = (cEnd.y - c.y) / nbIteration; + res.add(c); + for (int i = 1; i < nbIteration; i++) { + Coordinate ci = new Coordinate(c.x + i * deltaX, c.y + i * deltaY); + res.add(ci); + } + res.add(cEnd); + return res; - final JPanel content = new JPanel(new FlowLayout(FlowLayout.CENTER)); + } - results_ = new JLabel(""); - content.add(ajouter_); - // content.add(new JLabel(TrResource.getS("R\xE9sultat:"))); - content.add(results_); + private Coordinate getEndCoordinate() { + return new Coordinate(getDoubleValue(x2_), getDoubleValue(y2_)); + } - conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("R\xE9sultats"))); + private Coordinate getFirsCoordinate() { + return new Coordinate(getDoubleValue(x_), getDoubleValue(y_)); + } - // -- action relatives aux resultats --// - ajouter_.addActionListener(new ActionListener() { - - public void actionPerformed(final ActionEvent _e) { - if (controleDataOk()) { - computeResults(); - } + public void actTask(final ProgressionInterface _prog, final CtuluAnalyze _analyze, final String[] _messages) { + List<Coordinate> points = getPoints(); + int idxRemove = 0; + for (Iterator<Coordinate> it = points.iterator(); it.hasNext();) { + Coordinate c = it.next(); + int idx = EfIndexHelper.getElementEnglobant(source_.getGrid(), c.x, c.y, _prog); + if (idx < 0) { + idxRemove++; + it.remove(); } - - }); - - modelResult_ = new DefaultTableModel(); - - final JTable tableauRes = new JTable(modelResult_); - conteneur.add(tableauRes.getTableHeader(), BorderLayout.NORTH); - conteneur.add(tableauRes, BorderLayout.CENTER); - conteneur.add(content, BorderLayout.SOUTH); - return conteneur; - } - - public boolean controleDataOk() { - - if (finesse_.getText().equals("")) { - impl_.error(TrResource.getS("La finesse doit \xEAtre d\xE9fini par un r\xE9el ")); - return false; } - if (duree_.getText().equals("")) { - impl_.error(TrResource.getS("La dur\xE9e doit \xEAtre d\xE9fini par un r\xE9el en secondes ")); - return false; + if (points.size() == 0) { + _analyze.addFatalError(TrResource.getS("Aucun point de d\xE9part n'appartient au maillage")); + return; } - if (x_.getText().equals("")) { - impl_.error(TrResource.getS("Le point doit etre form\xE9 de 2 r\xE9els ")); - return false; + if (idxRemove > 0) { + String txt = null; + if (idxRemove == 1) { + txt = TrResource.getS("1 point de d\xE9part a \xE9t\xE9 ignor\xE9 car il en dehors du maillage"); + } else { + txt = TrResource.getS("{0} points de d\xE9part ont \xE9t\xE9 ignor\xE9s car ils en dehors du maillage", CtuluLibString + .getString(idxRemove)); + } + _messages[0] = txt; } - if (nbPoints_.getText().equals("")) { - impl_.error(TrResource.getS("Le nombre de points \xE0 r\xE9partir manquant")); - return false; - } - if (y_.getText().equals("")) { - impl_.error(TrResource.getS("Le point doit etre form\xE9 de 2 r\xE9els ")); - return false; - } - if (x2_.getText().equals("")) { - impl_.error(TrResource.getS("Le point doit etre form\xE9 de 2 r\xE9els ")); - return false; - } - if (y2_.getText().equals("")) { - impl_.error(TrResource.getS("Le point doit etre form\xE9 de 2 r\xE9els ")); - return false; - } - if (listVar_.getSelectedIndex() == -1) { - impl_.error(TrResource.getS("Il faut choisir une variable")); - return false; - } - if (listPdt_.getSelectedIndex() == -1) { - impl_.error(TrResource.getS("Il faut choisir un pas de temps")); - return false; - } + // creqtion de l algo + algoCalcul_ = new TrComputeLigneCourantTrajectoire(calque_); - if (getNbPoints() < 2) { - nbPoints_.setText("" + 2); + final TrPostFlecheContent flecheContent = getSelectedVariable(); + final EfTrajectoireParameters data = new EfTrajectoireParameters(); + data.vx = flecheContent.getVx(); + data.vy = flecheContent.getVy(); + data.dureeIntegration_ = getDuree(); + data.finesse_ = (Integer) integerEditor_.getValue(finesse_); + data.firstTimeStepIdx_ = getSelectedTimeStep(); + data.firstTimeStep_ = source_.getTimeStep(data.firstTimeStepIdx_); + data.isLigneDeCourant = isLigneCourant(); + if (!listVar_.isSelectionEmpty()) { + Object[] selectedValues = listVar_.getSelectedValues(); + data.varsASuivre_ = new ArrayList<CtuluVariable>(selectedValues.length); + for (int i = 0; i < selectedValues.length; i++) { + data.varsASuivre_.add((CtuluVariable) selectedValues[i]); + } } - return true; - } + data.points_ = points; + algoCalcul_.computeLigneCourant(data, _analyze, _prog); - /** - * retourne la variable selectionnee - * - * @return - */ - protected TrPostFlecheContent getSelectedVariable() { + // -- mise a jour du tableau de res --// + // modelResult_.fireTableDataChanged(); - return (TrPostFlecheContent) modelVariables_.getElementAt(listVar_.getSelectedIndex()); } - /** - * retourne l indice du pas de temps. - * - * @return - */ - protected int getSelectedTimeStep() { - return listPdt_.getSelectedIndex(); - } + JPanel content_; - // JList listeSources_; - // DefaultListModel modelSources_; - // private JPanel buildSources() { - // JPanel conteneur = new JPanel(new BorderLayout()); - // JPanel content = new JPanel(new GridLayout(1, 2)); - // modelSources_=new DefaultListModel(); - // for(TrPostSource source:source_) - // modelSources_.addElement(source.getFile().getPath()); - // listeSources_ = new JList(modelSources_); - // listeSources_.setSelectedIndex(0); - // listeSources_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - // content.add(new JScrollPane(listeSources_)); - // content.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix du source"))); - // conteneur.add(content, BorderLayout.CENTER); - // - // listeSources_.addListSelectionListener(new ListSelectionListener(){ - // - // @Override - // public void valueChanged(ListSelectionEvent e) { - // //reconstruction des models de var et de pdt - // if(listeSources_.getSelectedIndex()!=-1){ - // modelVariables_ = source_.get(listeSources_.getSelectedIndex()).getNewVarListModel(); - // modelPdt_ = source_.get(listeSources_.getSelectedIndex()).getNewTimeListModel(); - // listPdt_.setModel(modelPdt_); - // listVar_.setModel(modelVariables_); - // } - // } - // - // }); - // - // return content; - // } - - private JPanel buildVariables() { - final JPanel conteneur = new JPanel(new BorderLayout()); - final JPanel content = new JPanel(new GridLayout(1, 2)); - listVar_ = new JList(modelVariables_); - listVar_.setSelectedIndex(0); - listPdt_ = new JList(modelPdt_); - listPdt_.setSelectedIndex(0); - listVar_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - listPdt_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - content.add(new JScrollPane(listVar_)); - content.add(new JScrollPane(listPdt_)); - content.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix des variables et pas de temps"))); - conteneur.add(content, BorderLayout.CENTER); - conteneur.add(new JLabel(TrResource.getS("Veuillez s\xE9lectionner la variable et pas de temps")), BorderLayout.NORTH); - return content; - } - - private JPanel buildSegments() { - - final JPanel conteneur = new JPanel(new GridLayout(3, 1)); - x_.setCharValidator(BuCharValidator.FLOAT); - x_.setStringValidator(BuStringValidator.FLOAT); - x_.setValueValidator(BuValueValidator.FLOAT); - y_.setCharValidator(BuCharValidator.FLOAT); - y_.setStringValidator(BuStringValidator.FLOAT); - y_.setValueValidator(BuValueValidator.FLOAT); - x2_.setCharValidator(BuCharValidator.FLOAT); - x2_.setStringValidator(BuStringValidator.FLOAT); - x2_.setValueValidator(BuValueValidator.FLOAT); - y2_.setCharValidator(BuCharValidator.FLOAT); - y2_.setStringValidator(BuStringValidator.FLOAT); - y2_.setValueValidator(BuValueValidator.FLOAT); - nbPoints_.setCharValidator(BuCharValidator.INTEGER); - nbPoints_.setStringValidator(BuStringValidator.INTEGER); - nbPoints_.setValueValidator(BuValueValidator.INTEGER); - - final JPanel contPoint1 = new JPanel(new FlowLayout(FlowLayout.CENTER)); - contPoint1.add(new JLabel("Point 1:")); - contPoint1.add(x_); - contPoint1.add(new JLabel(TrResource.getS("-"))); - contPoint1.add(y_); - final JPanel contPoint2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); - contPoint2.add(new JLabel("Point 2:")); - contPoint2.add(x2_); - contPoint2.add(new JLabel(TrResource.getS("-"))); - contPoint2.add(y2_); - final JPanel contPoint3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); - contPoint3.add(new JLabel("Nb pts uniform\xE9ments r\xE9partis sur le segment:")); - contPoint3.add(nbPoints_); - - nbPoints_.setText("" + 4); - - conteneur.add(contPoint1); - conteneur.add(contPoint2); - conteneur.add(contPoint3); - conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix du segment"))); - conteneur.setSize(400, 250); - return conteneur; - } - private JPanel buildParams() { - finesse_.setCharValidator(BuCharValidator.FLOAT); - finesse_.setStringValidator(BuStringValidator.FLOAT); - finesse_.setValueValidator(BuValueValidator.FLOAT); - duree_.setCharValidator(BuCharValidator.FLOAT); - duree_.setStringValidator(BuStringValidator.FLOAT); - duree_.setValueValidator(BuValueValidator.FLOAT); final JPanel conteneur = new JPanel(new GridLayout(1, 1)); conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix de la finesse et dur\xE9e"))); @@ -318,136 +261,213 @@ return conteneur; } - /** - * Creation du panel graphique. - * - * @return - */ - JPanel panelSegment_; + public boolean isSegmentValid() { + final boolean segValid = !doubleEditor.isEmpty(x_) && !doubleEditor.isEmpty(x2_) && !doubleEditor.isEmpty(y2_) + && !doubleEditor.isEmpty(y_); + return segValid && integerEditor_.getValue(nbPoints_) != null; + } - public Box buildContent() { + public double getDoubleValue(final JComponent c) { + return ((Double) doubleEditor.getValue(c)).doubleValue(); + } - final Box content = Box.createVerticalBox(); - - content.add(choixMode_); - // -- panel des segements --// - if (panelSegment_ == null) panelSegment_ = buildSegments(); - - content.add(panelSegment_); - - // -- panel des variables --// - if (panelVariables_ == null) panelVariables_ = buildVariables(); - content.add(panelVariables_); - - // -- panelSeuil - if (panelSeuil_ == null) panelSeuil_ = buildParams(); - content.add(panelSeuil_); - - // -- panel des resultats --// - if (panelResults_ == null) panelResults_ = buildresults(); - content.add(panelResults_); - - return content; + protected void updateView(final boolean _zoom) { + if (isSegmentValid()) { + lineChooser_.update(GISGeometryFactory.INSTANCE.createSegment(getDoubleValue(x_), getDoubleValue(y_), + getDoubleValue(x2_), getDoubleValue(y2_)), _zoom); + } } - public void buildDialog() { + private JPanel buildSegments() { - // CtuluUIDialog ui_ = new - // CtuluUIDialog(listeWidgetCalque_.get(0).getCalqueController - // ().getVisuPanel()); + final JPanel conteneur = new JPanel(new BuGridLayout(3, 5, 5, false, false, false, false, false)); + conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix du segment"))); + conteneur.add(new JLabel("")); + conteneur.add(new JLabel("x:")); + conteneur.add(new JLabel("y:")); + conteneur.add(new JLabel("Point 1:")); + conteneur.add(x_); + conteneur.add(y_); + conteneur.add(new JLabel("Point 2:")); + conteneur.add(x2_); + conteneur.add(y2_); + conteneur.add(new JLabel("Nombre de points uniform\xE9ments r\xE9partis sur le segment:")); + conteneur.add(nbPoints_); + final LineString initSelected = lineChooser_.getInitSelected(); + if (initSelected != null) { + final int nbCoordinate = initSelected.getNumPoints(); + doubleEditor.setValue(initSelected.getCoordinateSequence().getX(0), x_); + doubleEditor.setValue(initSelected.getCoordinateSequence().getY(0), y_); + doubleEditor.setValue(initSelected.getCoordinateSequence().getX(nbCoordinate - 1), x2_); + doubleEditor.setValue(initSelected.getCoordinateSequence().getY(nbCoordinate - 1), y2_); + updateView(false); + } + JPanel mainSegment = new JPanel(new BuVerticalLayout(5, false, true)); + mainSegment.add(conteneur); + JPanel pn = new JPanel(new BuGridLayout(3, 2, 0)); + JButton bt = new JButton(TrLib.getString("zoomer sur le segment")); + bt.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent _e) { + updateView(true); - final Frame f = CtuluLibSwing.getFrameAncestorHelper(impl_.getCurrentInternalFrame()); - dialog_ = new JDialog(f); + } + }); + pn.add(bt); + bt = new JButton(TrLib.getString("Zoom initial")); + bt.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent _e) { + lineChooser_.zoomInitial(); - dialog_.addWindowListener(new WindowAdapter() { - @Override - public void windowClosed(final WindowEvent _e) { - // on desactive l action de suivi sur le graphe - dialog_ = null; } + }); + pn.add(bt); + bt = new JButton(EbliLib.getS("Restaurer")); + bt.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent _e) { + lineChooser_.restaurer(); - @Override - public void windowClosing(final WindowEvent _e) { - dialog_ = null; } }); + pn.add(bt); + mainSegment.add(pn); + return mainSegment; + } - dialog_.setModal(true); - dialog_.pack(); - dialog_.setTitle(getTitle()); - final JPanel container = new JPanel(new BorderLayout()); - container.add(buildContent(), BorderLayout.CENTER); - container.add(new JLabel("<html> <body><b><center>" + getTitle() + "</center></b> </body></html>"), - BorderLayout.NORTH); - dialog_.setContentPane(container); - dialog_.setSize(400, 450); - dialog_.setLocationRelativeTo(CtuluLibSwing.getFrameAncestor(impl_.getCurrentInternalFrame())); - dialog_.setVisible(true); + private JPanel buildVariables() { + final JPanel conteneur = new JPanel(new BorderLayout()); + listVar_ = new JList(source_.getNewVarListModel()); + listVar_.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + conteneur.add(new JScrollPane(listVar_)); + conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix des variables"))); + return conteneur; + } + public void decoreBtApply(final JButton _bt) {} + + public int getNbMessageMax() { + return 1; } - public String getTitle() { - return TrResource.getS("Lignes de courants/trajectoires"); + public JComponent getPanel() { + if (content_ != null) return content_; + content_ = new BuPanel(new BuVerticalLayout(5)); + content_.add(buildMainProperties()); + // -- panel des segements --// + content_.add(buildSegments()); + // -- panel des variables --// + content_.add(buildVariables()); + content_.add(buildParams()); + return content_; } - protected double getFinesse() { - return Double.parseDouble(finesse_.getText()); + private JPanel buildMainProperties() { + JPanel pn = new JPanel(new BuGridLayout(2, 5, 5)); + pn.add(new JLabel(TrResource.getS("Mode"))); + pn.add(choixMode_); + pn.add(new JLabel(TrResource.getS("Pas de temps intial"))); + cbFirstTime_ = new BuComboBox(new CtuluComboBoxModelAdapter(source_.getNewTimeListModel())); + cbFirstTime_.setSelectedIndex(0); + pn.add(cbFirstTime_); + pn.add(new JLabel(TrResource.getS("Vecteur"))); + ListModel flecheListModel = source_.getNewFlecheListModel(); + CtuluComboBoxModelAdapter cb = new CtuluComboBoxModelAdapter(flecheListModel); + cbVitesse_ = new BuComboBox(cb); + cb.setSelectedItem(flecheListModel.getElementAt(0)); + // on s\xE9lectionne la vitesse par defaut + if (flecheListModel.getSize() > 1) { + for (int i = flecheListModel.getSize() - 1; i >= 0; i--) { + TrPostFlecheContent flecheContent = (TrPostFlecheContent) flecheListModel.getElementAt(i); + if (flecheContent.getVar() == H2dVariableType.VITESSE) { + cb.setSelectedItem(flecheListModel.getElementAt(i)); + break; + } + } + } + return pn; } - protected int getNbPoints() { - return Integer.parseInt(nbPoints_.getText()); + /** + * retourne l indice du pas de temps. + * + * @return + */ + protected int getSelectedTimeStep() { + return cbFirstTime_.getSelectedIndex(); } - protected double getX() { - return Double.parseDouble(x_.getText()); + /** + * retourne la variable selectionnee + * + * @return + */ + protected TrPostFlecheContent getSelectedVariable() { + + return (TrPostFlecheContent) cbVitesse_.getSelectedItem(); } - protected double getY() { - return Double.parseDouble(y_.getText()); + public String getTitre() { + return TrResource.getS("Lignes de courants") + "/" + TrResource.getS("Trajectoires"); } - protected double getX2() { - return Double.parseDouble(x2_.getText()); + protected boolean isLigneCourant() { + return choixMode_.getSelectedIndex() == 0; } - protected double getY2() { - return Double.parseDouble(y2_.getText()); + protected boolean isTrajectoire() { + return choixMode_.getSelectedIndex() == 1; } - protected double getDuree() { - return Double.parseDouble(duree_.getText()); + public String isValid() { + // pas necessaire + // if (listVar_.getSelectedIndex() == -1) { return TrResource.getS("Il faut choisir une variable"); } + // if (cbFirstTime_.getSelectedIndex() == -1) { return TrResource.getS("Il faut choisir un pas de temps"); } + if (!this.integerEditor_.isValueValidFromComponent(finesse_)) { return TrResource + .getS("La finesse doit \xEAtre d\xE9fini par un entier sup\xE9rieur \xE0 1"); } + if (!isSegmentValid()) { return TrResource.getS("Le segment n'est pas d\xE9fini"); } + if (integerEditor_.getValue(nbPoints_) == null) { return TrResource.getS("Pr\xE9ciser le nombre de trajectoires"); } + if (dureeEditor_.isEmpty(duree_)) { return TrResource.getS("La dur\xE9e doit \xEAtre d\xE9finie par un r\xE9el en secondes"); } + // on doit verifier que la duree est bien comprise dans les pas de temps du projet + if (isTrajectoire()) { + final int duree = getDuree(); + final double timeSelected = source_.getTimeStep(cbFirstTime_.getSelectedIndex()); + final double timeEnd = timeSelected + duree; + final double lastTimeStep = source_.getTimeStep(source_.getNbTimeStep() - 1); + if (timeEnd < source_.getTimeStep(0) || timeEnd > lastTimeStep) { + final String min = "-".concat(source_.getTimeFormatter().format(timeSelected - source_.getTimeStep(0))); + final String max = source_.getTimeFormatter().format(lastTimeStep - timeSelected); + return TrResource.getS("la dur\xE9e du calcul doit \xEAtre comprise entre {0} et {1}", min, max); + } + + } + if (getFirsCoordinate().distance(getEndCoordinate()) < MAXDIST) { + boolean res = calque_ + .getCtuluUI() + .question( + TrResource.getS("Calculer une seule trajectoire"), + TrResource + .getS("Les extremit\xE9s du segment sont confondues. Une seule trajectoire sera calcul\xE9e.\nVoulez-vous continuer ?")); + if (!res) { return TrResource.getS("Choisir 2 points diff\xE9rents"); } + + } + + return null; } - /** - * Methode qui realise les calculs d'int\xE9grale par rapport aux donn\xE9es - */ - private void computeResults() { + private Integer getDuree() { + return ((Integer) dureeEditor_.getValue(duree_)); + } - new CtuluTaskOperationGUI(impl_, FudaaLib.getS("Calcul Bilan")) { - @Override - public void act() { - final ProgressionInterface prog = getMainStateReceiver(); + // EfLigneDeCourantActivity activity_; - // creqtion de l algo - algoCalcul_ = new TrComputeLigneCourantTrajectoire(calque_); + public void stopTask() { + if (algoCalcul_ != null) algoCalcul_.stop(); - // creation de la liste des points uniform\xE9ment r\xE9partie sur le segment // - final GrPoint point1 = new GrPoint(getX(), getY(), 0); - final GrPoint point2 = new GrPoint(getX2(), getY2(), 0); - final int nbPoints = getNbPoints(); - // FIXME il faut selectionner une variable vecteur avec + } - final TrPostFlecheContent flecheContent = getSelectedVariable(); - algoCalcul_.computeLigneCourant(point1, point2, nbPoints, getDuree(), getSelectedTimeStep(), getFinesse(), - flecheContent.getVx(), flecheContent.getVy(), getMainStateReceiver()); + public void dialogClosed() { + lineChooser_.close(); - // -- mise a jour du tableau de res --// - modelResult_.fireTableDataChanged(); - impl_.unsetMainMessage(); - impl_.unsetMainProgression(); - } - }.start(); } } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostWizardProfilSpatial.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostWizardProfilSpatial.java 2008-10-30 17:08:35 UTC (rev 4119) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostWizardProfilSpatial.java 2008-10-30 17:09:00 UTC (rev 4120) @@ -12,7 +12,6 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsI; import org.fudaa.dodico.h2d.type.H2dVariableType; -import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.meshviewer.profile.MvProfileBuilderFromTree; @@ -83,14 +82,11 @@ for (int i = 0; i < this.actionChoixGraphes_.listeGraphesChoisis.size(); i++) { final EGGraphe graphe = this.actionChoixGraphes_.listeGraphesChoisis.get(i); + // -- preliminaire --// - if (builderParams_.btSelectedLine_.isSelected()) { - builderParams_.selectedLine_ = builderParams_.initSelected_; - builderParams_.name_ = EbliLib.getS("S\xE9lection"); - } else { - builderParams_.selectedLine_ = builderParams_.getSelectedLineInTree(builderParams_.tree_); - builderParams_.name_ = builderParams_.getSelectedLineTitle(builderParams_.tree_); - } + //bizarre ? + builderParams_.selectedLine_ = builderParams_.getSelectedLine(); + builderParams_.name_ = builderParams_.getSelectedLineName(); // -- Creation d un nouveau graphe panel sans widget--// final CtuluTaskDelegate task = impl.createTask(FudaaLib.getS("Construction des courbes")); @@ -192,21 +188,15 @@ return null; } - private static int cptGraphe = 1; +// private static int cptGraphe = 1; /** * Action de creation d un nouveau widget graphe en live */ protected void createNewGraphe() { - // -- creation auto d un nouveau graphe widget avec courbe temporelle - if (builderParams_.btSelectedLine_.isSelected()) { - builderParams_.selectedLine_ = builderParams_.initSelected_; - builderParams_.name_ = EbliLib.getS("S\xE9lection"); - } else { - builderParams_.selectedLine_ = builderParams_.getSelectedLineInTree(builderParams_.tree_); - builderParams_.name_ = builderParams_.getSelectedLineTitle(builderParams_.tree_); - } + builderParams_.selectedLine_ = builderParams_.getSelectedLine(); + builderParams_.name_ = builderParams_.getSelectedLineName(); final CtuluTaskDelegate task = builderParams_.ui_.createTask(FudaaLib.getS("Construction des courbes")); @@ -243,8 +233,7 @@ public int getStepDisabledButtons() { int r = super.getStepDisabledButtons(); if (current_ == 0) { - if (!builderParams_.btSelectedLine_.isSelected() - && builderParams_.getSelectedLineInTree(builderParams_.tree_) == null) r |= BuButtonPanel.SUIVANT; + if (builderParams_.getSelectedLine() == null) r |= BuButtonPanel.SUIVANT; } else if (current_ == 2) { if ((actionChoixGraphes_.listeGraphesChoisis == null || actionChoixGraphes_.listeGraphesChoisis.size() == 0) && !checkboxNewGraphe_.isSelected()) r |= BuButtonPanel.TERMINER; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:08:44
|
Revision: 4119 http://fudaa.svn.sourceforge.net/fudaa/?rev=4119&view=rev Author: deniger Date: 2008-10-30 17:08:35 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportTaskSkeleton.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportTaskSkeleton.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportTaskSkeleton.java 2008-10-30 17:08:12 UTC (rev 4118) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/export/MvExportTaskSkeleton.java 2008-10-30 17:08:35 UTC (rev 4119) @@ -634,4 +634,6 @@ act_.stop(); } } + + public void dialogClosed() {} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:08:15
|
Revision: 4118 http://fudaa.svn.sourceforge.net/fudaa/?rev=4118&view=rev Author: deniger Date: 2008-10-30 17:08:12 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileAction.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTarget.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/FSigTempLineInLayer.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvLineChooser.java Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/FSigTempLineInLayer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/FSigTempLineInLayer.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/FSigTempLineInLayer.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -0,0 +1,116 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.fudaa.meshviewer.profile; + +import java.awt.Color; + +import org.fudaa.ebli.calque.BArbreCalqueModel; +import org.fudaa.ebli.calque.ZCalqueLigneBrisee; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.geometrie.GrBoite; +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.fudaa.fudaa.sig.FSigLineSingleModel; + +import com.vividsolutions.jts.geom.LineString; + +/** + * Une classe permettant d'afficher temporaire une ligne dans le panel + * + * @author deniger + */ +public class FSigTempLineInLayer { + + private Color colorLineTempo_ = Color.RED; + + GrBoite initZoom_; + + boolean isZoomChanged_; + + final ZEbliCalquesPanel panel_; + + ZCalqueLigneBrisee tmp_; + + public FSigTempLineInLayer(ZEbliCalquesPanel _panel) { + super(); + panel_ = _panel; + } + + protected void close() { + if (tmp_ != null) { + tmp_.detruire(); + panel_.getVueCalque().getCalque().repaint(); + panel_.getVueCalque().changeRepere(this, initZoom_); + tmp_ = null; + } + + } + + /** + * @return the colorLineTempo + */ + public Color getColorLineTempo() { + return colorLineTempo_; + } + + /** + * @return the isZoomChanged + */ + public boolean isZoomChanged() { + return isZoomChanged_; + } + + /** + * @param _colorLineTempo the colorLineTempo to set + */ + public void setColorLineTempo(Color _colorLineTempo) { + colorLineTempo_ = _colorLineTempo; + } + + /** + * @param _s la ligne a afficher temporairement. si null n'affiche rien + * @param _zoom true si on doit zoomer sur la ligne. + */ + protected void display(final LineString _s, final boolean _zoom) { + if (panel_ == null) { return; } + if (_s == null) { + if (tmp_ != null) { + tmp_.setVisible(false); + } + return; + } + final FSigLineSingleModel modele = new FSigLineSingleModel(_s); + if (tmp_ == null) { + initZoom_ = panel_.getVueCalque().getViewBoite(); + tmp_ = new ZCalqueLigneBrisee(); + tmp_.setDestructible(true); + final TraceIconModel model = new TraceIconModel(TraceIcon.PLUS_DOUBLE, 4, colorLineTempo_); + tmp_.setIconModel(0, model); + tmp_.setIconModel(1, model); + final TraceLigneModel ligne = new TraceLigneModel(TraceLigne.MIXTE, 2, colorLineTempo_); + tmp_.setLineModel(0, ligne); + tmp_.setLineModel(1, ligne); + panel_.getVueCalque().getCalque().enPremier(tmp_); + panel_.getCqInfos().enPremier(); + } + tmp_.setVisible(true); + tmp_.modele(modele); + if (_zoom) { + BArbreCalqueModel.actionCenter(tmp_, panel_); + isZoomChanged_ = true; + } + } + + public void zoomInitial(){ + panel_.getVueCalque().changeViewBoite(this, initZoom_, false); + } + + public void restaurer(){ + panel_.restaurer(); + } + +} Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvLineChooser.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvLineChooser.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvLineChooser.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -0,0 +1,174 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.fudaa.meshviewer.profile; + +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.beans.PropertyChangeListener; +import java.util.Observable; + +import javax.swing.ButtonGroup; +import javax.swing.JComponent; +import javax.swing.JTree; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; + +import org.fudaa.ebli.calque.ZCalqueLigneBrisee; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.calque.find.CalqueFindCourbeTreeModel; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.fudaa.meshviewer.MvResource; + +import com.memoire.bu.BuBorders; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuRadioButton; +import com.memoire.bu.BuScrollPane; +import com.memoire.bu.BuVerticalLayout; +import com.vividsolutions.jts.geom.LineString; + +/** + * @author deniger + */ +public class MvLineChooser extends Observable { + + public BuRadioButton btSelectedLine_; + + public BuRadioButton btSelectInTree_; + + public final ZEbliCalquesPanel calque_; + + public final LineString initSelected_; + final CalqueFindCourbeTreeModel lineTreeModel_; + + BuPanel panelTreeIsoLignes; + final FSigTempLineInLayer tmpLine_; + public JTree tree_; + + public MvLineChooser(LineString _initSelected, ZEbliCalquesPanel _calque) { + super(); + initSelected_ = _initSelected; + calque_ = _calque; + lineTreeModel_ = new CalqueFindCourbeTreeModel(null, _calque.getDonneesCalque()); + tmpLine_ = new FSigTempLineInLayer(_calque); + } + + protected JTree buildTree() { + return CalqueFindCourbeTreeModel.createCalqueTree(lineTreeModel_, true); + } + + public void close() { + tmpLine_.close(); + } + + public String getError() { + if (tree_.isEnabled() && tree_.isSelectionEmpty()) { return EbliLib.getS("S\xE9lectionner au moins une courbe"); } + return null; + } + + /** + * @return the initSelected + */ + public LineString getInitSelected() { + return initSelected_; + } + + public LineString getSelectedLine() { + if (btSelectedLine_.isSelected()) { + return initSelected_; + // MvProfileBuilderFromTree.this.name_ = EbliLib.getS("S\xE9lection"); + } else { + return getSelectedLineInTree(tree_); + // MvProfileBuilderFromTree.this.name_ = getSelectedLineTitle(tree_); + } + } + + public String getSelectedLineName() { + if (btSelectedLine_.isSelected()) { + return EbliLib.getS("S\xE9lection"); + } else { + return getSelectedLineTitle(tree_); + } + } + + public JComponent getPanel(String title) { + if (panelTreeIsoLignes != null) return panelTreeIsoLignes; + panelTreeIsoLignes = new BuPanel(new BuVerticalLayout(3)); + tree_ = buildTree(); + panelTreeIsoLignes.add(new BuLabel(title)); + btSelectedLine_ = new BuRadioButton(MvResource.getS("Utiliser La ligne s\xE9lectionn\xE9e")); + btSelectInTree_ = new BuRadioButton(MvResource.getS("Utiliser une ligne disponible:")); + final ButtonGroup bg = new ButtonGroup(); + bg.add(btSelectedLine_); + bg.add(btSelectInTree_); + final BuScrollPane buScrollPane = new BuScrollPane(tree_); + buScrollPane.setPreferredHeight(200); + panelTreeIsoLignes.add(btSelectedLine_); + panelTreeIsoLignes.add(btSelectInTree_); + buScrollPane.setBorder(BuBorders.EMPTY2500); + panelTreeIsoLignes.add(buScrollPane); + if (initSelected_ == null) { + btSelectedLine_.setEnabled(false); + btSelectInTree_.setSelected(true); + } else { + btSelectedLine_.setSelected(true); + tree_.setEnabled(false); + this.update(initSelected_, false); + } + tree_.addTreeSelectionListener(new TreeSelectionListener() { + public void valueChanged(final TreeSelectionEvent _e) { + // updateError(pn, tree_, varTime_); + update(getSelectedLineInTree(tree_), true); + } + + }); + // le selectionneur pour le bouton + btSelectedLine_.addItemListener(new ItemListener() { + public void itemStateChanged(final ItemEvent _e) { + tree_.setEnabled(!btSelectedLine_.isSelected()); + if (btSelectedLine_.isSelected()) { + update(initSelected_, tmpLine_.isZoomChanged()); + } else if (tree_.isSelectionEmpty()) { + update(null, false); + } else { + update(getSelectedLineInTree(tree_), true); + } + // updateError(pn, tree_, varTime_); + } + + }); + return panelTreeIsoLignes; + } + + public LineString getSelectedLineInTree(final JTree _tree) { + if (_tree.isSelectionEmpty()) { return null; } + final CalqueFindCourbeTreeModel.LayerNode node = (CalqueFindCourbeTreeModel.LayerNode) _tree.getSelectionPath() + .getLastPathComponent(); + final ZCalqueLigneBrisee cq = (ZCalqueLigneBrisee) node.getUserObject(); + return (LineString) cq.getModele().getGeomData().getGeometry(node.getIdxPoly()); + } + + public String getSelectedLineTitle(final JTree _tree) { + if (_tree.isSelectionEmpty()) { return null; } + final CalqueFindCourbeTreeModel.LayerNode node = (CalqueFindCourbeTreeModel.LayerNode) _tree.getSelectionPath() + .getLastPathComponent(); + return node.toString(); + } + + public void update(final LineString _s, final boolean _zoom) { + tmpLine_.display(_s, _zoom); + setChanged(); + super.notifyObservers(_s); + } + + public void zoomInitial() { + tmpLine_.zoomInitial(); + } + + public void restaurer() { + tmpLine_.restaurer(); + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileAction.java 2008-10-30 17:07:44 UTC (rev 4117) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileAction.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -9,7 +9,6 @@ import java.awt.event.ActionEvent; -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.meshviewer.MvResource; @@ -34,9 +33,7 @@ } protected LineString getSelectedLine() { - // pas de calque s\xE9lectionn\xE9 - if (!(panel_.getArbreCalqueModel().getSelectedCalque() instanceof ZCalqueAffichageDonneesInterface)) { return null; } - return ((ZCalqueAffichageDonneesInterface) panel_.getArbreCalqueModel().getSelectedCalque()).getSelectedLine(); + return panel_.getSelectedLine(); } @Override Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java 2008-10-30 17:07:44 UTC (rev 4117) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilder.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -27,22 +27,14 @@ import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsMng; import org.fudaa.dodico.ef.operation.EfLineIntersectorActivity; import org.fudaa.dodico.h2d.type.H2dVariableType; -import org.fudaa.ebli.calque.BArbreCalqueModel; -import org.fudaa.ebli.calque.ZCalqueLigneBrisee; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbeChild; import org.fudaa.ebli.courbe.EGGroup; -import org.fudaa.ebli.geometrie.GrBoite; -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.fudaa.fudaa.commun.courbe.FudaaCourbeTimeListModel; import org.fudaa.fudaa.meshviewer.MvResource; import org.fudaa.fudaa.meshviewer.export.MvExportChooseVarAndTime; -import org.fudaa.fudaa.sig.FSigLineSingleModel; import com.memoire.bu.BuLib; import com.vividsolutions.jts.geom.LineString; @@ -64,8 +56,8 @@ final MvProfileTarget data_; // BuDesktop dest_; public final ListModel initVar_; - GrBoite initZoom_; - boolean isZoomChanged_; + // GrBoite initZoom_; + // boolean isZoomChanged_; EfLineIntersectionsResultsMng meshesResults_; public String name_; @@ -79,7 +71,7 @@ final EfLineIntersectionsCorrectionTester tester_; - ZCalqueLigneBrisee tmp_; + // ZCalqueLigneBrisee tmp_; public final CtuluUI ui_; @@ -94,8 +86,9 @@ data_ = _data; panel_ = _panel; tester_ = _tester; + initVar_ = CtuluLibSwing.createListModel(data_.getVars()); - act_ = new EfLineIntersectorActivity(data_.getData(), data_.getInterpolator()); + act_ = new EfLineIntersectorActivity(data_.getInterpolator()); ui_ = panel_.getCtuluUI(); timeModel_ = _data.getTimeModel(); initLine_ = _selected; @@ -372,16 +365,8 @@ } - protected void close() { - if (tmp_ != null) { - tmp_.detruire(); - panel_.getVueCalque().getCalque().repaint(); - panel_.getVueCalque().changeRepere(this, initZoom_); - tmp_ = null; - } + protected void close() {} - } - protected String getHelpForVarTime() { return timeModel_ == null ? CtuluLib.getS("S\xE9lectionner les variables") : CtuluLib .getS("S\xE9lectionner les variables et les pas de temps"); @@ -413,36 +398,6 @@ protected abstract void stepOne(); - protected void update(final LineString _s, final boolean _zoom) { - if (panel_ == null) { return; } - if (_s == null) { - if (tmp_ != null) { - tmp_.setVisible(false); - } - return; - } - final FSigLineSingleModel modele = new FSigLineSingleModel(_s); - if (tmp_ == null) { - initZoom_ = panel_.getVueCalque().getViewBoite(); - tmp_ = new ZCalqueLigneBrisee(); - tmp_.setDestructible(true); - final TraceIconModel model = new TraceIconModel(TraceIcon.PLUS_DOUBLE, 4, Color.RED); - tmp_.setIconModel(0, model); - tmp_.setIconModel(1, model); - final TraceLigneModel ligne = new TraceLigneModel(TraceLigne.MIXTE, 2, Color.RED); - tmp_.setLineModel(0, ligne); - tmp_.setLineModel(1, ligne); - panel_.getVueCalque().getCalque().enPremier(tmp_); - panel_.getCqInfos().enPremier(); - } - tmp_.setVisible(true); - tmp_.modele(modele); - if (_zoom) { - BArbreCalqueModel.actionCenter(tmp_, panel_); - isZoomChanged_ = true; - } - } - public EfLineIntersectionsResultsMng getMeshResultsMng(final ProgressionInterface _prog) { if (meshesResults_ == null) { meshesResults_ = act_.computeFor(selectedLine_, _prog, true); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java 2008-10-30 17:07:44 UTC (rev 4117) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileBuilderFromTree.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -7,17 +7,14 @@ */ package org.fudaa.fudaa.meshviewer.profile; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; +import java.util.Observable; +import java.util.Observer; -import javax.swing.ButtonGroup; +import javax.swing.JComponent; import javax.swing.JDialog; -import javax.swing.JTree; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibString; @@ -29,10 +26,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.dodico.ef.operation.EfLineIntersectionsCorrectionTester; import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsI; -import org.fudaa.ebli.calque.ZCalqueLigneBrisee; import org.fudaa.ebli.calque.ZEbliCalquesPanel; -import org.fudaa.ebli.calque.find.CalqueFindCourbeTreeModel; -import org.fudaa.ebli.commun.EbliLib; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.meshviewer.MvResource; import org.fudaa.fudaa.meshviewer.export.MvExportChooseVarAndTime; @@ -40,63 +34,64 @@ import com.memoire.bu.BuBorders; import com.memoire.bu.BuGlassPaneStop; import com.memoire.bu.BuHorizontalLayout; -import com.memoire.bu.BuLabel; -import com.memoire.bu.BuPanel; -import com.memoire.bu.BuRadioButton; -import com.memoire.bu.BuScrollPane; -import com.memoire.bu.BuVerticalLayout; import com.vividsolutions.jts.geom.LineString; public class MvProfileBuilderFromTree extends MvProfileBuilder { - public final LineString initSelected_; - final CalqueFindCourbeTreeModel lineTreeModel_; ZEbliCalquesPanel calque_; + final MvLineChooser lineChooser_; + /** * panel qui contient les calques des isolignes */ - BuPanel panelTreeIsoLignes; + JComponent panelTreeIsoLignes; /** * panel des pas de temps et variables */ MvExportChooseVarAndTime varTime_; - public MvExportChooseVarAndTime getVarTime() { - return varTime_; - } - - public BuPanel getPanelTreeIsoLignes() { - return panelTreeIsoLignes; - } - public MvProfileBuilderFromTree(final MvProfileTarget _data, final CtuluUI _ui, final LineString _selected, final ZEbliCalquesPanel _panel, final EfLineIntersectionsCorrectionTester _tester) { super(_data, _panel, _tester, _selected); - lineTreeModel_ = new CalqueFindCourbeTreeModel(null, _panel.getDonneesCalque()); - initSelected_ = _selected; + // lineTreeModel_ = new CalqueFindCourbeTreeModel(null, _panel.getDonneesCalque()); + // initSelected_ = _selected; calque_ = _panel; + lineChooser_ = new MvLineChooser(_selected, panel_); } - public LineString getSelectedLineInTree(final JTree _tree) { - if (_tree.isSelectionEmpty()) { return null; } - final CalqueFindCourbeTreeModel.LayerNode node = (CalqueFindCourbeTreeModel.LayerNode) _tree.getSelectionPath() - .getLastPathComponent(); - final ZCalqueLigneBrisee cq = (ZCalqueLigneBrisee) node.getUserObject(); - return (LineString) cq.getModele().getGeomData().getGeometry(node.getIdxPoly()); + @Override + protected void close() { + lineChooser_.close(); } - public String getSelectedLineTitle(final JTree _tree) { - if (_tree.isSelectionEmpty()) { return null; } - final CalqueFindCourbeTreeModel.LayerNode node = (CalqueFindCourbeTreeModel.LayerNode) _tree.getSelectionPath() - .getLastPathComponent(); - return node.toString(); + /** + * @return the panelTreeIsoLignes + */ + public JComponent getPanelTreeIsoLignes() { + return panelTreeIsoLignes; } - protected JTree buildTree() { - return CalqueFindCourbeTreeModel.createCalqueTree(lineTreeModel_, true); + /** + * @return + * @see org.fudaa.fudaa.meshviewer.profile.MvLineChooser#getSelectedLine() + */ + public LineString getSelectedLine() { + return lineChooser_.getSelectedLine(); } + /** + * @return + * @see org.fudaa.fudaa.meshviewer.profile.MvLineChooser#getSelectedLineName() + */ + public String getSelectedLineName() { + return lineChooser_.getSelectedLineName(); + } + + public MvExportChooseVarAndTime getVarTime() { + return varTime_; + } + protected void intersectTest(final JDialog _d, final MvExportChooseVarAndTime _var, final ProgressionInterface _prog) { final EfLineIntersectionsResultsI res = getDefaultRes((CtuluVariable) initVar_.getElementAt(0), _prog); if (res == null || res.isEmpty()) { @@ -108,51 +103,25 @@ } - public BuRadioButton btSelectedLine_; - public BuRadioButton btSelectInTree_; - public JTree tree_; + // public JTree tree_; /** * construit les panels des parametres. */ + @SuppressWarnings("serial") @Override public void stepOne() { - panelTreeIsoLignes = new BuPanel(new BuVerticalLayout(3)); - tree_ = buildTree(); - panelTreeIsoLignes.add(new BuLabel(MvResource.getS("S\xE9lectionner la ligne \xE0 utiliser pour le profil"))); - btSelectedLine_ = new BuRadioButton(MvResource.getS("Utiliser La ligne s\xE9lectionn\xE9e")); - btSelectInTree_ = new BuRadioButton(MvResource.getS("Utiliser une ligne disponible:")); - final ButtonGroup bg = new ButtonGroup(); - bg.add(btSelectedLine_); - bg.add(btSelectInTree_); - final BuScrollPane buScrollPane = new BuScrollPane(tree_); - buScrollPane.setPreferredHeight(200); - panelTreeIsoLignes.add(btSelectedLine_); - panelTreeIsoLignes.add(btSelectInTree_); - buScrollPane.setBorder(BuBorders.EMPTY2500); - panelTreeIsoLignes.add(buScrollPane); - if (initSelected_ == null) { - btSelectedLine_.setEnabled(false); - btSelectInTree_.setSelected(true); - } else { - btSelectedLine_.setSelected(true); - tree_.setEnabled(false); - this.update(initSelected_, false); - } + if (panelTreeIsoLignes != null) return; + + panelTreeIsoLignes = lineChooser_.getPanel(MvResource.getS("S\xE9lectionner la ligne \xE0 utiliser pour le profil")); varTime_ = createVarTimeChooser(getHelpForVarTime()); final CtuluDialogPanel pn = new CtuluDialogPanel() { @Override public boolean valide() { if (!CtuluLibString.isEmpty(getErrorText())) { return false; } - - if (btSelectedLine_.isSelected()) { - MvProfileBuilderFromTree.this.selectedLine_ = initSelected_; - MvProfileBuilderFromTree.this.name_ = EbliLib.getS("S\xE9lection"); - } else { - MvProfileBuilderFromTree.this.selectedLine_ = getSelectedLineInTree(tree_); - MvProfileBuilderFromTree.this.name_ = getSelectedLineTitle(tree_); - } + MvProfileBuilderFromTree.this.selectedLine_ = lineChooser_.getSelectedLine(); + MvProfileBuilderFromTree.this.name_ = lineChooser_.getSelectedLineName(); final JDialog d = (JDialog) SwingUtilities.getAncestorOfClass(JDialog.class, this); final CtuluTaskDelegate task = MvProfileBuilderFromTree.this.ui_.createTask(FudaaLib .getS("Construction des courbes")); @@ -172,7 +141,7 @@ final ListSelectionListener listListener = new ListSelectionListener() { public void valueChanged(final ListSelectionEvent _e) { - updateError(pn, tree_, varTime_); + updateError(pn, varTime_.computeErrorText()); } }; @@ -181,36 +150,25 @@ } varTime_.getVarSelectionModel().addListSelectionListener(listListener); - tree_.addTreeSelectionListener(new TreeSelectionListener() { - public void valueChanged(final TreeSelectionEvent _e) { - updateError(pn, tree_, varTime_); - MvProfileBuilderFromTree.this.update(getSelectedLineInTree(tree_), true); - } - - }); - // le selectionneur pour le bouton - btSelectedLine_.addItemListener(new ItemListener() { - public void itemStateChanged(final ItemEvent _e) { - tree_.setEnabled(!btSelectedLine_.isSelected()); - if (btSelectedLine_.isSelected()) { - MvProfileBuilderFromTree.this.update(initSelected_, MvProfileBuilderFromTree.this.isZoomChanged_); - } else if (tree_.isSelectionEmpty()) { - MvProfileBuilderFromTree.this.update(null, false); - } else { - MvProfileBuilderFromTree.this.update(getSelectedLineInTree(tree_), true); - } - updateError(pn, tree_, varTime_); - } - - }); pn.setLayout(new BuHorizontalLayout(5)); panelTreeIsoLignes.setBorder(CtuluLibSwing.createTitleBorder(CtuluLib.getS("Etape {0}:", CtuluLibString.UN))); varTime_.setBorder(CtuluLibSwing.createTitleBorder(CtuluLib.getS("Etape {0}:", CtuluLibString.DEUX))); pn.add(panelTreeIsoLignes); pn.add(varTime_); pn.setBorder(BuBorders.EMPTY3333); - updateError(pn, tree_, varTime_); + lineChooser_.addObserver(new Observer() { + public void update(final Observable _o, final Object _arg) { + updateError(pn, lineChooser_.getError()); + + } + }); + final String error = lineChooser_.getError(); + updateError(pn, error); + if (error == null) { + updateError(pn, varTime_.getErrorText()); + } + // -- integration du parent component dans le wizard des profils spatiaux // --// @@ -220,20 +178,11 @@ } - protected void updateError(final CtuluDialogPanel _target, final JTree _tree, final MvExportChooseVarAndTime _var) { - String err = _var.computeErrorText(); - if (_tree.isEnabled() && _tree.isSelectionEmpty()) { - final String err2 = EbliLib.getS("S\xE9lectionner au moins une courbe"); - if (err == null) { - err = err2; - } else { - err = err + CtuluLibString.LINE_SEP_SIMPLE + err2; - } - } - if (err == null) { + protected void updateError(final CtuluDialogPanel _target, final String _err) { + if (_err == null) { _target.cancelErrorText(); } else { - _target.setErrorText(err); + _target.setErrorText(_err); } } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTarget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTarget.java 2008-10-30 17:07:44 UTC (rev 4117) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileTarget.java 2008-10-30 17:08:12 UTC (rev 4118) @@ -10,7 +10,7 @@ import org.fudaa.ctulu.CtuluVariable; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.dodico.ef.EfGridData; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; import org.fudaa.fudaa.commun.courbe.FudaaCourbeTimeListModel; import org.fudaa.fudaa.tr.post.TrPostSource; @@ -32,7 +32,7 @@ */ CtuluVariable[] getVars(); - EfInterpolator getInterpolator(); + EfGridDataInterpolator getInterpolator(); /** * @return les pas de temps: peut-etre null This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-10-30 17:07:53
|
Revision: 4117 http://fudaa.svn.sourceforge.net/fudaa/?rev=4117&view=rev Author: deniger Date: 2008-10-30 17:07:44 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestElt.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestNode.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineFlowrateResult.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersection.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsCorrectionActivity.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsResultsMng.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectorActivity.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/h2d/reflux/H2dRefluxNodalPropertiesMng.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/telemac/io/SerafinFileFormat.java branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/ef/TestJLineIntersection.java branches/Prepro-0.92-SNAPSHOT/dodico/test/org/fudaa/dodico/telemac/TestJSerafin.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/find/CalqueFindFlecheExpression.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/geometrie/GrMorphisme.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/geometrie/GrPoint.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/volume/BUnivers.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexHelper.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionParentDefault.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineSingleIntersectFinder.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireActivity.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireGridDataProvider.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireMarqueurBuilder.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireParameters.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireParametersMarqueur.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireResultBuilder.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolatorDefault.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolator.java Deleted: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -1,22 +0,0 @@ -/* - * @creation 30 mai 07 - * @modification $Date: 2007-06-05 08:59:14 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.dodico.ef.interpolation; - -import org.fudaa.dodico.ef.EfGridData; - -/** - * @author fred deniger - * @version $Id: EfGridDataInterpolator.java,v 1.1 2007-06-05 08:59:14 deniger Exp $ - */ -public interface EfGridDataInterpolator { - - EfGridData getGridData(); - - EfInterpolator getInterpolator(); - -} Copied: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java (from rev 4018, branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolator.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -0,0 +1,211 @@ +/* + * @creation 30 mai 07 + * @modification $Date: 2007-06-11 13:04:06 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.dodico.ef.interpolation; + +import java.io.IOException; + +import org.fudaa.ctulu.CtuluLibGeometrie; +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; + +import org.fudaa.dodico.ef.EfData; +import org.fudaa.dodico.ef.EfDataInterpolationAdapter; +import org.fudaa.dodico.ef.EfElement; +import org.fudaa.dodico.ef.EfElementType; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; + +/** + * Une classe permettant d'interpoler des valeurs sur un maillage. Certaines donn\xE9es definies dans le + * InterpolationVectorContainer seront interpoler en norme,theta et non pas en vx,vy. + * + * @author fred deniger + * @version $Id: EfInterpolator.java,v 1.2 2007-06-11 13:04:06 deniger Exp $ + */ +public class EfGridDataInterpolator { + + /** + * @param _data the data to set + */ + public void setData(EfGridData _data) { + data_ = _data; + } + + private static double doInterpolate(final double _xt, final double _yt, final EfData _data, final int _ielt, + final EfGridInterface _g) { + if (_data.isElementData()) { return _data.getValue(_ielt); } + final EfElement elt = _g.getElement(_ielt); + if (elt.getDefaultType() == EfElementType.T3) { + return interpolateT3(_xt, _yt, _data, _ielt, _g); + } else if (elt.getDefaultType() == EfElementType.T6) { return doInterpolateT6(_xt, _yt, _data, _ielt, _g); } + return doInterpolateOther(_xt, _yt, _data, _ielt, _g); + } + + private static double doInterpolateOther(final double _xt, final double _yt, final EfData _data, final int _ielt, + final EfGridInterface _g) { + if (_data.isElementData()) { return _data.getValue(_ielt); } + final EfElement elt = _g.getElement(_ielt); + double num = 0; + double denom = 0; + // esp est la distance min au dessous de laquelle 2 points sont consid\xE9r\xE9s comme identiques + // on calcul les distances au carre, donc on met l'epsilon au carre + final double eps = 1E-4 * 1E-4; + for (int i = elt.getPtNb() - 1; i >= 0; i--) { + final int idx = elt.getPtIndex(i); + final double dist = CtuluLibGeometrie.getD2(_xt, _yt, _g.getPtX(idx), _g.getPtY(idx)); + // on suppose que si la distance est inf\xE9rieur au dixieme de millim\xE8tre, on prend le r\xE9sultat tel quel. + if (dist < eps) { return _data.getValue(idx); } + num += _data.getValue(idx) / dist; + denom += 1 / dist; + } + if (denom == 0) { throw new IllegalAccessError("ne devrait jamais arriv\xE9"); } + return num / denom; + } + + private static double doInterpolateT6(final double _xt, final double _yt, final EfData _data, final int _ielt, + final EfGridInterface _g) { + if (_data.isElementData()) { return _data.getValue(_ielt); } + final EfElement elt = _g.getElement(_ielt); + final int i1 = elt.getPtIndex(0); + final int i2 = elt.getPtIndex(2); + final int i3 = elt.getPtIndex(4); + return doInterpolateTriangle(_xt, _yt, _data.getValue(i1), _data.getValue(i2), _data.getValue(i3), i1, i2, i3, _g); + } + + private static double doInterpolateTriangle(final double _xt, final double _yt, final double _v1, final double _v2, + final double _v3, final int _pt1, final int _pt2, final int _pt3, final EfGridInterface _g) { + final double a1 = (_g.getPtX(_pt3) - _g.getPtX(_pt2)) * (_yt - _g.getPtY(_pt2)) + - (_g.getPtY(_pt3) - _g.getPtY(_pt2)) * (_xt - _g.getPtX(_pt2)); + final double a2 = (_g.getPtX(_pt1) - _g.getPtX(_pt3)) * (_yt - _g.getPtY(_pt3)) + - (_g.getPtY(_pt1) - _g.getPtY(_pt3)) * (_xt - _g.getPtX(_pt3)); + final double a3 = (_g.getPtX(_pt2) - _g.getPtX(_pt1)) * (_yt - _g.getPtY(_pt1)) + - (_g.getPtY(_pt2) - _g.getPtY(_pt1)) * (_xt - _g.getPtX(_pt1)); + final double cmax = (_g.getPtX(_pt3) - _g.getPtX(_pt2)) * (_g.getPtY(_pt1) - _g.getPtY(_pt2)) + - (_g.getPtY(_pt3) - _g.getPtY(_pt2)) * (_g.getPtX(_pt1) - _g.getPtX(_pt2)); + return (a1 * _v1 + a2 * _v2 + a3 * _v3) / cmax; + } + + private static double getMid(double _d1, double _d2, double _coef1, double _coef2) { + return (_d1 * _coef1 + _d2 * _coef2); + } + + public static double interpolate(int _idxElt, double _x, double _y, EfData _vxData, EfData _vyData, boolean _isVx, + EfGridInterface _grid) { + EfData norme = new EfDataInterpolationAdapter.Norm(_vxData, _vyData); + EfData theta = new EfDataInterpolationAdapter.Theta(_vxData, _vyData); + double n = doInterpolate(_x, _y, norme, _idxElt, _grid); + double t = doInterpolate(_x, _y, theta, _idxElt, _grid); + return _isVx ? InterpolationVectorContainer.getVx(n, t) : InterpolationVectorContainer.getVy(n, t); + } + + public static double interpolateDangerous(int _idxElt, double _x, double _y, EfData _value, EfGridInterface _grid) { + return doInterpolate(_x, _y, _value, _idxElt, _grid); + } + + private static double interpolateT3(final double _xt, final double _yt, final EfData _data, final int _ielt, + final EfGridInterface _g) { + if (_data.isElementData()) { return _data.getValue(_ielt); } + final EfElement elt = _g.getElement(_ielt); + final int i1 = elt.getPtIndex(0); + final int i2 = elt.getPtIndex(1); + final int i3 = elt.getPtIndex(2); + return doInterpolateTriangle(_xt, _yt, _data.getValue(i1), _data.getValue(i2), _data.getValue(i3), i1, i2, i3, _g); + + } + + EfGridData data_; + + final InterpolationVectorContainer vect_; + + public EfGridDataInterpolator(final EfGridData _data) { + this(_data, null); + } + + public EfGridDataInterpolator(final EfGridData _data, final InterpolationVectorContainer _vect) { + super(); + data_ = _data; + vect_ = _vect; + } + + /** + * @return the data + */ + public EfGridData getData() { + return data_; + } + + public double getMidValue(int _pt1, int _pt2, CtuluVariable _v, int _tIdx) throws IOException { + return getValue(_pt1, _pt2, 0.5, 0.5, _v, _tIdx); + + } + + public double getValue(int _pt1, int _pt2, double _coef1, double _coef2, CtuluVariable _v, int _tIdx) + throws IOException { + if (isVect(_v)) { + + CtuluVariable vx = vect_.getVxSafe(_v); + CtuluVariable vy = vect_.getVySafe(_v);; + double vx1 = data_.getData(vx, _tIdx, _pt1); + double vx2 = data_.getData(vx, _tIdx, _pt2); + double vy1 = data_.getData(vy, _tIdx, _pt1); + double vy2 = data_.getData(vy, _tIdx, _pt2); + double n = getMid(InterpolationVectorContainer.getNorme(vx1, vy1), InterpolationVectorContainer + .getNorme(vx2, vy2), _coef1, _coef2); + double t = getMid(InterpolationVectorContainer.getTheta(vx1, vy1), InterpolationVectorContainer + .getTheta(vx2, vy2), _coef1, _coef2); + return vect_.isVx(_v) ? InterpolationVectorContainer.getVx(n, t) : InterpolationVectorContainer.getVy(n, t); + } + return getMid(data_.getData(_v, _tIdx, _pt1), data_.getData(_v, _tIdx, _pt2), _coef1, _coef2); + + } + + public InterpolationVectorContainer getVect() { + return vect_; + } + + public double interpolate(int _idxElt, double _x, double _y, CtuluVariable _value, int _tIdx) throws IOException { + EfData data = data_.getData(_value, _tIdx); + return interpolateFromValue(_idxElt, _x, _y, _value, data, _tIdx); + + } + + public double interpolateFromValue(int _idxElt, double _x, double _y, CtuluVariable _value, EfData _data, int _tIdx) + throws IOException { + EfData data = _data; + if (!data.isElementData() && isVect(_value)) { + CtuluVariable vx = null; + CtuluVariable vy = null; + EfData vxData = null; + EfData vyData = null; + boolean isVx = true; + if (vect_.isVx(_value)) { + vx = _value; + vy = vect_.getVy(vx); + vxData = data; + vyData = data_.getData(vy, _tIdx); + } else { + isVx = false; + vy = _value; + vx = vect_.getVx(vy); + vyData = data; + vxData = data_.getData(vx, _tIdx); + } + return interpolate(_idxElt, _x, _y, vxData, vyData, isVx, data_.getGrid()); + + // double norme=InterpolationVectorContainer.getNorme(, _vy) + + } + return doInterpolate(_x, _y, data, _idxElt, data_.getGrid()); + + } + + protected boolean isVect(CtuluVariable _o) { + return vect_ != null && vect_.isVect(_o); + } + +} Property changes on: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolator.java ___________________________________________________________________ Added: svn:mergeinfo + Deleted: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolatorDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolatorDefault.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfGridDataInterpolatorDefault.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -1,34 +0,0 @@ -/* - * @creation 30 mai 07 - * @modification $Date: 2007-06-05 08:59:14 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.dodico.ef.interpolation; - -import org.fudaa.dodico.ef.EfGridData; - -/** - * @author fred deniger - * @version $Id: EfGridDataInterpolatorDefault.java,v 1.1 2007-06-05 08:59:14 deniger Exp $ - */ -public class EfGridDataInterpolatorDefault implements EfGridDataInterpolator { - final EfGridData data_; - final EfInterpolator interpolator_; - - public EfGridDataInterpolatorDefault(final EfGridData _data, final EfInterpolator _interpolator) { - super(); - data_ = _data; - interpolator_ = _interpolator; - } - - public EfGridData getGridData() { - return data_; - } - - public EfInterpolator getInterpolator() { - return interpolator_; - } - -} Deleted: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolator.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/interpolation/EfInterpolator.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -1,203 +0,0 @@ -/* - * @creation 30 mai 07 - * @modification $Date: 2007-06-11 13:04:06 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.dodico.ef.interpolation; - -import java.io.IOException; - -import org.fudaa.ctulu.CtuluLibGeometrie; -import org.fudaa.ctulu.CtuluVariable; -import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; - -import org.fudaa.dodico.ef.EfData; -import org.fudaa.dodico.ef.EfDataInterpolationAdapter; -import org.fudaa.dodico.ef.EfElement; -import org.fudaa.dodico.ef.EfElementType; -import org.fudaa.dodico.ef.EfGridData; -import org.fudaa.dodico.ef.EfGridInterface; - -/** - * @author fred deniger - * @version $Id: EfInterpolator.java,v 1.2 2007-06-11 13:04:06 deniger Exp $ - */ -public class EfInterpolator { - - final InterpolationVectorContainer vect_; - final EfGridData data_; - - public EfInterpolator(final EfGridData _data, final InterpolationVectorContainer _vect) { - super(); - data_ = _data; - vect_ = _vect; - } - - public InterpolationVectorContainer getVect() { - return vect_; - } - - protected boolean isVect(CtuluVariable _o) { - return vect_ != null && vect_.isVect(_o); - } - - public static double interpolate(int _idxElt, double _x, double _y, EfData _vxData, EfData _vyData, boolean _isVx, - EfGridInterface _grid) { - EfData norme = new EfDataInterpolationAdapter.Norm(_vxData, _vyData); - EfData theta = new EfDataInterpolationAdapter.Theta(_vxData, _vyData); - double n = doInterpolate(_x, _y, norme, _idxElt, _grid); - double t = doInterpolate(_x, _y, theta, _idxElt, _grid); - return _isVx ? InterpolationVectorContainer.getVx(n, t) : InterpolationVectorContainer.getVy(n, t); - } - - public static double interpolateDangerous(int _idxElt, double _x, double _y, EfData _value, EfGridInterface _grid) { - return doInterpolate(_x, _y, _value, _idxElt, _grid); - } - - public double getValue(int _pt1, int _pt2, double _coef1, double _coef2, CtuluVariable _v, int _tIdx) - throws IOException { - if (isVect(_v)) { - - CtuluVariable vx = vect_.getVxSafe(_v); - CtuluVariable vy = vect_.getVySafe(_v);; - double vx1 = data_.getData(vx, _tIdx, _pt1); - double vx2 = data_.getData(vx, _tIdx, _pt2); - double vy1 = data_.getData(vy, _tIdx, _pt1); - double vy2 = data_.getData(vy, _tIdx, _pt2); - double n = getMid(InterpolationVectorContainer.getNorme(vx1, vy1), InterpolationVectorContainer - .getNorme(vx2, vy2), _coef1, _coef2); - double t = getMid(InterpolationVectorContainer.getTheta(vx1, vy1), InterpolationVectorContainer - .getTheta(vx2, vy2), _coef1, _coef2); - return vect_.isVx(_v) ? InterpolationVectorContainer.getVx(n, t) : InterpolationVectorContainer.getVy(n, t); - } - return getMid(data_.getData(_v, _tIdx, _pt1), data_.getData(_v, _tIdx, _pt2), _coef1, _coef2); - - } - - public double getMidValue(int _pt1, int _pt2, CtuluVariable _v, int _tIdx) throws IOException { - return getValue(_pt1, _pt2, 0.5, 0.5, _v, _tIdx); - - } - - private static double getMid(double _d1, double _d2, double _coef1, double _coef2) { - return (_d1 * _coef1 + _d2 * _coef2); - } - - public double interpolate(int _idxElt, double _x, double _y, CtuluVariable _value, int _tIdx) throws IOException { - EfData data = data_.getData(_value, _tIdx); - return interpolateFromValue(_idxElt, _x, _y, _value, data, _tIdx); - - } - - public double interpolateFromValue(int _idxElt, double _x, double _y, CtuluVariable _value, EfData _data, int _tIdx) - throws IOException { - EfData data = _data; - if (!data.isElementData() && isVect(_value)) { - CtuluVariable vx = null; - CtuluVariable vy = null; - EfData vxData = null; - EfData vyData = null; - boolean isVx = true; - if (vect_.isVx(_value)) { - vx = _value; - vy = vect_.getVy(vx); - vxData = data; - vyData = data_.getData(vy, _tIdx); - } else { - isVx = false; - vy = _value; - vx = vect_.getVx(vy); - vyData = data; - vxData = data_.getData(vx, _tIdx); - } - return interpolate(_idxElt, _x, _y, vxData, vyData, isVx, data_.getGrid()); - - // double norme=InterpolationVectorContainer.getNorme(, _vy) - - } - return doInterpolate(_x, _y, data, _idxElt, data_.getGrid()); - - } - - private static double interpolateT3(final double _xt, final double _yt, final EfData _data, final int _ielt, - final EfGridInterface _g) { - if (_data.isElementData()) { - return _data.getValue(_ielt); - } - final EfElement elt = _g.getElement(_ielt); - final int i1 = elt.getPtIndex(0); - final int i2 = elt.getPtIndex(1); - final int i3 = elt.getPtIndex(2); - return doInterpolateTriangle(_xt, _yt, _data.getValue(i1), _data.getValue(i2), _data.getValue(i3), i1, i2, i3, _g); - - } - - private static double doInterpolateT6(final double _xt, final double _yt, final EfData _data, final int _ielt, - final EfGridInterface _g) { - if (_data.isElementData()) { - return _data.getValue(_ielt); - } - final EfElement elt = _g.getElement(_ielt); - final int i1 = elt.getPtIndex(0); - final int i2 = elt.getPtIndex(2); - final int i3 = elt.getPtIndex(4); - return doInterpolateTriangle(_xt, _yt, _data.getValue(i1), _data.getValue(i2), _data.getValue(i3), i1, i2, i3, _g); - } - - private static double doInterpolate(final double _xt, final double _yt, final EfData _data, final int _ielt, - final EfGridInterface _g) { - if (_data.isElementData()) { - return _data.getValue(_ielt); - } - final EfElement elt = _g.getElement(_ielt); - if (elt.getDefaultType() == EfElementType.T3) { - return interpolateT3(_xt, _yt, _data, _ielt, _g); - } else if (elt.getDefaultType() == EfElementType.T6) { - return doInterpolateT6(_xt, _yt, _data, _ielt, _g); - } - return doInterpolateOther(_xt, _yt, _data, _ielt, _g); - } - - private static double doInterpolateOther(final double _xt, final double _yt, final EfData _data, final int _ielt, - final EfGridInterface _g) { - if (_data.isElementData()) { - return _data.getValue(_ielt); - } - final EfElement elt = _g.getElement(_ielt); - double num = 0; - double denom = 0; - // esp est la distance min au dessous de laquelle 2 points sont consid\xE9r\xE9s comme identiques - // on calcul les distances au carre, donc on met l'epsilon au carre - final double eps = 1E-4 * 1E-4; - for (int i = elt.getPtNb() - 1; i >= 0; i--) { - final int idx = elt.getPtIndex(i); - final double dist = CtuluLibGeometrie.getD2(_xt, _yt, _g.getPtX(idx), _g.getPtY(idx)); - // on suppose que si la distance est inf\xE9rieur au dixieme de millim\xE8tre, on prend le r\xE9sultat tel quel. - if (dist < eps) { - return _data.getValue(idx); - } - num += _data.getValue(idx) / dist; - denom += 1 / dist; - } - if (denom == 0) { - throw new IllegalAccessError("ne devrait jamais arriv\xE9"); - } - return num / denom; - } - - private static double doInterpolateTriangle(final double _xt, final double _yt, final double _v1, final double _v2, - final double _v3, final int _pt1, final int _pt2, final int _pt3, final EfGridInterface _g) { - final double a1 = (_g.getPtX(_pt3) - _g.getPtX(_pt2)) * (_yt - _g.getPtY(_pt2)) - - (_g.getPtY(_pt3) - _g.getPtY(_pt2)) * (_xt - _g.getPtX(_pt2)); - final double a2 = (_g.getPtX(_pt1) - _g.getPtX(_pt3)) * (_yt - _g.getPtY(_pt3)) - - (_g.getPtY(_pt1) - _g.getPtY(_pt3)) * (_xt - _g.getPtX(_pt3)); - final double a3 = (_g.getPtX(_pt2) - _g.getPtX(_pt1)) * (_yt - _g.getPtY(_pt1)) - - (_g.getPtY(_pt2) - _g.getPtY(_pt1)) * (_xt - _g.getPtX(_pt1)); - final double cmax = (_g.getPtX(_pt3) - _g.getPtX(_pt2)) * (_g.getPtY(_pt1) - _g.getPtY(_pt2)) - - (_g.getPtY(_pt3) - _g.getPtY(_pt2)) * (_g.getPtX(_pt1) - _g.getPtX(_pt2)); - return (a1 * _v1 + a2 * _v2 + a3 * _v3) / cmax; - } - -} Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexHelper.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexHelper.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexHelper.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -0,0 +1,63 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.operation; + +import org.fudaa.ctulu.CtuluListSelection; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.dodico.ef.EfGridInterface; + +/** + * @author deniger + */ +public final class EfIndexHelper { + + private EfIndexHelper() { + + } + + /** + * @param _grid + * @param _x le x + * @param _y le y + * @param _prog progression + * @return l'indice de l'element englobant ou -1 si non trouve + */ + public static int getElementEnglobant(EfGridInterface _grid, double _x, double _y, ProgressionInterface _prog) { + if (_grid.getIndex() == null) { + _grid.createIndexRegular(_prog); + } + final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(_grid, _x, _y, 0); + _grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_x, _y, 0), visitor); + return visitor.isIn() ? visitor.getSelected() : -1; + } + + /** + * @param _grid + * @param _x le x + * @param _y le y + * @param _tolerance la tolerance pour la recherche + * @param _prog la barre de progression + * @return la selection trouvee + */ + public static CtuluListSelection getNearestNode(EfGridInterface _grid, double _x, double _y, double _tolerance, + ProgressionInterface _prog) { + if (_grid.getIndex() == null) { + _grid.createIndexRegular(_prog); + } + final EfIndexVisitorNearestNode visitor = new EfIndexVisitorNearestNode(_grid, _x, _y, _tolerance); + _grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_x, _y, _tolerance), visitor); + return visitor.getSelection(); + } + + public static CtuluListSelection getNearestElement(EfGridInterface _grid, double _x, double _y, double _tolerance, + ProgressionInterface _prog) { + if (_grid.getIndex() == null) { + _grid.createIndexRegular(_prog); + } + final EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(_grid, _x, _y, _tolerance); + _grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_x, _y, _tolerance), visitor); + return visitor.getSelection(); + } +} Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestElt.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestElt.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestElt.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -25,7 +25,7 @@ private int eltSelected_ = -1; private boolean isIn_; private double minDist_ = -1; - private final double maxSquareDistance_; + // private final double maxSquareDistance_; private final double maxDistance_; private final double x_; private final double y_; @@ -41,7 +41,7 @@ super(); grid_ = _grid; maxDistance_ = _dist; - maxSquareDistance_ = _dist < 0 ? -1D : (_dist * _dist); + // maxSquareDistance_ = _dist < 0 ? -1D : (_dist * _dist); x_ = _x; y_ = _y; } @@ -59,9 +59,9 @@ isIn_ = true; eltSelected_ = _idxElt; } else { - final double dist = el.getDistAuCarre(x_, y_, grid_); - // si maxSquareDistance_ est n\xE9gatif, l'utilisateur ne veut pas prendre en compte la distance max. - if ((maxSquareDistance_ < 0 || dist <= maxSquareDistance_) && (eltSelected_ < 0 || dist < minDist_)) { + final double dist = el.getDist(x_, y_, grid_); + // si maxDistance_ est n\xE9gatif, l'utilisateur ne veut pas prendre en compte la distance max. + if ((maxDistance_ < 0 || dist <= maxDistance_) && (eltSelected_ < 0 || dist < minDist_)) { minDist_ = dist; eltSelected_ = _idxElt; } @@ -87,7 +87,7 @@ } public double getMinDist() { - return Math.sqrt(minDist_); + return minDist_; } public int getSelected() { Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestNode.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestNode.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfIndexVisitorNearestNode.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -32,7 +32,7 @@ private final EfGridInterface grid_; private int selected_ = -1; private double minDist_ = -1; - private final double maxSquareDistance_; +// private final double maxSquareDistance_; private final double maxDistance_; private final double x_; @@ -48,7 +48,7 @@ super(); grid_ = _grid; maxDistance_ = _maxDist; - maxSquareDistance_ = _maxDist < 0 ? -1D : (_maxDist * _maxDist); +// maxSquareDistance_ = _maxDist < 0 ? -1D : (_maxDist * _maxDist); x_ = _x; y_ = _y; } @@ -63,8 +63,8 @@ final EfElement el = grid_.getElement(_idxElt); for (int i = el.getPtNb() - 1; i >= 0; i--) { final int idx = el.getPtIndex(i); - final double dist = CtuluLibGeometrie.getD2(x_, y_, grid_.getPtX(idx), grid_.getPtY(idx)); - if ((maxSquareDistance_ < 0 || dist <= maxSquareDistance_) && (selected_ < 0 || dist < minDist_)) { + final double dist = CtuluLibGeometrie.getDistance(x_, y_, grid_.getPtX(idx), grid_.getPtY(idx)); + if ((maxDistance_ < 0 || dist <= maxDistance_) && (selected_ < 0 || dist < minDist_)) { minDist_ = dist; selected_ = idx; } @@ -73,7 +73,7 @@ } public double getMinDist() { - return Math.sqrt(minDist_); + return minDist_; } public int getNodeSelected() { Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineFlowrateResult.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineFlowrateResult.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineFlowrateResult.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -63,7 +63,7 @@ // le vecteur de x1 vers x2 double vxs = (x2_ - x1_); double vys = (y2_ - y1_); - double norme = Math.sqrt(vxs * vxs + vys * vys); + double norme = Math.hypot(vxs, vys); // norme nulle ->pas de vitesse if (norme == 0) return 0; // le coupe v, vs doit etre dans le sens trigo @@ -123,8 +123,8 @@ idx++; calculator_.x2_ = _res.getIntersect(idx).getX(); calculator_.y2_ = _res.getIntersect(idx).getY(); -// n = _res.getIntersect(idx).getValueBadInterpolation(_vx); -// t = _res.getIntersect(idx).getValueBadInterpolation(_vy); + // n = _res.getIntersect(idx).getValueBadInterpolation(_vx); + // t = _res.getIntersect(idx).getValueBadInterpolation(_vy); calculator_.vx2_ = _res.getIntersect(idx).getValueBadInterpolation(_vx); calculator_.vy2_ = _res.getIntersect(idx).getValueBadInterpolation(_vy); calculator_.h2_ = _res.getIntersect(idx).getValueBadInterpolation(_h); Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersection.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersection.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersection.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -22,7 +22,7 @@ import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.ef.EfNeighborMesh; import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; public abstract class EfLineIntersection implements EfLineIntersectionI { @@ -76,16 +76,16 @@ if (parent_ == null) throw new IllegalAccessError("pas de parent"); EfGridDataInterpolator data = parent_.getGridData(); try { - if (data.getGridData().isElementVar(_var)) { + if (data.getData().isElementVar(_var)) { buildAdjacentMeshes(); - if (adjacentMesh_[1] < 0) return data.getGridData().getData(_var, _tIdx, adjacentMesh_[0]); - return data.getInterpolator().getMidValue(adjacentMesh_[0], adjacentMesh_[1], _var, _tIdx); + if (adjacentMesh_[1] < 0) return data.getData().getData(_var, _tIdx, adjacentMesh_[0]); + return data.getMidValue(adjacentMesh_[0], adjacentMesh_[1], _var, _tIdx); } double d1 = getD1(); double d2 = getD2(); - return data.getInterpolator().getValue(i1_, i2_, d1 / (d1 + d2), d2 / (d1 + d2), _var, _tIdx); + return data.getValue(i1_, i2_, d1 / (d1 + d2), d2 / (d1 + d2), _var, _tIdx); } catch (IllegalAccessError _evt) { FuLog.error(_evt); @@ -305,9 +305,9 @@ if (!isRealIntersection()) throw new IllegalAccessError("non accessible !"); EfGridDataInterpolator data = parent_.getGridData(); try { - if (data.getGridData().isElementVar(_var)) return data.getGridData().getData(_var, _tIdx, ielt_); + if (data.getData().isElementVar(_var)) return data.getData().getData(_var, _tIdx, ielt_); - return data.getInterpolator().interpolate(ielt_, x_, y_, _var, _tIdx); + return data.interpolate(ielt_, x_, y_, _var, _tIdx); } catch (IOException _evt) { FuLog.error(_evt); } @@ -317,7 +317,7 @@ public double getValueBadInterpolation(EfData _d) { if (!isRealIntersection()) throw new IllegalAccessError("non accessible !"); if (_d.isElementData()) return _d.getValue(ielt_); - return EfInterpolator.interpolateDangerous(ielt_, x_, y_, _d, parent_.getGrid()); + return EfGridDataInterpolator.interpolateDangerous(ielt_, x_, y_, _d, parent_.getGrid()); } public double getX() { @@ -364,12 +364,12 @@ public double getValue(CtuluVariable _var, int _tIdx) { EfGridDataInterpolator data = parent_.getGridData(); try { - if (data.getGridData().isElementVar(_var)) { + if (data.getData().isElementVar(_var)) { parent_.buildNeighbor(null); return parent_.getNeighbor().getAverageForNode(_var, ptIdx_, _tIdx, parent_.getGridData()); } - return data.getGridData().getData(_var, _tIdx, ptIdx_); + return data.getData().getData(_var, _tIdx, ptIdx_); } catch (IllegalAccessError _evt) { FuLog.error(_evt); Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionParentDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionParentDefault.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionParentDefault.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -0,0 +1,42 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.operation; + +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.ef.EfNeighborMesh; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; + +public class EfLineIntersectionParentDefault implements EfLineIntersectionParent { + + final EfGridDataInterpolator data_; + + protected EfLineIntersectionParentDefault(final EfGridDataInterpolator _interpolator) { + data_ = _interpolator; + + } + + public void buildNeighbor(ProgressionInterface _prog) { + EfGridInterface grid = data_.getData().getGrid(); + EfNeighborMesh neighbor = grid.getNeighbors(); + if (neighbor == null) { + grid.computeNeighbord(_prog, null); + } + + } + + public EfGridInterface getGrid() { + return data_.getData().getGrid(); + } + + public EfGridDataInterpolator getGridData() { + return data_; + } + + public EfNeighborMesh getNeighbor() { + return data_.getData().getGrid().getNeighbors(); + } + +} \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsCorrectionActivity.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsCorrectionActivity.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsCorrectionActivity.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -12,6 +12,7 @@ import java.util.BitSet; import java.util.List; +import org.fudaa.ctulu.CtuluActivity; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.ProgressionUpdater; @@ -19,10 +20,17 @@ * @author fred deniger * @version $Id: EfLineIntersectionsCorrectionActivity.java,v 1.1 2007-06-13 12:55:42 deniger Exp $ */ -public class EfLineIntersectionsCorrectionActivity { +public class EfLineIntersectionsCorrectionActivity implements CtuluActivity { + private boolean stop_; + + public void stop() { + stop_ = true; + } + public EfLineIntersectionsResultsI correct(EfLineIntersectionsResultsI _res, EfLineIntersectionsCorrectionTester _tester, int _tidx, ProgressionInterface _prog) { + stop_ = false; if (_tester == null || _res == null || _res.isEmpty()) return _res; int nbNew = _res.getNbIntersect() + 15; BitSet isOut = new BitSet(nbNew); @@ -35,6 +43,7 @@ destIntersection.add(_res.getIntersect(0)); // on parcourt les segment for (int i = 0; i < nbSeg; i++) { + if (stop_) return null; // le tester va ajouter des intersections si n\xE9cessaire: // on ne fait le test que pour les segments internes. boolean isSegmentOut = _res.isSegmentOut(i); @@ -68,6 +77,7 @@ .toArray(new EfLineIntersection[destIntersection.size()]), isOut); } + private static class AdapterResults implements EfLineIntersectionsResultsI { final EfLineIntersectionsResultsI res_; final EfLineIntersection[] inters_; Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsResultsMng.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsResultsMng.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectionsResultsMng.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -145,7 +145,7 @@ } public void buildNeighbor(final ProgressionInterface _prog) { - neighbor_ = EfNeighborMesh.compute(grid_.getGridData().getGrid(), _prog); + neighbor_ = EfNeighborMesh.compute(grid_.getData().getGrid(), _prog); } public EfLineIntersectionsResultsBuilder createBuilder(EfLineIntersectionsCorrectionTester _tester) { @@ -190,7 +190,7 @@ } public EfGridInterface getGrid() { - return grid_.getGridData().getGrid(); + return grid_.getData().getGrid(); } public EfGridDataInterpolator getGridData() { Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectorActivity.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectorActivity.java 2008-10-30 17:06:38 UTC (rev 4116) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineIntersectorActivity.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -16,14 +16,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import com.vividsolutions.jts.algorithm.LineIntersector; -import com.vividsolutions.jts.algorithm.PointInRing; -import com.vividsolutions.jts.algorithm.RobustLineIntersector; -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.Envelope; -import com.vividsolutions.jts.geom.LineString; -import com.vividsolutions.jts.geom.PrecisionModel; - import org.fudaa.ctulu.CtuluActivity; import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluLibGeometrie; @@ -33,7 +25,6 @@ import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISPolygone; import org.fudaa.ctulu.interpolation.InterpolationVectorContainer; - import org.fudaa.dodico.commun.DodicoLib; import org.fudaa.dodico.ef.EfElement; import org.fudaa.dodico.ef.EfGridData; @@ -41,12 +32,18 @@ import org.fudaa.dodico.ef.EfIndexInterface; import org.fudaa.dodico.ef.EfNeighborMesh; import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; -import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolatorDefault; -import org.fudaa.dodico.ef.interpolation.EfInterpolator; import org.fudaa.dodico.ef.operation.EfLineIntersection.ItemEdge; import org.fudaa.dodico.ef.operation.EfLineIntersection.ItemNode; import org.fudaa.dodico.ef.operation.EfLineIntersectionsResultsMng.DistComparator; +import com.vividsolutions.jts.algorithm.LineIntersector; +import com.vividsolutions.jts.algorithm.PointInRing; +import com.vividsolutions.jts.algorithm.RobustLineIntersector; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.Envelope; +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.PrecisionModel; + /** * @author fred deniger * @version $Id: EfLineIntersectorActivity.java,v 1.5 2007-06-20 12:21:53 deniger Exp $ @@ -72,9 +69,7 @@ } void addPt(int _idx) { - if (isComplete()) { - throw new IllegalAccessError("on doit jamais arriv\xE9 ici !"); - } + if (isComplete()) { throw new IllegalAccessError("on doit jamais arriv\xE9 ici !"); } if (!issetItem1()) { item1_ = new ItemNode(_idx); item1_.setParent(parent_); @@ -128,29 +123,24 @@ final TempResult tmp_ = new TempResult(this); - public EfLineIntersectorActivity(EfGridData _grid, EfInterpolator _inter) { - this(new EfGridDataInterpolatorDefault(_grid, _inter)); - - } - /** * @param _grid * @param _vects peut etre null */ public EfLineIntersectorActivity(EfGridData _grid, InterpolationVectorContainer _vects) { - this(new EfGridDataInterpolatorDefault(_grid, new EfInterpolator(_grid, _vects))); + this(new EfGridDataInterpolator(_grid, _vects)); } - + public EfLineIntersectorActivity(EfGridData _grid) { - this(new EfGridDataInterpolatorDefault(_grid, new EfInterpolator(_grid, null))); + this(new EfGridDataInterpolator(_grid, null)); } public EfLineIntersectorActivity(EfGridDataInterpolator _grid) { super(); gridData_ = _grid; - grid_ = gridData_.getGridData().getGrid(); + grid_ = gridData_.getData().getGrid(); intersector_ = new RobustLineIntersector(); // mm intersector_.setPrecisionModel(new PrecisionModel(1E4)); @@ -257,19 +247,13 @@ } } - protected void addIntersectionForSegExtremite(List _res, double _x, double _y, EfIndexVisitorHashSet _eltSelected) { + public void addIntersectionForSegExtremite(List _res, double _x, double _y, EfIndexVisitorHashSet _eltSelected) { final int startElt = getContainingElement(_x, _y, _eltSelected.getIterator()); EfLineIntersection.ItemInitial init = new EfLineIntersection.ItemInitial(this); if (startElt >= 0) { EfElement elt = grid_.getElement(startElt); - int idxSelected = -1; double tolerance = getTolerance(); - for (int i = elt.getPtNb() - 1; i >= 0 && idxSelected < 0; i--) { - final int idx = elt.getPtIndex(i); - if (CtuluLibGeometrie.getDistance(_x, _y, grid_.getPtX(idx), grid_.getPtY(idx)) < tolerance) { - idxSelected = idx; - } - } + int idxSelected = getSelectedNodeIdx(_x, _y, elt, tolerance); if (idxSelected >= 0) { init.item1_ = new EfLineIntersection.ItemNode(idxSelected); } else { @@ -297,19 +281,12 @@ _res.add(init); } + private int getSelectedNodeIdx(double _x, double _y, EfElement elt, double tolerance) { + return EfLineSingleIntersectFinder.getSelectedNodeIdx(grid_, _x, _y, elt, tolerance); + } + protected int getContainingElement(double _x, double _y, TIntIterator _it) { - EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(grid_, _x, _y, 1e-4); - while (_it.hasNext()) { - visitor.visitItem(_it.next()); - } - int idx = visitor.getSelected(); - // un element proche a \xE9t\xE9 trouv\xE9 mais le point (_x,_y) n'appartient pas \xE0 ce point - if (idx >= 0 && !visitor.isIn()) { - // on tol\xE8re une erreur de 1E-3: si la distance entre l'element et le point est inferieur a 1E-3 on renvoie quand - // meme cet element - idx = (grid_.getElement(idx).getDist(_x, _y, grid_) < getTolerance()) ? idx : -1; - } - return idx; + return EfLineSingleIntersectFinder.getContainingElement(grid_, _x, _y, _it, getTolerance()); } Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineSingleIntersectFinder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineSingleIntersectFinder.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfLineSingleIntersectFinder.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -0,0 +1,101 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.operation; + +import gnu.trove.TIntIterator; + +import org.fudaa.ctulu.CtuluLibGeometrie; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.dodico.ef.EfElement; +import org.fudaa.dodico.ef.EfGridInterface; + +/** + * @author deniger + */ +public class EfLineSingleIntersectFinder { + EfIndexVisitorHashSet _eltSelected = new EfIndexVisitorHashSet(); + + EfGridInterface grid_; + + double tolerance_ = 1E-3; + + public EfLineIntersection findIntersectionFor(double _x, double _y, ProgressionInterface _prog) { + final int startElt = EfIndexHelper.getElementEnglobant(grid_, _x, _y, _prog); + if (startElt >= 0) { + EfElement elt = grid_.getElement(startElt); + double tolerance = getTolerance(); + int idxSelected = getSelectedNodeIdx(_x, _y, elt); + if (idxSelected >= 0) { + return new EfLineIntersection.ItemNode(idxSelected); + } else { + // sur une arete ? + for (int i = 0; i < elt.getNbEdge(); i++) { + int i1 = elt.getEdgePt1(i); + int i2 = elt.getEdgePt2(i); + if (CtuluLibGeometrie.distanceFromSegment(grid_.getPtX(i1), grid_.getPtY(i1), grid_.getPtX(i2), grid_ + .getPtY(i2), _x, _y) <= tolerance) { return new EfLineIntersection.ItemEdge(i1, i2, _x, _y); } + } + // pas une arete + return new EfLineIntersection.ItemMesh(startElt, _x, _y); + } + + } else { + return new EfLineIntersection.ItemNoIntersect(_x, _y); + } + + } + + protected int getContainingElement(double _x, double _y, TIntIterator _it) { + return getContainingElement(grid_, _x, _y, _it, getTolerance()); + + } + + private int getSelectedNodeIdx(double _x, double _y, EfElement elt) { + return getSelectedNodeIdx(grid_, _x, _y, elt, getTolerance()); + } + + /** + * @return the tolerance + */ + public double getTolerance() { + return tolerance_; + } + + /** + * @param _tolerance the tolerance to set + */ + public void setTolerance(double _tolerance) { + tolerance_ = _tolerance; + } + + protected static int getContainingElement(EfGridInterface _grid, double _x, double _y, TIntIterator _it, + double _tolerance) { + EfIndexVisitorNearestElt visitor = new EfIndexVisitorNearestElt(_grid, _x, _y, _tolerance / 10); + while (_it.hasNext()) { + visitor.visitItem(_it.next()); + } + int idx = visitor.getSelected(); + // un element proche a \xE9t\xE9 trouv\xE9 mais le point (_x,_y) n'appartient pas \xE0 ce point + if (idx >= 0 && !visitor.isIn()) { + // on tol\xE8re une erreur de 1E-3: si la distance entre l'element et le point est inferieur a 1E-3 on renvoie quand + // meme cet element + idx = (_grid.getElement(idx).getDist(_x, _y, _grid) < _tolerance) ? idx : -1; + } + return idx; + + } + + static int getSelectedNodeIdx(EfGridInterface _grid, double _x, double _y, EfElement elt, double tolerance) { + int idxSelected = -1; + for (int i = elt.getPtNb() - 1; i >= 0 && idxSelected < 0; i--) { + final int idx = elt.getPtIndex(i); + if (CtuluLibGeometrie.getDistance(_x, _y, _grid.getPtX(idx), _grid.getPtY(idx)) < tolerance) { + idxSelected = idx; + } + } + return idxSelected; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireActivity.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireActivity.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/operation/EfTrajectoireActivity.java 2008-10-30 17:07:44 UTC (rev 4117) @@ -0,0 +1,298 @@ +package org.fudaa.dodico.ef.operation; + +import gnu.trove.TIntHashSet; +import gnu.trove.TIntIterator; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.fudaa.ctulu.CtuluActivity; +import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.CtuluLibGeometrie; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.gis.GISGeometryFactory; +import org.fudaa.dodico.commun.DodicoLib; +import org.fudaa.dodico.ef.EfElement; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.dodico.ef.decorator.EfGridDataCacheOneTimeDecorator; +import org.fudaa.dodico.ef.decorator.EfGridDataTimeDecorator; +import org.fudaa.dodico.ef.interpolation.EfGridDataInterpolator; + +import com.memoire.fu.FuLog; +import com.vividsolutions.jts.geom.Coordinate; + +/** + * Algorithme de Calcul les lignes de courants TODO mettre la classe dans EF il y a la classe qui est charge de faire le + * calcul qui doit implementer CtulActivity et la classe qui implemente EfLineIntersectionParent. + * + * @author Adrien Hadoux + */ +public class EfTrajectoireActivity implements CtuluActivity { + + /** + * @return the tester + */ + public EfLineIntersectionsCorrectionTester getTester() { + return tester_; + } + + /** + * @param _tester the tester to set + */ + public void setTester(EfLineIntersectionsCorrectionTester _tester) { + tester_ = _tester; + } + + final EfLineIntersectionsCorrectionTester lineIntersectCorrect_; + + /** + * Liste des intersections r\xE9sultats + */ + ArrayList<EfLineIntersection> listeIntersection_ = null; + + // List<Coordinate> listePointsARepartir_ = new ArrayList<Coordinate>(); // les GrPoint ne sont utilisee que pour + + // l'affichage + ProgressionInterface prog_; + + EfGridDataInterpolator data_; + EfLineIntersectorActivity intersectFinder_; + EfLineIntersectionsCorrectionActivity correctionActivity = new EfLineIntersectionsCorrectionActivity(); + EfLineIntersectionsCorrectionTester tester_; + + double[] timeStep_; + + /** + * @param _interpolator ne doit pas etre null: contient les donn\xE9es + * @param _timeStep requis si un calcul en mode trajectoire est demande + */ + public EfTrajectoireActivity(final EfGridData _data, final double[] _timeStep) { + this(new EfGridDataInterpolator(_data), null, _timeStep); + } + + /** + * @param _interpolator ne doit pas etre null: contient les donn\xE9es + * @param _lineIntersectTester peut etre null: correction des intersections + */ + public EfTrajectoireActivity(final EfGridDataInterpolator _interpolator, + final EfLineIntersectionsCorrectionTester _lineIntersectTester, final double[] _timeStep) { + data_ = _interpolator; + tester_ = _lineIntersectTester; + lineIntersectCorrect_ = _lineIntersectTester; + timeStep_ = _timeStep; + intersectFinder_ = new EfLineIntersectorActivity(data_); + if (CtuluLibArray.isEmpty(timeStep_)) throw new IllegalArgumentException( + "on ne peut pas calculer un trajectoire sans les pas de temps"); + } + + protected boolean mustGoOn(final EfTrajectoireResultBuilder[] enCours) { + for (int i = 0; i < enCours.length; i++) { + if (enCours[i] != null) { return true; } + + } + return false; + + } + + /** + * Methode appel\xE9e par l'interface de calcul des lignes de courant. + * + * @param init_ point de depart + * @param dureeIntegration_ duree totale de l'integration en secondes + * @param indicePdt indice du pas de temps + * @param finesse coefficient de finesse double + * @param vx la variable a utiliser + * @param _prog l'interface de progression, peut etre null + * @return + */ + public List<EfTrajectoireResultBuilder> computeLigneCourant(final EfTrajectoireParameters _data, + final ProgressionInterface _prog, final CtuluAnalyze _analyse) { + stop_ = false; + final double first = timeStep_[0]; + final double last = timeStep_[timeStep_.length - 1]; + if (_data.firstTimeStep_ < first || _data.firstTimeStep_ > last) { + _analyse.addFatalError(DodicoLib.getS("Le premier pas de temps n'appartient pas \xE0 la simulation")); + return null; + } + if (_data.isTrajectoire()) { + final double endTime = _data.firstTimeStep_ + _data.dureeIntegration_; + if (endTime < first || endTime > last) { + _analyse.addFatalError(DodicoLib.getS("La dur\xE9e d'int\xE9gration d\xE9passe la dur\xE9e de la simulation")); + return null; + } + } + prog_ = _prog; + if (_data.points_ == null) return Collections.emptyList(); + final List<EfTrajectoireResultBuilder> res = new ArrayList<EfTrajectoireResultBuilder>(_data.points_.size()); + EfTrajectoireGridDataProvider provider = null; + if (_data.isLigneDeCourant) { + provider = new EfTrajectoireGridDataProvider.LigneDeCourant(_data.firstTimeStepIdx_, data_.getData(), _data.vx, + _data.vy); + } else { + if (CtuluLibArray.isEmpty(timeStep_)) throw new IllegalArgumentException( + "on ne peut pas calculer un trajectoire sans les pas de temps"); + + provider = new EfTrajectoireGridDataProvider.Trajectoire(timeStep_, data_.getData()); + } + // on initialise les resultats + final EfGridDataInterpolator data = new EfGridDataInterpolator(new EfGridDataCacheOneTimeDecorator(data_.getData(), + _data.firstTimeStepIdx_, _data.vx, _data.vy)); + final EfLineSingleIntersectFinder finder = new EfLineSingleIntersectFinder(); + for (final Coordinate coord : _data.points_) { + if (stop_) return res; + final EfTrajectoireResultBuilder builder = new EfTrajectoireResultBuilder(_data, provider); + final EfLineIntersection inter = finder.findIntersectionFor(coord.x, coord.y, _prog); + builder.addFirstIntersection(inter, _data.firstTimeStep_, data); + res.add(builder); + } + + final EfTrajectoireResultBuilder[] enCours = res.toArray(new EfTrajectoireResultBuilder[res.size()]); + while (mustGoOn(enCours)) { + if (stop_) return res; + for (int i = 0; i < enCours.length; i++) { + if (stop_) return res; + final EfTrajectoireResultBuilder bi = enCours[i]; + if (bi != null && !doNext(bi)) { + enCours[i] = null; + } + } + + } + return res; + + } + + /** + * @param _enCours + * @return true si on doit continuer, false si la trajectoire est arrive au bout. + */ + boolean doNext(final EfTrajectoireResultBuilder _enCours) { + final Coordinate lastCoordinate = _enCours.getLastCoordinate(); + final TIntHashSet elementsAdjacent = _enCours.lastAdjacentMeshes_; + final double lastTime = _enCours.getLastTime(); + // l'indice inf et sup des pas de temps englobant le dernier pas de temps + final int[] minMaxLastTime = EfGridDataTimeDecorator.getTMinMax(timeStep_, lastTime); + final EfTrajectoireParameters parameters = _enCours.getParameters(); + // dans le cas des trajectoires on doit rester dans les clous + if (parameters.isTrajectoire() && minMaxLastTime == null) { + FuLog.error("EfTrajectoireActivity: nous sommes en dehors de la simulation !"); + // on s'arrete et c'est bizarre + return false; + } + final double maxDistance = getMaxDistance(lastCoordinate, elementsAdjacent); + + final double vx = _enCours.getLastVx(); + final double vy = _enCours.getLastVy(); + final double v = Math.hypot(vx, vy); + // il s'agit du delta t en valu + double absDeltaT = 0; + int nextTimeStep = -1; + // true si le pas de temps actuelle est sur un pas de temps du projet + if (parameters.isTrajectoire()) { + final boolean isOnTimeStep = (minMaxLastTime[0] == minMaxLastTime[1]); + if (parameters.dureeIntegration_ < 0) { + nextTimeStep = (isOnTimeStep) ? minMaxLastTime[0] - 1 : minMaxLastTime[0]; + } else { + nextTimeStep = (isOnTimeStep) ? minMaxLastTime[1] + 1 : minMaxLastTime[1]; + } + if (nextTimeStep < 0 || nextTimeStep >= timeStep_.length) { + // ce ne devrait jamais arrive car l'iteration precedante aurait du arrete le tout + FuLog.error("EfTrajectoireActivity: le pas de temps courant est en dehors de la simulation !"); + return false; + } + } + // s'il y a une tres faible vitesse on va faire exploser le tout... + final boolean isVitesseNulle = CtuluLib.isZero(v, 1E-4); + if (isVitesseNulle) { + // si c'est une ligne de courant on n'avancera plus + if (parameters.isLigneDeCourant) { return false; } + // sinon on va passer au temps suivant + // on set le delta t pour qu'il aille au prochain pas de temps + absDeltaT = Math.abs(timeStep_[nextTimeStep] - lastTime); + } else { + absDeltaT = maxDistance / v; + + } + if (parameters.finesse_ > 1 && absDeltaT > 1E-2) { + // la c'est bizarre: le coup de l'escargot + absDeltaT = absDeltaT / parameters.finesse_; + } + absDeltaT = Math.max(absDeltaT, 1);// on se d\xE9place au moins d'1 seconde pour avancer + // pour les trajectoires, on essaie de ne pas sauter de pas de temps + // dans le cas des vitesses null on ne fait rien + if (!isVitesseNulle && parameters.isTrajectoire()) { + absDeltaT = Math.min(Math.abs(timeStep_[nextTimeStep] - lastTime), absDeltaT); + } + if (parameters.dureeIntegration_ < 0) absDeltaT = -absDeltaT; + + // le nouveau pas de temps que l'on devrait avoir + double newT = lastTime + absDeltaT; + + final double maxTimeAutorise = parameters.firstTimeStep_ + parameters.dureeIntegration_; + if (Math.abs(newT - parameters.firstTimeStep_) > Math.abs(parameters.dureeIntegration_)) { + newT = maxTimeAutorise; + } + + // on remet a jour le delta t au cas il a ete modifie + absDeltaT = newT - lastTime; + final double newx = lastCoordinate.x + vx * absDeltaT; + final double newy = lastCoordinate.y + vy * absDeltaT; + + EfLineIntersectionsResultsI intersectResult = intersectFinder_.computeFor( + GISGeometryFactory.INSTANCE.createSegment(lastCoordinate.x, lastCoordinate.y, newx, newy), prog_, + data_.getData().isElementVar(parameters.vx)).getDefaultRes(); + if (stop_) return false; + if (tester_ != null) { + intersectResult = correctionActivity.correct(intersectResult, tester_, 0, prog_); + if (stop_) return false; + } + // on sort du maillage: on arrete + if (intersectResult.isSegmentOut(0)) return false; + final EfLineIntersection foundIntersect = intersectResult.getIntersect(1); + // on a croise un objet du maillage, on doit recalculer le temps + // si on une vitesse null, on n'a pas boug\xE9... + if (intersectResult.getNbIntersect() > 2 && !isVitesseNulle) { + double deltaTFistInt = intersectResult.getDistFromDeb(1) / v; + if (parameters.dureeIntegration_ < 0) deltaTFistInt = -deltaTFistInt; + newT = lastTime + deltaTFistInt; + } + + _enCours.addIntersection(foundIntersect, newT); + // on continue si diff\xE9rent de 0 + return !CtuluLib.isZero(maxTimeAutorise - newT, 1E-3); + } + + private double getMaxDistance(final Coordinate lastC... [truncated message content] |
From: <de...@us...> - 2008-10-30 17:06:46
|
Revision: 4116 http://fudaa.svn.sourceforge.net/fudaa/?rev=4116&view=rev Author: deniger Date: 2008-10-30 17:06:38 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheOneTimeDecorator.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheWeakDecorator.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataOneTimeDecorator.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataTimeDecorator.java Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheOneTimeDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheOneTimeDecorator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheOneTimeDecorator.java 2008-10-30 17:06:38 UTC (rev 4116) @@ -0,0 +1,122 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.decorator; + +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.dodico.ef.EfData; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; + +/** + * Un decorateur permettant de cacher les donn\xE9es EfData pour un pas de temps precis. Utilise des WeakReference pour les + * EfData sauf pour les variables definies en tant que persistantes. Ce gridData ne renvoie que le donnees au pas de + * temps passe dans le constructeur. + * + * @author deniger + */ +public class EfGridDataCacheOneTimeDecorator implements EfGridData { + + final EfGridData init; + + Set<CtuluVariable> permanentVariable_; + + Map<CtuluVariable, EfData> permCache_; + final int timeCached_; + Map<CtuluVariable, WeakReference<EfData>> transCache_; + + /** + * @param _init les donnees initiales + * @param _timeCached le pas de temps a utilise + * @param _permVariable + */ + public EfGridDataCacheOneTimeDecorator(EfGridData _init, int _timeCached, CtuluVariable... _permVariable) { + super(); + init = _init; + timeCached_ = _timeCached; + if (_permVariable != null) permanentVariable_ = new HashSet<CtuluVariable>(Arrays.asList(_permVariable)); + else permanentVariable_ = Collections.emptySet(); + } + + protected EfData getCachedData(CtuluVariable _o) { + if (permanentVariable_.contains(_o)) { return permCache_.get(_o); } + WeakReference<EfData> res = transCache_.get(_o); + if (res == null) return null; + return res.get(); + + } + + /** + * {@inheritDoc} + * + * @param _timeIdx ce pas de temps n'est pas pris en compte + */ + public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException { + EfData data = getCachedData(_o); + if (data != null) return data; + data = init.getData(_o, timeCached_); + if (data != null) setCachedData(_o, data); + return data; + } + + /** + * {@inheritDoc} + * + * @param _timeIdx ce pas de temps n'est pas pris en compte + */ + public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException { + EfData data = getCachedData(_o); + if (data != null) return data.getValue(_idxObjet); + return init.getData(_o, timeCached_, _idxObjet); + } + + /** + * @return + * @see org.fudaa.dodico.ef.EfGridData#getGrid() + */ + public EfGridInterface getGrid() { + return init.getGrid(); + } + + /** + * @return the timeCached + */ + public int getTimeCached() { + return timeCached_; + } + + /** + * @param _var + * @return + * @see org.fudaa.dodico.ef.EfGridData#isDefined(org.fudaa.ctulu.CtuluVariable) + */ + public boolean isDefined(CtuluVariable _var) { + return init.isDefined(_var); + } + + /** + * @param _idxVar + * @return + * @see org.fudaa.dodico.ef.EfGridData#isElementVar(org.fudaa.ctulu.CtuluVariable) + */ + public boolean isElementVar(CtuluVariable _idxVar) { + return init.isElementVar(_idxVar); + } + + protected void setCachedData(CtuluVariable _o, EfData _data) { + if (permanentVariable_.contains(_o)) { + permCache_.put(_o, _data); + } else transCache_.put(_o, new WeakReference<EfData>(_data)); + + } + +} Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheWeakDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheWeakDecorator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataCacheWeakDecorator.java 2008-10-30 17:06:38 UTC (rev 4116) @@ -0,0 +1,131 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.decorator; + +import gnu.trove.TIntObjectHashMap; + +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.dodico.ef.EfData; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; + +import com.memoire.fu.FuLog; + +/** + * Un decorateur permettant de cacher des donnees. Utilise des WeakReference pour les datas pour eviter d'encombrer la + * memoire + * + * @author deniger + */ +public class EfGridDataCacheWeakDecorator implements EfGridData { + + final EfGridData init_; + + int maxSize_ = 10; + + TIntObjectHashMap timeMap_ = new TIntObjectHashMap((int) (maxSize_ / 0.75)); + + public EfGridDataCacheWeakDecorator(EfGridData _init) { + super(); + init_ = _init; + } + + @SuppressWarnings("unchecked") + protected EfData getCachedData(CtuluVariable _o, int _timeIdx) { + Map<CtuluVariable, WeakReference<EfData>> res = (Map<CtuluVariable, WeakReference<EfData>>) timeMap_.get(_timeIdx); + if (res == null) return null; + WeakReference<EfData> reference = res.get(_o); + EfData efData = reference == null ? null : reference.get(); + if (FuLog.isDebug()) { + + FuLog.debug("EfGridDataCacheDecorator getDataFrom cache for " + _o + " " + _timeIdx + " found " + + (efData != null)); + + } + return efData; + + } + + public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException { + EfData data = getCachedData(_o, _timeIdx); + // en cache: on renvoie + if (data != null) return data; + data = init_.getData(_o, _timeIdx); + if (data != null) setCachedData(_o, _timeIdx, data); + return data; + } + + public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException { + EfData data = getCachedData(_o, _timeIdx); + if (data != null) return data.getValue(_idxObjet); + return init_.getData(_o, _timeIdx, _idxObjet); + } + + /** + * @return + * @see org.fudaa.dodico.ef.EfGridData#getGrid() + */ + public EfGridInterface getGrid() { + return init_.getGrid(); + } + + /** + * @return the maxSize + */ + public int getMaxSize() { + return maxSize_; + } + + /** + * @param _var + * @return + * @see org.fudaa.dodico.ef.EfGridData#isDefined(org.fudaa.ctulu.CtuluVariable) + */ + public boolean isDefined(CtuluVariable _var) { + return init_.isDefined(_var); + } + + /** + * @param _idxVar + * @return + * @see org.fudaa.dodico.ef.EfGridData#isElementVar(org.fudaa.ctulu.CtuluVariable) + */ + public boolean isElementVar(CtuluVariable _idxVar) { + return init_.isElementVar(_idxVar); + } + + @SuppressWarnings("unchecked") + protected void setCachedData(CtuluVariable _o, int _timeIdx, EfData _data) { + Map<CtuluVariable, WeakReference<EfData>> res = (Map<CtuluVariable, WeakReference<EfData>>) timeMap_.get(_timeIdx); + if (res == null) { + // on reduit la map + if (timeMap_.size() > maxSize_) { + int[] keys = timeMap_.keys(); + Arrays.sort(keys); + timeMap_.remove(keys[0]); + } + res = new HashMap<CtuluVariable, WeakReference<EfData>>(10); + timeMap_.put(_timeIdx, _data); + } + res.put(_o, new WeakReference<EfData>(_data)); + + } + + /** + * La taille max du nombre de pas de pour lesquels on veut cacher les donnees + * + * @param _maxSize the maxSize to set + */ + public void setMaxSize(int _maxSize) { + maxSize_ = _maxSize; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataOneTimeDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataOneTimeDecorator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataOneTimeDecorator.java 2008-10-30 17:06:38 UTC (rev 4116) @@ -0,0 +1,44 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.decorator; + +import java.io.IOException; + +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.dodico.ef.EfData; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; + +public class EfGridDataOneTimeDecorator implements EfGridData { + + final EfGridData init_; + + final int tIdx_; + public EfGridDataOneTimeDecorator(EfGridData _init, int _idx) { + super(); + init_ = _init; + tIdx_ = _idx; + } + + public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException { + return init_.getData(_o, tIdx_); + } + + public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException { + return init_.getData(_o, tIdx_, _idxObjet); + } + + public EfGridInterface getGrid() { + return init_.getGrid(); + } + + public boolean isDefined(CtuluVariable _var) { + return init_.isDefined(_var); + } + + public boolean isElementVar(CtuluVariable _idxVar) { + return init_.isElementVar(_idxVar); + } +} \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataTimeDecorator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataTimeDecorator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/decorator/EfGridDataTimeDecorator.java 2008-10-30 17:06:38 UTC (rev 4116) @@ -0,0 +1,127 @@ +/** + * Licence GPL + * Copyright Genesis + */ +package org.fudaa.dodico.ef.decorator; + +import java.io.IOException; +import java.util.Arrays; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluVariable; +import org.fudaa.dodico.ef.EfData; +import org.fudaa.dodico.ef.EfDataElement; +import org.fudaa.dodico.ef.EfDataNode; +import org.fudaa.dodico.ef.EfGridData; +import org.fudaa.dodico.ef.EfGridInterface; + +/** + * un decorateur de grid data qui permet d'interpoler les valeurs sur un pas de temps donn\xE9. + * + * @author deniger + */ +public class EfGridDataTimeDecorator implements EfGridData { + + final EfGridData init_; + final int tMaxIdx_; + final int tMinIdx_; + final double coeff_; + + /** + * @param _init les donn\xE9es initiales + * @param _t le pas de temps sur lequel on veut interpoler + * @param _minIdx le pas de temps inf a t + * @param _min le temps inf + * @param _maxIdx le pas de temps sup a t + * @param _max le temps sup + */ + public EfGridDataTimeDecorator(EfGridData _init, double _t, int _minIdx, double _min, int _maxIdx, double _max) { + super(); + init_ = _init; + tMaxIdx_ = _maxIdx; + tMinIdx_ = _minIdx; + coeff_ = (_t - _min) / (_maxIdx - _min); + } + + /** + * @param _timeIdx non utilise dans ce cas {@inheritDoc} + */ + public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException { + final EfData data1 = init_.getData(_o, tMinIdx_); + final EfData data2 = init_.getData(_o, tMaxIdx_); + final double[] res = new double[data1.getSize()]; + for (int i = res.length - 1; i >= 0; i--) { + final double v1 = data1.getValue(i); + res[i] = coeff_ * (data2.getValue(i) - v1) + v1; + } + return data1.isElementData() ? (EfData) new EfDataElement(res) : new EfDataNode(res); + } + + /** + * @param _timeIdx non utilise dans ce cas {@inheritDoc} + */ + public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException { + double data1 = init_.getData(_o, tMinIdx_, _idxObjet); + double data2 = init_.getData(_o, tMaxIdx_, _idxObjet); + return coeff_ * (data2 - data1) + data1; + } + + public EfGridInterface getGrid() { + return init_.getGrid(); + } + + public boolean isDefined(CtuluVariable _var) { + return init_.isDefined(_var); + } + + public boolean isElementVar(CtuluVariable _idxVar) { + return init_.isElementVar(_idxVar); + } + + /** + * @param srcTimeStep les pas te + * @param time + * @return null si en dehors ou tableau de 2 entier avec idxMin et idxMax des pas de temps englobant + */ + public static int[] getTMinMax(double[] srcTimeStep, double time) { + if (CtuluLib.isEquals(time, srcTimeStep[0], 1E-3)) { return new int[] { 0, 0 }; } + if (CtuluLib.isEquals(time, srcTimeStep[srcTimeStep.length - 1], 1E-3)) { return new int[] { + srcTimeStep.length - 1, srcTimeStep.length - 1 }; } + if (time < srcTimeStep[0] || time > srcTimeStep[srcTimeStep.length - 1]) { + + return null; } + int[] res = new int[2]; + final int idx = Arrays.binarySearch(srcTimeStep, time); + if (idx >= 0) { + res[0] = idx; + res[1] = idx; + } else { + res[0] = -idx - 2; + res[1] = res[0] + 1; + if (CtuluLib.isEquals(time, srcTimeStep[res[0]], 1E-3)) { + res[1] = res[0]; + } + if (CtuluLib.isEquals(time, srcTimeStep[res[1]], 1E-3)) { + res[0] = res[1]; + } + } + return res; + } + + public static EfGridData getTimeInterpolated(EfGridData _init, double[] srcTimeStep, double time) { + + if (time < srcTimeStep[0] || time > srcTimeStep[srcTimeStep.length - 1]) { throw new IllegalArgumentException( + "impossible to interpolate"); } + final int idx = Arrays.binarySearch(srcTimeStep, time); + if (idx >= 0) { + return new EfGridDataOneTimeDecorator(_init, idx); + } else { + int tmin = -idx - 2; + int tmax = tmin + 1; + if (CtuluLib.isEquals(time, srcTimeStep[tmin], 1E-3)) { return new EfGridDataOneTimeDecorator(_init, tmin); } + if (CtuluLib.isEquals(time, srcTimeStep[tmax], 1E-3)) { return new EfGridDataOneTimeDecorator(_init, tmax); } + return new EfGridDataTimeDecorator(_init, time, tmin, srcTimeStep[tmin], tmax, srcTimeStep[tmax]); + } + + } +} \ 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: <de...@us...> - 2008-10-30 17:06:23
|
Revision: 4115 http://fudaa.svn.sourceforge.net/fudaa/?rev=4115&view=rev Author: deniger Date: 2008-10-30 17:06:20 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluDurationFormatter.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLib.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluNumberFormatDefault.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationVectorContainer.java branches/Prepro-0.92-SNAPSHOT/ctulu/test/org/fudaa/ctulu/TestJCtuluLib.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/commun/dodico_en.fr_txt branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfElement.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfNeighborMesh.java branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfSegment.java Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluDurationFormatter.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluDurationFormatter.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluDurationFormatter.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -31,7 +31,7 @@ private static final String[] FIELDS_NAME = new String[] { CtuluLib.getS("Ann\xE9e"), CtuluLib.getS("Mois"), CtuluLib.getS("Jour"), CtuluLib.getS("Heure"), CtuluLib.getS("Minute"), CtuluLib.getS("Seconde") }; - public final static CtuluNumberFormatI DEFAULT_TIME = CtuluNumberFormatDefault.buildNoneFormatter(1,false); + public final static CtuluNumberFormatI DEFAULT_TIME = CtuluNumberFormatDefault.buildNoneFormatter(1, false); public static String getDesc() { return CtuluLib.getS("Une date est attendue"); @@ -47,7 +47,14 @@ } catch (final NumberFormatException e) { // le test bateau a echoue } - String dur = _str; + if (_str == null) return 0; + String dur = _str.trim(); + if (dur.length() == 0) return 0; + boolean neg = dur.charAt(0) == '-'; + if (neg) { + if (dur.length() == 0) return 0; + dur = dur.substring(1); + } final String minSep = "n"; dur = FuLib.replace(dur, FIELDS_ABBREV_MIN, minSep); final StringTokenizer tok = new StringTokenizer(dur, FIELDS_ABBREV_DAY + FIELDS_ABBREV_HOUR + minSep @@ -65,9 +72,7 @@ continue; } if (nexttok.indexOf(':') > 0) { - if (secDone || minDone || hDone) { - throw new NumberFormatException(_str + " h, min,s alreadydone"); - } + if (secDone || minDone || hDone) { throw new NumberFormatException(_str + " h, min,s alreadydone"); } secDone = true; minDone = true; hDone = true; @@ -91,38 +96,26 @@ if (tok.hasMoreTokens()) { final String abbr = tok.nextToken(); if (abbr.equals(FIELDS_ABBREV_SEC)) { - if (secDone) { - throw new NumberFormatException(_str + " sec alreadydone"); - } + if (secDone) { throw new NumberFormatException(_str + " sec alreadydone"); } secDone = true; multiple = 1; } else if (abbr.equals(minSep)) { multiple = 60; - if (minDone) { - throw new NumberFormatException(_str + " min alreadydone"); - } + if (minDone) { throw new NumberFormatException(_str + " min alreadydone"); } minDone = true; } else if (abbr.equals(FIELDS_ABBREV_HOUR)) { - if (hDone) { - throw new NumberFormatException(_str + " hour alreadydone"); - } + if (hDone) { throw new NumberFormatException(_str + " hour alreadydone"); } multiple = 3600; } else if (abbr.equals(FIELDS_ABBREV_DAY)) { - if (jDone) { - throw new NumberFormatException(_str + " day alreadydone"); - } + if (jDone) { throw new NumberFormatException(_str + " day alreadydone"); } jDone = true; multiple = 3600 * 24; } else if (abbr.equals(FIELDS_ABBREV_MONTH)) { - if (monthDone) { - throw new NumberFormatException(_str + " month alreadydone"); - } + if (monthDone) { throw new NumberFormatException(_str + " month alreadydone"); } monthDone = true; multiple = 3600 * 24 * 30; } else if (abbr.equals(FIELDS_ABBREV_YEAR)) { - if (yearDone) { - throw new NumberFormatException(_str + " year alreadydone"); - } + if (yearDone) { throw new NumberFormatException(_str + " year alreadydone"); } yearDone = true; multiple = 3600 * 24 * 365; } else { @@ -132,7 +125,7 @@ r += multiple * val; } } - return (int) r; + return (int) (neg ? -r : r); } public static CtuluDurationFormatter restoreFromLocalizedPattern(String _s) { @@ -168,9 +161,7 @@ } public boolean equals(final Object _obj) { - if (_obj == this) { - return true; - } + if (_obj == this) { return true; } if (_obj != null) { if (_obj.getClass().equals(getClass())) { final CtuluDurationFormatter fmt = (CtuluDurationFormatter) _obj; @@ -373,13 +364,11 @@ public String toLocalizedPattern() { String res = CtuluNumberFormatBuilder.getPrefixForDate(); if (useMonthYear_) res += "USE_MONTH_DAY_YES"; - else - res += "USE_MONTH_DAY_NO"; + else res += "USE_MONTH_DAY_NO"; res += "|"; if (hms_) { res += "USE_HMS_YES"; - } else - res += "USE_HMS_NO"; + } else res += "USE_HMS_NO"; res += "|"; if (isAlwaysDisplayZero()) { res += "USE_ZERO_YES"; Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLib.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLib.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLib.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -34,6 +34,14 @@ return _d < _eps && _d > -_eps; } + public static boolean isEquals(final double _d, final double _d1, final double _eps) { + return isZero(_d - _d1, _eps); + } + + public static boolean isEquals(final double _d, final double _d1) { + return isZero(_d - _d1); + } + public static String getHelpProperty() { return "HELP_URL"; } @@ -69,6 +77,14 @@ r.setGroupingUsed(false); return r; } + + public static DecimalFormat getDecimalFormat(int nbMaxFractionDigits) { + DecimalFormat res=getDecimalFormat(); + res.setMaximumFractionDigits(nbMaxFractionDigits); + return res; + } + + /** * @return true si la locale est egale a "fr". @@ -80,16 +96,14 @@ /** * Permet d'enlever plusieurs indices d'un tableau. Les anciennes valeurs peuvent etre enregistree. Attention, si un * index n'est pas correct cela peut tout fausser. - * + * * @param _init le tableau a modifier * @param _sortedIdx les indices a enlever donner dans l'ordre * @param _removedValues le tableau qui va contenir (si non null et si de meme taille qui _init) les valeurs enlevees. * @return true si toutes les valeurs */ public static boolean removeIdx(final TDoubleArrayList _init, final int[] _sortedIdx, final double[] _removedValues) { - if (_init == null) { - return false; - } + if (_init == null) { return false; } final int n = _init.size(); final double[] newValues = new double[n]; int idx = 0; @@ -120,7 +134,7 @@ /** * Appele le singleton CTULU. - * + * * @param _s la chaine a traduire * @return le chaine traduite par ctulu */ @@ -130,7 +144,7 @@ /** * Appele le singleton CTULU. - * + * * @param _s la chaine a traduire * @param _v1 la chaine remplacant {0} * @return le chaine traduite par ctulu @@ -141,7 +155,7 @@ /** * Appele le singleton CTULU. - * + * * @param _s la chaine a traduire * @param _v1 la chaine remplacant {0} * @param _v2 la chaine remplacant {1} @@ -159,11 +173,11 @@ /** * Retourne vrai si l'application est lanc\xE9 ou d\xE9ploy\xE9 avec Java Web Start + * * @return si l'application est lanc\xE9 ou d\xE9ploy\xE9 avec Java Web Start */ public static boolean isJavaWebStart() { - return (System.getProperty("javawebstart.version")!=null); + return (System.getProperty("javawebstart.version") != null); } - } Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -32,12 +32,12 @@ * @return Renvoie la distance entre le point p1(_x1,_y1) et le point p2(_x2,_y2) */ public static double getDistance(final double _x1, final double _y1, final double _x2, final double _y2) { - return Math.sqrt((_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1)); + return Math.hypot(_x2 - _x1, _y2 - _y1); } - public static double getDistanceAuCarre(final double _x1, final double _y1, final double _x2, final double _y2) { - return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1); - } + // public static double getDistanceAuCarre(final double _x1, final double _y1, final double _x2, final double _y2) { + // return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1); + // } public static double getDistanceXY(final Coordinate _c1, final Coordinate _c2) { return getDistance(_c1.x, _c1.y, _c2.x, _c2.y); @@ -73,14 +73,7 @@ */ public static double distanceFromSegment(final double _segX1, final double _segY1, final double _segX2, final double _segY2, final double _x, final double _y) { - return Math.sqrt(distanceAuCarreFromSegment(_segX1, _segY1, _segX2, _segY2, _x, _y)); - } - - public static double distanceAuCarreFromSegment(final double _segX1, final double _segY1, final double _segX2, - final double _segY2, final double _x, final double _y) { - if ((_segX1 == _segX2) && (_segY1 == _segY2)) { - return getDistanceAuCarre(_segX1, _segY1, _x, _y); - } + if ((_segX1 == _segX2) && (_segY1 == _segY2)) { return getDistance(_segX1, _segY1, _x, _y); } // P1=(_x1,_y1) // P2=(_x2,_y2) // X=thisPoint @@ -90,25 +83,48 @@ // le produit scalaire double p = (_x - _segX1) * (_segX2 - _segX1) + (_y - _segY1) * (_segY2 - _segY1); // si le point est "en dehors" du segment ,on prend la distance X P1 - if (p < 0) { - return getDistanceAuCarre(_x, _y, _segX1, _segY1); - } + if (p < 0) { return getDistance(_x, _y, _segX1, _segY1); } // le produit scalaire/norme de B p = p / ((_segX2 - _segX1) * (_segX2 - _segX1) + (_segY2 - _segY1) * (_segY2 - _segY1)); // si p>1 p est en dehors du segment - if (p > 1) { - return getDistanceAuCarre(_x, _y, _segX2, _segY2); - } + if (p > 1) { return getDistance(_x, _y, _segX2, _segY2); } // le vecteur projete a pour coordonnees PROJ: double projx = p * (_segX2 - _segX1); double projy = p * (_segY2 - _segY1); // le vecteur de norme (on reutilise le variable projx) projx = (_x - _segX1) - projx; projy = (_y - _segY1) - projy; - return projx * projx + projy * projy; + return Math.hypot(projx, projy); } +// public static double distanceAuCarreFromSegment(final double _segX1, final double _segY1, final double _segX2, +// final double _segY2, final double _x, final double _y) { +// if ((_segX1 == _segX2) && (_segY1 == _segY2)) { return getD2(_segX1, _segY1, _x, _y); } +// // P1=(_x1,_y1) +// // P2=(_x2,_y2) +// // X=thisPoint +// // vecteur A=X-P1 +// // vecteur B=P2-P1 +// // On calcule la projection de A sur B +// // le produit scalaire +// double p = (_x - _segX1) * (_segX2 - _segX1) + (_y - _segY1) * (_segY2 - _segY1); +// // si le point est "en dehors" du segment ,on prend la distance X P1 +// if (p < 0) { return getD2(_x, _y, _segX1, _segY1); } +// +// // le produit scalaire/norme de B +// p = p / ((_segX2 - _segX1) * (_segX2 - _segX1) + (_segY2 - _segY1) * (_segY2 - _segY1)); +// // si p>1 p est en dehors du segment +// if (p > 1) { return getD2(_x, _y, _segX2, _segY2); } +// // le vecteur projete a pour coordonnees PROJ: +// double projx = p * (_segX2 - _segX1); +// double projy = p * (_segY2 - _segY1); +// // le vecteur de norme (on reutilise le variable projx) +// projx = (_x - _segX1) - projx; +// projy = (_y - _segY1) - projy; +// return projx * projx + projy * projy; +// } + /** * Tester dans dodico TestMaillage. * @@ -133,7 +149,7 @@ // le vecteur de norme (on reutilise le variable projx) projx = (_x3 - _x1) - projx; projy = (_y3 - _y1) - projy; - return d1d2 * Math.sqrt(projx * projx + projy * projy) / 2; + return d1d2 * Math.hypot(projx, projy) / 2; } /** @@ -149,19 +165,16 @@ public static AffineTransform projection(final Point2D[] _ptImages, final Point2D[] _ptReels) throws IllegalArgumentException { double[] proj = new double[6]; - if (_ptImages == null || _ptReels == null) { - return null; - // double[] projInv = new double[6]; - // double[] m_MatZoom = new double[6]; - // initialiser avec la matrice I - /* - * m_MatZoom[0]=1; m_MatZoom[4]=1; - */ + if (_ptImages == null || _ptReels == null) { return null; + // double[] projInv = new double[6]; + // double[] m_MatZoom = new double[6]; + // initialiser avec la matrice I + /* + * m_MatZoom[0]=1; m_MatZoom[4]=1; + */ } - if ((_ptImages.length != _ptReels.length) || (_ptImages.length < 3)) { - throw new IllegalArgumentException("badData"); - } + if ((_ptImages.length != _ptReels.length) || (_ptImages.length < 3)) { throw new IllegalArgumentException("badData"); } if (_ptImages.length == 3) { try { @@ -170,9 +183,7 @@ - _ptImages[0].getY() * _ptImages[1].getX() + _ptImages[1].getY() * _ptImages[0].getX() + _ptImages[0].getY() * _ptImages[2].getX() - _ptImages[1].getY() * _ptImages[2].getX(); - if (Math.abs(diviseur) < 0.0001) { - throw new Exception("div0"); - } + if (Math.abs(diviseur) < 0.0001) { throw new Exception("div0"); } proj[0] = (float) ((-_ptImages[1].getY() * _ptReels[2].getX() - _ptImages[0].getY() * _ptReels[1].getX() + _ptImages[2].getY() * _ptReels[1].getX() + _ptImages[1].getY() * _ptReels[0].getX() + _ptImages[0].getY() * _ptReels[2].getX() - _ptImages[2].getY() * _ptReels[0].getX()) / diviseur); Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluNumberFormatDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluNumberFormatDefault.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/CtuluNumberFormatDefault.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -50,8 +50,7 @@ } public static CtuluNumberFormatDefault buildNoneFormatter(int _nbMaxDigits, final boolean _isDecimal) { - NumberFormat fmt = CtuluLib.getDecimalFormat(); - fmt.setMaximumFractionDigits(1); + NumberFormat fmt = CtuluLib.getDecimalFormat(_nbMaxDigits); return new NoneFormater(fmt, _isDecimal); } @@ -70,9 +69,7 @@ } public String format(final double _d) { - if (fmt_ == null) { - return Double.toString(_d); - } + if (fmt_ == null) { return Double.toString(_d); } return fmt_.format(_d); } Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationVectorContainer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationVectorContainer.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/interpolation/InterpolationVectorContainer.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -94,18 +94,14 @@ } public static double getNorme(double _vx, double _vy) { - return Math.sqrt(_vx * _vx + _vy * _vy); + return Math.hypot(_vx, _vy); } public static double getTheta(double _vx, double _vy) { double n = getNorme(_vx, _vy); if (CtuluLib.isZero(n)) return 0; - if (CtuluLib.isZero(_vx)) { - return CtuluLib.getSign(_vy) * Math.PI / 2; - } - if (CtuluLib.isZero(_vy)) { - return _vx >= 0 ? 0 : Math.PI; - } + if (CtuluLib.isZero(_vx)) { return CtuluLib.getSign(_vy) * Math.PI / 2; } + if (CtuluLib.isZero(_vy)) { return _vx >= 0 ? 0 : Math.PI; } double theta = Math.atan(_vy / _vx); return _vx > 0 ? theta : (CtuluLib.getSign(_vy) * Math.PI + theta); } Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/test/org/fudaa/ctulu/TestJCtuluLib.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/test/org/fudaa/ctulu/TestJCtuluLib.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/test/org/fudaa/ctulu/TestJCtuluLib.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -63,8 +63,13 @@ } } - - public void testTrimRight(){ + + public void testAireTriangle() { + double aireTriangle = CtuluLibGeometrie.aireTriangle(0, 0, 2, 0, 1, 1); + assertEquals(1, aireTriangle, 1e-5); + } + + public void testTrimRight() { assertEquals(CtuluLibString.EMPTY_STRING, CtuluLibString.trimRight("")); assertEquals(CtuluLibString.EMPTY_STRING, CtuluLibString.trimRight(" ")); assertEquals("5", CtuluLibString.trimRight("5 ")); @@ -190,14 +195,13 @@ finalString = CtuluLibString.adjustSizeBefore(7, init); assertEquals(esp + init, finalString); } - - public void testToString(){ - File fzip=new File("/tmp/toto.zip"); - File fgz=CtuluLibFile.changeExtension(fzip,"gz"); - assertEquals("/tmp/toto.gz",fgz.getAbsolutePath()); + + public void testToString() { + File fzip = new File("/tmp/toto.zip"); + File fgz = CtuluLibFile.changeExtension(fzip, "gz"); + assertEquals("/tmp/toto.gz", fgz.getAbsolutePath()); } - public void testZip() { final String name = getToto(); try { Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/commun/dodico_en.fr_txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/commun/dodico_en.fr_txt 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/commun/dodico_en.fr_txt 2008-10-30 17:06:20 UTC (rev 4115) @@ -140,4 +140,6 @@ Des conditions limites ont \xE9t\xE9 cr\xE9\xE9es par d\xE9faut=Some boundary conditions have been initialized with default values Les indices sont dans le fichier de log=The index are added to the log file Des ar\xEAtes sont mal d\xE9finies\: indice global du point invalide=Some edges are not valid\: global index is wrong -Variables=Variables \ No newline at end of file +Variables=Variables +Le premier pas de temps n'appartient pas \xE0 la simulation=The simulation doesn't contain the first time step +La dur\xE9e d'int\xE9gration d\xE9passe la dur\xE9e de la simulation=The integration duration overlaps the duration of the simulation Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfElement.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfElement.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfElement.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -934,12 +934,12 @@ _support.getPtY(next), _x, _y); } - public double getAreteDistAuCarreFrom(final int _idx, final double _x, final double _y, final EfGridInterface _support) { - final int idx = ptIndex_[_idx]; - final int next = ptIndex_[(_idx + 1) % ptIndex_.length]; - return CtuluLibGeometrie.distanceAuCarreFromSegment(_support.getPtX(idx), _support.getPtY(idx), _support - .getPtX(next), _support.getPtY(next), _x, _y); - } +// public double getAreteDistAuCarreFrom(final int _idx, final double _x, final double _y, final EfGridInterface _support) { +// final int idx = ptIndex_[_idx]; +// final int next = ptIndex_[(_idx + 1) % ptIndex_.length]; +// return CtuluLibGeometrie.distanceAuCarreFromSegment(_support.getPtX(idx), _support.getPtY(idx), _support +// .getPtX(next), _support.getPtY(next), _x, _y); +// } public double getDist(final double _x, final double _y, final EfGridInterface _support) { double d2 = getAreteDistFrom(0, _x, _y, _support); @@ -952,16 +952,16 @@ return d2; } - public double getDistAuCarre(final double _x, final double _y, final EfGridInterface _support) { - double d2 = getAreteDistAuCarreFrom(0, _x, _y, _support); - for (int i = ptIndex_.length - 1; i > 0; i--) { - final double dTemp = getAreteDistAuCarreFrom(i, _x, _y, _support); - if (dTemp < d2) { - d2 = dTemp; - } - } - return d2; - } +// public double getDistAuCarre(final double _x, final double _y, final EfGridInterface _support) { +// double d2 = getAreteDistAuCarreFrom(0, _x, _y, _support); +// for (int i = ptIndex_.length - 1; i > 0; i--) { +// final double dTemp = getAreteDistAuCarreFrom(i, _x, _y, _support); +// if (dTemp < d2) { +// d2 = dTemp; +// } +// } +// return d2; +// } /** * Optimisation maillage T6. Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfNeighborMesh.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfNeighborMesh.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfNeighborMesh.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -170,8 +170,8 @@ public double getAverageForNode(final CtuluVariable _var, final int _idxPt, final int _tIdx, final EfData _dataElement, EfGridDataInterpolator _datas) { - if (_datas.getInterpolator().getVect().isVect(_var)) { return getAverageForVect(_var, _idxPt, _tIdx, _dataElement, - _datas.getGridData(), _datas.getInterpolator().getVect()); + if (_datas.getVect().isVect(_var)) { return getAverageForVect(_var, _idxPt, _tIdx, _dataElement, _datas.getData(), + _datas.getVect()); } return getAverageForNodeDanger(_idxPt, _dataElement); @@ -184,8 +184,8 @@ public double getAverageForNode(final CtuluVariable _var, final int _idxPt, final int _tIdx, EfGridDataInterpolator _dataI) { - return getAverageForNode(_var, _idxPt, new EfGridDataInterpolationValuesAdapter(_dataI.getGridData(), _tIdx), - _dataI.getInterpolator().getVect()); + return getAverageForNode(_var, _idxPt, new EfGridDataInterpolationValuesAdapter(_dataI.getData(), _tIdx), _dataI + .getVect()); } public double getAverageForNode(final CtuluVariable _var, final int _idxPt, InterpolationSupportValuesMultiI _datas, Modified: branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfSegment.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfSegment.java 2008-10-30 16:04:39 UTC (rev 4114) +++ branches/Prepro-0.92-SNAPSHOT/dodico/src/org/fudaa/dodico/ef/EfSegment.java 2008-10-30 17:06:20 UTC (rev 4115) @@ -87,9 +87,7 @@ } public double getNorme(final EfGridInterface _support) { - final double vx = getVx(_support); - final double vy = getVy(_support); - return Math.sqrt(vx * vx + vy * vy); + return Math.hypot(getVx(_support) ,getVy(_support)); } public double getCentreX(final EfGridInterface _support) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-10-30 16:04:56
|
Revision: 4114 http://fudaa.svn.sourceforge.net/fudaa/?rev=4114&view=rev Author: hadouxad Date: 2008-10-30 16:04:39 +0000 (Thu, 30 Oct 2008) Log Message: ----------- - correction de plusieurs bug - robustesse du systeme de sauvegarde des layouts Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostScene.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanelPersistManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java Modified: 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 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -538,5 +538,7 @@ return null; } - + public void setSattelite(List<EbliWidget> liste) { + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -13,6 +13,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.fudaa.ctulu.CtuluCommand; @@ -148,6 +149,8 @@ final EbliWidget ew = (EbliWidget) findWidget; ew.getController().removeActionResize(); // scene_.removeNode((EbliNode) object); + + findWidget.removeFromParent(); final int dx = rec.x - min.x; final int dy = rec.y - min.y; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -51,6 +51,8 @@ final Point p = widget.getLocation(); final Point toScene = w.convertLocalToScene(p); final EbliNode n = (EbliNode) _scene.findObject(widget); + List<EbliWidget> listeSattellites=((EbliWidget)widget).getSattelite(); + widget.removeFromParent(); // -- utilis\xE9 pour enlever les propertychange listener @@ -68,6 +70,9 @@ // widget.setPreferredLocation(toScene); _scene.addNode(n).setPreferredLocation(toScene); n.getWidget().getController().replaceActionResize(); + if(listeSattellites!=null) + n.getWidget().getIntern().setSattelite(listeSattellites); + } _scene.removeNode(_n); // } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -1,6 +1,7 @@ package org.fudaa.ebli.visuallibrary.calque; import java.awt.Font; +import java.util.List; import java.util.Map; import org.fudaa.ebli.calque.BCalque; @@ -129,6 +130,33 @@ // -- mise a jour des sattelites --// ((EbliWidgetControllerCalque) widget.getController()).setNodeLegende((EbliNode) parameters.get("node")); + }else{ + ((List<String>)parameters.get("errorMsg")).add("Erreur, la frame Legende ne trouve pas sa frame calque d'ID "+idCalque); + + //-- recherche dans les children de la scene le premier calque qui fera l'affaire --// + for(EbliNode nodeSubstitut:scene.getNodes()){ + + if(nodeSubstitut.getWidget().getIntern() instanceof EbliWidgetVueCalque){ + ((List<String>)parameters.get("errorMsg")).add("Par consequent, la frame Legende sera rattachee a la frame calque d'ID "+nodeSubstitut.getWidget().getId()); + widget=nodeSubstitut.getWidget().getIntern(); + ZEbliCalquesPanel calque=((EbliWidgetControllerCalque) widget.getController()).getVisuPanel(); + + //-- recuperation du bon calque --// + calqueCible_= (BCalque) calque.getArbreCalqueModel().getChild(calque.getArbreCalqueModel().getRoot(), indexCalque); + IdPossessor_=idCalque; + //g=new BCalqueLegendePanel((BCalqueAffichage) calqueCible_,calqueCible_.getTitle()); + BCalqueLegendePanel legendePanel=((CalqueLegendeWidgetAdapter)calque.getCqLegend()).legendePanel_; + g=legendePanel; + // -- mise a jour des sattelites --// + ((EbliWidgetControllerCalque) widget.getController()).setNodeLegende((EbliNode) parameters.get("node")); + break; + } + + + } + + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -4,6 +4,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import org.fudaa.ebli.calque.BVueCalque; import org.fudaa.ebli.calque.ZCalqueSondeInteraction; @@ -187,4 +188,25 @@ managerSondesFusion_.removeAllListenningSonde(); } + + public boolean hasSattelite() { + + return true; + + } + + public List<EbliWidget> getSattelite() { + + List<EbliWidget> liste = new ArrayList<EbliWidget>(); + + for (int i = listeWidgetCalque_.size() - 1; i >= 0; i--) { + EbliWidgetVueCalque vue = listeWidgetCalque_.get(i); + if(vue.hasSattelite()) + liste.addAll(vue.getSattelite()); + } + return liste; + + } + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -23,6 +23,7 @@ import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.visuallibrary.EbliNode; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; import org.fudaa.ebli.visuallibrary.animation.EbliWidgetAnimatedItem; @@ -278,5 +279,17 @@ return liste; } + + public void setSattelite(List<EbliWidget> liste) { + if(liste.size()<=0) + return; + + EbliWidget widg=liste.get(0); + + EbliNodeDefault node= (EbliNodeDefault) getEbliScene().findObject(widg); + getCalqueController().setNodeLegende( node); + + + } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -1,7 +1,11 @@ package org.fudaa.ebli.visuallibrary.graphe; +import java.util.List; import java.util.Map; +import org.fudaa.ebli.calque.BCalque; +import org.fudaa.ebli.calque.BCalqueLegendePanel; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.visuallibrary.EbliNode; @@ -10,6 +14,9 @@ import org.fudaa.ebli.visuallibrary.EbliWidget; import org.fudaa.ebli.visuallibrary.EbliWidgetBordureSingle; import org.fudaa.ebli.visuallibrary.EbliWidgetWithBordure; +import org.fudaa.ebli.visuallibrary.calque.CalqueLegendeWidgetAdapter; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetControllerCalque; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetVueCalque; import org.fudaa.ebli.visuallibrary.creator.EbliWidgetCreator; public class EbliWidgetCreatorLegende implements EbliWidgetCreator { @@ -86,6 +93,7 @@ idPossessor_ = (String) data; // -- recuperation du node graphe--// + final EbliNode nodeGraphe = ((EbliScene) parameters.get("scene")).findByWidgetId(idPossessor_); if (nodeGraphe != null && nodeGraphe.getCreator() instanceof EbliWidgetCreatorGraphe) { @@ -96,7 +104,31 @@ .get("node")); - } else g = new EGGraphe(new EGGrapheTreeModel()); + } else{ + ((List<String>)parameters.get("errorMsg")).add("Erreur, la frame Legende ne trouve pas sa frame graphe d'ID "+idPossessor_); + + //-- recherche dans les children de la scene le premier calque qui fera l'affaire --// + for(EbliNode nodeSubstitut:((EbliScene) parameters.get("scene")).getNodes()){ + + if(nodeSubstitut.getCreator() instanceof EbliWidgetCreatorGraphe){ + ((List<String>)parameters.get("errorMsg")).add("Par consequent, la frame Legende sera rattachee a la frame graphe d'ID "+nodeSubstitut.getWidget().getId()); + g = ((EbliWidgetCreatorGraphe)nodeSubstitut.getCreator()).getGraphe(); + + + // -- mise a jour des sattelites --// + ((EbliWidgetGraphe) nodeSubstitut.getWidget().getIntern()).setNodeLegende((EbliNodeDefault) parameters + .get("node")); + break; + } + + + } + + + + } + + //else g = new EGGraphe(new EGGrapheTreeModel()); } else g = new EGGraphe(new EGGrapheTreeModel()); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -18,6 +18,7 @@ import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheModelListener; import org.fudaa.ebli.courbe.EGObject; +import org.fudaa.ebli.visuallibrary.EbliNode; import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; @@ -290,4 +291,16 @@ } + public void setSattelite(List<EbliWidget> liste) { + if(liste.size()<=0) + return; + + EbliWidget widg=liste.get(0); + + EbliNodeDefault node= (EbliNodeDefault) getEbliScene().findObject(widg); + setNodeLegende( node); + + + } + } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostScene.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostScene.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostScene.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -104,6 +104,7 @@ EGGraphe graphe=((EbliWidgetCreatorGraphe)node.getCreator()).getGraphe(); if(graphe.getModel() instanceof MvProfileTreeModel){ MvProfileTreeModel model=(MvProfileTreeModel) graphe.getModel() ; + if(model !=null && model.target_!=null) if(model.target_.getData() !=null && model.target_.getData() instanceof TrPostSource){ TrPostSource sourceGraphe=(TrPostSource) model.target_.getData(); if(sourceGraphe==src) Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanelPersistManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanelPersistManager.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanelPersistManager.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -5,6 +5,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.List; import java.util.Map; import org.fudaa.ctulu.CtuluArkSaver; @@ -86,7 +87,13 @@ if (src == null) { // TrPostMultiSourceActivator activator = new TrPostMultiSourceActivator(projet); // activator.active(new File(idSource), projet.getImpl()); - return null; + ((List<String>)parameters.get("errorMsg")).add("Erreur, la frame calque ne trouve pas le fichier r\xE9sultat qui correspond \xE0 l'ID "+idSource); + if(projet.listeSrc_.size()>0){ + ((List<String>)parameters.get("errorMsg")).add("Le calque chargera en contrepartie le fichier r\xE9sultat "+projet.getSource(0).getFile().getPath()); + //return null; + src=projet.getSource(0); + } + else return null; } // -- etape 3: creation du legende adapter --// Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistanceErrorManager.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -2,18 +2,24 @@ import java.awt.BorderLayout; import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; +import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableModel; import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.gui.CtuluLibSwing; +import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.tr.common.TrResource; @@ -34,44 +40,60 @@ public void clear(){ listeMessageError.clear(); + } - private class ModeleTableError extends DefaultTableModel{ - - - java.util.List<String> listeMessageError_; - + private static class ModeleTableError implements TableModel{ + java.util.List<String> liste_; public ModeleTableError(List<String> listeMessage) { - - - listeMessageError_ = listeMessage; + super(); + liste_ = listeMessage; } - @Override public int getColumnCount() { // TODO Auto-generated method stub return 1; } - @Override public String getColumnName(int column) { // TODO Auto-generated method stub return "Messages"; } - @Override public int getRowCount() { // TODO Auto-generated method stub - return listeMessageError_.size(); + return liste_.size(); } - @Override public Object getValueAt(int row, int column) { // TODO Auto-generated method stub - return listeMessageError_.get(row); + return liste_.get(row); } - - + @Override + public void addTableModelListener(TableModelListener l) { + // TODO Auto-generated method stub + + } + @Override + public Class<?> getColumnClass(int columnIndex) { + // TODO Auto-generated method stub + return String.class; + } + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + // TODO Auto-generated method stub + return false; + } + @Override + public void removeTableModelListener(TableModelListener l) { + // TODO Auto-generated method stub + + } + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + // TODO Auto-generated method stub + + } } public void showDialog(CtuluUI ui){ @@ -81,18 +103,32 @@ return; } - JTable table=new JTable(new DefaultTableModel(listeMessageError.toArray(),listeMessageError.size())); + JTable table=new JTable(new ModeleTableError(listeMessageError)); final Frame f = CtuluLibSwing.getFrameAncestorHelper(ui.getParentComponent()); - JDialog dialog_ = new JDialog(f); + final JDialog dialog_ = new JDialog(f); dialog_.setModal(true); dialog_.setTitle("Chargement termin\xE9"); final JPanel container = new JPanel(new BorderLayout()); container.add(new JScrollPane(table), BorderLayout.CENTER); container.add(new JLabel( TrResource.getS("Chargement termin\xE9 avec erreur(s)")),BorderLayout.NORTH); + + JButton ajouter_ = new JButton("Valider", EbliResource.EBLI.getIcon("crystal_valider")); + ajouter_.addActionListener(new ActionListener(){ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + dialog_.dispose(); + } + + }); + container.add((new JPanel()).add(ajouter_),BorderLayout.SOUTH); + dialog_.setContentPane(container); dialog_.setLocationRelativeTo(ui.getParentComponent()); - dialog_.setSize(300,200); + //dialog_.pack(); + dialog_.setSize(600,250); dialog_.setVisible(true); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2008-10-30 14:27:59 UTC (rev 4113) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/persist/TrPostPersistenceManager.java 2008-10-30 16:04:39 UTC (rev 4114) @@ -346,7 +346,7 @@ final int nbFichiersToGenrate = listeFilles.size(); out.writeInt(nbFichiersToGenrate); - for (int i = 0; i < nbFichiersToGenrate; i++) { + for (int i = nbFichiersToGenrate-1; i >=0; i--) { // creation du fichier de desciption des scenes dans le repertoire de meme nom. String nomLayout=FuLib.clean(listeFilles.get(i).previousTitleFrame); String nomFichierLayout = nomLayout + EXTENSION_REPLAYOUT + File.separator + DESCRIPTORSCENE ; @@ -909,8 +909,8 @@ parametres.put("path", projet_.getAbsolutePath()); parametres.put("ui", ui_); parametres.put("TrPostProjet", trprojet_); + parametres.put("errorMsg", managerError.listeMessageError); - // -- etape 5 lecture de la liste des couples nomsfRAME /ID --// file = new File(projet_.getAbsolutePath() + File.separator + FileWidgetNames); final List<EbliWidgetSerializeXml.CoupleNomId> listeCouplesNoms = loadNomsFrames(file); @@ -1121,6 +1121,7 @@ for (final CoupleNomId couple : listeCouplesNoms) { if (couple.id.equals(idWidget)) return couple.nom; } + this.managerError.addMessageError(this.FileWidgetNames+": Il n'existe pas de nom correspondant \xE0 la frame d'ID "+idWidget); return ""; } @@ -1175,7 +1176,12 @@ for (int i = 0; i < sceneXml.getNbFrames(); i++) { // lecture xml de l objet - final EbliWidgetSerializeXml widgetXml = (EbliWidgetSerializeXml) in.readObject(); + final Object objetXml = in.readObject(); + if(objetXml==null || !(objetXml instanceof EbliWidgetSerializeXml)){ + managerError.addMessageError(nomRepertoireLayout+": l'objet xml N\xB0"+i+" lu n'est pas un descripteur de frame valide"); + }else{ + final EbliWidgetSerializeXml widgetXml =(EbliWidgetSerializeXml) objetXml; + if(!widgetXml.isLinked()){ // generation de la widget dans la scene parametres.put("nodeName", getNodeName(listeCouplesNoms, widgetXml.getId())); @@ -1204,6 +1210,7 @@ } } + } // --On executre les widgets liees --// for (EbliWidgetSerializeXml widgetXml : listeWidgetLinked) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-10-30 14:28:14
|
Revision: 4113 http://fudaa.svn.sourceforge.net/fudaa/?rev=4113&view=rev Author: emmanuel_martin Date: 2008-10-30 14:27:59 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Correction de quelques bugs concernant le panel de visibilit?\195?\169. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/EditVisibilityAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGPaletteInfo.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/palette/BPaletteInfo.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -12,6 +12,7 @@ import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ebli.commun.EbliLib; @@ -40,8 +41,8 @@ } } - public BCalquePaletteInfo(final BArbreCalqueModel _m) { - super(); + public BCalquePaletteInfo(final BArbreCalqueModel _m, CtuluCommandManager _cmd) { + super(_cmd); treeModel_ = _m; treeModel_.addTreeSelectionListener(this); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -358,7 +358,7 @@ } public JComponent buildContentPane() { - return new BCalquePaletteInfo(pn_.getArbreCalqueModel()); + return new BCalquePaletteInfo(pn_.getArbreCalqueModel(), pn_.gisEditor_.getMng()); } }; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/EditVisibilityAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/EditVisibilityAction.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/EditVisibilityAction.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -9,6 +9,7 @@ import javax.swing.JComponent; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluResource; import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.edition.BPaletteEditVisibility; @@ -20,16 +21,18 @@ * 'visibilite' des g\xE9om\xE9tries. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class EditVisibilityAction extends EbliActionPaletteAbstract { - private BPaletteEditVisibility palette_; - private final BArbreCalqueModel treeModel_; + protected BPaletteEditVisibility palette_; + protected final BArbreCalqueModel treeModel_; + protected CtuluCommandManager cmd_; - public EditVisibilityAction(BArbreCalqueModel _treeModel) { + public EditVisibilityAction(BArbreCalqueModel _treeModel, CtuluCommandManager _cmd) { super(EbliResource.EBLI.getString("Edition visibilit\xE9"), CtuluResource.CTULU.getToolIcon("crystal22_visibilite"), "VISIBILITY_EDITION", true); treeModel_=_treeModel; + cmd_=_cmd; } /* @@ -40,7 +43,7 @@ @Override public JComponent buildContentPane() { if(palette_==null) - palette_=new BPaletteEditVisibility(treeModel_); + palette_=new BPaletteEditVisibility(treeModel_, cmd_); return palette_.getComponent(); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -16,11 +16,14 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; +import java.util.EventObject; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; +import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTable; @@ -33,9 +36,11 @@ import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableModel; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISZoneCollection; @@ -72,23 +77,24 @@ public class BPaletteEditVisibility extends BuPanel implements ListSelectionListener, ZSelectionListener, ZModelGeometryListener, TreeModelListener, BPalettePanelInterface, ActionListener, ChangeListener { // Attributs de fonctionnement - private final BArbreCalqueModel treeModel_; - private ZCalqueAffichageDonneesInterface[] calques_; - private ZCalqueAffichageDonneesInterface[] listenCalques_; - private final String allCalquesEntry_=EbliLib.getS("Tout les calques"); + protected final BArbreCalqueModel treeModel_; + protected ZCalqueAffichageDonneesInterface[] calques_; + protected ZCalqueAffichageDonneesInterface[] listenCalques_; + protected final String allCalquesEntry_=EbliLib.getS("Tous les calques"); /** * vrai quand une modification de la selection dans le tableau ou dans le * calque est en cours. Permet d'\xE9viter des r\xE9cursions \xE0 cause des listeners de * selections. */ - private boolean listenSelection=true; + protected boolean listenSelection=true; /** Vrai quand la visibilit\xE9 n'est pas en train d'\xEAtre chang\xE9 par le panel. */ - private boolean listenVisibility=true; + protected boolean listenVisibility=true; + protected CtuluCommandManager cmd_; // Composants graphiques - private final BuComboBox calque_; - private boolean onlyInvisible_; - private final CtuluTable table_; - private TableModel geomTableModel_; + protected final BuComboBox calque_; + protected boolean onlyInvisible_; + protected final CtuluTable table_; + protected TableModel geomTableModel_; /** * @param _treeModel @@ -96,7 +102,8 @@ * g\xE9om\xE9tries et pour avoir connaissance de la cr\xE9ation et de la * suppression de calque. */ - public BPaletteEditVisibility(BArbreCalqueModel _treeModel){ + public BPaletteEditVisibility(BArbreCalqueModel _treeModel, CtuluCommandManager _cmd){ + cmd_=_cmd; calques_=new ZCalqueAffichageDonneesInterface[0]; listenCalques_=new ZCalqueAffichageDonneesInterface[0]; treeModel_=_treeModel; @@ -236,6 +243,54 @@ } } + protected class GeomTableEditor extends AbstractCellEditor implements TableCellEditor, ChangeListener { + + private boolean value; + /** Compteur d'\xE9v\xE9nement. */ + private int a=1; + + /* (non-Javadoc) + * @see + * javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing + * .JTable, java.lang.Object, boolean, int, int) + */ + public Component getTableCellEditorComponent(JTable _table, Object _value, boolean _isSelected, int _row, int _column) { + value=(Boolean)_value; + JPanel pn=new JPanel(); + pn.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); + pn.setBackground(Color.WHITE); + BuCheckBox cb=new BuCheckBox("", (Boolean)_value); + cb.addChangeListener(this); + cb.setBackground(Color.WHITE); + pn.add(cb); + return pn; + } + + /* (non-Javadoc) + * @see javax.swing.CellEditor#getCellEditorValue() + */ + public Object getCellEditorValue() { + return value; + } + + public boolean shouldSelectCell(EventObject anEvent){ + return false; + } + + /* (non-Javadoc) + * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent) + */ + public void stateChanged(ChangeEvent e) { + value=!value; + // Un hack : il semble que la checkbox envoie 5 \xE9v\xE9nements \xE0 chaque click. + // Pour arr\xEAter l'\xE9dition automatiquement au bout d'un click, on teste sur + // le compteur de click. + if(a==0) + stopCellEditing(); + a=(a+1)%5; + } + } + /** * Place dans le comboBox de choix des calques les calques qui peuvent \xEAtre * choisis ainsi que l'entr\xE9e sp\xE9ciale 'tout les calques'. @@ -271,8 +326,16 @@ // Mise a jour du tableau if(calque_.getSelectedItem()==allCalquesEntry_) listenCalques_=calques_; - else - listenCalques_=new ZCalqueAffichageDonneesInterface[0]; + else{ + boolean found=false; + int i=-1; + while(!found&&++i<calques_.length) + found=calques_[i].getTitle().equals(calque_.getSelectedItem()); + if(found) + listenCalques_=new ZCalqueAffichageDonneesInterface[]{calques_[i]}; + else + listenCalques_=new ZCalqueAffichageDonneesInterface[0]; + } // Ajout de l'\xE9coute de tout les calques for(int i=0;i<listenCalques_.length;i++){ listenCalques_[i].addSelectionListener(this); @@ -291,9 +354,7 @@ ArrayList<Object[]> rows=new ArrayList<Object[]>(); for(int i=0;i<calques_.length;i++){ if(calques_[i].getTitle().equals(calque_.getSelectedItem())||calque_.getSelectedItem()==allCalquesEntry_){ - // Ecoute du model ZModeleGeometry model = (ZModeleGeometry)calques_[i].modeleDonnees(); - model.addModelListener(this); // Extraction des donn\xE9es utiles GISZoneCollection zone=model.getGeomData(); int indexTitre=zone.getIndiceOf(GISAttributeConstants.TITRE); @@ -309,6 +370,7 @@ table_.getColumnModel().getColumn(0).setCellRenderer(new GeomTableRenderer()); table_.getColumnModel().getColumn(1).setCellRenderer(new GeomTableRenderer()); table_.getColumnModel().getColumn(1).setPreferredWidth(25); + table_.getColumnModel().getColumn(1).setCellEditor(new GeomTableEditor()); } /** @@ -327,7 +389,7 @@ GISZoneCollection zone=((ZModeleGeometry)_calque.modeleDonnees()).getGeomData(); int indexVisibility=zone.getIndiceOf(GISAttributeConstants.VISIBILITE); if (indexVisibility!=-1) - zone.getModel(indexVisibility).setObject(_numGeom, _visibility==true ? GISAttributeConstants.ATT_VAL_TRUE:GISAttributeConstants.ATT_VAL_FALSE, null); + zone.getModel(indexVisibility).setObject(_numGeom, _visibility==true ? GISAttributeConstants.ATT_VAL_TRUE:GISAttributeConstants.ATT_VAL_FALSE, cmd_); listenVisibility=true; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -15,6 +15,7 @@ import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISCoordinateSequenceContainerInterface; @@ -55,6 +56,7 @@ public ZModeleGeometryDefault(GISZoneCollectionGeometry _zone) { geometries_=_zone; + geometries_.setListener(this); } public void getDomaineForGeometry(int _idxGeom, GrBoite _target) { @@ -212,7 +214,7 @@ /* (non-Javadoc) * @see org.fudaa.ebli.palette.BPaletteInfo.ModifyPropertyInfo#modifyProperty(java.lang.String, java.lang.Object) */ - public void modifyProperty(String _key, Object _value, int[] _index) { + public void modifyProperty(String _key, Object _value, int[] _index, CtuluCommandManager _cmd) { if (_index!=null) { // Recherche de l'attribut d\xE9fini par _key boolean found=false; @@ -223,7 +225,7 @@ if (found) { int[] geometries=_index; for (int j=0; j<geometries.length; j++) - geometries_.getModel(i).setObject(geometries[j], _value, null); + geometries_.getModel(i).setObject(geometries[j], _value, _cmd); } } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -15,6 +15,7 @@ import javax.swing.table.AbstractTableModel; import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluListSelectionInterface; @@ -351,8 +352,8 @@ /* (non-Javadoc) * @see org.fudaa.ebli.palette.BPaletteInfo.ModifyPropertyInfo#modifyProperty(java.lang.String, java.lang.Object) */ - public void modifyProperty(String _key, Object _value, final int[] _index) { - super.modifyProperty(_key, _value, _index); + public void modifyProperty(String _key, Object _value, final int[] _index, CtuluCommandManager _cmd) { + super.modifyProperty(_key, _value, _index, _cmd); if (_index!=null&&_value!=null&&_key==CtuluLib.getS("Ferm\xE9")) { // Modification de la propri\xE9t\xE9 int[] indexPolylines=_index; @@ -367,7 +368,7 @@ else FuLog.error("ZModeleLigneBriseeDefault.modifyProperty : la valeur pour la propri\xE9t\xE9 'ferm\xE9' est inconnue donc intraitable."); // Remplacement de l'ancienne g\xE9om\xE9trie par la nouvelle - geometries_.setGeometry(indexPolyligne, newGeom, null); + geometries_.setGeometry(indexPolyligne, newGeom, _cmd); } } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -179,7 +179,7 @@ final BPaletteInfoAbstractAction info = new BPaletteInfoAbstractAction() { public JComponent buildContentPane() { - return new EGPaletteInfo(EGFillePanel.this); + return new EGPaletteInfo(EGFillePanel.this, null); } protected boolean mustBeUpdated() { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGPaletteInfo.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGPaletteInfo.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGPaletteInfo.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -10,6 +10,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.TreeSelectionEvent; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLibMessage; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluListSelectionEvent; @@ -26,7 +27,8 @@ EGFillePanel p_; - public EGPaletteInfo(final EGFillePanel _p) { + public EGPaletteInfo(final EGFillePanel _p, CtuluCommandManager _cmd) { + super(_cmd); _p.addListenerCourbePoint(this); _p.getModel().addModelListener(this); _p.getModel().addSelectionListener(this); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/palette/BPaletteInfo.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/palette/BPaletteInfo.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/palette/BPaletteInfo.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -25,6 +25,7 @@ import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; +import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.gui.CtuluTableCellEditorProxy; import org.fudaa.ctulu.gui.CtuluValueEditorI; import org.fudaa.ebli.commun.EbliLib; @@ -96,8 +97,9 @@ * @param _key le nom de la propri\xE9t\xE9 * @param _newValue la nouvelle valeur de la prorpi\xE9t\xE9 * @param _index l'information pass\xE9 en param\xE8tre du put + * @param _cmd le gestionnaire de commande pour le undo/redo */ - void modifyProperty(String _key, Object _newValue, int[] _index); + void modifyProperty(String _key, Object _newValue, int[] _index, CtuluCommandManager _cmd); } /** @@ -279,7 +281,7 @@ rows_.get(_rowIndex).set(_columnIndex, _value); // Si la nouvelle valeur est consid\xE9r\xE9e comme valide par l'editeur, on appelle la m\xE9thode de callback if(rows_.get(_rowIndex).get(2)!=null&&((CtuluValueEditorI)rows_.get(_rowIndex).get(2)).isValid(_value)) - ((ModifyPropertyInfo)rows_.get(_rowIndex).get(4)).modifyProperty((String)rows_.get(_rowIndex).get(0), _value, (int[]) rows_.get(_rowIndex).get(5)); + ((ModifyPropertyInfo)rows_.get(_rowIndex).get(4)).modifyProperty((String)rows_.get(_rowIndex).get(0), _value, (int[]) rows_.get(_rowIndex).get(5), cmd_); } } @@ -294,8 +296,10 @@ protected JTable table_; protected transient PanelTableModel tableModel_; protected JTextField txtTitle_; + protected CtuluCommandManager cmd_; - public BPaletteInfo() { + public BPaletteInfo(CtuluCommandManager _cmd) { + cmd_=_cmd; setLayout(new BuBorderLayout()); txtTitle_ = new BuTextField(); final Font f = txtTitle_.getFont(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java 2008-10-30 10:49:01 UTC (rev 4112) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java 2008-10-30 14:27:59 UTC (rev 4113) @@ -163,7 +163,7 @@ arrayList.add(new CalqueGISEditionAction(getArbreCalqueModel().getTreeSelectionModel(), gisEditor_, getScene())); arrayList.add(new SceneRotationAction(getArbreCalqueModel().getTreeSelectionModel(), gisEditor_, gisEditor_.getSceneEditor(),getEbliFormatter())); arrayList.add(new SceneDeplacementAction(getArbreCalqueModel().getTreeSelectionModel(), gisEditor_.getSceneEditor(),getEbliFormatter(), getCalqueDeplacement())); - arrayList.add(new EditVisibilityAction(getArbreCalqueModel())); + arrayList.add(new EditVisibilityAction(getArbreCalqueModel(), mng_)); return (EbliActionInterface[]) arrayList.toArray(new EbliActionInterface[arrayList.size()]); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-10-30 10:49:11
|
Revision: 4112 http://fudaa.svn.sourceforge.net/fudaa/?rev=4112&view=rev Author: hadouxad Date: 2008-10-30 10:49:01 +0000 (Thu, 30 Oct 2008) Log Message: ----------- correction fin rapport recette lot 1 Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliSceneController.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetGroup.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/AlignWithResizeProportionalStrategy.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliAlignWithMoveStrategyProvider.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliWidgetActionFactory.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/MoveAction.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/ Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/resizestrategy/ Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliSceneController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliSceneController.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliSceneController.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -7,8 +7,8 @@ import javax.swing.JScrollPane; import javax.swing.ListSelectionModel; -import org.fudaa.ebli.visuallibrary.resizestrategy.EbliAlignWithMoveStrategyProvider; -import org.fudaa.ebli.visuallibrary.resizestrategy.EbliWidgetActionFactory; +import org.fudaa.ebli.visuallibrary.bahaviorstrategy.EbliAlignWithMoveStrategyProvider; +import org.fudaa.ebli.visuallibrary.bahaviorstrategy.EbliWidgetActionFactory; import org.fudaa.ebli.visuallibrary.tree.EbliJXTreeTableCellRenderer; import org.jdesktop.swingx.JXTreeTable; import org.jdesktop.swingx.decorator.HighlighterFactory; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetGroup.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetGroup.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetGroup.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -1,5 +1,14 @@ package org.fudaa.ebli.visuallibrary; +import java.awt.Dimension; +import java.awt.Point; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.netbeans.api.visual.widget.Widget; + /** * Widget qui a pour but de grouper plusieurs sous widget. * @@ -9,9 +18,62 @@ public final static String NOGROUP = "N/A"; + + /** + * Enregistre les proportions des widgets initialement par rapport a la taille de la widget + */ + public Map<EbliWidget,Couple> listeProportionsWidgets=new HashMap<EbliWidget,Couple>(); + public EbliWidgetGroup(final EbliScene scene) { super(scene); // TODO Auto-generated constructor stub } + + + private class Couple{ + public double propX; + public double propY; + public Couple(double propX, double propY) { + super(); + this.propX = propX; + this.propY = propY; + } + } + + public void setProportions(){ + if(getPreferredSize()==null) + return; + double width=getPreferredSize().width; + double height=getPreferredSize().height; + + for(Widget widget:getChildren()){ + if(widget instanceof EbliWidget && widget.getPreferredSize()!=null){ + double w=widget.getPreferredSize().width; + double h=widget.getPreferredSize().height; + + Couple prop=new Couple(w/width,h/height); + listeProportionsWidgets.put((EbliWidget) widget, prop); + } + + } + } + + public Dimension getPropDimension(EbliWidget widget){ + + Couple proportions=listeProportionsWidgets.get(widget); + if(proportions==null) + return null; + + if(getBounds()==null) + return null; + int width=getBounds().width; + int height=getBounds().height; + + double w=proportions.propX*width; + double h=proportions.propY*height; + + return new Dimension((int)w,(int)h); + } + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -15,7 +15,7 @@ import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuPanel; -public class EbliWidgetTextEditor extends EbliWidget implements InplaceEditorProvider<BuPanel> { +public class EbliWidgetTextEditor extends EbliWidget implements InplaceEditorProvider<CtuluHtmlEditorPanel> { // editeur de texte CtuluHtmlEditorPanel editorPane_ = new CtuluHtmlEditorPanel(); @@ -30,7 +30,8 @@ super(scene, false); editorPane_ = content; - intern_ = new ComponentWidget(scene, contenuHTML_); + intern_ = new ComponentWidget(scene, contenuHTML_); + // intern_ = new ComponentWidget(scene, editorPane_.); contenuHTML_.setText(content.getDocumentText()); // -- ajout en interne du label d affichage --// @@ -81,7 +82,7 @@ // // // } - public BuPanel createEditorComponent( + public CtuluHtmlEditorPanel createEditorComponent( final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, final Widget widget) { // --creation du panel ekitcore if (conteneur == null) { @@ -99,21 +100,21 @@ } // -- on masque l affichage du widgetcomponent --// - contenuHTML_.setText(""); + // contenuHTML_.setText(""); - return conteneur; + return editorPane_; } public EnumSet<org.netbeans.api.visual.action.InplaceEditorProvider.ExpansionDirection> getExpansionDirections( final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, final Widget widget, - final BuPanel editor) { + final CtuluHtmlEditorPanel editor) { return null; } public Rectangle getInitialEditorComponentBounds( final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, final Widget widget, - final BuPanel editor, final Rectangle viewBounds) { + final CtuluHtmlEditorPanel editor, final Rectangle viewBounds) { return null; } @@ -133,9 +134,9 @@ // // } - public void notifyClosing(final EditorController _controller, final Widget _widget, final BuPanel _editor, + public void notifyClosing(final EditorController _controller, final Widget _widget, final CtuluHtmlEditorPanel _editor, final boolean _commit) { - // contenuHTML_.setText(editorPane_.getDocumentText()); + contenuHTML_.setText(editorPane_.getDocumentText()); intern_.repaint(); intern_.revalidate(); this.repaint(); @@ -144,10 +145,13 @@ } - public void notifyOpened(final EditorController _controller, final Widget _widget, final BuPanel _editor) { - // contenuHTML_.setText(CtuluHtmlEditorPanel.showMinimalHtmlDialog("", - // getEbliScene().getView(), true)); - editingStart(); + public void notifyOpened(final EditorController _controller, final Widget _widget, final CtuluHtmlEditorPanel _editor) { + //contenuHTML_.setText(CtuluHtmlEditorPanel.showMinimalHtmlDialog(contenuHTML_.getText(), + //getEbliScene().getView(), true)); + //editorPane_.setDocumentText(contenuHTML_.getText()); + // -- on masque l affichage du widgetcomponent --// + contenuHTML_.setText(""); + editingStart(); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -30,8 +30,8 @@ // -- creation de la widget et ajout dans la scene --// final EbliNodeDefault nodeText = new EbliNodeDefault(); nodeText.setTitle("Texte"); - final CtuluHtmlEditorPanel editor = new CtuluHtmlEditorPanel(EbliLib.getS("Double-cliquez pour \xE9diter"), - CtuluHtmlEditorPanel.getMinimalActions()); + final CtuluHtmlEditorPanel editor = new CtuluHtmlEditorPanel(EbliLib.getS("Double-cliquez pour \xE9diter")/*, + CtuluHtmlEditorPanel.getMinimalActions()*/); // editor.setDocumentText(); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -165,6 +165,9 @@ } + //-- sauvegarde des proportions pour le ungroup --// + parent.setProportions(); + final EbliWidgetGroupCreator creator = new EbliWidgetGroupCreator(); parent.setGroup(true); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java 2008-10-30 09:59:16 UTC (rev 4111) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetUngroupAction.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -4,6 +4,7 @@ */ package org.fudaa.ebli.visuallibrary.actions; +import java.awt.Dimension; import java.awt.Point; import java.awt.event.ActionEvent; import java.util.ArrayList; @@ -14,6 +15,7 @@ import org.fudaa.ebli.visuallibrary.EbliNode; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; +import org.fudaa.ebli.visuallibrary.EbliWidgetGroup; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetFusionCalques; import org.netbeans.api.visual.widget.Widget; @@ -55,7 +57,14 @@ w.removePropertyChangeListenerFormWidget((EbliWidget) widget); _n.setPreferedLocation(toScene); - _n.setPreferedSize(widget.getPreferredSize()); + + //-- on essaie de recuperere les proportions --// + //getPropDimension + Dimension sizeProp=((EbliWidgetGroup)_n.getWidget().getIntern()).getPropDimension((EbliWidget) widget); + if(sizeProp!=null) + n.setPreferedSize(sizeProp); + else + n.setPreferedSize(widget.getPreferredSize()); // widget.setPreferredLocation(toScene); _scene.addNode(n).setPreferredLocation(toScene); n.getWidget().getController().replaceActionResize(); Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy ___________________________________________________________________ Added: svn:mergeinfo + Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/AlignWithResizeProportionalStrategy.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/resizestrategy/AlignWithResizeProportionalStrategy.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/AlignWithResizeProportionalStrategy.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -1,4 +1,4 @@ -package org.fudaa.ebli.visuallibrary.resizestrategy; +package org.fudaa.ebli.visuallibrary.bahaviorstrategy; import java.awt.Insets; import java.awt.Point; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliAlignWithMoveStrategyProvider.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/resizestrategy/EbliAlignWithMoveStrategyProvider.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliAlignWithMoveStrategyProvider.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -2,7 +2,7 @@ * Licence GPL * Copyright Genesis */ -package org.fudaa.ebli.visuallibrary.resizestrategy; +package org.fudaa.ebli.visuallibrary.bahaviorstrategy; import java.awt.Point; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliWidgetActionFactory.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/resizestrategy/EbliWidgetActionFactory.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/EbliWidgetActionFactory.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -1,4 +1,4 @@ -package org.fudaa.ebli.visuallibrary.resizestrategy; +package org.fudaa.ebli.visuallibrary.bahaviorstrategy; import java.awt.BasicStroke; import java.awt.Color; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/MoveAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/resizestrategy/MoveAction.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/bahaviorstrategy/MoveAction.java 2008-10-30 10:49:01 UTC (rev 4112) @@ -1,4 +1,4 @@ -package org.fudaa.ebli.visuallibrary.resizestrategy; +package org.fudaa.ebli.visuallibrary.bahaviorstrategy; import java.awt.Point; import java.awt.event.MouseEvent; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-10-30 09:59:26
|
Revision: 4111 http://fudaa.svn.sourceforge.net/fudaa/?rev=4111&view=rev Author: emmanuel_martin Date: 2008-10-30 09:59:16 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Modification d'un nom de classe ambigu. GISAttributeModelListener -> GISAttributeModelObservable Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttribute.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeBoolean.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeDouble.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInteger.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanArray.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanList.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleArray.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleList.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerArray.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerList.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectArray.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectList.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObservable.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelListener.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttribute.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttribute.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttribute.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -126,7 +126,7 @@ } - public GISAttributeModelListener createAtomicModel(final Object[] _initValues, final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final Object[] _initValues, final int _nbValues) { if (_initValues != null) { if (_initValues.length != _nbValues) { throw new IllegalArgumentException("bad size value=" + _nbValues + " used=" + _initValues.length); @@ -146,7 +146,7 @@ return res; } - public GISAttributeModelListener createListModel(final int _initCap) { + public GISAttributeModelObservable createListModel(final int _initCap) { return new GISAttributeModelObjectList(_initCap, this); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeBoolean.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeBoolean.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeBoolean.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -22,7 +22,7 @@ super(CtuluValueEditorDefaults.STRING_EDITOR); } - public GISAttributeModelListener createAtomicModel(final Object[] _initValues, final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final Object[] _initValues, final int _nbValues) { if (_initValues != null) { if (_initValues.length != _nbValues) { throw new IllegalArgumentException("bad size value=" + _nbValues + " used=" @@ -34,7 +34,7 @@ return new GISAttributeModelBooleanArray(_nbValues, this); } - public GISAttributeModelListener createAtomicModel(final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final int _nbValues) { return createAtomicModelBoolean(_nbValues); } @@ -42,7 +42,7 @@ return new GISAttributeModelBooleanArray(_nbValues, this); } - public GISAttributeModelListener createListModel(final int _nbCap) { + public GISAttributeModelObservable createListModel(final int _nbCap) { return createListModelBoolean(_nbCap); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeDouble.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeDouble.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeDouble.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -41,11 +41,11 @@ def_ = _defValue; } - public GISAttributeModelListener createAtomicModel(final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final int _nbValues) { return createAtomicModelDouble(_nbValues); } - public GISAttributeModelListener createAtomicModel(final Object[] _initValues, final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final Object[] _initValues, final int _nbValues) { if (_initValues != null) { if (_initValues.length != _nbValues) { throw new IllegalArgumentException("bad size value=" + _nbValues + " used=" + _initValues.length); @@ -60,11 +60,11 @@ return new GISAttributeModelDoubleArray(_nbValues, this); } - public GISAttributeModelListener createListModel(final int _defaultCap) { + public GISAttributeModelObservable createListModel(final int _defaultCap) { return createListModelDouble(_defaultCap); } - public GISAttributeModelListener createListModelDouble(final int _defaultCap) { + public GISAttributeModelObservable createListModelDouble(final int _defaultCap) { return new GISAttributeModelDoubleList(_defaultCap, this); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInteger.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInteger.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInteger.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -19,7 +19,7 @@ super(new CtuluValueEditorInteger()); } - public GISAttributeModelListener createAtomicModel(final Object[] _initValues, final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final Object[] _initValues, final int _nbValues) { if (_initValues != null) { if (_initValues.length != _nbValues) { throw new IllegalArgumentException("bad size value=" + _nbValues + " used=" + _initValues.length); @@ -29,7 +29,7 @@ return new GISAttributeModelIntegerArray(_nbValues, this); } - public GISAttributeModelListener createAtomicModel(final int _nbValues) { + public GISAttributeModelObservable createAtomicModel(final int _nbValues) { return createAtomicModelInteger(_nbValues); } @@ -37,11 +37,11 @@ return new GISAttributeModelIntegerArray(_nbValues, this); } - public GISAttributeModelListener createListModel(final int _defaultCap) { + public GISAttributeModelObservable createListModel(final int _defaultCap) { return createListModelInteger(_defaultCap); } - public GISAttributeModelListener createListModelInteger(final int _defaultCap) { + public GISAttributeModelObservable createListModelInteger(final int _defaultCap) { return new GISAttributeModelIntegerList(_defaultCap, this); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -43,7 +43,7 @@ * @param _nbValues * @return un modele a utilise pour des donn\xE9es sur les vertex */ - GISAttributeModelListener createAtomicModel(Object[] _initValues, int _nbValues); + GISAttributeModelObservable createAtomicModel(Object[] _initValues, int _nbValues); /** * Permet de creer facilement les donn\xE9es correspondant a l'att. @@ -51,7 +51,7 @@ * @param _initValues la ou les valeurs initiales, peut etre null. Si c'est un tableau et l'attribute est global, la * moyenne sera prise. Inversement, l'objet sera duplique si un tableau doit etre construit. * @param _nbPt le nombre de points pour l'objet geometriques correspondant - * @return l'objet correspondant. Si atomique, un {@link GISAttributeModelListener} est renvoy\xE9. Sinon, + * @return l'objet correspondant. Si atomique, un {@link GISAttributeModelObservable} est renvoy\xE9. Sinon, * retourne un objet de classe {@link #getDataClass()} */ Object createDataForGeom(Object _initValues, int _nbPt); @@ -60,7 +60,7 @@ * @param _defaultCap la capacit\xE9 par defaut: optimisation. * @return le modele a utiliser pour une liste variable en taille. */ - GISAttributeModelListener createListModel(int _defaultCap); + GISAttributeModelObservable createListModel(int _defaultCap); /** * @return la valeur par defaut Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanArray.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanArray.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanArray.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -19,7 +19,7 @@ * @version $Id: GISAttributeModelBooleanArray.java,v 1.10 2007-01-10 08:58:48 deniger Exp $ */ public class GISAttributeModelBooleanArray extends CtuluArrayBoolean implements - GISAttributeModelListener, GISAttributeModelBooleanInterface { + GISAttributeModelObservable, GISAttributeModelBooleanInterface { GISAttributeInterface attribute_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanList.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanList.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelBooleanList.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -21,7 +21,7 @@ * @author Fred Deniger * @version $Id: GISAttributeModelBooleanList.java,v 1.13 2007-05-04 13:43:25 deniger Exp $ */ -public class GISAttributeModelBooleanList extends CtuluListBoolean implements GISAttributeModelListener, +public class GISAttributeModelBooleanList extends CtuluListBoolean implements GISAttributeModelObservable, GISAttributeModelBooleanInterface { GISAttributeInterface attribute_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleArray.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleArray.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleArray.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -24,7 +24,7 @@ * @version $Id: GISAttributeModelDoubleArray.java,v 1.12 2007-04-16 16:33:52 deniger Exp $ */ public class GISAttributeModelDoubleArray extends CtuluArrayDouble implements - GISAttributeModelDoubleInterface, GISAttributeModelListener { + GISAttributeModelDoubleInterface, GISAttributeModelObservable { GISAttributeInterface attribute_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleList.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleList.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelDoubleList.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -23,7 +23,7 @@ * @version $Id: GISAttributeModelDoubleList.java,v 1.12 2007-04-16 16:33:52 deniger Exp $ */ public class GISAttributeModelDoubleList extends CtuluListDouble implements GISAttributeModelDoubleInterface, - GISAttributeModelListener { + GISAttributeModelObservable { protected transient GISAttributeListener listener_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerArray.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerArray.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerArray.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -20,7 +20,7 @@ * @version $Id: GISAttributeModelIntegerArray.java,v 1.10 2007-01-10 08:58:47 deniger Exp $ */ public class GISAttributeModelIntegerArray extends CtuluArrayInteger implements - GISAttributeModelListener,GISAttributeModelIntegerInterface { + GISAttributeModelObservable,GISAttributeModelIntegerInterface { GISAttributeInterface attribute_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerList.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerList.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelIntegerList.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -21,7 +21,7 @@ * @version $Id: GISAttributeModelIntegerList.java,v 1.9 2007-01-10 08:58:47 deniger Exp $ */ public class GISAttributeModelIntegerList extends CtuluListInteger implements GISAttributeModelIntegerInterface, - GISAttributeModelListener { + GISAttributeModelObservable { /** * Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelListener.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelListener.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelListener.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -1,22 +0,0 @@ -/* - * @creation 7 avr. 2005 - * @modification $Date: 2006-02-09 08:59:28 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ctulu.gis; - - -/** - * @author Fred Deniger - * @version $Id: GISAttributeModelListener.java,v 1.3 2006-02-09 08:59:28 deniger Exp $ - */ -public interface GISAttributeModelListener extends GISAttributeModel { - - /** - * @param _listener le listener - */ - void setListener(GISAttributeListener _listener); - -} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectArray.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectArray.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectArray.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -19,7 +19,7 @@ * @version $Id: GISAttributeModelObjectArray.java,v 1.11 2007-05-04 13:43:25 deniger Exp $ */ public class GISAttributeModelObjectArray extends CtuluArrayObject implements - GISAttributeModelObjectInterface, GISAttributeModelListener { + GISAttributeModelObjectInterface, GISAttributeModelObservable { protected transient GISAttributeListener listener_; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectList.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectList.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObjectList.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -22,7 +22,7 @@ * @author Fred Deniger * @version $Id: GISAttributeModelObjectList.java,v 1.11 2007-05-04 13:43:25 deniger Exp $ */ -public class GISAttributeModelObjectList extends CtuluListObject implements GISAttributeModelListener, +public class GISAttributeModelObjectList extends CtuluListObject implements GISAttributeModelObservable, GISAttributeModelObjectInterface { protected transient GISAttributeListener listener_; Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObservable.java (from rev 4107, branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelListener.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObservable.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModelObservable.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -0,0 +1,22 @@ +/* + * @creation 7 avr. 2005 + * @modification $Date: 2006-02-09 08:59:28 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ctulu.gis; + + +/** + * @author Fred Deniger + * @version $Id: GISAttributeModelListener.java,v 1.3 2006-02-09 08:59:28 deniger Exp $ + */ +public interface GISAttributeModelObservable extends GISAttributeModel { + + /** + * @param _listener le listener + */ + void setListener(GISAttributeListener _listener); + +} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -50,7 +50,7 @@ public static GISAttributeModel createModelList(final GISAttributeInterface _att, final Object _valatt, final int _capacity, final GISAttributeListener _listener, final int _initValuesNb) { - final GISAttributeModelListener resfinal = _att.createListModel(_capacity); + final GISAttributeModelObservable resfinal = _att.createListModel(_capacity); if (_initValuesNb > 0) { final Object[] add = new Object[_initValuesNb]; Arrays.fill(add, _valatt); @@ -67,7 +67,7 @@ */ public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final Object _valatt, final int _initSize, final GISAttributeListener _listener) { - final GISAttributeModelListener resfinal = (GISAttributeModelListener)_att.createDataForGeom(_valatt, _initSize); + final GISAttributeModelObservable resfinal = (GISAttributeModelObservable)_att.createDataForGeom(_valatt, _initSize); resfinal.setListener(_listener); return resfinal; } @@ -133,7 +133,7 @@ */ public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final Object[] _initValues, final GISAttributeListener _listener) { - GISAttributeModelListener resfinal = null; + GISAttributeModelObservable resfinal = null; final Class clazz = _att.getDataClass(); if (clazz == Integer.class) { resfinal = new GISAttributeModelIntegerArray(_initValues, _att); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -36,7 +36,7 @@ private String title_; /** La liste ordonn\xE9e des mod\xE8les d'attributs associ\xE9es \xE0 la collection. */ - protected GISAttributeModelListener[] attr_; + protected GISAttributeModelObservable[] attr_; /** L'acc\xE8s direct \xE0 l'indice de mod\xE8le depuis un type d'attribut */ protected Map<GISAttributeInterface,Integer> att2Idx_=new HashMap<GISAttributeInterface, Integer>(); /** La valeur de la nature pour cette collection si elle est impos\xE9e. null : non impos\xE9e. */ @@ -118,17 +118,17 @@ * @param _i l'indice de l'attribut * @return le model si existant (null sinon). */ - protected GISAttributeModelListener getModelListener(final int _i) { - return (GISAttributeModelListener) getData(_i); + protected GISAttributeModelObservable getModelListener(final int _i) { + return (GISAttributeModelObservable) getData(_i); } protected void initAttributes(final GISAttributeInterface[] _att) { if (_att != null) { badIdxAttZ_=true; attListHasChanged_=true; - attr_ = new GISAttributeModelListener[_att.length]; + attr_ = new GISAttributeModelObservable[_att.length]; for (int i = _att.length - 1; i >= 0; i--) { - attr_[i] = (GISAttributeModelListener) GISZoneAttributeFactory.createModel(this, _att[i]); + attr_[i] = (GISAttributeModelObservable) GISZoneAttributeFactory.createModel(this, _att[i]); // FIXME BM : Je laisse, mais c'est douteux. Dans une collection, l'attribut Z n'est pas forcement // la bathy. if (_att[i] == GISAttributeConstants.BATHY) { @@ -138,7 +138,7 @@ } } - protected void initAttributes(final GISAttributeModelListener[] _att) { + protected void initAttributes(final GISAttributeModelObservable[] _att) { badIdxAttZ_=true; attListHasChanged_=true; attr_ = _att; @@ -150,11 +150,11 @@ * @param _att * @param _cmd */ - protected void initAttributes(final GISAttributeModelListener[] _att, final CtuluCommandContainer _cmd) { + protected void initAttributes(final GISAttributeModelObservable[] _att, final CtuluCommandContainer _cmd) { if (!Arrays.equals(_att, attr_)) { badIdxAttZ_=true; attListHasChanged_=true; - final GISAttributeModelListener[] old = attr_; + final GISAttributeModelObservable[] old = attr_; attr_ = _att; fireAttributeValueChanged(-1, null, -1, null); if (_cmd != null) { @@ -360,7 +360,7 @@ } public GISAttributeModel getModel(final int _i) { - return (GISAttributeModelListener) getData(_i); + return (GISAttributeModelObservable) getData(_i); } public GISAttributeModel[] getModels() { @@ -571,7 +571,7 @@ badIdxAttZ_=true; attListHasChanged_=true; // on sauvegarde les anciens attributs - final GISAttributeModelListener[] old = attr_; + final GISAttributeModelObservable[] old = attr_; // on recupere les valeurs d\xE9j\xE0 utilis\xE9es final Map<GISAttributeInterface,GISAttributeModel> exist = @@ -582,12 +582,12 @@ exist.put(attr_[i].getAttribute(), attr_[i]); } } - final GISAttributeModelListener[] newAtt = _att == null ? null : new GISAttributeModelListener[_att.length]; + final GISAttributeModelObservable[] newAtt = _att == null ? null : new GISAttributeModelObservable[_att.length]; if (_att != null) { for (int i = _att.length - 1; i >= 0; i--) { - newAtt[i] = (GISAttributeModelListener) exist.get(_att[i]); + newAtt[i] = (GISAttributeModelObservable) exist.get(_att[i]); if (newAtt[i] == null) { - newAtt[i] = (GISAttributeModelListener) GISZoneAttributeFactory.createModel(this, _att[i]); + newAtt[i] = (GISAttributeModelObservable) GISZoneAttributeFactory.createModel(this, _att[i]); } } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -201,11 +201,11 @@ public void updateListeners() { for (int i = getNbAttributes() - 1; i >= 0; i--) { - final GISAttributeModelListener m = getModelListener(i); + final GISAttributeModelObservable m = getModelListener(i); if (m != null) { if (m.getAttribute().isAtomicValue()) { for (int j = m.getSize() - 1; j >= 0; j--) { - ((GISAttributeModelListener) m.getObjectValueAt(j)).setListener(this); + ((GISAttributeModelObservable) m.getObjectValueAt(j)).setListener(this); } } else { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -154,7 +154,7 @@ public void updateListeners() { for (int i = getNbAttributes() - 1; i >= 0; i--) { - final GISAttributeModelListener m = getModelListener(i); + final GISAttributeModelObservable m = getModelListener(i); if (m != null) { m.setListener(this); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java 2008-10-30 09:47:50 UTC (rev 4110) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java 2008-10-30 09:59:16 UTC (rev 4111) @@ -115,7 +115,7 @@ } private class UnactiveModelDoubleListNuage extends CtuluCollectionDoubleUnique implements - GISAttributeModelDoubleInterface, GISAttributeModelListener { + GISAttributeModelDoubleInterface, GISAttributeModelObservable { final GISAttributeDouble att_; @@ -387,17 +387,17 @@ } protected void addData(final CtuluCommandContainer _cmd) { - final GISAttributeModelListener[] old = super.attr_; - final GISAttributeModelListener[] newAtt = new GISAttributeModelListener[old.length + 1]; + final GISAttributeModelObservable[] old = super.attr_; + final GISAttributeModelObservable[] newAtt = new GISAttributeModelObservable[old.length + 1]; System.arraycopy(old, 0, newAtt, 0, old.length); newAtt[newAtt.length - 1] = createDoubleModel(newAtt.length - 1); newAtt[newAtt.length - 1].setListener(this); super.initAttributes(newAtt, _cmd); } - protected void addData(final GISAttributeModelListener _m, final CtuluCommandContainer _cmd) { - final GISAttributeModelListener[] old = super.attr_; - final GISAttributeModelListener[] newAtt = new GISAttributeModelListener[old.length + 1]; + protected void addData(final GISAttributeModelObservable _m, final CtuluCommandContainer _cmd) { + final GISAttributeModelObservable[] old = super.attr_; + final GISAttributeModelObservable[] newAtt = new GISAttributeModelObservable[old.length + 1]; System.arraycopy(old, 0, newAtt, 0, old.length); _m.setListener(this); newAtt[newAtt.length - 1] = _m; @@ -408,8 +408,8 @@ return new GISAttributeDouble(getVariableId(_idx).toString(), true); } - protected GISAttributeModelListener createDoubleModel(final int _idx) { - GISAttributeModelListener r = null; + protected GISAttributeModelObservable createDoubleModel(final int _idx) { + GISAttributeModelObservable r = null; if (isVariableActive(_idx)) { r = new GISAttributeModelDoubleList(getNumPoints(), (int) (getNumPoints() * 1.5), createAtt(_idx)); } else { @@ -419,7 +419,7 @@ return r; } - protected GISAttributeModelListener[] getAtts() { + protected GISAttributeModelObservable[] getAtts() { return attr_; } @@ -454,9 +454,9 @@ } protected final void majAttributes(final int _nbValues) { - final GISAttributeModelListener[] att = new GISAttributeModelListener[_nbValues]; + final GISAttributeModelObservable[] att = new GISAttributeModelObservable[_nbValues]; for (int i = 0; i < _nbValues; i++) { - final GISAttributeModelListener l = createDoubleModel(i); + final GISAttributeModelObservable l = createDoubleModel(i); l.setListener(this); att[i] = l; } @@ -464,14 +464,14 @@ } protected void removeLastData(final CtuluCommandContainer _cmd) { - final GISAttributeModelListener[] old = super.attr_; - final GISAttributeModelListener[] newAtt = new GISAttributeModelListener[old.length - 1]; + final GISAttributeModelObservable[] old = super.attr_; + final GISAttributeModelObservable[] newAtt = new GISAttributeModelObservable[old.length - 1]; System.arraycopy(old, 0, newAtt, 0, newAtt.length); super.initAttributes(newAtt, _cmd); } protected void setDataToDefault(final int _idx, final CtuluCommandContainer _cmd) { - final GISAttributeModelListener old = super.attr_[_idx]; + final GISAttributeModelObservable old = super.attr_[_idx]; // on demande de creer un modele a valeur unique super.attr_[_idx] = createDoubleModel(_idx); super.attr_[_idx].setListener(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-10-30 09:47:54
|
Revision: 4110 http://fudaa.svn.sourceforge.net/fudaa/?rev=4110&view=rev Author: emmanuel_martin Date: 2008-10-30 09:47:50 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Nouvelle modification de l'architecture des listeners de GIS et de Model. Correction d'un bug dans la selection dans le tableau devisibilit?\195?\169. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/CtuluListObject.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeListener.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollection.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolygone.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolyligne.java branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueMultiPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonneesVide.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonnesAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleFlecheForGrille.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModelePointEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/model/MvEdgeModelDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileLayerModelForCourbe.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel1dTrace.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dCloud.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dConstraintLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dContour.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dDirectionLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dMultiPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dProfile.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dZone.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigLineSingleModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSIgImageWizartStepCalageUI.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepCalageLogic.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrGisProjectEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiFlecheModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data/TrSiProfilModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrIsoModelEltDataAdapter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/post/TrPostFlecheModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/reflux/TrBcNodeLayer.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/telemac/TrTelemacSourceModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/test/org/fudaa/fudaa/tr/TestJSave.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneListener.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelGeometryListener.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelListener.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollectionData.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GeometryListener.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/CtuluListObject.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/CtuluListObject.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/CtuluListObject.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -217,7 +217,6 @@ public void redo() { remove(idx_); - fireObjectRemoved(-1, null); } public void undo() { Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -1,66 +0,0 @@ -/* - * @creation 24 oct. 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.gis; - -/** - * Cette interface permet l'\xE9coute des changements concernant les attributs des - * g\xE9om\xE9tries. Les changements sont : l'ajout d'un attribut, la suppression d'un - * attribut et le changement d'une valeur d'un attribut. - * - * @author Emmanuel MARTIN - * @version $Id:$ - */ -public interface AttributeListener extends GeometryListener { - - /** Action indiquant l'ajout d'un attribut dans le conteneur d'attributs. */ - public static final int ATTRIBUTE_ACTION_ADD=0; - /** - * Action indiquant la supression d'un attribut dans le conteneur d'attributs. - */ - public static final int ATTRIBUTE_ACTION_REMOVE=1; - - /** - * M\xE9thode appel\xE9e lorsqu'une action d'ajout ou de suppression est effectu\xE9e - * sur un attribut. - * - * @param _source - * L'instance appelant attributeAction. - * @param _indexAtt - * L'index de l'attribut. Si l'action est l'ajout d'un attribut, - * l'index est valide. Si l'action est la supression, l'index - * correspond \xE0 l'ancienne emplacement et donc n'est plus valide. Si - * \xE9gale \xE0 -1, tout les attributs ont pu \xEAtre modifi\xE9s. - * @param _att - * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre - * modifi\xE9s. - * @param _action - * L'action effectu\xE9e sur la g\xE9om\xE9trie. Voir les ATTRIBUTE_ACTION_*. - */ - public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action); - - /** - * M\xE9thode appel\xE9e lorsqu'une action de modification de la valeur d'un - * attribut est effectu\xE9e. - * - * @param _source - * L'instance appelant attributeValueChangeAction. - * @param _indexAtt - * L'index de l'attribut. Si \xE9gale \xE0 -1, tout les attributs ont pu - * \xEAtre modifi\xE9s. - * @param _att - * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre - * modifi\xE9s. - * @param _indexGeom - * La g\xE9om\xE9trie concern\xE9e. Si \xE9gale \xE0 -1, toutes les g\xE9om\xE9tries ont - * pu \xEAtre modifi\xE9es. - * @param _newValue - * La nouvelle valeur de l'attribut pour la g\xE9om\xE9trie indiqu\xE9e. Si - * null toutes les g\xE9om\xE9tries ont pu \xEAtre modifi\xE9es. - */ - public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue); -} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeListener.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeListener.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -10,7 +10,8 @@ /** * Cette interface concerne la communication entre les models d'attributs et la * GISZoneCollection. Pour la communication entre la GISZoneCollection et le - * reste du monde, voir AttributeListener dans le m\xEAme package. + * model voir GISZoneListener et pour voir la communication entre le model et le + * reste du monde, voir ZModeleListener et ZModeleGeometryListener. * * @author Fred Deniger * @version $Id: GISAttributeListener.java,v 1.3 2006-02-09 08:59:28 deniger Exp Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollection.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollection.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollection.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -89,8 +89,8 @@ protected GISObjectContainer geometry_; - /** Une instance \xE9coutant les actions effectu\xE9e sur les objets g\xE9om\xE9triques. */ - private transient GeometryListener geometryListener_; + /** Une instance \xE9coutant les actions effectu\xE9e sur les objets. */ + protected transient GISZoneListener listener_; public GISCollection() { this(GISGeometryFactory.INSTANCE, 20); @@ -152,23 +152,23 @@ } protected void fireGeometryAdded(int _newIdx, Geometry _newGeom) { - if (geometryListener_!=null) - geometryListener_.geometryAction(this, _newIdx, _newGeom, GeometryListener.GEOMETRY_ACTION_ADD); + if (listener_!=null) + listener_.objectAction(this, _newIdx, _newGeom, GISZoneListener.OBJECT_ACTION_ADD); } protected void fireGeometryRemoved(int _oldIdx, Geometry _oldGeom) { - if (geometryListener_!=null) - geometryListener_.geometryAction(this, _oldIdx, _oldGeom, GeometryListener.GEOMETRY_ACTION_REMOVE); + if (listener_!=null) + listener_.objectAction(this, _oldIdx, _oldGeom, GISZoneListener.OBJECT_ACTION_REMOVE); } protected void fireGeometryReplaced(int _oldIdx, Geometry _oldGeom) { - if (geometryListener_!=null) - geometryListener_.geometryAction(this, _oldIdx, _oldGeom, GeometryListener.GEOMETRY_ACTION_REPLACE); + if (listener_!=null) + listener_.objectAction(this, _oldIdx, _oldGeom, GISZoneListener.OBJECT_ACTION_REPLACE); } protected void fireGeometryStructureChanged(int _idx, Geometry _geom) { - if (geometryListener_!=null) - geometryListener_.geometryAction(this, _idx, _geom, GeometryListener.GEOMETRY_ACTION_STRUCTURE_CHANGE); + if (listener_!=null) + listener_.objectAction(this, _idx, _geom, GISZoneListener.OBJECT_ACTION_STRUCTURE_CHANGE); } protected Envelope computeEnvelopeInternal() { @@ -193,8 +193,8 @@ protected void internActionPointRemoved(final int[] _i, final CtuluCommandContainer _c) {} - public void setGeometryListener(final GeometryListener _geometryListener) { - geometryListener_=_geometryListener; + public void setListener(final GISZoneListener _listener) { + listener_=_listener; } public boolean accept(final GISVisitor _v) { @@ -353,8 +353,8 @@ return sum; } - public GeometryListener getGeometryListener() { - return geometryListener_; + public GISZoneListener getListener() { + return listener_; } public int getNumGeometries() { Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollectionData.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollectionData.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCollectionData.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -1,192 +0,0 @@ -/* - * @creation 7 avr. 2005 - * @modification $Date: 2008-02-04 17:11:59 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ctulu.gis; - -import java.util.Arrays; -import java.util.List; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import org.fudaa.ctulu.CtuluCommandContainer; -import org.fudaa.ctulu.collection.CtuluCollection; - -/** - * Une classe abstraite permettant de g\xE9rer des donn\xE9es (attributs) associ\xE9es au objets geom\xE9triques. - * - * @author Fred Deniger - * @version $Id: GISCollectionData.java,v 1.8.6.1 2008-02-04 17:11:59 bmarchan Exp $ - */ -public abstract class GISCollectionData extends GISCollection { - - public GISCollectionData() {} - - /** - * @param _factory - * @param _nbObject - */ - public GISCollectionData(final GeometryFactory _factory, final int _nbObject) { - super(_factory, _nbObject); - } - - /** - * @param _nbObject - */ - public GISCollectionData(final int _nbObject) { - super(_nbObject); - } - - /** - * Retourne le modele d'attribut d'indice donn\xE9. - * @param _i l'indice du mod\xE8le. - * @return le modele - */ - protected CtuluCollection getData(final int _i) { - return null; - } - - protected Object getDefaultValuesObject(final int _idxValues) { - return null; - } - - protected void internActionCleared(final CtuluCommandContainer _c) { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - getData(i).removeAll(_c); - } - - } - - /** - * Cette action est appele apres que le point ait \xE9t\xE9 ajout\xE9. - */ - protected void internActionPointAdded(final List _l, final CtuluCommandContainer _c, final int _nbValues) { - if (_l == null) { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - // si la valeur est cree, on ajoute automatiquement une valeur - if (isDataCreated(i)) { - final CtuluCollection model = getData(i); - final Object defau = getDefaultValuesObject(i); - if (_nbValues == 1) { - model.addObject(defau, _c); - } else { - final Object[] newObject = new Object[_nbValues]; - Arrays.fill(newObject, defau); - model.addAllObject(newObject, _c); - } - } - } - } else { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - Object o = _l.get(i); - // si o est null et les donn\xE9es ne sont pas creees on fait rien - if ((o != null) || isDataCreated(i)) { - if (isDataCreated(i)) { - if (o == null) { - if (_nbValues == 1) { - o = getDefaultValuesObject(i); - } else { - o = new Object[_nbValues]; - Arrays.fill((Object[]) o, getDefaultValuesObject(i)); - } - } - // la liste de donn\xE9es est deja cree, on ajoute - if (_nbValues > 1) { - getData(i).addAllObject(o, _c); - } else { - getData(i).addObject(o, _c); - } - - } else { - // la liste est cree automatiquement - // elle fait deja la taille du nombre de point - if (_nbValues > 1) { - final int[] idx = new int[_nbValues]; - final int max = getNumGeometries() - 1; - - for (int k = _nbValues - 1; k >= 0; k--) { - idx[k] = max - k; - } - if (o == null) { - getData(i).setObject(idx, getDefaultValuesObject(i), _c); - } else { - getData(i).setAllObject(idx, (Object[]) o, _c); - } - } else { - if (o == null) { - o = getDefaultValuesObject(i); - } - getData(i).setObject(getNumGeometries() - 1, o, _c); - } - } - } - } - } - - } - - protected void internActionPointInserted(final int _i, final List _l, final CtuluCommandContainer _c) { - if (_l == null) { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - if (isDataCreated(i)) { - getData(i).insertObject(_i, null, _c); - } - } - } else { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - Object o = _l.get(i); - if ((o != null) || isDataCreated(i)) { - if (isDataCreated(i)) { - if (o == null) { - o = getDefaultValuesObject(i); - } - // la liste de donn\xE9es est deja cree, on ajoute - getData(i).insertObject(_i, o, _c); - } else { - if (o == null) { - o = getDefaultValuesObject(i); - } - // la liste est cree automatiquement - // elle fait deja la taille du nombre de point - getData(i).setObject(_i, o, _c); - } - } - } - } - - } - - protected void internActionPointRemoved(final int _i, final CtuluCommandContainer _c) { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - if (isDataCreated(i)) { - getData(i).remove(_i, _c); - } - } - } - - protected void internActionPointRemoved(final int[] _i, final CtuluCommandContainer _c) { - for (int i = getNbAttributes() - 1; i >= 0; i--) { - if (isDataCreated(i)) { - getData(i).remove(_i, _c); - } - } - } - - /** - * @return 0 - */ - public int getNbAttributes() { - return 0; - } - - /** - * @param _i l'indice des valeur - * @return true si cree - */ - protected boolean isDataCreated(final int _i) { - return false; - } -} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -153,7 +153,7 @@ * @param _attr les attributs * @return une zone correctement initialis\xE9e */ - public static GISZoneCollectionLigneBrisee createPolyligne(final AttributeListener _listener, + public static GISZoneCollectionLigneBrisee createPolyligne(final GISZoneListener _listener, final GISAttributeInterface[] _attr) { final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener); zone.initAttributes(_attr); @@ -166,7 +166,7 @@ * @param _attr les attributs * @return une zone correctement initialis\xE9e */ - public static GISZoneCollectionPoint createPoint(final AttributeListener _listener, final GISAttributeInterface[] _attr) { + public static GISZoneCollectionPoint createPoint(final GISZoneListener _listener, final GISAttributeInterface[] _attr) { final GISZoneCollectionPoint zone = new GISZoneCollectionPoint(_listener); zone.initAttributes(_attr); return zone; @@ -178,7 +178,7 @@ * @param _attr les attributs * @return une zone correctement initialis\xE9e */ - public static GISZoneCollectionLigneBrisee createLigneBrisee(final AttributeListener _listener, + public static GISZoneCollectionLigneBrisee createLigneBrisee(final GISZoneListener _listener, final GISAttributeInterface[] _attr) { final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener); zone.initAttributes(_attr); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -50,8 +50,6 @@ protected boolean badIdxAttZ_=true; /** La liste d'attribut a chang\xE9 : L'acc\xE8s direct \xE0 l'indice de mod\xE8le depuis un type doit \xEAtre remis \xE0 jour. */ protected boolean attListHasChanged_=true; - /** Une instance \xE9coutant les actions effectu\xE9e sur les attributs des g\xE9om\xE9tries. */ - private AttributeListener attributeListener_; protected boolean isGeomModifiable_ = true; @@ -78,38 +76,21 @@ super(_nbObject); } - /** - * R\xE9serv\xE9 au modelDonn\xE9es pour \xE9couter sa GISZone - * - * Pour des raisons de compatibilit\xE9s, le listener est ajout\xE9 comme attribute - * listener ET geometry listener. - * - * @param _attributeListener - */ - public void setAttributeListener(AttributeListener _attributeListener){ - attributeListener_=_attributeListener; - setGeometryListener(_attributeListener); - } - - public AttributeListener getAttributeListener(){ - return attributeListener_; - } - public long getId() { return -1; } protected void fireAttributeAdded(int _newIdx, GISAttributeInterface _newAtt){ - if(attributeListener_!=null) - attributeListener_.attributeAction(this, _newIdx, _newAtt, AttributeListener.ATTRIBUTE_ACTION_ADD); + if(listener_!=null) + listener_.attributeAction(this, _newIdx, _newAtt, GISZoneListener.ATTRIBUTE_ACTION_ADD); } protected void fireAttributeRemoved(int _oldIdx, GISAttributeInterface _oldAtt){ - if(attributeListener_!=null) - attributeListener_.attributeAction(this, _oldIdx, _oldAtt, AttributeListener.ATTRIBUTE_ACTION_REMOVE); + if(listener_!=null) + listener_.attributeAction(this, _oldIdx, _oldAtt, GISZoneListener.ATTRIBUTE_ACTION_REMOVE); } protected void fireAttributeValueChanged(int _idxAtt, GISAttributeInterface _att, int _idxGeom, Object _newValue){ - if (attributeListener_ != null) { - attributeListener_.attributeValueChangeAction(this, _idxAtt, _att, _idxGeom, _newValue); + if (listener_ != null) { + listener_.attributeValueChangeAction(this, _idxAtt, _att, _idxGeom, _newValue); } } @@ -423,9 +404,8 @@ /** * Mise a jour des listeners et du listener principal. A utiliser lors de la restauration uniquement. */ - public void initListeners(final AttributeListener _listener) { - setGeometryListener(_listener); - setAttributeListener(_listener); + public void initListeners(final GISZoneListener _listener) { + setListener(_listener); updateListeners(); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -39,14 +39,14 @@ /** * @param _listener le listener */ - public GISZoneCollectionGeometry(final AttributeListener _listener) { + public GISZoneCollectionGeometry(final GISZoneListener _listener) { this(10, _listener); } /** * @param _listener le listener */ - public GISZoneCollectionGeometry(final AttributeListener _listener, final GISZoneCollectionGeometry _col) { + public GISZoneCollectionGeometry(final GISZoneListener _listener, final GISZoneCollectionGeometry _col) { this(10, _listener); if (_col != null) { for (int i = 0; i < _col.getNumGeometries(); i++) { @@ -55,9 +55,9 @@ } } - public GISZoneCollectionGeometry(final int _nbObject, final AttributeListener _listener) { + public GISZoneCollectionGeometry(final int _nbObject, final GISZoneListener _listener) { super(_nbObject); - setAttributeListener(_listener); + setListener(_listener); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -40,18 +40,18 @@ /** * @param _listener le listener */ - public GISZoneCollectionLigneBrisee(final AttributeListener _listener) { + public GISZoneCollectionLigneBrisee(final GISZoneListener _listener) { this(10, _listener); } /** * @param _listener le listener */ - public GISZoneCollectionLigneBrisee(final AttributeListener _listener, final GISZoneCollectionLigneBrisee _col) { + public GISZoneCollectionLigneBrisee(final GISZoneListener _listener, final GISZoneCollectionLigneBrisee _col) { super(_listener,_col); } - public GISZoneCollectionLigneBrisee(final int _nbObject, final AttributeListener _listener) { + public GISZoneCollectionLigneBrisee(final int _nbObject, final GISZoneListener _listener) { super(_nbObject,_listener); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -31,18 +31,18 @@ /** * @param _listener le listener */ - public GISZoneCollectionMultiPoint(final AttributeListener _listener) { + public GISZoneCollectionMultiPoint(final GISZoneListener _listener) { this(10, _listener); } /** * @param _listener le listener */ - public GISZoneCollectionMultiPoint(final AttributeListener _listener, final GISZoneCollectionMultiPoint _col) { + public GISZoneCollectionMultiPoint(final GISZoneListener _listener, final GISZoneCollectionMultiPoint _col) { super(_listener,_col); } - public GISZoneCollectionMultiPoint(final int _nbObject, final AttributeListener _listener) { + public GISZoneCollectionMultiPoint(final int _nbObject, final GISZoneListener _listener) { super(_nbObject,_listener); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPoint.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -32,7 +32,7 @@ /** * @param _l le listener */ - public GISZoneCollectionPoint(final AttributeListener _l) { + public GISZoneCollectionPoint(final GISZoneListener _l) { this(10, _l); } @@ -172,9 +172,9 @@ /** * @param _i le nombre attendu de points */ - public GISZoneCollectionPoint(final int _i, final AttributeListener _l) { + public GISZoneCollectionPoint(final int _i, final GISZoneListener _l) { super(_i); - setAttributeListener(_l); + setListener(_l); } public final double getX(final int _i) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolygone.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolygone.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolygone.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -24,7 +24,7 @@ /** * @param _listener le listener peut etre null */ - public GISZoneCollectionPolygone(final AttributeListener _listener) { + public GISZoneCollectionPolygone(final GISZoneListener _listener) { this(10, _listener); } @@ -44,7 +44,7 @@ /** * @param _nbObject */ - public GISZoneCollectionPolygone(final int _nbObject, final AttributeListener _listener) { + public GISZoneCollectionPolygone(final int _nbObject, final GISZoneListener _listener) { super(_nbObject, _listener); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolyligne.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolyligne.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionPolyligne.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -24,7 +24,7 @@ /** * @param _listener le listener */ - public GISZoneCollectionPolyligne(final AttributeListener _listener) { + public GISZoneCollectionPolyligne(final GISZoneListener _listener) { this(10, _listener); } @@ -44,7 +44,7 @@ * @param _nbObject le nombre d'objets attendus * @param _listener le listener */ - public GISZoneCollectionPolyligne(final int _nbObject, final AttributeListener _listener) { + public GISZoneCollectionPolyligne(final int _nbObject, final GISZoneListener _listener) { super(_nbObject, _listener); } Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneListener.java (from rev 4107, branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneListener.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -0,0 +1,105 @@ +/* + * @creation 24 oct. 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.gis; + + +/** + * Cette interface permet l'\xE9coute des changements concernant les objets et les + * attributs (si existant). Les changements sont : l'ajout d'un attribut, la + * suppression d'un attribut, le changement d'une valeur d'un attribut, l'ajout + * d'un objet, la supression d'un objet, le remplacement d'un objet par une + * autre et la modification interne d'un objet (g\xE9n\xE9ralement l'ajout ou la + * suppression de points). + * + * @author Emmanuel MARTIN + * @version $Id: AttributeListener.java 4103 2008-10-28 15:55:12Z + * emmanuel_martin $ + */ +public interface GISZoneListener { + + /** Action indiquant l'ajout d'un attribut dans le conteneur d'attributs. */ + public static final int ATTRIBUTE_ACTION_ADD=0; + /** + * Action indiquant la supression d'un attribut dans le conteneur d'attributs. + */ + public static final int ATTRIBUTE_ACTION_REMOVE=1; + /** Action indiquant l'ajout d'une g\xE9om\xE9trie dans le conteneur de g\xE9om\xE9tries. */ + public static final int OBJECT_ACTION_ADD=2; + /** + * Action indiquant la supression d'un objet dans le conteneur de g\xE9om\xE9tries. + */ + public static final int OBJECT_ACTION_REMOVE=3; + /** + * Action indiquant la remplacement d'un objet dans le conteneur de + * g\xE9om\xE9tries. + */ + public static final int OBJECT_ACTION_REPLACE=4; + /** + * Action indiquant la modification des donn\xE9es internes \xE0 l'objet. + * G\xE9n\xE9ralement une modification de ses sommets. + */ + public static final int OBJECT_ACTION_STRUCTURE_CHANGE=5; + + /** + * M\xE9thode appel\xE9e lorsqu'une action d'ajout ou de suppression est effectu\xE9e + * sur un attribut. + * + * @param _source + * L'instance appelant attributeAction. + * @param _indexAtt + * L'index de l'attribut. Si l'action est l'ajout d'un attribut, + * l'index est valide. Si l'action est la supression, l'index + * correspond \xE0 l'ancienne emplacement et donc n'est plus valide. Si + * \xE9gale \xE0 -1, tout les attributs ont pu \xEAtre modifi\xE9s. + * @param _att + * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre + * modifi\xE9s. + * @param _action + * L'action effectu\xE9e sur l'attribut. Voir les ATTRIBUTE_ACTION_*. + */ + public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action); + + /** + * M\xE9thode appel\xE9e lorsqu'une action de modification de la valeur d'un + * attribut est effectu\xE9e. + * + * @param _source + * L'instance appelant attributeValueChangeAction. + * @param _indexAtt + * L'index de l'attribut. Si \xE9gale \xE0 -1, tout les attributs ont pu + * \xEAtre modifi\xE9s. + * @param _att + * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre + * modifi\xE9s. + * @param _indexObj + * L'objet concern\xE9. Si \xE9gale \xE0 -1, tout les objets ont pu \xEAtre + * modifi\xE9s. + * @param _newValue + * La nouvelle valeur de l'attribut pour la g\xE9om\xE9trie indiqu\xE9e. Si + * null toutes les g\xE9om\xE9tries ont pu \xEAtre modifi\xE9es. + */ + public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexObj, Object _newValue); + + /** + * M\xE9thode appel\xE9e lorsqu'une action est effectu\xE9e sur un objet. + * + * @param _source + * L'instance appelant objectAction. + * @param _indexObj + * L'index de l'objet. Si l'action est l'ajout ou la modification, + * l'index est valide. Si l'action est la supression, l'index + * correspond \xE0 l'ancienne emplacement et donc n'est plus valide. Si + * \xE9gale \xE0 -1, tout les objets ont pu \xEAtre modifi\xE9es. + * @param _obj + * La g\xE9om\xE9trie concern\xE9e. Si null tout les objets ont pu \xEAtre + * modifi\xE9es. + * @param _action + * L'action effectu\xE9e sur la g\xE9om\xE9trie. Voir les OBJECT_ACTION_*. + */ + public void objectAction(Object _source, int _indexObj, Object _obj, int _action); +} Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GeometryListener.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GeometryListener.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GeometryListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -1,60 +0,0 @@ -/* - * @creation 24 oct. 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.gis; - -import com.vividsolutions.jts.geom.Geometry; - -/** - * Cette interface permet l'\xE9coute des changements concernant les objets - * g\xE9om\xE9triques. Les changements sont : l'ajout d'une g\xE9om\xE9trie, la suppression - * d'une g\xE9om\xE9trie, le remplacement d'une g\xE9om\xE9trie par une autre et la - * modification interne d'une g\xE9om\xE9trie (g\xE9n\xE9ralement l'ajout ou la suppression - * de points). - * - * @author Emmanuel MARTIN - * @version $Id:$ - */ -public interface GeometryListener { - - /** Action indiquant l'ajout d'une g\xE9om\xE9trie dans le conteneur de g\xE9om\xE9tries. */ - public static final int GEOMETRY_ACTION_ADD=0; - /** - * Action indiquant la supression d'une g\xE9om\xE9trie dans le conteneur de - * g\xE9om\xE9tries. - */ - public static final int GEOMETRY_ACTION_REMOVE=0; - /** - * Action indiquant la remplacement d'une g\xE9om\xE9trie dans le conteneur de - * g\xE9om\xE9tries. - */ - public static final int GEOMETRY_ACTION_REPLACE=0; - /** - * Action indiquant la modification des donn\xE9es internes \xE0 la g\xE9om\xE9trie. - * G\xE9n\xE9ralement une modification de ses sommets. - */ - public static final int GEOMETRY_ACTION_STRUCTURE_CHANGE=0; - - /** - * M\xE9thode appel\xE9e lorsqu'une action est effectu\xE9e sur une g\xE9om\xE9trie. - * - * @param _source - * L'instance appelant geometryAction. - * @param _indexGeom - * L'index de la g\xE9om\xE9trie. Si l'action est l'ajout ou la - * modification, l'index est valide. Si l'action est la supression, - * l'index correspond \xE0 l'ancienne emplacement et donc n'est plus - * valide. Si \xE9gale \xE0 -1, toutes les g\xE9om\xE9tries ont pu \xEAtre - * modifi\xE9es. - * @param _geom - * La g\xE9om\xE9trie concern\xE9e. Si null toutes les g\xE9om\xE9tries ont pu \xEAtre - * modifi\xE9es. - * @param _action - * L'action effectu\xE9e sur la g\xE9om\xE9trie. Voir les GEOMETRY_ACTION_*. - */ - public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action); -} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/h2d/rubar/H2dRubarDonneesBrutes.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -347,27 +347,18 @@ } } - class NuageListener implements AttributeListener { + class NuageListener implements GISZoneListener { - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.AttributeListener#attributeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int) - */ public void attributeAction(Object _source, int att, GISAttributeInterface _att, int _action) { fireDonneesBrutesNuageDataNombreChanged(); } - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.AttributeListener#attributeValueChangeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int, java.lang.Object) - */ public void attributeValueChangeAction(Object _source, int att, GISAttributeInterface _att, int geom, Object value) { fireDonneesBrutesNuageDataChanged(); } - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.GeometryListener#geometryAction(java.lang.Object, int, com.vividsolutions.jts.geom.Geometry, int) - */ - public void geometryAction(Object _source, int geom, Geometry _geom, int _action) { - if (_action == GEOMETRY_ACTION_REPLACE) { + public void objectAction(Object _source, int geom, Object _obj, int _action) { + if (_action == OBJECT_ACTION_REPLACE) { fireDonneesBrutesNuageSupportChanged(); } else { fireDonneesBrutesNuageSupportAddOrRemoved(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -13,7 +13,6 @@ import javax.swing.event.TreeSelectionListener; import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.gis.AttributeListener; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.palette.BPaletteInfo; @@ -24,7 +23,7 @@ * @author deniger * @version $Id: BCalquePaletteInfo.java,v 1.7 2007-05-04 13:49:43 deniger Exp $ */ -public class BCalquePaletteInfo extends BPaletteInfo implements TreeSelectionListener, ZSelectionListener, AttributeListener { +public class BCalquePaletteInfo extends BPaletteInfo implements TreeSelectionListener, ZSelectionListener, ZModelGeometryListener { private ArrayList<ZCalqueAffichageDonneesInterface> calqueWithGeometriesSelected_; private BArbreCalqueModel treeModel_; @@ -104,8 +103,7 @@ calqueWithGeometriesSelected_.add(_evt.getSource()); ZModeleDonnees model=_evt.getSource().modeleDonnees(); if(model instanceof ZModeleGeometry) - ((ZModeleGeometry)model).addAttributeListener(this); - model.addGeometryListener(this); + ((ZModeleGeometry)model).addModelListener(this); } } else { @@ -113,8 +111,7 @@ calqueWithGeometriesSelected_.remove(_evt.getSource()); ZModeleDonnees model=_evt.getSource().modeleDonnees(); if(model instanceof ZModeleGeometry) - ((ZModeleGeometry)model).removeAttributeListener(this); - model.removeGeometryListener(this); + ((ZModeleGeometry)model).removeModelListener(this); } } updateTableModel(); @@ -128,8 +125,7 @@ for(int i=0;i<calqueWithGeometriesSelected_.size();i++){ ZModeleDonnees model=calqueWithGeometriesSelected_.get(i).modeleDonnees(); if(model instanceof ZModeleGeometry) - ((ZModeleGeometry)model).removeAttributeListener(this); - model.removeGeometryListener(this); + ((ZModeleGeometry)model).removeModelListener(this); } calqueWithGeometriesSelected_.clear(); // R\xE9cup\xE9ration des calques ayant une selection et ajout des \xE9coutes @@ -139,8 +135,7 @@ calqueWithGeometriesSelected_.add(calques[i]); ZModeleDonnees model=calques[i].modeleDonnees(); if(model instanceof ZModeleGeometry) - ((ZModeleGeometry)model).addAttributeListener(this); - model.addGeometryListener(this); + ((ZModeleGeometry)model).addModelListener(this); } // Mise \xE0 jour du tableau des informations updateTableModel(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -9,7 +9,6 @@ import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; -import org.fudaa.ctulu.gis.GeometryListener; import org.fudaa.ebli.calque.find.CalqueFindActionDefault; import org.fudaa.ebli.calque.find.CalqueFindExpression; import org.fudaa.ebli.commun.EbliSelectionState; @@ -27,7 +26,7 @@ * @version $Id: ZCalqueAffichageDonnees.java,v 1.39 2007-05-04 13:49:43 deniger Exp $ * @author Fred Deniger */ -public abstract class ZCalqueAffichageDonnees extends ZCalqueAffichageDonneesAbstract implements GeometryListener { +public abstract class ZCalqueAffichageDonnees extends ZCalqueAffichageDonneesAbstract { protected CtuluListSelection selection_; @@ -253,9 +252,6 @@ return r; } - /* (non-Javadoc) - * @see org.fudaa.ctulu.gis.GeometryListener#geometryAction(java.lang.Object, int, com.vividsolutions.jts.geom.Geometry, int) - */ public void geometryAction(Object _source, int _idx, Geometry _geom, int _action) { // Une g\xE9om\xE9trie a \xE9t\xE9 ajout\xE9e, supprim\xE9e ou ses points la composant ont \xE9t\xE9 // modifi\xE9s, donc on repaint le tout. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -20,7 +20,6 @@ import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; -import org.fudaa.ctulu.gis.AttributeListener; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISCoordinateSequenceContainerInterface; import org.fudaa.ctulu.gis.GISGeometryFactory; @@ -62,7 +61,7 @@ * @author Bertrand Marchand * @version $Id$ */ -public class ZCalqueGeometry extends ZCalqueAffichageDonneesLineAbstract implements AttributeListener { +public class ZCalqueGeometry extends ZCalqueAffichageDonneesLineAbstract implements ZModelGeometryListener { /** * @author Fred Deniger @@ -129,10 +128,8 @@ */ public ZCalqueGeometry(final ZModeleGeometry _modele) { modele_ = _modele; - if(modele_!=null) { - modele_.addAttributeListener(this); - modele_.addGeometryListener(this); - } + if(modele_!=null) + modele_.addModelListener(this); iconModel_ = new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.BLACK); surfModel_=new TraceSurfaceModel(TraceSurface.INVISIBLE, Color.BLACK,null); } @@ -421,16 +418,12 @@ */ public void modele(final ZModeleGeometry _modele) { if (modele_ != _modele) { - if(modele_!=null) { - modele_.removeAttributeListener(this); - modele_.removeGeometryListener(this); - } + if(modele_!=null) + modele_.removeModelListener(this); final ZModeleGeometry vp = modele_; modele_ = _modele; - if(modele_!=null) { - modele_.addAttributeListener(this); - modele_.addGeometryListener(this); - } + if(modele_!=null) + modele_.removeModelListener(this); firePropertyChange("modele", vp, modele_); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -20,7 +20,7 @@ import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; -import org.fudaa.ctulu.gis.AttributeListener; +import org.fudaa.ctulu.gis.GISZoneListener; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISLib; @@ -61,7 +61,7 @@ * @author Fred Deniger * @version $Id$ */ -public class ZCalqueLigneBrisee extends ZCalqueAffichageDonneesLineAbstract implements AttributeListener { +public class ZCalqueLigneBrisee extends ZCalqueAffichageDonneesLineAbstract implements ZModelGeometryListener { /** * @author Fred Deniger @@ -137,10 +137,8 @@ */ public ZCalqueLigneBrisee(final ZModeleLigneBrisee _modele) { modele_ = _modele; - if(modele_!=null){ - modele_.addAttributeListener(this); - modele_.addGeometryListener(this); - } + if(modele_!=null) + modele_.addModelListener(this); iconModel_ = new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.BLACK); ligneModelOuvert_ = new TraceLigneModel(ligneModel_); iconeModelOuvert_ = new TraceIconModel(iconModel_); @@ -505,16 +503,12 @@ */ public void modele(final ZModeleLigneBrisee _modele) { if (modele_ != _modele) { - if(modele_!=null) { - modele_.removeAttributeListener(this); - modele_.removeGeometryListener(this); - } + if(modele_!=null) + modele_.removeModelListener(this); final ZModeleGeometry vp = modele_; modele_ = _modele; - if(modele_!=null) { - modele_.addAttributeListener(this); - modele_.addGeometryListener(this); - } + if(modele_!=null) + modele_.addModelListener(this); firePropertyChange("modele", vp, modele_); } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueMultiPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueMultiPoint.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueMultiPoint.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -36,16 +36,12 @@ */ public void modele(final ZModeleMultiPoint _modele) { if (modele_ != _modele) { - if(modele_!=null) { - modele_.removeAttributeListener(this); - modele_.removeGeometryListener(this); - } + if(modele_!=null) + modele_.removeModelListener(this); final ZModeleMultiPoint vp = (ZModeleMultiPoint)modele_; modele_ = _modele; - if(modele_!=null) { - modele_.addAttributeListener(this); - modele_.addGeometryListener(this); - } + if(modele_!=null) + modele_.addModelListener(this); firePropertyChange("modele", vp, modele_); } } Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelGeometryListener.java (from rev 4107, branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/AttributeListener.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelGeometryListener.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelGeometryListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -0,0 +1,73 @@ +/* + * @creation 29 oct. 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.ebli.calque; + +import org.fudaa.ctulu.gis.GISAttributeInterface; + +/** + * Cette interface permet l'\xE9coute des changements concernant les g\xE9om\xE9tries et + * leurs attributs. Les changements sont : l'ajout d'un attribut, la suppression + * d'un attribut, le changement d'une valeur d'un attribut, l'ajout d'une + * g\xE9om\xE9trie, la supression d'une g\xE9om\xE9trie, le remplacement d'une g\xE9om\xE9trie par + * une autre et la modification interne d'une g\xE9om\xE9trie (g\xE9n\xE9ralement l'ajout ou + * la suppression de points). + * + * + * @author Emmanuel MARTIN + * @version $Id:$ + */ +public interface ZModelGeometryListener extends ZModelListener { + + /** Action indiquant l'ajout d'un attribut dans le conteneur d'attributs. */ + public static final int ATTRIBUTE_ACTION_ADD=0; + /** + * Action indiquant la supression d'un attribut dans le conteneur d'attributs. + */ + public static final int ATTRIBUTE_ACTION_REMOVE=1; + + /** + * M\xE9thode appel\xE9e lorsqu'une action d'ajout ou de suppression est effectu\xE9e + * sur un attribut. + * + * @param _source + * L'instance appelant attributeAction. + * @param _indexAtt + * L'index de l'attribut. Si l'action est l'ajout d'un attribut, + * l'index est valide. Si l'action est la supression, l'index + * correspond \xE0 l'ancienne emplacement et donc n'est plus valide. Si + * \xE9gale \xE0 -1, tout les attributs ont pu \xEAtre modifi\xE9s. + * @param _att + * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre + * modifi\xE9s. + * @param _action + * L'action effectu\xE9e sur la g\xE9om\xE9trie. Voir les ATTRIBUTE_ACTION_*. + */ + public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action); + + /** + * M\xE9thode appel\xE9e lorsqu'une action de modification de la valeur d'un + * attribut est effectu\xE9e. + * + * @param _source + * L'instance appelant attributeValueChangeAction. + * @param _indexAtt + * L'index de l'attribut. Si \xE9gale \xE0 -1, tout les attributs ont pu + * \xEAtre modifi\xE9s. + * @param _att + * L'attribut concern\xE9. Si null tout les attributs ont pu \xEAtre + * modifi\xE9s. + * @param _indexGeom + * La g\xE9om\xE9trie concern\xE9e. Si \xE9gale \xE0 -1, toutes les g\xE9om\xE9tries ont + * pu \xEAtre modifi\xE9es. + * @param _newValue + * La nouvelle valeur de l'attribut pour la g\xE9om\xE9trie indiqu\xE9e. Si + * null toutes les g\xE9om\xE9tries ont pu \xEAtre modifi\xE9es. + */ + public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue); + +} Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelListener.java (from rev 4107, branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GeometryListener.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelListener.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModelListener.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -0,0 +1,59 @@ +/* + * @creation 29 oct. 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.ebli.calque; + +import com.vividsolutions.jts.geom.Geometry; + +/** + * Cette interface permet l'\xE9coute des changements concernant les g\xE9om\xE9tries. + * Les changements sont : l'ajout d'une g\xE9om\xE9trie, la supression d'une + * g\xE9om\xE9trie, le remplacement d'une g\xE9om\xE9trie par une autre et la modification + * interne d'une g\xE9om\xE9trie (g\xE9n\xE9ralement l'ajout ou la suppression de points). + * + * @author Emmanuel MARTIN + * @version $Id:$ + */ +public interface ZModelListener { + /** Action indiquant l'ajout d'une g\xE9om\xE9trie dans le conteneur de g\xE9om\xE9tries. */ + public static final int GEOMETRY_ACTION_ADD=2; + /** + * Action indiquant la supression d'une g\xE9om\xE9trie dans le conteneur de + * g\xE9om\xE9tries. + */ + public static final int GEOMETRY_ACTION_REMOVE=3; + /** + * Action indiquant la remplacement d'une g\xE9om\xE9trie dans le conteneur de + * g\xE9om\xE9tries. + */ + public static final int GEOMETRY_ACTION_REPLACE=4; + /** + * Action indiquant la modification des donn\xE9es internes \xE0 la g\xE9om\xE9trie. + * G\xE9n\xE9ralement une modification de ses sommets. + */ + public static final int GEOMETRY_ACTION_STRUCTURE_CHANGE=5; + + /** + * M\xE9thode appel\xE9e lorsqu'une action est effectu\xE9e sur une g\xE9om\xE9trie. + * + * @param _source + * L'instance appelant geometryAction. + * @param _indexGeom + * L'index de la g\xE9om\xE9trie. Si l'action est l'ajout ou la + * modification, l'index est valide. Si l'action est la supression, + * l'index correspond \xE0 l'ancienne emplacement et donc n'est plus + * valide. Si \xE9gale \xE0 -1, toutes les g\xE9om\xE9tries ont pu \xEAtre + * modifi\xE9es. + * @param _geom + * La g\xE9om\xE9trie concern\xE9e. Si null toutes les g\xE9om\xE9tries ont pu \xEAtre + * modifi\xE9es. + * @param _action + * L'action effectu\xE9e sur la g\xE9om\xE9trie. Voir les GEOMETRY_ACTION_*. + */ + public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action); + +} Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonnees.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonnees.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonnees.java 2008-10-30 09:47:50 UTC (rev 4110) @@ -8,7 +8,6 @@ */ package org.fudaa.ebli.calque; -import org.fudaa.ctulu.gis.GeometryListener; import org.fudaa.ebli.geometrie.GrBoite; import com.memoire.bu.BuTable; @@ -20,7 +19,7 @@ * @version $Id$ * @author Fred Deniger */ -public interface ZModeleDonnees extends GeometryListener { +public interface ZModeleDonnees { BuTable createValuesTable(ZCalqueAffichageDonneesInterface _layer); @@ -57,16 +56,4 @@ */ Object getObject(int _ind); - /** - * Ajoute un listener qui sera pr\xE9venu des ajouts de g\xE9om\xE9tries. - * @param _listener - */ - public void addGeometryListener(GeometryListener _listener); - - /** - * Ajoute un listener qui sera pr\xE9venu des suppressions de g\xE9om\xE9tries. - * @param _listener - */ - public void removeGeometryListener(GeometryListener _listener); - } \ No newline at end of file Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonneesVide.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonneesVide.java 2008-10-29 20:57:44 UTC (rev 4109) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZModeleDonneesVide.java 2008-10-30 09:47:... [truncated message content] |
From: <had...@us...> - 2008-10-29 20:57:50
|
Revision: 4109 http://fudaa.svn.sourceforge.net/fudaa/?rev=4109&view=rev Author: hadouxad Date: 2008-10-29 20:57:44 +0000 (Wed, 29 Oct 2008) Log Message: ----------- corection de bug creation du doc du post Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuSpecificBar.java branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/gui/CtuluHtmlEditorPanel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerInterface.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionBloqueOuDebloqueWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionResize.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/tr_en.fr_txt branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerTextEditor.java Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuSpecificBar.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuSpecificBar.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuSpecificBar.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -26,7 +26,7 @@ */ public class BuSpecificBar - extends BuToolBar + extends JToolBar { int w_; /* private boolean horizontal_=true; Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/gui/CtuluHtmlEditorPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/gui/CtuluHtmlEditorPanel.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/org/fudaa/ctulu/gui/CtuluHtmlEditorPanel.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -15,14 +15,13 @@ import javax.swing.JMenuBar; import javax.swing.JPanel; -import com.hexidec.ekit.EkitCore; +import org.fudaa.ctulu.CtuluLibString; +import com.hexidec.ekit.EkitCore; import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuPanel; import com.memoire.bu.BuResource; -import org.fudaa.ctulu.CtuluLibString; - /** * @author fred deniger * @version $Id: CtuluHtmlEditorPanel.java,v 1.2 2007-03-23 17:16:16 deniger Exp $ @@ -53,7 +52,7 @@ this(null, getMinimalActions()); } - private static String getMinimalActions() { + public static String getMinimalActions() { return "SR|SP|BL|IT|UD|SP|SK|SU|SB|SP|AL|AC|AR|AJ|SP|UM|SP|UL|OL|SP|*|FO"; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -8,9 +8,11 @@ import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.JLabel; +import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; +import javax.swing.JToolBar; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluResource; @@ -29,9 +31,7 @@ import org.netbeans.api.visual.action.WidgetAction; import org.netbeans.api.visual.widget.Widget; -import com.memoire.bu.BuMenuBar; import com.memoire.bu.BuResource; -import com.memoire.bu.BuToolBar; /** * Classe qui g\xE8re les actions de contr\xF4le de la widget @@ -368,7 +368,7 @@ } - public BuMenuBar getMenubarComponent() { + public JMenuBar getMenubarComponent() { return null; } @@ -382,7 +382,7 @@ return popupMenu_; } - public BuToolBar getToolbarComponent() { + public JToolBar getToolbarComponent() { return null; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerInterface.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerInterface.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerInterface.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -5,20 +5,19 @@ package org.fudaa.ebli.visuallibrary; import javax.swing.JComponent; +import javax.swing.JMenuBar; +import javax.swing.JToolBar; -import com.memoire.bu.BuMenuBar; -import com.memoire.bu.BuToolBar; - /** * @author deniger */ public interface EbliWidgetControllerInterface { - BuMenuBar getMenubarComponent(); + JMenuBar getMenubarComponent(); JComponent getOverviewComponent(); - BuToolBar getToolbarComponent(); + JToolBar getToolbarComponent(); JComponent getTracableComponent(); Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerTextEditor.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerTextEditor.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -0,0 +1,92 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.JToolBar; + +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ctulu.gui.CtuluHtmlEditorPanel; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.ebli.visuallibrary.actions.EbliActionEditorOneClick; +import org.netbeans.api.visual.action.InplaceEditorProvider; + +import com.memoire.bu.BuMenuBar; +import com.memoire.bu.BuPanel; + +/** + * Controller de l'editeur de texte. Permet entre autre l'action edition pour + * pouvoir y acc\xE9der dans certains cas. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetControllerTextEditor extends EbliWidgetControllerMenuOnly { + + EbliActionEditorOneClick<BuPanel> editorAction_; + CtuluHtmlEditorPanel editor_; + + public EbliWidgetControllerTextEditor(EbliWidgetTextEditor _widget) { + super(_widget); + addActionSpecifiques(); + editor_ = _widget.editorPane_; + } + + + public void MenuEditer() { + // -- executer l action d edition --// + editorAction_.openEditor(getWidget()); + + } + + public void addActionSpecifiques() { + + editorAction_ = new EbliActionEditorOneClick<BuPanel>((InplaceEditorProvider) widget_); + // -- ajout de l action au widget correspondant --// + widget_.getActions().addAction(editorAction_); + + } + + @Override + protected void buildPopupMenu(final JPopupMenu _menu) { + constructPopupMenuSpecifique(_menu); + // -- creation du menu commun a tous les widgets + constructPopupMenuBase(_menu); + } + + + private void constructPopupMenuSpecifique(final JPopupMenu _popup) { + JMenuItem menuItem = new JMenuItem(EbliResource.EBLI.getString("Editer le texte")); + _popup.add(menuItem, 0); + menuItem.setIcon(CtuluResource.CTULU.getIcon("crystal_editer")); + menuItem.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent e) { + MenuEditer(); + } + }); + } + + + public JToolBar getToolbarComponent() { + if (editor_ != null) + return editor_.getToolBar(true); + else + return new JToolBar(); + } + + JMenuBar menuBar_; + + public JMenuBar getMenubarComponent() { + if (editor_ == null) + return new BuMenuBar(); + + if (menuBar_ == null) + menuBar_ = editor_.getMenuBar(true, false); + return menuBar_; + + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -1,6 +1,5 @@ package org.fudaa.ebli.visuallibrary; -import java.awt.Dimension; import java.awt.Rectangle; import java.util.EnumSet; @@ -30,7 +29,7 @@ public EbliWidgetTextEditor(final EbliScene scene, final CtuluHtmlEditorPanel content) { super(scene, false); editorPane_ = content; - + intern_ = new ComponentWidget(scene, contenuHTML_); contenuHTML_.setText(content.getDocumentText()); @@ -43,7 +42,7 @@ // -- ajout de l action au widget correspondant --// this.getActions().addAction(editorAction); - final EbliWidgetControllerMenuOnly controller = new EbliWidgetControllerMenuOnly(this); + final EbliWidgetControllerTextEditor controller = new EbliWidgetControllerTextEditor(this); controller.setEditable(true); setController(controller); @@ -89,11 +88,11 @@ conteneur = new BuPanel(new BuBorderLayout()); final Rectangle rec = getClientArea(); - editorPane_.setSize(rec.width, rec.height); - editorPane_.setPreferredSize(new Dimension(rec.width, rec.height)); - conteneur.setPreferredSize(new Dimension(rec.width, rec.height)); - conteneur.setMaximumSize(new Dimension(rec.width, rec.height)); - conteneur.setMinimumSize(new Dimension(rec.width, rec.height)); + // editorPane_.setSize(rec.width, rec.height); + // editorPane_.setPreferredSize(new Dimension(rec.width, rec.height)); + // conteneur.setPreferredSize(new Dimension(rec.width, rec.height)); + // conteneur.setMaximumSize(new Dimension(rec.width, rec.height)); + // conteneur.setMinimumSize(new Dimension(rec.width, rec.height)); conteneur.add(editorPane_, BuBorderLayout.CENTER); conteneur.add(editorPane_.getToolBar(true), BuBorderLayout.NORTH); conteneur.add(editorPane_.getMenuBar()); @@ -118,21 +117,43 @@ return null; } - public void notifyClosing(final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - final Widget widget, final BuPanel editor, final boolean commit) { + // public void notifyClosing(final + // org.netbeans.api.visual.action.InplaceEditorProvider.EditorController + // controller, + // final Widget widget, final BuPanel editor, final boolean commit) { + // + // // -- mise a jour de intern avec le contenu du ekitcore --// + // + // contenuHTML_.setText(editorPane_.getDocumentText()); + // intern_.repaint(); + // intern_.revalidate(); + // this.repaint(); + // getEbliScene().refresh(); + // // intern_.setLabel(label.getText()); + // + // } - // -- mise a jour de intern avec le contenu du ekitcore --// - - contenuHTML_.setText(editorPane_.getDocumentText()); + public void notifyClosing(final EditorController _controller, final Widget _widget, final BuPanel _editor, + final boolean _commit) { + // contenuHTML_.setText(editorPane_.getDocumentText()); intern_.repaint(); intern_.revalidate(); this.repaint(); getEbliScene().refresh(); - // intern_.setLabel(label.getText()); + editingStop(); } - public void notifyOpened(final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - final Widget widget, final BuPanel editor) {} + public void notifyOpened(final EditorController _controller, final Widget _widget, final BuPanel _editor) { + // contenuHTML_.setText(CtuluHtmlEditorPanel.showMinimalHtmlDialog("", + // getEbliScene().getView(), true)); + editingStart(); + } + + // public void notifyOpened(final + // org.netbeans.api.visual.action.InplaceEditorProvider.EditorController + // controller, + // final Widget widget, final BuPanel editor) {} + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionBloqueOuDebloqueWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionBloqueOuDebloqueWidget.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionBloqueOuDebloqueWidget.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -48,7 +48,7 @@ public static class DeBloque extends EbliWidgetActionBloqueOuDebloqueWidget { public DeBloque(final EbliWidget _widget) { - super(EbliResource.EBLI.getString("Debloquer la frame"), EbliResource.EBLI.getIcon("unblock_16"), + super(EbliResource.EBLI.getString("Debloquer la frame"), EbliResource.EBLI.getIcon("unlock_16.png"), "DEBLOQUEWIDGET", _widget, false); setDefaultToolTip(EbliResource.EBLI.getString("D\xE9bloquer la taille et la position de la frame")); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionResize.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionResize.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionResize.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -51,7 +51,8 @@ public static class Classical extends EbliWidgetActionResize { public Classical(final EbliWidget _widget) { - super(EbliResource.EBLI.getString("Resize classique"), EbliResource.EBLI.getIcon("unblock_16"), "RESIZEEWIDGET", + super(EbliResource.EBLI.getString("Resize classique"), EbliResource.EBLI.getIcon("bas-droit"), + "RESIZEEWIDGET", _widget, false); setDefaultToolTip(EbliResource.EBLI.getString("Redimensionnement classique de la taille de la frame")); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -30,9 +30,11 @@ // -- creation de la widget et ajout dans la scene --// final EbliNodeDefault nodeText = new EbliNodeDefault(); nodeText.setTitle("Texte"); - final CtuluHtmlEditorPanel editor = new CtuluHtmlEditorPanel(); - editor.setDocumentText(EbliLib.getS("Double-cliquez pour \xE9diter")); + final CtuluHtmlEditorPanel editor = new CtuluHtmlEditorPanel(EbliLib.getS("Double-cliquez pour \xE9diter"), + CtuluHtmlEditorPanel.getMinimalActions()); + // editor.setDocumentText(); + nodeText.setCreator(new EbliWidgetCreatorTextEditor(editor)); nodeText.setPreferedSize(new Dimension(200, 200)); nodeText.setPreferedLocation(new Point(270, 225)); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetGroupAction.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -24,7 +24,10 @@ import org.fudaa.ebli.visuallibrary.EbliWidget; import org.fudaa.ebli.visuallibrary.EbliWidgetControllerForGroup; import org.fudaa.ebli.visuallibrary.EbliWidgetGroup; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetControllerCalque; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetVueCalque; import org.fudaa.ebli.visuallibrary.creator.EbliWidgetGroupCreator; +import org.fudaa.ebli.visuallibrary.graphe.EbliWidgetGraphe; import org.fudaa.ebli.visuallibrary.layout.GroupLayout; import org.netbeans.api.visual.widget.Widget; @@ -42,14 +45,56 @@ @Override @SuppressWarnings("unchecked") public void actionPerformed(final ActionEvent e) { - final Set selectedObjects = new HashSet(scene_.getSelectedObjects()); + Set selectedObjects = new HashSet(scene_.getSelectedObjects()); if (!selectedObjects.isEmpty()) { + + //--Gestion du cas si le graphe a une legende, on veut pouvoir grouper automatiquement sa legende dans le groupe --// + selectedObjects = addLegendeAuto(selectedObjects); + + performGroup(selectedObjects); } } /** + * Ajoute automatiquement les legendes dans la liste a grouper. + * + * @param selectedObjects + * @return + */ + private Set addLegendeAuto(final Set selectedObjects) { + Set<EbliNode> newList = new HashSet<EbliNode>(selectedObjects); + + // -- check automatiquement les l\xE9gendes si il doit en ajouter --// + for (Object objet : selectedObjects) { + if (objet instanceof EbliNode) { + EbliNode nodeCurrent = (EbliNode) objet; + + // instance de graphe + if (nodeCurrent.getWidget().getIntern() instanceof EbliWidgetGraphe) { + // -- candidat --// + EbliNode nodeLegende = ((EbliWidgetGraphe) nodeCurrent.getWidget().getIntern()).getNodeLegende(); + if (nodeLegende != null) + newList.add(nodeLegende);// hashset donc ajoute que si la ref n + // existe pas deja + } else if (nodeCurrent.getWidget().getIntern() instanceof EbliWidgetVueCalque) { + // -- candidat --// + EbliNode nodeLegende = ((EbliWidgetControllerCalque) nodeCurrent.getWidget().getIntern().getController()) + .getNodeLegende(); + if (nodeLegende != null) + newList.add(nodeLegende);// hashset donc ajoute que si la ref n + // existe pas deja + } + + } + } + + + return newList; + } + + /** * Methode qui realise le groupage des ebliNodes. * * @param _selectedObjects @@ -115,6 +160,9 @@ final float rMaxX = ((float) (w - widgetBounds.width - dx)) / w; final float rMaxY = ((float) (h - widgetBounds.height - dy)) / h; parent.setChildConstraint(findWidget, new Rectangle2D.Float(rMinX, rMinY, rMaxX, rMaxY)); + + + } final EbliWidgetGroupCreator creator = new EbliWidgetGroupCreator(); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -13,10 +13,12 @@ import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JMenu; +import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JSplitPane; +import javax.swing.JToolBar; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluLibArray; @@ -406,7 +408,7 @@ * @return */ @Override - public BuMenuBar getMenubarComponent() { + public JMenuBar getMenubarComponent() { if (menuCalque_ == null) { @@ -485,7 +487,7 @@ * @return */ @Override - public BuToolBar getToolbarComponent() { + public JToolBar getToolbarComponent() { if (toolbarCalque_ == null) { toolbarCalque_ = new BuToolBar(); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -9,9 +9,11 @@ import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JMenu; +import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; +import javax.swing.JToolBar; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluResource; @@ -429,7 +431,7 @@ * @return */ @Override - public BuMenuBar getMenubarComponent() { + public JMenuBar getMenubarComponent() { if (menuGraphe_ == null) { menuGraphe_ = new BuMenuBar(); @@ -483,7 +485,7 @@ * @return */ @Override - public BuToolBar getToolbarComponent() { + public JToolBar getToolbarComponent() { if (toolbarGraphe_ == null) { toolbarGraphe_ = new BuToolBar(); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/tr_en.fr_txt =================================================================== (Binary files differ) Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -14,7 +14,9 @@ import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JMenu; +import javax.swing.JMenuBar; import javax.swing.JPanel; +import javax.swing.JToolBar; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluUndoRedoInterface; @@ -35,6 +37,7 @@ import org.fudaa.ebli.visuallibrary.calque.CalqueLegendeWidgetAdapter; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorLegende; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; +import org.fudaa.ebli.visuallibrary.creator.EbliWidgetCreatorTextEditor; import org.fudaa.ebli.visuallibrary.graphe.EbliWidgetCreatorGraphe; import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporter; import org.fudaa.fudaa.commun.courbe.FudaaCourbeImporter.Target; @@ -86,9 +89,9 @@ /** * Toolbar modifiable qui se met a jour selon la selection de la widget. */ - BuToolBar toolBarModifiable_ = new BuToolBar(); + JToolBar toolBarModifiable_ = new BuToolBar(); - BuMenuBar menuModifiable_ = new BuMenuBar(); + JMenuBar menuModifiable_ = new BuMenuBar(); /** * Scroll qui contient le tree a droite. Ce panel est modifi\xE9 des que l on change de type d elements. @@ -147,7 +150,7 @@ * * @param _toolBar */ - public void setToolBar(final BuToolBar _toolBar) { + public void setToolBar(final JToolBar _toolBar) { _toolBar.setFloatable(false); this.add(_toolBar, BorderLayout.NORTH); @@ -466,10 +469,23 @@ changeToolbarSpecifiqueGraphe(node.getWidget().getController(), (EbliWidgetCreatorGraphe) node.getCreator()); setTitle(previousTitleFrame + " " + node.getWidget().getController().getDescription(), false); - } else { + } else if (node.getCreator() instanceof EbliWidgetCreatorTextEditor) { + FuLog.debug("texte editor"); + // ((EbliWidgetCreatorTextEditor) + // node.getCreator()).getG().setFrame(projet_.impl_.getFrame()); + // -- etape 1: on fout eventuellement le tree des layouts --// changeTree(getScene()); // -- etape 2: rechargement de la toolbar specifique dans this --// + changeToolbar(node.getWidget().getController()); + setTitle(previousTitleFrame); + + } + + else { + // -- etape 1: on fout eventuellement le tree des layouts --// + changeTree(getScene()); + // -- etape 2: rechargement de la toolbar specifique dans this --// changeToolbarScene(); setTitle(previousTitleFrame); } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -66,7 +66,6 @@ import com.memoire.bu.BuDesktop; import com.memoire.bu.BuMenu; import com.memoire.bu.BuMenuItem; -import com.memoire.bu.BuResource; import com.memoire.bu.BuSeparator; /** @@ -385,13 +384,15 @@ @SuppressWarnings("serial") protected void addShapeActions(final List<EbliActionAbstract> _l) { // -- palette rectangle texte--// - _l.add(new EbliActionSimple(EbliResource.EBLI.getString("Rectangle texte"), BuResource.BU - .getToolIcon("crystal_couleurtexte"), "WIDGETRECTANGLE") { - @Override - public void actionPerformed(final ActionEvent _evt) { - addRectangleTexte(); - } - }); + // _l.add(new + // EbliActionSimple(EbliResource.EBLI.getString("Rectangle texte"), + // BuResource.BU + // .getToolIcon("crystal_couleurtexte"), "WIDGETRECTANGLE") { + // @Override + // public void actionPerformed(final ActionEvent _evt) { + // addRectangleTexte(); + // } + // }); // widget texte // TODO a revoir _l.add(new EbliWidgetActiontextEditor(getSceneCourante())); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java 2008-10-29 20:56:55 UTC (rev 4108) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/dialogSpec/TrPostDialogLigneCourants.java 2008-10-29 20:57:44 UTC (rev 4109) @@ -64,7 +64,7 @@ BuTextField y_ = new BuTextField(5); BuTextField x2_ = new BuTextField(5); BuTextField y2_ = new BuTextField(5); - BuTextField nbPoints_ = new BuTextField(5); + BuTextField nbPoints_ = new BuTextField(3); // variables et pdt private JPanel panelVariables_; @@ -279,12 +279,12 @@ contPoint1.add(new JLabel(TrResource.getS("-"))); contPoint1.add(y_); final JPanel contPoint2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); - contPoint2.add(new JLabel("Point 1:")); + contPoint2.add(new JLabel("Point 2:")); contPoint2.add(x2_); contPoint2.add(new JLabel(TrResource.getS("-"))); contPoint2.add(y2_); final JPanel contPoint3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); - contPoint3.add(new JLabel("Nombre de points uniform\xE9ments r\xE9partis sur le segment:")); + contPoint3.add(new JLabel("Nb pts uniform\xE9ments r\xE9partis sur le segment:")); contPoint3.add(nbPoints_); nbPoints_.setText("" + 4); @@ -293,6 +293,7 @@ conteneur.add(contPoint2); conteneur.add(contPoint3); conteneur.setBorder(BorderFactory.createTitledBorder(TrResource.getS("Choix du segment"))); + conteneur.setSize(400, 250); return conteneur; } @@ -331,6 +332,7 @@ content.add(choixMode_); // -- panel des segements --// if (panelSegment_ == null) panelSegment_ = buildSegments(); + content.add(panelSegment_); // -- panel des variables --// This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-10-29 20:56:59
|
Revision: 4108 http://fudaa.svn.sourceforge.net/fudaa/?rev=4108&view=rev Author: hadouxad Date: 2008-10-29 20:56:55 +0000 (Wed, 29 Oct 2008) Log Message: ----------- corection de bug creation du doc du post Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.odt branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.pdf Modified: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.odt =================================================================== (Binary files differ) Modified: branches/Prepro-0.92-SNAPSHOT/aide/src/prepro/doc_pdf/post/post_fr.pdf =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-10-29 11:25:23
|
Revision: 4107 http://fudaa.svn.sourceforge.net/fudaa/?rev=4107&view=rev Author: emmanuel_martin Date: 2008-10-29 11:25:17 +0000 (Wed, 29 Oct 2008) Log Message: ----------- changement mineur Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-28 16:56:48 UTC (rev 4106) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-29 11:25:17 UTC (rev 4107) @@ -67,7 +67,7 @@ * g\xE9om\xE9trie et r\xE9percute imm\xE9diatement le changement effectu\xE9. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class BPaletteEditVisibility extends BuPanel implements ListSelectionListener, ZSelectionListener, AttributeListener, TreeModelListener, BPalettePanelInterface, ActionListener, ChangeListener { @@ -143,7 +143,7 @@ * r\xE9percuter le changement. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ protected class GeomTableModel extends AbstractTableModel { @@ -200,7 +200,7 @@ for(int i=rowIndex+1;i<rows_.length;i++) newRows[i-1]=rows_[i]; rows_=newRows; - table_.repaint(); + fireTableDataChanged(); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-10-28 16:56:57
|
Revision: 4106 http://fudaa.svn.sourceforge.net/fudaa/?rev=4106&view=rev Author: hadouxad Date: 2008-10-28 16:56:48 +0000 (Tue, 28 Oct 2008) Log Message: ----------- maj prepro-distrib build avec l'ami GenJar et sa reflexion intense sur xstream... Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa-distrib/prepro/build.xml Modified: branches/Prepro-0.92-SNAPSHOT/fudaa-distrib/prepro/build.xml =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa-distrib/prepro/build.xml 2008-10-28 16:55:15 UTC (rev 4105) +++ branches/Prepro-0.92-SNAPSHOT/fudaa-distrib/prepro/build.xml 2008-10-28 16:56:48 UTC (rev 4106) @@ -191,6 +191,8 @@ <class name="org.fudaa.ebli.geometrie.GrData" /> <!--Pour ces librairies, tous les fichiers et toutes les ressources sont n\xE9cessaires--> <library jar="${ctulu.lib.dir}/db4o.jar" /> + <library jar="${ctulu.lib.dir}/xstream-1.3.jar" /> + <library jar="${ctulu.lib.dir}/xpp3_min-1.1.4c.jar" /> <library jar="${ctulu.lib.dir}/fgis.jar" /> <library jar="${ctulu.lib.dir}/looks.jar" /> <library jar="${ctulu.lib.dir}/jep.jar" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-10-28 16:55:23
|
Revision: 4105 http://fudaa.svn.sourceforge.net/fudaa/?rev=4105&view=rev Author: hadouxad Date: 2008-10-28 16:55:15 +0000 (Tue, 28 Oct 2008) Log Message: ----------- corrections bugs Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/action/EbliCalqueActionTimeChooser.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/persist/EbliWidgetSerializeXml.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/action/EbliCalqueActionTimeChooser.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/action/EbliCalqueActionTimeChooser.java 2008-10-28 16:48:50 UTC (rev 4104) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/action/EbliCalqueActionTimeChooser.java 2008-10-28 16:55:15 UTC (rev 4105) @@ -20,7 +20,6 @@ import javax.swing.tree.TreeSelectionModel; import org.fudaa.ctulu.CtuluLib; - import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.commun.BPalettePanelInterface; import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; @@ -105,7 +104,10 @@ } public ListModel getListModel() { + if (target_ instanceof BSelecteurListTimeTarget) return target_ == null ? null : ((BSelecteurListTimeTarget) target_).getTimeListModel(); + else + return null; } public ListSelectionModel getListSelectionModel() { Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java 2008-10-28 16:48:50 UTC (rev 4104) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java 2008-10-28 16:55:15 UTC (rev 4105) @@ -4,7 +4,6 @@ import java.util.Map; import org.fudaa.ebli.calque.BCalque; -import org.fudaa.ebli.calque.BCalqueAffichage; import org.fudaa.ebli.calque.BCalqueLegende; import org.fudaa.ebli.calque.BCalqueLegendePanel; import org.fudaa.ebli.calque.ZEbliCalquesPanel; @@ -14,10 +13,7 @@ import org.fudaa.ebli.visuallibrary.EbliWidgetBordureSingle; import org.fudaa.ebli.visuallibrary.EbliWidgetWithBordure; import org.fudaa.ebli.visuallibrary.creator.EbliWidgetCreator; -import org.netbeans.api.visual.widget.Widget; -import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException; - /** * Creator pour les legendes des calques * @@ -130,6 +126,9 @@ //g=new BCalqueLegendePanel((BCalqueAffichage) calqueCible_,calqueCible_.getTitle()); BCalqueLegendePanel legendePanel=((CalqueLegendeWidgetAdapter)calque.getCqLegend()).legendePanel_; g=legendePanel; + // -- mise a jour des sattelites --// + ((EbliWidgetControllerCalque) widget.getController()).setNodeLegende((EbliNode) parameters.get("node")); + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java 2008-10-28 16:48:50 UTC (rev 4104) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java 2008-10-28 16:55:15 UTC (rev 4105) @@ -5,6 +5,7 @@ import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.visuallibrary.EbliNode; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; import org.fudaa.ebli.visuallibrary.EbliWidgetBordureSingle; @@ -90,6 +91,11 @@ if (nodeGraphe != null && nodeGraphe.getCreator() instanceof EbliWidgetCreatorGraphe) { // -- on recupere le graphe --// g = ((EbliWidgetCreatorGraphe) nodeGraphe.getCreator()).getGraphe(); + // -- mise a jour des sattelites --// + ((EbliWidgetGraphe) nodeGraphe.getWidget().getIntern()).setNodeLegende((EbliNodeDefault) parameters + .get("node")); + + } else g = new EGGraphe(new EGGrapheTreeModel()); } else g = new EGGraphe(new EGGrapheTreeModel()); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/persist/EbliWidgetSerializeXml.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/persist/EbliWidgetSerializeXml.java 2008-10-28 16:48:50 UTC (rev 4104) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/persist/EbliWidgetSerializeXml.java 2008-10-28 16:55:15 UTC (rev 4105) @@ -161,7 +161,7 @@ // -- creation du creator specicalis\xE9 --// // EbliWidgetCreator creator= (EbliWidgetCreator) EbliWidgetCreatorShape.class.forName(type).newInstance(); final EbliWidgetCreator creator = EbliWidgetCreatorClassLoader.forName(type); - + parameters.put("node", newNode); // -- creation des datas --// creator.setPersistData(data, parameters); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |