|
From: <bma...@us...> - 2011-03-31 13:52:35
|
Revision: 6200
http://fudaa.svn.sourceforge.net/fudaa/?rev=6200&view=rev
Author: bmarchan
Date: 2011-03-31 13:52:29 +0000 (Thu, 31 Mar 2011)
Log Message:
-----------
Fix : Pb Wizard d'import (pas de visibilit?\195?\169 de l'?\195?\169tape 2).
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2011-03-31 08:09:35 UTC (rev 6199)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2011-03-31 13:52:29 UTC (rev 6200)
@@ -59,7 +59,6 @@
import com.memoire.bu.BuButtonPanel;
import com.memoire.bu.BuGlassPaneStop;
import com.memoire.bu.BuWizardTask;
-import com.memoire.fu.FuLog;
/**
* Un Wizard d'import de fichiers contenant des donn\xE9es g\xE9om\xE9triques sous des formats tr\xE8s divers. Ce Wizard demande
@@ -141,6 +140,7 @@
return null;
}
+ @Override
public void doTask() {
if(pnDest_==null)
return;
@@ -233,7 +233,7 @@
// Selection des g\xE9om\xE9tries avec la nature \\
- if(_natureOrigine=="")
+ if(_natureOrigine.isEmpty())
_modelDonnees = new GISDataModelSelectionAdapter(_modelDonnees, new Object[][]{{GISAttributeConstants.NATURE, ""}, {GISAttributeConstants.NATURE, GISDataModelSelectionAdapter.ATTRIBUT_NOT_EXIST}});
else
_modelDonnees = new GISDataModelSelectionAdapter(_modelDonnees, new Object[][]{{GISAttributeConstants.NATURE, _natureOrigine}});
@@ -323,6 +323,7 @@
return 2;
}
+ @Override
public int getStepDisabledButtons() {
return super.getStepDisabledButtons() | BuButtonPanel.DETRUIRE;
}
@@ -349,6 +350,7 @@
return FudaaLib.getS("Importation");
}
+ @Override
public void nextStep() {
if (current_ == 0 && data_ == null) {
if (dialog_ != null) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java 2011-03-31 08:09:35 UTC (rev 6199)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java 2011-03-31 13:52:29 UTC (rev 6200)
@@ -7,9 +7,9 @@
*/
package org.fudaa.fudaa.modeleur;
+import com.memoire.bu.BuBorderLayout;
import java.awt.Color;
import java.awt.Component;
-import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -47,13 +47,13 @@
import org.fudaa.fudaa.sig.FSigLib;
import org.fudaa.fudaa.sig.wizard.FSigWizardImportHelper;
-import com.memoire.bu.BuBorderLayout;
import com.memoire.bu.BuCheckBox;
import com.memoire.bu.BuLabel;
import com.memoire.bu.BuPanel;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuScrollPane;
import com.memoire.bu.BuVerticalLayout;
+import java.awt.Dimension;
import org.fudaa.ctulu.table.CtuluTable;
/**
@@ -97,7 +97,8 @@
titreColonnes_ = _columnTitles;
data_ = _data;
}
-
+
+ @Override
public Class<?> getColumnClass(int columnIndex) {
switch(columnIndex){
case 0: return String.class;
@@ -112,6 +113,7 @@
return titreColonnes_.length;
}
+ @Override
public String getColumnName(int _columnIndex) {
if(_columnIndex>=0 && _columnIndex<titreColonnes_.length)
return titreColonnes_[_columnIndex];
@@ -130,6 +132,7 @@
return new String();
}
+ @Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0: return false;
@@ -140,6 +143,7 @@
}
}
+ @Override
public void setValueAt(Object value, int _rowIndex, int _columnIndex) {
if (_rowIndex>=0&&_rowIndex<data_.length&&_columnIndex>=0&&_columnIndex<titreColonnes_.length)
data_[_rowIndex][_columnIndex] = value;
@@ -271,7 +275,7 @@
CalqueSelectorVisitor visitor = new CalqueSelectorVisitor(ZModeleGeometry.class);
racine_.apply(visitor);
allDestLayers_= visitor.getSelectedCalques();
-
+
setLayout(new BuVerticalLayout(2, true, true));
// Frame d'information \\
pnInfo_ = new FSigWizardImportHelper.InfoPanel();
@@ -601,9 +605,9 @@
return -1;
}
- public boolean isValid() {
- return true;
- }
+// public boolean isValid() {
+// return true;
+// }
/* (non-Javadoc)
* @see javax.swing.event.CellEditorListener#editingCanceled(javax.swing.event.ChangeEvent)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-04-13 15:50:47
|
Revision: 6213
http://fudaa.svn.sourceforge.net/fudaa/?rev=6213&view=rev
Author: bmarchan
Date: 2011-04-13 15:50:37 +0000 (Wed, 13 Apr 2011)
Log Message:
-----------
Mascaret : Lecture/restitution des limites de lit (stockage + rives)
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel1dAxe.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsBief1d.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel1dAxe.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel1dAxe.java 2011-04-13 15:48:46 UTC (rev 6212)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel1dAxe.java 2011-04-13 15:50:37 UTC (rev 6213)
@@ -29,7 +29,8 @@
GISAttributeConstants.TITRE,
GISAttributeConstants.NATURE,
GISAttributeConstants.VISIBILITE,
- GISAttributeConstants.LABEL
+ GISAttributeConstants.LABEL,
+ GISAttributeConstants.CURVILIGNE_DECALAGE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java 2011-04-13 15:48:46 UTC (rev 6212)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java 2011-04-13 15:50:37 UTC (rev 6213)
@@ -234,11 +234,11 @@
while (attrIsCorrectlyValued&&++i<profils_.getNombre()) {
// V\xE9rification de la pr\xE9sence des donn\xE9es PK \\
String CommHydrauValue=(String)profils_.getGeomData().getValue(idxAttCommentaireHydraulique, i);
- attrIsCorrectlyValued=GISLib.isHydroCommentValued(CommHydrauValue, "PK");
+ attrIsCorrectlyValued=GISLib.isHydroCommentValued(CommHydrauValue, GISAttributeConstants.ATT_COMM_HYDRO_PK);
// V\xE9rification de la coh\xE9rence avec l'axe hydraulique \\
if (presenceAxeHydraulique) {
- double hydraoCommValue=GISLib.getHydroCommentDouble(CommHydrauValue, "PK");
+ double hydraoCommValue=GISLib.getHydroCommentDouble(CommHydrauValue, GISAttributeConstants.ATT_COMM_HYDRO_PK);
double absCurvValue=UtilsProfil1d.abscisseCurviligne(axeHydraulique_.getGeomData().getCoordinateSequence(0), profils_
.getGeomData().getCoordinateSequence(i));
if (absCurvValue==-1)
@@ -265,7 +265,7 @@
idxAttCommentaireHydraulique=zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO);
for (int k=0; k<zone.getNumGeometries(); k++) {
String comm=(String)profils_.getGeomData().getValue(idxAttCommentaireHydraulique, k);
- if (!GISLib.isHydroCommentValued(comm, "PK")) {
+ if (!GISLib.isHydroCommentValued(comm, GISAttributeConstants.ATT_COMM_HYDRO_PK)) {
double pk;
if (presenceAxeHydraulique) {
// Valuation avec le croisement avec l'axe hydraulique
@@ -276,7 +276,7 @@
// Valuation avec le d\xE9calage de l'axe.
pk=decalAxe;
}
- zone.setAttributValue(idxAttCommentaireHydraulique, k, GISLib.setHydroCommentDouble(comm, pk, "PK"), null);
+ zone.setAttributValue(idxAttCommentaireHydraulique, k, GISLib.setHydroCommentDouble(comm, pk, GISAttributeConstants.ATT_COMM_HYDRO_PK), null);
}
}
attrMatchWithAxeHydraulique=true;
@@ -294,7 +294,7 @@
// Valuation avec le croisement avec l'axe hydraulique
double pk=UtilsProfil1d.abscisseCurviligne(axeHydraulique_.getGeomData().getCoordinateSequence(0), profils_
.getGeomData().getCoordinateSequence(k))+decalAxe;
- zone.setAttributValue(idxAttCommentaireHydraulique, k, GISLib.setHydroCommentDouble(comm, pk, "PK"), null);
+ zone.setAttributValue(idxAttCommentaireHydraulique, k, GISLib.setHydroCommentDouble(comm, pk, GISAttributeConstants.ATT_COMM_HYDRO_PK), null);
}
}
else {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2011-04-13 15:48:46 UTC (rev 6212)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2011-04-13 15:50:37 UTC (rev 6213)
@@ -112,8 +112,8 @@
GISZoneCollectionLigneBrisee zone=getBiefContainer().getZoneProfils();
for (int i=0; i<zone.getNbGeometries(); i++) {
String value=(String)zone.getValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), i);
- double oldval=GISLib.getHydroCommentDouble(value, "PK");
- String s=GISLib.setHydroCommentDouble(value, oldval+decal, "PK");
+ double oldval=GISLib.getHydroCommentDouble(value, GISAttributeConstants.ATT_COMM_HYDRO_PK);
+ String s=GISLib.setHydroCommentDouble(value, oldval+decal, GISAttributeConstants.ATT_COMM_HYDRO_PK);
zone.setAttributValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), i, s, cmp);
}
@@ -280,9 +280,9 @@
}
else {
decalBief1=GISLib.getHydroCommentDouble((String)zone1.getValue(zone1.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO),
- 0), "PK");
+ 0), GISAttributeConstants.ATT_COMM_HYDRO_PK);
decalBief2=GISLib.getHydroCommentDouble((String)zone2.getValue(zone2.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO),
- 0), "PK");
+ 0), GISAttributeConstants.ATT_COMM_HYDRO_PK);
}
// R\xE9cup\xE9ration de la longueur des biefs \\
@@ -297,10 +297,10 @@
// Pas d'axe hydro => On calcule les longueurs a partir des PK profils.
else {
longBief1=GISLib.getHydroCommentDouble((String)zone1.getValue(zone1.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO),
- zone1.getNumGeometries()-1), "PK")
+ zone1.getNumGeometries()-1), GISAttributeConstants.ATT_COMM_HYDRO_PK)
-decalBief1;
longBief2=GISLib.getHydroCommentDouble((String)zone2.getValue(zone2.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO),
- zone2.getNumGeometries()-1), "PK")
+ zone2.getNumGeometries()-1), GISAttributeConstants.ATT_COMM_HYDRO_PK)
-decalBief2;
}
@@ -426,16 +426,16 @@
for (int i=0; i<bief1.profils_.getNombre(); i++) {
int idxGeom=zoneProfils.addGeometry(bief1ZoneProfil.getGeometry(i), UtilsProfil1d.getData(i, bief1ZoneProfil), null);
String comm=(String)zoneProfils.getValue(idxAttrComm, idxGeom);
- double newPK=GISLib.getHydroCommentDouble(comm, "PK")+offsetBief1;
- String newValue=GISLib.setHydroCommentDouble(comm, newPK, "PK");
+ double newPK=GISLib.getHydroCommentDouble(comm, GISAttributeConstants.ATT_COMM_HYDRO_PK)+offsetBief1;
+ String newValue=GISLib.setHydroCommentDouble(comm, newPK, GISAttributeConstants.ATT_COMM_HYDRO_PK);
zoneProfils.setAttributValue(idxAttrComm, idxGeom, newValue, null);
}
// Ajout des profil du bief 2, en d\xE9calant eventuellement les PK.
for (int i=0; i<bief2.profils_.getNombre(); i++) {
int idxGeom=zoneProfils.addGeometry(bief2ZoneProfil.getGeometry(i), UtilsProfil1d.getData(i, bief2ZoneProfil), null);
String comm=(String)zoneProfils.getValue(idxAttrComm, idxGeom);
- double newPK=GISLib.getHydroCommentDouble(comm, "PK")+offsetBief2;
- String newValue=GISLib.setHydroCommentDouble(comm, newPK, "PK");
+ double newPK=GISLib.getHydroCommentDouble(comm, GISAttributeConstants.ATT_COMM_HYDRO_PK)+offsetBief2;
+ String newValue=GISLib.setHydroCommentDouble(comm, newPK, GISAttributeConstants.ATT_COMM_HYDRO_PK);
zoneProfils.setAttributValue(idxAttrComm, idxGeom, newValue, null);
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-04-13 15:48:46 UTC (rev 6212)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-04-13 15:50:37 UTC (rev 6213)
@@ -403,7 +403,7 @@
return -1;
GISZoneCollection zone=biefContainer_.getZoneProfils();
String value=(String)zone.getValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), idxProfilSelected_);
- return GISLib.getHydroCommentDouble(value, "PK");
+ return GISLib.getHydroCommentDouble(value, GISAttributeConstants.ATT_COMM_HYDRO_PK);
}
/**
@@ -414,7 +414,7 @@
return;
GISZoneCollection zone=biefContainer_.getZoneProfils();
String value=(String)zone.getValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), idxProfilSelected_);
- String s=GISLib.setHydroCommentDouble(value, _abs, "PK");
+ String s=GISLib.setHydroCommentDouble(value, _abs, GISAttributeConstants.ATT_COMM_HYDRO_PK);
zone.setAttributValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), idxProfilSelected_, s, _cmd);
fireProfilContainerDataModified();
}
@@ -684,16 +684,16 @@
if (zone.getNumGeometries()==1)
return false;
if (idxProfilSelected_==0) {
- if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, 1), "PK")<_pk)
+ if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, 1), GISAttributeConstants.ATT_COMM_HYDRO_PK)<_pk)
return true;
}
else if (idxProfilSelected_<zone.getNumGeometries()-1) {
- if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_-1), "PK")>_pk
- ||GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_+1), "PK")<_pk)
+ if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_-1), GISAttributeConstants.ATT_COMM_HYDRO_PK)>_pk
+ ||GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_+1), GISAttributeConstants.ATT_COMM_HYDRO_PK)<_pk)
return true;
}
else if (idxProfilSelected_==zone.getNumGeometries()-1)
- if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_-1), "PK")>_pk)
+ if (GISLib.getHydroCommentDouble((String)zone.getValue(idxAttrComm, idxProfilSelected_-1), GISAttributeConstants.ATT_COMM_HYDRO_PK)>_pk)
return true;
return false;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsBief1d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsBief1d.java 2011-04-13 15:48:46 UTC (rev 6212)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsBief1d.java 2011-04-13 15:50:37 UTC (rev 6213)
@@ -22,7 +22,7 @@
* Quelques fonctions concernant les biefs.
*
* @author Emmanuel MARTIN
- * @version $Id:$
+ * @version $Id$
*/
public class UtilsBief1d {
/**
@@ -95,7 +95,7 @@
for (int j=0; j<_profils.getNombre(); j++) {
GISZoneCollection zone=_profils.getGeomData();
String value=(String)zone.getValue(zone.getIndiceOf(GISAttributeConstants.COMMENTAIRE_HYDRO), j);
- idxAbsCurv[j]=new Object[]{j, GISLib.getHydroCommentDouble(value, "PK")};
+ idxAbsCurv[j]=new Object[]{j, GISLib.getHydroCommentDouble(value, GISAttributeConstants.ATT_COMM_HYDRO_PK)};
}
// Tri en fonction des abcsisses curvilignes
Arrays.sort((Object[])idxAbsCurv, new Comparator<Object>() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-04-20 14:29:18
|
Revision: 6222
http://fudaa.svn.sourceforge.net/fudaa/?rev=6222&view=rev
Author: bmarchan
Date: 2011-04-20 14:29:11 +0000 (Wed, 20 Apr 2011)
Log Message:
-----------
QQ modifs sans importance
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java 2011-04-20 14:28:21 UTC (rev 6221)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java 2011-04-20 14:29:11 UTC (rev 6222)
@@ -17,10 +17,10 @@
import org.fudaa.ebli.calque.ZSelectionEvent;
import org.fudaa.ebli.calque.ZSelectionListener;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.ebli.ressource.EbliResource;
import org.fudaa.fudaa.modeleur.MdlSceneEditor;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dLine;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dMultiPoint;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
* Une action pour d\xE9placer un objet dans un autre calque. L'\xE9tat actif/inactif de l'action d\xE9pend du calque selectionn\xE9.
@@ -36,7 +36,7 @@
* @param _tree Le modele de l'arbre des calques
*/
public SceneMoveInLayerAction(MdlSceneEditor _sceneEditor, BArbreCalqueModel _tree) {
- super(EbliResource.EBLI.getString("D\xE9placer dans le calque cible"), null/*EbliResource.EBLI.getToolIcon("draw-rotation")*/, "MOVE_IN_LAYER");
+ super(MdlResource.getS("D\xE9placer dans le calque cible"), null/*EbliResource.EBLI.getToolIcon("draw-rotation")*/, "MOVE_IN_LAYER");
setSceneEditor(_sceneEditor);
sceneEditor_.getScene().addSelectionListener(this);
_tree.addTreeSelectionListener(this);
@@ -69,7 +69,7 @@
}
public String getEnableCondition() {
- return EbliResource.EBLI.getString("S\xE9lectionner au moins une g\xE9ometrie et un calque cible");
+ return MdlResource.getS("S\xE9lectionner au moins une g\xE9ometrie et un calque cible");
}
/* (non-Javadoc)
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java 2011-04-20 14:28:21 UTC (rev 6221)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefImporterFromModels.java 2011-04-20 14:29:11 UTC (rev 6222)
@@ -245,7 +245,7 @@
throw new IllegalArgumentException(FudaaLib
.getS("Au moins un des profils coupe plusieurs fois ou jamais l'axe hydraulique."));
attrMatchWithAxeHydraulique=attrIsCorrectlyValued&&attrMatchWithAxeHydraulique
- &&Math.abs(hydraoCommValue-(absCurvValue+decalAxe))<0.0001;
+ &&UtilsProfil1d.egal(hydraoCommValue,(absCurvValue+decalAxe));
}
}
}
@@ -322,36 +322,36 @@
String nature=(String)models_[i].getGeomData().getFixedAttributValue(GISAttributeConstants.NATURE);
if (nature==null)
throw new IllegalArgumentException(FudaaLib.getS("Un des modeles ne contient pas l'attribut NATURE."));
- if (nature==GISAttributeConstants.ATT_NATURE_AH)
+ if (GISAttributeConstants.ATT_NATURE_AH.equals(nature))
if (axeHydraulique_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models d'axe hydrauliques sont donn\xE9es."));
else
axeHydraulique_=models_[i];
- else if (nature==GISAttributeConstants.ATT_NATURE_LD)
+ else if (GISAttributeConstants.ATT_NATURE_LD.equals(nature))
if (lignesDirectrices_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models de lignes directrices sont donn\xE9es."));
else
lignesDirectrices_=models_[i];
- else if (nature==GISAttributeConstants.ATT_NATURE_LS)
+ else if (GISAttributeConstants.ATT_NATURE_LS.equals(nature))
if (limitesStockages_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models de limites de stockage sont donn\xE9es."));
else if (models_[i].getGeomData().getNbGeometries()>2)
throw new IllegalArgumentException(FudaaLib.getS("Il ne peut pas y avoir plus de 2 limites de stockages."));
else
limitesStockages_=models_[i];
- else if (nature==GISAttributeConstants.ATT_NATURE_PF)
+ else if (GISAttributeConstants.ATT_NATURE_PF.equals(nature))
if (profils_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models de profils sont donn\xE9es."));
else
profils_=(MdlModel2dLine)models_[i];
- else if (nature==GISAttributeConstants.ATT_NATURE_RV)
+ else if (GISAttributeConstants.ATT_NATURE_RV.equals(nature))
if (rives_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models de rives sont donn\xE9es."));
else if (models_[i].getGeomData().getNbGeometries()>2)
throw new IllegalArgumentException(FudaaLib.getS("Il ne peut pas y avoir plus de 2 rives."));
else
rives_=models_[i];
- else if (nature==GISAttributeConstants.ATT_NATURE_LC)
+ else if (GISAttributeConstants.ATT_NATURE_LC.equals(nature))
if (lignesContraints_!=null)
throw new IllegalArgumentException(FudaaLib.getS("Plusieurs models de lignes de contraintes sont donn\xE9es."));
else
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-05-04 13:34:19
|
Revision: 6243
http://fudaa.svn.sourceforge.net/fudaa/?rev=6243&view=rev
Author: bmarchan
Date: 2011-05-04 13:34:10 +0000 (Wed, 04 May 2011)
Log Message:
-----------
MOD : Affectation du nom du bief lu sur fichier au bief cr?\195?\169?\195?\169 par import.
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlBiefImportAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Exporter1d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefSet.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -11,6 +11,7 @@
import java.util.List;
import javax.swing.Action;
+import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.BGroupeCalque;
import org.fudaa.ebli.calque.ZEbliCalquePanelController;
@@ -47,6 +48,7 @@
import com.memoire.bu.BuMenu;
import com.memoire.bu.BuPopupMenu;
+import org.fudaa.ebli.calque.BCalqueVisitor;
import org.fudaa.ebli.commun.EbliActionAbstract;
import org.fudaa.fudaa.modeleur.action.MdlBiefImportAction;
import org.fudaa.fudaa.modeleur.modeleur1d.model.Bief;
@@ -323,10 +325,31 @@
* @param _build True : Les calques composant le bief doivent \xEAtre construits
*/
public void buildBiefLayers(Bief _bief, boolean _build) {
+ // Un visitor pour les num\xE9ros \xE0 attribuer aux calques.
+ class NameCalqueVisitor implements BCalqueVisitor {
+ public int max=1;
+ public boolean visit(BCalque _cq) {
+ if (null!=_cq.getTitle()) {
+ String tt=_cq.getTitle();
+ int ind=tt.indexOf(" B");
+ if (ind!=-1) {
+ try {
+ max=Math.max(max,Integer.parseInt(tt.substring(ind+2).trim())+1);
+ }
+ catch (NumberFormatException _exc) {}
+ }
+ }
+ return true;
+ }
+ }
+ NameCalqueVisitor visitor=new NameCalqueVisitor();
+ cqBiefs_.apply(visitor);
+ String biefNum=""+visitor.max;
+
BGroupeCalque cqBief=new BGroupeCalque();
cqBief.setTitleModifiable(true);
String name=BGroupeCalque.findUniqueChildName(cqBiefs_);
- String biefTitle=cqBiefs_.findUniqueChildTitle(MdlResource.getS("Bief"));
+ String biefTitle=MdlResource.getS("Bief")+" "+biefNum;
cqBief.setTitle(biefTitle);
cqBief.setName(name);
cqBief.putClientProperty(Action.SHORT_DESCRIPTION, MdlResource.getS("Un bief"));
@@ -334,10 +357,7 @@
cqBiefs_.add(cqBief);
if (!_build) return;
-
- String biefNum="0";
- biefNum=biefTitle.substring(biefTitle.lastIndexOf(" ")+1);
-
+
MdlLayer2dProfile cqProfile=new MdlLayer2dProfile(getEditor());
cqProfile.setName(BGroupeCalque.findUniqueChildName(cqBief, cqProfile.getExtName()));
cqProfile.setTitle(cqProfile.getTitle()+" B"+biefNum);
@@ -376,6 +396,9 @@
cqLimite.modele(_bief.limitesStockages_);
cqConst.modele(_bief.lignesContraints_);
cqBank.modele(_bief.rives_);
+ if (_bief.getName()!=null) {
+ cqBief.setTitle(_bief.getName());
+ }
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlBiefImportAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlBiefImportAction.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlBiefImportAction.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -10,7 +10,6 @@
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.HashMap;
-import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
import org.fudaa.ctulu.fileformat.FileFormatVersionInterface;
import org.fudaa.ctulu.fileformat.FileReadOperationAbstract;
@@ -20,7 +19,6 @@
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.ebli.ressource.EbliResource;
import org.fudaa.fudaa.modeleur.MdlImplementation;
import org.fudaa.fudaa.modeleur.modeleur1d.model.Bief;
import org.fudaa.fudaa.modeleur.modeleur1d.view.ImportBiefPanel;
@@ -74,8 +72,10 @@
return synt;
}
+ // Le nom du bief.
+ String name=(String)((Object[])synt.getSource())[0];
// Les lignes bris\xE9es, traces, profils, axe, rives, lim stockage.
- GISZoneCollectionLigneBrisee[] zones=(GISZoneCollectionLigneBrisee[])synt.getSource();
+ GISZoneCollectionLigneBrisee[] zones=(GISZoneCollectionLigneBrisee[])((Object[])synt.getSource())[1];
Bief bief=new Bief(
new ZModeleLigneBriseeEditable(zones[2]), // Axe
new ZModeleLigneBriseeEditable(), // Lignes cont
@@ -83,6 +83,7 @@
new ZModeleLigneBriseeEditable(zones[4]), // Limites stock
new ZModeleLigneBriseeEditable(zones[1]), // Profils
new ZModeleLigneBriseeEditable(zones[3]));// Rives
+ bief.setName(name);
synt.setSource(bief);
return synt;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -97,7 +97,9 @@
if (sousCalques[j] instanceof FSigLayerLineEditable)
modelsBief.add((ZModeleLigneBriseeEditable)((FSigLayerLineEditable)sousCalques[j]).modeleDonnees());
// Importation du bief \\
- return new BiefImporterFromModels(modelsBief.toArray(new ZModeleLigneBriseeEditable[0])).getBief();
+ Bief bief=new BiefImporterFromModels(modelsBief.toArray(new ZModeleLigneBriseeEditable[0])).getBief();
+ bief.setName(_name);
+ return bief;
}
/**
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -404,7 +404,7 @@
if (ff==null) return;
// Export.
- CtuluIOOperationSynthese result=ff2Exporter.get(ff).export(file,bief,controllerBief_.getSelectedBiefName());
+ CtuluIOOperationSynthese result=ff2Exporter.get(ff).export(file,bief);
appli_.manageErrorOperationAndIsFatal(result);
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -416,6 +416,8 @@
int k=1;
while (biefSet_.getBief(biefName)!=null)
biefName=name1+"_"+name2+"#"+Integer.toString(++k);
+ newBief.setName(biefName);
+
// Racourcis
GISZoneCollection zoneAxeHydraulique=newBief.axeHydraulique_.getGeomData();
GISZoneCollection zoneProfils=newBief.profils_.getGeomData();
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Exporter1d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Exporter1d.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Exporter1d.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -33,10 +33,9 @@
* Export des donn\xE9es d'un bief.
* @param _f Le fichier d'\xE9criture du bief.
* @param _bief Le bief.
- * @param _name Le nom du bief.
* @return Les parametres.
*/
- public CtuluIOOperationSynthese export(File _f, Bief _bief, String _name);
+ public CtuluIOOperationSynthese export(File _f, Bief _bief);
/**
* Retourne le file format associ\xE9 \xE0 l'exporter.
@@ -52,7 +51,7 @@
*/
abstract class Mascaret implements Exporter1d {
- public CtuluIOOperationSynthese export(File _file, Bief _bief, String _name) {
+ public CtuluIOOperationSynthese export(File _file, Bief _bief) {
_bief.profils_.getGeomData().prepareExport();
_bief.axeHydraulique_.getGeomData().prepareExport();
@@ -68,7 +67,7 @@
// Ecriture du fichier
FileWriteOperationAbstract writer=getFileFormat().createWriter();
- CtuluIOOperationSynthese synt=writer.write(new Object[]{_name,zones,functorSelectProfil},_file, null);
+ CtuluIOOperationSynthese synt=writer.write(new Object[]{_bief.getName(),zones,functorSelectProfil},_file, null);
if (ana.containsWarnings()) {
ana.merge(synt.getAnalyze());
@@ -107,7 +106,7 @@
*/
class Rubar implements Exporter1d {
- public CtuluIOOperationSynthese export(File _file, Bief _bief, String _name) {
+ public CtuluIOOperationSynthese export(File _file, Bief _bief) {
GISDataModel[] params=new GISDataModel[2];
// Remplit les Z coordonn\xE9es avec la valeur de l'attribut Z
_bief.profils_.getGeomData().prepareExport();
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/Bief.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -41,6 +41,7 @@
public ZModeleLigneBriseeEditable limitesStockages_;
public ZModeleLigneBriseeEditable lignesDirectrices_;
public ZModeleLigneBriseeEditable lignesContraints_;
+ private String biefName_;
/** Le synchroniser de gis. */
private GisZoneSynchroniser gisSynchroniser_=new GisZoneSynchroniser();
@@ -62,6 +63,15 @@
}
/**
+ * Constructeur, avec le nom.
+ * @param _name Le nom du bief.
+ */
+ public Bief(String _name) {
+ this();
+ biefName_=_name;
+ }
+
+ /**
* Value simplement les attributs publiques avec ceux pass\xE9s en param\xE8tres. Ne
* lance pas le synchoniser.
*
@@ -91,6 +101,21 @@
}
/**
+ * Definit le nom du bief
+ * @param _name Le nom
+ */
+ public void setName(String _name) {
+ biefName_=_name;
+ }
+
+ /**
+ * @return Le nom du bief, ou null si non d\xE9finit.
+ */
+ public String getName() {
+ return biefName_;
+ }
+
+ /**
* Retourne vrai si le synchroniser est activ\xE9.
*/
public boolean isSynchronizerActived() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefSet.java 2011-05-04 13:30:44 UTC (rev 6242)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefSet.java 2011-05-04 13:34:10 UTC (rev 6243)
@@ -123,7 +123,7 @@
throw new IllegalArgumentException("Ni _ancienNom ni _nouveauNom ne peuvent \xEAtre null.");
if(!biefs_.containsKey(_oldName))
throw new IllegalArgumentException(_oldName+" n'existe pas");
- if(_oldName==_newName)
+ if(_oldName.equals(_newName))
return;
if(biefs_.containsKey(_newName))
throw new IllegalArgumentException(_newName+" existe d\xE9j\xE0");
@@ -135,6 +135,7 @@
public void undo() {renameBief(newName_, oldName_, null);}
public String getName() {return FudaaLib.getS("Renommer profil");}
};
+ biefs_.get(_oldName).setName(_newName);
biefs_.put(_newName, biefs_.get(_oldName));
listNoms_.set(listNoms_.indexOf(_oldName), _newName);
biefs_.remove(_oldName);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-06-06 13:25:05
|
Revision: 6272
http://fudaa.svn.sourceforge.net/fudaa/?rev=6272&view=rev
Author: bmarchan
Date: 2011-06-06 13:24:58 +0000 (Mon, 06 Jun 2011)
Log Message:
-----------
Utilisation dans l'execution d'utilitaires externes du panneau d'import vers des calques.
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java
Removed Paths:
-------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2011-06-06 13:14:11 UTC (rev 6271)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2011-06-06 13:24:58 UTC (rev 6272)
@@ -7,11 +7,10 @@
*/
package org.fudaa.fudaa.modeleur;
+import org.fudaa.fudaa.sig.exetools.FSigImportDestinationPanel;
import java.awt.Component;
import java.awt.Dimension;
import java.util.Arrays;
-import java.util.Map;
-import java.util.Map.Entry;
import javax.swing.DefaultListModel;
import javax.swing.JComponent;
@@ -22,33 +21,15 @@
import javax.swing.event.TableModelListener;
import org.fudaa.ctulu.CtuluAnalyze;
-import org.fudaa.ctulu.CtuluCommandComposite;
import org.fudaa.ctulu.CtuluCommandManager;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.CtuluTaskDelegate;
import org.fudaa.ctulu.CtuluUI;
-import org.fudaa.ctulu.ProgressionInterface;
-import org.fudaa.ctulu.gis.GISAttributeConstants;
-import org.fudaa.ctulu.gis.GISAttributeDouble;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISAttributeNameComparator;
-import org.fudaa.ctulu.gis.GISDataModel;
-import org.fudaa.ctulu.gis.GISDataModelAttributeAdapter;
-import org.fudaa.ctulu.gis.GISDataModelAttributeSubstitutionAdapter;
-import org.fudaa.ctulu.gis.GISDataModelFilterAdapter;
-import org.fudaa.ctulu.gis.GISDataModelMultiPointToPolyligneAdapter;
-import org.fudaa.ctulu.gis.GISDataModelPointToMultiPointAdapter;
-import org.fudaa.ctulu.gis.GISDataModelPolygoneToMultiPointAdapter;
-import org.fudaa.ctulu.gis.GISDataModelPolyligneToMultiPointAdapter;
-import org.fudaa.ctulu.gis.GISDataModelPolyligneToPolygoneAdapter;
-import org.fudaa.ctulu.gis.GISDataModelSelectionAdapter;
import org.fudaa.ctulu.gis.GISPolygone;
-import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ebli.calque.BGroupeCalque;
-import org.fudaa.ebli.calque.ZCalqueAffichageDonneesAbstract;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
-import org.fudaa.ebli.calque.ZModeleGeometry;
-import org.fudaa.ebli.calque.dessin.DeForme;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.fudaa.sig.FSigExportImportAttributesMapper;
import org.fudaa.fudaa.sig.FSigGeomSrcData;
@@ -72,7 +53,7 @@
private CtuluCommandManager mng_;
private BGroupeCalque calqueRacine_;
- private MdlWizardImportStepDestination pnDest_;
+ private FSigImportDestinationPanel pnDest_;
protected final GISPolygone[] previewZone_;
protected final ZCalqueEditable selectedLayer_;
@@ -133,7 +114,7 @@
return fileLoader_;
}
else if (current_==1) {
- pnDest_=new MdlWizardImportStepDestination(calqueRacine_, data_, selectedLayer_);
+ pnDest_=new FSigImportDestinationPanel(calqueRacine_, data_, selectedLayer_);
return pnDest_;
}
return null;
@@ -146,158 +127,12 @@
final CtuluTaskDelegate task=impl_.createTask(MdlResource.getS("Importation"));
task.start(new Runnable() {
public void run() {
- importData(task.getStateReceiver());
+ pnDest_.doAtEnd(task.getStateReceiver(), mng_);
pnCalques_.restaurer();
}
});
super.doTask();
}
-
- protected void importData(ProgressionInterface _prog) {
- final Object[][] instructionData = pnDest_.getImportData();
- final CtuluCommandComposite cmp = new CtuluCommandComposite();
- // Conversion et importation des g\xE9om\xE9tries \\
- for(int i=0;i<instructionData.length;i++){
- int formeOrigine = (Integer) instructionData[i][0];
- int formeDestination = (Integer) instructionData[i][2];
- String natureOrigine = (String) instructionData[i][1];
- String natureDestination = (String) instructionData[i][3];
- FSigExportImportAttributesMapper attributesMapper = (FSigExportImportAttributesMapper) instructionData[i][4];
- ZCalqueAffichageDonneesAbstract calqueDestination = (ZCalqueAffichageDonneesAbstract) instructionData[i][5];
-
- GISDataModel[] models = new GISDataModel[0];
- boolean isPoint=false;
- if(formeOrigine==DeForme.MULTI_POINT){
- isPoint = true;
- models=data_.getPoints();
- }
- if(formeOrigine==DeForme.LIGNE_BRISEE)
- models=data_.getPolylignes();
- if(formeOrigine==DeForme.POLYGONE)
- models=data_.getPolygones();
-
- for(int j=0;j<models.length;j++)
- // Si le model est fait de point, on les convertis automatiquement en multipoints
- if(isPoint)
- processGeometry(new GISDataModelPointToMultiPointAdapter(models[j]), formeOrigine, formeDestination, natureOrigine, natureDestination, attributesMapper, calqueDestination, _prog, cmp);
- else
- processGeometry(models[j], formeOrigine, formeDestination, natureOrigine, natureDestination, attributesMapper, calqueDestination, _prog, cmp);
- }
- if (mng_!=null) mng_.addCmd(cmp.getSimplify());
- }
-
- /**
- * Converti toutes les g\xE9om\xE9tries correspondant au propri\xE9t\xE9 d'origine donn\xE9es
- * en prori\xE9t\xE9 d'origine de destination, mappe les attributs et ajout les
- * g\xE9om\xE9tries r\xE9sultantes au calque._natureOrigine
- * Il doit \xEAtre garantie que les g\xE9om\xE9tries sont de la forme d'origine donn\xE9e.
- * Seul les g\xE9om\xE9tries de nature d'origine seront trait\xE9s par cette fonction.
- * Les autres seront ignor\xE9es.
- *
- * @param _modelDonnees
- * le model de donn\xE9es contenant la g\xE9om\xE9trie \xE0 importer
- * @param _formeOrigine
- * la forme d'origine de la g\xE9om\xE9trie
- * @param _formeDestination
- * la forme dans lequelle convertir la g\xE9om\xE9trie
- * @param _natureOrigine
- * la nature d'origine de la forme
- * @param _natureDestination
- * la nature dans laquelle convertir la g\xE9om\xE9trie
- * @param _attributesMapper
- * le mapper d'attribut
- * @param _calqueDestination
- * le calque dans lequel ajouter la g\xE9om\xE9trie
- * @param _prog L'interface de progression
- */
- private void processGeometry(GISDataModel _modelDonnees, int _formeOrigine, int _formeDestination, String _natureOrigine, String _natureDestination,
- FSigExportImportAttributesMapper _attributesMapper, ZCalqueAffichageDonneesAbstract _calqueDestination, ProgressionInterface _prog, CtuluCommandComposite _cmd) {
-
-// for (int i=0; i<_modelDonnees.getNbAttributes(); i++) FuLog.trace("Att "+(i+1)+":"+_modelDonnees.getAttribute(i).getLongName());
- if (_attributesMapper!=null) {
-
- // Chargement en m\xE9moire des seuls attributs sources utilis\xE9s (necessaire pour des sources d'origine SIG). \\
-
- GISAttributeInterface[] attrs=new GISAttributeInterface[_attributesMapper.getDestReadMap().size()];
- int i=0;
- for (Entry<GISAttributeInterface,GISAttributeInterface> att: _attributesMapper.getDestReadMap().entrySet())
- attrs[i++]=att.getValue();
-
- _modelDonnees.preload(attrs,_prog);
-
- // On cache les attributs ignor\xE9s par le mapping.
- _modelDonnees = GISDataModelFilterAdapter.buildAdapter(_modelDonnees, attrs);
- }
-// for (int i=0; i<_modelDonnees.getNbAttributes(); i++) FuLog.trace("Att "+(i+1)+":"+_modelDonnees.getAttribute(i).getLongName());
-
- // Selection des g\xE9om\xE9tries avec la nature \\
-
- if(_natureOrigine.isEmpty())
- _modelDonnees = new GISDataModelSelectionAdapter(_modelDonnees, new Object[][]{{GISAttributeConstants.NATURE, ""}, {GISAttributeConstants.NATURE, GISDataModelSelectionAdapter.ATTRIBUT_NOT_EXIST}});
- else
- _modelDonnees = new GISDataModelSelectionAdapter(_modelDonnees, new Object[][]{{GISAttributeConstants.NATURE, _natureOrigine}});
-
- // Conversion de la forme \\
-
- if(_formeOrigine!=_formeDestination){
- if(_formeOrigine==DeForme.LIGNE_BRISEE&&_formeDestination==DeForme.MULTI_POINT)
- // Conversion de polyligne en multiPoint
- _modelDonnees=new GISDataModelPolyligneToMultiPointAdapter(_modelDonnees);
- else if(_formeOrigine==DeForme.POLYGONE){
- // Conversion de polygone en multipoint
- _modelDonnees=new GISDataModelPolygoneToMultiPointAdapter(_modelDonnees);
- // Conversion de polygone en polyligne
- if(_formeDestination==DeForme.LIGNE_BRISEE)
- _modelDonnees=new GISDataModelMultiPointToPolyligneAdapter(_modelDonnees);
- }
- else{
- if(_formeOrigine==DeForme.MULTI_POINT)
- // Conversion de multiPoint en polyligne
- _modelDonnees=new GISDataModelMultiPointToPolyligneAdapter(_modelDonnees);
- if(_formeDestination==DeForme.POLYGONE)
- // Conversion de multipoint en polygone
- _modelDonnees=new GISDataModelPolyligneToPolygoneAdapter(_modelDonnees);
- }
- }
-
- // Mapping des attributs \\
-
- // Extraction des attributs du calque de destination
- GISZoneCollection zoneCollection = ((ZModeleGeometry)_calqueDestination.modeleDonnees()).getGeomData();
-
- // Ajout des attributs manquant (ceux du calque de destination)
- GISDataModelAttributeAdapter adapter = new GISDataModelAttributeAdapter(_modelDonnees);
- if (_attributesMapper!=null) {
- Map<GISAttributeInterface, GISAttributeInterface> attributsMap=_attributesMapper.getDestReadMap();
- for (Map.Entry<GISAttributeInterface, GISAttributeInterface> entry : attributsMap.entrySet())
- adapter.addAttribut(entry.getKey(), entry.getKey().getDefaultValue());
- }
- // Remplacement de l'ancien model par le nouveau
- _modelDonnees = adapter;
-// for (int i=0; i<_modelDonnees.getNbAttributes(); i++) FuLog.trace("Att "+(i+1)+":"+_modelDonnees.getAttribute(i).getLongName());
-
- if (_attributesMapper!=null)
- // Substitution des attributs
- _modelDonnees=new GISDataModelAttributeSubstitutionAdapter(_modelDonnees, _attributesMapper.getDestReadMap());
-
-// for (int i=0; i<_modelDonnees.getNbAttributes(); i++) FuLog.trace("Att "+(i+1)+":"+_modelDonnees.getAttribute(i).getLongName());
-
- // Mise en conformit\xE9 du mod\xE8le pour qu'il contienne les m\xEAmes attributs que le calque de destination.
- // Les attributs en trop sont cach\xE9s, les attributs manquants sont ajout\xE9s avec des valeurs nulles.
- _modelDonnees = GISDataModelFilterAdapter.buildAdapter(_modelDonnees, zoneCollection.getAttributes());
-// for (int i=0; i<_modelDonnees.getNbAttributes(); i++) if (_modelDonnees.getAttribute(i)!=null) FuLog.trace("Att "+(i+1)+":"+_modelDonnees.getAttribute(i).getLongName());
-
- // Ajout dans le calque \\
-
- // Pb : addAll() initialise l'attribut Z avec les coordonn\xE9es Z, m\xEAme si on souhaite ignorer le Z. On met donc l'attribut
- // isZ=null avant de le restituer.
- GISAttributeDouble isZ=zoneCollection.getAttributeIsZ();
- if (isZ!=null && _attributesMapper!=null && !_attributesMapper.getDestReadMap().containsKey(isZ)) {
- zoneCollection.setAttributeIsZ(null);
- }
- zoneCollection.addAll(_modelDonnees, _cmd, false);
- zoneCollection.setAttributeIsZ(isZ);
- }
protected void rebuildAtt() {
GISAttributeInterface[] newatt = new GISAttributeInterface[srcAtt_.size()];
Deleted: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java 2011-06-06 13:14:11 UTC (rev 6271)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlWizardImportStepDestination.java 2011-06-06 13:24:58 UTC (rev 6272)
@@ -1,632 +0,0 @@
-/*
- * @creation 8 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.fudaa.modeleur;
-
-import com.memoire.bu.BuBorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-import javax.swing.AbstractCellEditor;
-import javax.swing.JComboBox;
-import javax.swing.JPanel;
-import javax.swing.JTable;
-import javax.swing.UIManager;
-import javax.swing.event.CellEditorListener;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableCellRenderer;
-
-import org.fudaa.ctulu.gis.GISAttributeConstants;
-import org.fudaa.ctulu.gis.GISAttributeInterface;
-import org.fudaa.ctulu.gis.GISDataModel;
-import org.fudaa.ebli.calque.BCalque;
-import org.fudaa.ebli.calque.BGroupeCalque;
-import org.fudaa.ebli.calque.CalqueSelectorVisitor;
-import org.fudaa.ebli.calque.ZCalqueAffichageDonneesAbstract;
-import org.fudaa.ebli.calque.ZModeleGeometry;
-import org.fudaa.ebli.calque.dessin.DeForme;
-import org.fudaa.ebli.calque.edition.ZCalqueEditable;
-import org.fudaa.fudaa.sig.FSigExportImportAttributesMapper;
-import org.fudaa.fudaa.sig.FSigGeomSrcData;
-import org.fudaa.fudaa.sig.wizard.FSigWizardImportHelper;
-
-import com.memoire.bu.BuCheckBox;
-import com.memoire.bu.BuLabel;
-import com.memoire.bu.BuPanel;
-import com.memoire.bu.BuScrollPane;
-import com.memoire.bu.BuVerticalLayout;
-import java.awt.Dimension;
-import org.fudaa.ctulu.table.CtuluTable;
-import org.fudaa.fudaa.modeleur.resource.MdlResource;
-
-/**
- * L'\xE9tape de choix des calques destinations lors de l'import de fichiers de donn\xE9es.
- * @author Emmanuel MARTIN
- * @version $Id$
- */
-public class MdlWizardImportStepDestination extends JPanel implements CellEditorListener, ListSelectionListener {
-
- /**
- * Modele utilis\xE9 par la table d'import.
- * @author Emmanuel MARTIN
- * @version $Id$
- */
- protected class ModelTableImport extends AbstractTableModel{
-
- private final String[] titreColonnes_;
- private final Object[][] data_;
-
- public ModelTableImport(String[] _columnTitles, Object[][] _data){
- if(_columnTitles==null||_data==null)
- throw new IllegalArgumentException("Erreur prog : Les arguments ne doivent pas \xEAtre null.");
- if(_columnTitles.length!=4)
- throw new IllegalArgumentException("Erreur prog : Il doit y avoir 4 colonnes.");
- // Verification de la doh\xE9rence des donn\xE9es \\
- int rowSize=_columnTitles.length;
- // Parcours ligne par ligne
- for (int i=0; i<_data.length; i++) {
- if(_data[i]==null)
- throw new IllegalArgumentException("Erreur prog : _data ne doit pas contenir de case null.");
- if(rowSize!=_data[i].length)
- throw new IllegalArgumentException("Erreur prog : Toutes les lignes doivent avoir la m\xEAme taille.");
- // Verification de la coh\xE9rence des calques
- if(!(_data[i][_data[i].length-1] instanceof BCalque))
- throw new IllegalArgumentException("Erreur prog : La derni\xE8re colonne doit contenir un calques pour l'importation.");
- }
-
- titreColonnes_ = _columnTitles;
- data_ = _data;
- }
-
- @Override
- public Class<?> getColumnClass(int columnIndex) {
- switch(columnIndex){
- case 0: return String.class;
- case 1: return String.class;
- case 2: return Boolean.class;
- case 3: return BCalque.class;
- default: return null;
- }
- }
-
- public int getColumnCount() {
- return titreColonnes_.length;
- }
-
- @Override
- public String getColumnName(int _columnIndex) {
- if(_columnIndex>=0 && _columnIndex<titreColonnes_.length)
- return titreColonnes_[_columnIndex];
- else
- return new String();
- }
-
- public int getRowCount() {
- return data_.length;
- }
-
- public Object getValueAt(int _rowIndex, int _columnIndex) {
- if (_rowIndex>=0&&_rowIndex<data_.length&&_columnIndex>=0&&_columnIndex<titreColonnes_.length)
- return data_[_rowIndex][_columnIndex];
- else
- return new String();
- }
-
- @Override
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- switch(columnIndex){
- case 0: return false;
- case 1: return false;
- case 2: return true;
- case 3: return true;
- default: return false;
- }
- }
-
- @Override
- public void setValueAt(Object value, int _rowIndex, int _columnIndex) {
- if (_rowIndex>=0&&_rowIndex<data_.length&&_columnIndex>=0&&_columnIndex<titreColonnes_.length)
- data_[_rowIndex][_columnIndex] = value;
- }
- }
-
- /**
- * Classe utilis\xE9 pour le rendu des cellules.
- * @author Emmanuel MARTIN
- * @version $Id$
- */
- public class ImportTableRenderer implements TableCellRenderer {
- public Component getTableCellRendererComponent(JTable _table, Object _value, boolean _isSelected, boolean _hasFocus, int _row,
- int _column) {
- Color selectionBackground = UIManager.getColor("Table.selectionBackground");
- JPanel pn=new JPanel();
- pn.setLayout(new FlowLayout(FlowLayout.CENTER,0,0));
- if(_isSelected)
- pn.setBackground(selectionBackground);
- else
- pn.setBackground(Color.WHITE);
-
- BuLabel lbl;
- switch (_column) {
- case 1:
- lbl =new BuLabel(_value.toString());
- lbl.setOpaque(true);
- lbl.setHorizontalAlignment(BuLabel.CENTER);
- if(_isSelected)
- lbl.setBackground(selectionBackground);
- pn.add(lbl);
- return pn;
-
- case 2:
- BuCheckBox cb=new BuCheckBox("", (Boolean)_value);
- if(_isSelected)
- cb.setBackground(selectionBackground);
- else
- cb.setBackground(Color.WHITE);
- pn.add(cb);
- return pn;
-
- case 3:
- String value;
- if (_value==null)
- value=MdlResource.getS("< Nouveau >");
- else
- value=((BCalque)_value).getTitle();
- lbl =new BuLabel(value);
- lbl.setHorizontalAlignment(BuLabel.CENTER);
- if(_isSelected)
- lbl.setBackground(selectionBackground);
- pn.add(lbl);
- return pn;
-
- default:
- lbl =new BuLabel(_value.toString());
- lbl.setHorizontalAlignment(BuLabel.CENTER);
- if(_isSelected)
- lbl.setBackground(selectionBackground);
- pn.add(lbl);
- return pn;
- }
- }
- }
-
- /**
- * Classe utilis\xE9e pour l'edition avec des comboBox.
- * @author Emmanuel MARTIN
- * @version $Id$
- */
- public class ImportTableEditorForBCalqueSelection extends AbstractCellEditor implements TableCellEditor, ActionListener {
-
- private JComboBox cb_;
-
- public ImportTableEditorForBCalqueSelection(){
- cb_ = new JComboBox();
- cb_.addActionListener(this);
- }
-
- public Component getTableCellEditorComponent(JTable _table, Object _value, boolean _isSelected, int _row, int _column) {
- cb_.removeAllItems();
- for (int i=0; i<allDestLayers_.length; i++) {
- // On ajoute le num\xE9ro d'ordre:
- // 1. pour que l'utilisateur s'y retrouve
- // 2. Car sinon en cas de String identique, le setSelectedIndex ne fonctionne pas ??!!
- cb_.addItem((i+1)+". "+allDestLayers_[i]);
- if (allDestLayers_[i]==_value) {
- cb_.setSelectedIndex(i);
- }
- }
- return cb_;
- }
-
- public Object getCellEditorValue() {
- return allDestLayers_[cb_.getSelectedIndex()];
- }
-
- public void actionPerformed(ActionEvent _e) {
- stopCellEditing();
- }
- }
-
- // Les calques
- private ZCalqueEditable selectedLayer_;
- private BGroupeCalque racine_;
- /** Tous les calques destination possibles */
- private ZCalqueAffichageDonneesAbstract[] allDestLayers_;
-
- // Les donn\xE9es fournies par le panel de chargement des fichiers
- private FSigGeomSrcData data_;
-
- // Donn\xE9es g\xE9n\xE9r\xE9es
- /** Association entre la ligne du tableau => le calque et la map. */
- private HashMap<Integer, Object[]> mappers_;
-
- // Les frames internes
- private FSigWizardImportHelper.InfoPanel pnInfo_;
- private CtuluTable table_;
- private BuScrollPane scAttrs_;
-
- public MdlWizardImportStepDestination(BCalque _racine, FSigGeomSrcData _data, ZCalqueEditable _selectedLayer) {
- mappers_=new HashMap<Integer, Object[]>();
- data_=_data;
- selectedLayer_=_selectedLayer;
- racine_=(BGroupeCalque)_racine;
-
- // R\xE9cup\xE9ration des calques \\
- CalqueSelectorVisitor visitor = new CalqueSelectorVisitor(ZModeleGeometry.class);
- racine_.apply(visitor);
- allDestLayers_= visitor.getSelectedCalques();
-
- setLayout(new BuVerticalLayout(2, true, true));
- // Frame d'information \\
- pnInfo_ = new FSigWizardImportHelper.InfoPanel();
- FSigWizardImportHelper.setTitleBorder(pnInfo_, MdlResource.getS("Informations"));
- add(pnInfo_);
-
- // Frame d'importation \\
- // Le tableau
- table_ = new CtuluTable(new ModelTableImport(generateTitleColumnTable(), generateDataTable()));
- // Cr\xE9ation du panel
- JPanel pnImport = new BuPanel();
- pnImport.setLayout(new BuBorderLayout());
- FSigWizardImportHelper.setTitleBorder(pnImport, MdlResource.getS("Importation"));
- pnImport.add(new BuScrollPane(table_), BuBorderLayout.CENTER);
- pnImport.setPreferredSize(new Dimension(10, 200));
- add(pnImport);
-
- // Frame des attributs \\
- JPanel pn = new BuPanel();
- FSigWizardImportHelper.setTitleBorder(pn, MdlResource.getS("Attributs"));
- pn.setLayout(new BuBorderLayout());
- scAttrs_=new BuScrollPane();
- pn.add(scAttrs_);
- add(pn);
-
- update();
- }
-
- protected String[] generateTitleColumnTable(){
- return new String[]{
- MdlResource.getS("G\xE9om\xE9trie"),
- MdlResource.getS("Type"),
- MdlResource.getS("Import"),
- MdlResource.getS("Calque")
- };
- }
-
- /**
- * Genere les datas de la table de mapping des g\xE9om\xE9tries, contenant entre autres les calques de destination.
- * @return Les datas de la table.
- */
- protected Object[][] generateDataTable() {
- if (data_==null)
- return new Object[0][];
- // Extraction des Informations sur les g\xE9om\xE9tries \\
- // Conteneur des informations extraites
- ArrayList<String[]> geometrieAndType=new ArrayList<String[]>();
- // Variables utiles seulement pendant l'extraction
- HashSet<String> natures=new HashSet<String>();
- int indexAttr;
- // Analyse des points
- if (data_.getNbPoints()>0) {
- natures.clear();
- // Recherche des natures des points
- for (int i=0; i<data_.getPoints().length; i++) {
- indexAttr=data_.getPoints()[i].getIndiceOf(GISAttributeConstants.NATURE);
- if (indexAttr==-1)
- natures.add("");
- else {
- for (int j=0; j<data_.getPoints()[i].getNumGeometries(); j++)
- natures.add((String)data_.getPoints()[i].getValue(indexAttr, j));
- }
- }
- // Enregistrement des natures trouv\xE9es
- for (Iterator<String> it=natures.iterator(); it.hasNext();)
- geometrieAndType.add(new String[]{MdlResource.getS("MultiPoint"), it.next()});
- }
- // Analyse des polylignes
- if (data_.getNbPolylignes()>0) {
- natures.clear();
- // Recherche des natures des polylignes
- for (int i=0; i<data_.getPolylignes().length; i++) {
- indexAttr=data_.getPolylignes()[i].getIndiceOf(GISAttributeConstants.NATURE);
- if (indexAttr==-1)
- natures.add("");
- else {
- for (int j=0; j<data_.getPolylignes()[i].getNumGeometries(); j++)
- natures.add((String)data_.getPolylignes()[i].getValue(indexAttr, j));
- }
- }
- // Enregistrement des natures trouv\xE9es
- for (Iterator<String> it=natures.iterator(); it.hasNext();)
- geometrieAndType.add(new String[]{MdlResource.getS("Polyligne"), it.next()});
- }
- // Analyse des polygones
- if (data_.getNbPolygones()>0) {
- natures.clear();
- // Recherche des natures des polygones
- for (int i=0; i<data_.getPolygones().length; i++) {
- indexAttr=data_.getPolygones()[i].getIndiceOf(GISAttributeConstants.NATURE);
- if (indexAttr==-1)
- natures.add("");
- else {
- for (int j=0; j<data_.getPolygones()[i].getNumGeometries(); j++)
- natures.add((String)data_.getPolygones()[i].getValue(indexAttr, j));
- }
- }
- // Enregistrement des natures trouv\xE9es
- for (Iterator<String> it=natures.iterator(); it.hasNext();)
- geometrieAndType.add(new String[]{MdlResource.getS("Polygone"), it.next()});
- }
-
- // G\xE9n\xE9ration du model de donn\xE9 du tableau \\
- Object[][] dataTable=new Object[geometrieAndType.size()][];
- for (int i=0; i<geometrieAndType.size(); i++) {
- dataTable[i]=new Object[]{geometrieAndType.get(i)[0], // Nature
- geometrieAndType.get(i)[1], // Type g\xE9om\xE9trie
- true, // Import selectionn\xE9
- getDefaultCalque(geometrieAndType.get(i)[1],geometrieAndType.get(i)[0]), // Calque par defaut
- };
- }
-
- return dataTable;
- }
-
- /**
- * @param _nature
- * La nature que doit g\xE9rer le calque.
- * @param _geometrie
- * La g\xE9om\xE9trie que doit contenir le calque.
- * @return le claque par defaut pour la nature et la g\xE9om\xE9trie donn\xE9es.
- */
- protected BCalque getDefaultCalque(String _nature, String _geometrie){
- // Tentative de d\xE9termination avec la nature
- if(_nature!=null&&_nature.length()!=0){
- ArrayList<BCalque> found = new ArrayList<BCalque>();
- for(int i=0;i<allDestLayers_.length;i++)
- if(((ZModeleGeometry)allDestLayers_[i].modeleDonnees()).getGeomData().getFixedAttributValue(GISAttributeConstants.NATURE)== _nature)
- found.add(allDestLayers_[i]);
- if(found.size()>0)
- if(found.contains(selectedLayer_))
- return (BCalque) selectedLayer_;
- else
- return found.get(0);
- }
- // Tentative de d\xE9termination avec la g\xE9om\xE9trie
- if (_geometrie!=null&&_geometrie.length()!=0) {
- ArrayList<BCalque> found=new ArrayList<BCalque>();
- for (int i=0; i<allDestLayers_.length; i++) {
- if (MdlResource.getS("MultiPoint").equals(_geometrie)) {
- if (((ZCalqueEditable)allDestLayers_[i]).canAddForme(DeForme.MULTI_POINT))
- found.add(allDestLayers_[i]);
- }
- else if (MdlResource.getS("Polyligne").equals(_geometrie)) {
- if (((ZCalqueEditable)allDestLayers_[i]).canAddForme(DeForme.LIGNE_BRISEE))
- found.add(allDestLayers_[i]);
- }
- else if (MdlResource.getS("Polygone").equals(_geometrie)) {
- if (((ZCalqueEditable)allDestLayers_[i]).canAddForme(DeForme.POLYGONE))
- found.add(allDestLayers_[i]);
- }
- }
- if (found.size()>0)
- if(found.contains(selectedLayer_))
- return (BCalque) selectedLayer_;
- else
- return found.get(0);
- }
- // A defaut retourne le calque selectionn\xE9 si il est dans la liste
- for(int i=0;i<allDestLayers_.length;i++)
- if(allDestLayers_[i]==selectedLayer_)
- return (BCalque) selectedLayer_;
- // Il reste plus qu'a retourner un claque arbitrairement si il y en a un qui existe
- if(allDestLayers_.length>0)
- return allDestLayers_[0];
- else
- return null;
- }
-
- public void setSrc(FSigGeomSrcData _data) {
- data_=_data;
- }
-
- public void setSelectedLayer(ZCalqueEditable _cq) {
- selectedLayer_=_cq;
- }
-
- public void update() {
- if (data_==null) return;
- // Update du panel d'info
- pnInfo_.setSrc(data_);
- // Update du panel d'import
- table_.setModel(new ModelTableImport(generateTitleColumnTable(), generateDataTable()));
- table_.getColumnModel().getColumn(0).setCellRenderer(new ImportTableRenderer());
- table_.getColumnModel().getColumn(0).setPreferredWidth(80);
- table_.getColumnModel().getColumn(1).setCellRenderer(new ImportTableRenderer());
- table_.getColumnModel().getColumn(1).setPreferredWidth(40);
- table_.getColumnModel().getColumn(2).setCellRenderer(new ImportTableRenderer());
- table_.getColumnModel().getColumn(2).setPreferredWidth(40);
- table_.getColumnModel().getColumn(3).setCellRenderer(new ImportTableRenderer());
- table_.getColumnModel().getColumn(3).setPreferredWidth(230);
- ImportTableEditorForBCalqueSelection editor=new ImportTableEditorForBCalqueSelection();
- editor.addCellEditorListener(this);
- table_.getSelectionModel().addListSelectionListener(this);
- table_.getColumnModel().getColumn(3).setCellEditor(editor);
- // Mise a jour du panel d'attribut
- fillAttributsPanel();
- }
-
- /**
- * Cette fonction g\xE9n\xE8re les attributs a mapper pour la ligne donn\xE9e. Ce
- * mapping est affich\xE9 dans le panel pr\xE9vu \xE0 cet effet.
- *
- * @param _indexLigne index de la ligne a trait...
[truncated message content] |
|
From: <bma...@us...> - 2011-06-06 16:35:53
|
Revision: 6276
http://fudaa.svn.sourceforge.net/fudaa/?rev=6276&view=rev
Author: bmarchan
Date: 2011-06-06 16:35:47 +0000 (Mon, 06 Jun 2011)
Log Message:
-----------
Chgt de signature methode : public void CtuluDialogPanel.cancel() => public boolean CtuluDialogPanel.cancel()
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2011-06-06 16:34:49 UTC (rev 6275)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2011-06-06 16:35:47 UTC (rev 6276)
@@ -384,9 +384,9 @@
}
@Override
- public void cancel() {
+ public boolean cancel() {
close();
- super.cancel();
+ return super.cancel();
}
@Override
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java 2011-06-06 16:34:49 UTC (rev 6275)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolateProfilePanel.java 2011-06-06 16:35:47 UTC (rev 6276)
@@ -223,9 +223,9 @@
}
@Override
- public void cancel() {
+ public boolean cancel() {
close();
- super.cancel();
+ return super.cancel();
}
@Override
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java 2011-06-06 16:34:49 UTC (rev 6275)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectImportPanel.java 2011-06-06 16:35:47 UTC (rev 6276)
@@ -193,8 +193,10 @@
return true;
}
- public void cancel() {
+ @Override
+ public boolean cancel() {
closeLoader();
+ return super.cancel();
}
private void closeLoader() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2011-06-06 16:34:49 UTC (rev 6275)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2011-06-06 16:35:47 UTC (rev 6276)
@@ -186,9 +186,9 @@
}
@Override
- public void cancel() {
+ public boolean cancel() {
close();
- super.cancel();
+ return super.cancel();
}
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-10-10 15:00:15
|
Revision: 6506
http://fudaa.svn.sourceforge.net/fudaa/?rev=6506&view=rev
Author: bmarchan
Date: 2011-10-10 15:00:08 +0000 (Mon, 10 Oct 2011)
Log Message:
-----------
Fix : Pb d'evenements mal intercept?\195?\169s
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 14:27:29 UTC (rev 6505)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 15:00:08 UTC (rev 6506)
@@ -23,8 +23,6 @@
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.CtuluUI;
-import org.fudaa.ebli.calque.ZSelectionEvent;
-import org.fudaa.ebli.calque.ZSelectionListener;
import org.fudaa.ebli.commun.EbliFormatterInterface;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSetControllerI;
@@ -92,26 +90,19 @@
// Le panneau de la vue 2D
viewProfSet_=new VueProfileSet(_ui);
viewProfSet_.setProfilSet((MdlCompareProfileSet)_ctrl.getProfilSet());
- viewProfSet_.addSelectionListener(new ZSelectionListener() {
- public void selectionChanged(ZSelectionEvent _evt) {
- if (listenEventSelection_) {
- listenEventSelection_=false;
- int indsel=viewProfSet_.getSelectedProfile();
- _ctrl.getProfilSelectionModel().setSelectedProfil(indsel);
- listenEventSelection_=true;
- }
+ viewProfSet_.addSelectionListener(new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ int indsel=viewProfSet_.getSelectedProfile();
+ _ctrl.getProfilSelectionModel().setSelectedProfil(indsel);
}
});
_ctrl.getProfilSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
- if (listenEventSelection_) {
- listenEventSelection_=false;
- int idxProf=_ctrl.getProfilSelectionModel().getSelectedProfil();
- viewCurve_.setSelectedProfile(idxProf);
- viewTable_.setProfil(_ctrl.getProfilSet().getProfil(idxProf));
- viewProfSet_.setSelectedProfile(idxProf);
- }
+ int idxProf=_ctrl.getProfilSelectionModel().getSelectedProfil();
+ viewCurve_.setSelectedProfile(idxProf);
+ viewTable_.setProfil(_ctrl.getProfilSet().getProfil(idxProf));
+ viewProfSet_.setSelectedProfile(idxProf);
}
});
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-10 14:27:29 UTC (rev 6505)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-10 15:00:08 UTC (rev 6506)
@@ -15,12 +15,16 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.swing.JComponent;
import javax.swing.JPanel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
+import org.fudaa.ebli.calque.ZSelectionEvent;
import org.fudaa.ebli.calque.ZSelectionListener;
import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
@@ -50,7 +54,10 @@
ZEbliCalquesPanel pnLayers_;
/** Le profil selectionn\xE9 */
int selProfilId=-1;
+ /** Les listeners de selection chang\xE9e */
+ Set<ListSelectionListener> listeners_=new HashSet<ListSelectionListener>();
+
/**
* Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones
* qui ne sont concern\xE9s par la vue.
@@ -88,6 +95,20 @@
pnLayers_=new ZEbliCalquesPanel(_impl);
pnLayers_.getScene().setRestrictedToCalqueActif(false);
+ pnLayers_.getScene().addSelectionListener(new ZSelectionListener() {
+ public void selectionChanged(ZSelectionEvent _evt) {
+ int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
+ if (idScene==-1) {
+ selProfilId=-1;
+ }
+ else {
+ MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
+ int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
+ selProfilId=mdl.getProfileId(idGeom);
+ }
+ fireSelectionChanged();
+ }
+ });
List<JComponent> buttons=EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
BuSpecificBar tb=new BuSpecificBar();
@@ -99,13 +120,19 @@
setPreferredSize(new Dimension(200,200));
}
- public void addSelectionListener(ZSelectionListener _l) {
- pnLayers_.getScene().addSelectionListener(_l);
+ public void addSelectionListener(ListSelectionListener _l) {
+ listeners_.add(_l);
}
- public void removeSelectionListener(ZSelectionListener _l) {
- pnLayers_.getScene().removeSelectionListener(_l);
+ public void removeSelectionListener(ListSelectionListener _l) {
+ listeners_.remove(_l);
}
+
+ private void fireSelectionChanged() {
+ for (ListSelectionListener l : listeners_) {
+ l.valueChanged(new ListSelectionEvent(this, getSelectedProfile(), getSelectedProfile(), false));
+ }
+ }
public void restaurer() {
pnLayers_.restaurer();
@@ -177,11 +204,6 @@
}
public int getSelectedProfile() {
- int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
- if (idScene==-1) return -1;
-
- MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
- int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
- return mdl.getProfileId(idGeom);
+ return selProfilId;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-10-10 16:03:59
|
Revision: 6510
http://fudaa.svn.sourceforge.net/fudaa/?rev=6510&view=rev
Author: bmarchan
Date: 2011-10-10 16:03:53 +0000 (Mon, 10 Oct 2011)
Log Message:
-----------
Ame : La fenetre de comparaison de profils conserve ses r?\195?\169glages d'une ouverture ?\195?\160 l'autre.
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 16:01:49 UTC (rev 6509)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 16:03:53 UTC (rev 6510)
@@ -10,6 +10,7 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
+import javax.swing.DefaultListSelectionModel;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent;
@@ -25,7 +26,9 @@
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ebli.commun.EbliFormatterInterface;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
+import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSelectionModel;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSetControllerI;
+import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfileSetI;
import org.fudaa.fudaa.modeleur.modeleur1d.view.PnGestionProfil;
import org.fudaa.fudaa.modeleur.modeleur1d.view.VueCourbe;
import org.fudaa.fudaa.modeleur.modeleur1d.view.VueProfilI;
@@ -47,11 +50,68 @@
protected VueTableau viewTable_;
protected VueCourbe viewCurve_;
protected VueProfileSet viewProfSet_;
+ protected PnGestionProfil pnProfiles_;
protected boolean listenEventSelection_=true;
+ private ProfileSetController ctrl_;
- public MdlCompareProfilePanel(CtuluUI _ui, CtuluCommandManager _mng, EbliFormatterInterface _fmt, final ProfileSetControllerI _ctrl) {
- setLayout(new BorderLayout(2, 2));
+ class ProfileSetController implements ProfileSetControllerI {
+ ProfileSetI profSet_;
+ ProfileSelectionModel selmdl_;
+
+ class ProfilSelectionModel extends DefaultListSelectionModel implements ProfileSelectionModel{
+
+ public ProfilSelectionModel() {
+ super.setSelectionMode(SINGLE_SELECTION);
+ }
+
+ public int getSelectedProfil() {
+ return getMinSelectionIndex();
+ }
+
+ public void setSelectedProfil(int _idx) {
+ if (_idx==-1)
+ clearSelection();
+ else
+ setSelectionInterval(_idx, _idx);
+ }
+
+ }
+
+ public ProfileSetController() {
+ selmdl_=new ProfilSelectionModel();
+ }
+
+ public void setProfileSet(ProfileSetI _profSet) {
+ profSet_=_profSet;
+ selmdl_.setSelectedProfil(-1);
+ }
+
+ public void ajoutProfil() {
+ }
+
+ public void fusionnerProfil() {
+ }
+
+ public ProfileSelectionModel getProfilSelectionModel() {
+ return selmdl_;
+ }
+
+ public void renameProfil(int _idxProfil, String _newName) {
+ }
+
+ public void supprimerSelectedProfil() {
+ if (profSet_!=null)
+ profSet_.removeProfil(selmdl_.getSelectedProfil(), null);
+ }
+
+ public ProfileSetI getProfilSet() {
+ return profSet_;
+ }
+ }
+
+ public MdlCompareProfilePanel(CtuluUI _ui, CtuluCommandManager _mng, EbliFormatterInterface _fmt) {
mng_=_mng;
+ ctrl_=new ProfileSetController();
// La commande est stock\xE9e \xE0 la fin, ou elle est d\xE9jou\xE9e.
cmp_=new CtuluCommandComposite(MdlResource.getS("Comparer les profils"));
@@ -60,7 +120,7 @@
// Le panneau des profils en travers
- viewCurve_=new VueCourbe(this, _ctrl.getProfilSet());
+ viewCurve_=new VueCourbe(this, null);
viewCurve_.setPrevNextVisible(true);
viewCurve_.addSelectionListener(new CtuluListSelectionListener() {
public void listeSelectionChanged(CtuluListSelectionEvent _e) {
@@ -73,10 +133,10 @@
});
// Le panneau liste des profils
- PnGestionProfil pnProfile=new PnGestionProfil(_ctrl,false);
+ pnProfiles_=new PnGestionProfil(ctrl_,false);
// Le panneau des coordonn\xE9es du profil courant.
- viewTable_=new VueTableau(this, _ctrl.getProfilSet().getProfil(0),true);
+ viewTable_=new VueTableau(this, null, true);
viewTable_.addSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (listenEventSelection_) {
@@ -89,27 +149,28 @@
// Le panneau de la vue 2D
viewProfSet_=new VueProfileSet(_ui);
- viewProfSet_.setProfilSet((MdlCompareProfileSet)_ctrl.getProfilSet());
viewProfSet_.addSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int indsel=viewProfSet_.getSelectedProfile();
- _ctrl.getProfilSelectionModel().setSelectedProfil(indsel);
+ ctrl_.getProfilSelectionModel().setSelectedProfil(indsel);
}
});
- _ctrl.getProfilSelectionModel().addListSelectionListener(new ListSelectionListener() {
+ ctrl_.getProfilSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
- int idxProf=_ctrl.getProfilSelectionModel().getSelectedProfil();
+ int idxProf=ctrl_.getProfilSelectionModel().getSelectedProfil();
viewCurve_.setSelectedProfile(idxProf);
- viewTable_.setProfil(_ctrl.getProfilSet().getProfil(idxProf));
+ viewTable_.setProfil(ctrl_.getProfilSet().getProfil(idxProf));
viewProfSet_.setSelectedProfile(idxProf);
}
});
+ setLayout(new BorderLayout(2, 2));
+
JSplitPane pnMain=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JSplitPane pnLeft=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
final JSplitPane pnRight=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
- pnLeft.add(pnProfile,JSplitPane.TOP);
+ pnLeft.add(pnProfiles_,JSplitPane.TOP);
pnLeft.add(viewTable_,JSplitPane.BOTTOM);
pnRight.add(viewProfSet_, JSplitPane.TOP);
pnRight.add(viewCurve_,JSplitPane.BOTTOM);
@@ -129,6 +190,27 @@
});
}
+ /**
+ * Changement de profil set. Le controller est sens\xE9 avoir ce m\xEAme
+ * profile set.
+ * @param _profSet Le profile set.
+ */
+ public void setProfileSet(MdlCompareProfileSet _profSet) {
+ ctrl_.setProfileSet(_profSet);
+ viewCurve_.setProfilSet(_profSet);
+ viewProfSet_.setProfilSet(_profSet);
+ pnProfiles_.setProfileSet(_profSet);
+ viewTable_.setProfil(null);
+ }
+
+ /**
+ * Definit le profil selectionn\xE9.
+ * @param _profId L'identifiant du profil.
+ */
+ public void setSelectedProfile(int _profId) {
+ ctrl_.getProfilSelectionModel().setSelectedProfil(_profId);
+ }
+
@Override
public boolean isDataValid() {
return true;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-10 16:01:49 UTC (rev 6509)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-10 16:03:53 UTC (rev 6510)
@@ -9,7 +9,6 @@
import org.fudaa.fudaa.modeleur.MdlCompareProfileAdapter;
import java.awt.event.ActionEvent;
-import javax.swing.DefaultListSelectionModel;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gui.CtuluDialog;
@@ -22,9 +21,6 @@
import org.fudaa.ebli.commun.EbliActionSimple;
import org.fudaa.fudaa.modeleur.MdlCompareProfilePanel;
import org.fudaa.fudaa.modeleur.MdlVisuPanel;
-import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSelectionModel;
-import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSetControllerI;
-import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfileSetI;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
@@ -40,58 +36,7 @@
MdlVisuPanel pnCalques_;
/** Instanci\xE9 1 seule fois pour conserver les options d'une ouverture \xE0 l'autre. */
MdlCompareProfilePanel pnProfiles_;
-
- class ProfileController implements ProfileSetControllerI {
- ProfileSetI profSet_;
- ProfileSelectionModel selmdl_;
- class ProfilSelectionModel extends DefaultListSelectionModel implements ProfileSelectionModel{
-
- public ProfilSelectionModel() {
- super.setSelectionMode(SINGLE_SELECTION);
- }
-
- public int getSelectedProfil() {
- return getMinSelectionIndex();
- }
-
- public void setSelectedProfil(int _idx) {
- if (_idx==-1)
- clearSelection();
- else
- setSelectionInterval(_idx, _idx);
- }
-
- }
-
- public ProfileController(ProfileSetI _profSet) {
- profSet_=_profSet;
- selmdl_=new ProfilSelectionModel();
- selmdl_.setSelectedProfil(-1);
- }
-
- public void ajoutProfil() {
- }
-
- public void fusionnerProfil() {
- }
-
- public ProfileSelectionModel getProfilSelectionModel() {
- return selmdl_;
- }
-
- public void renameProfil(int _idxProfil, String _newName) {
- }
-
- public void supprimerSelectedProfil() {
- profSet_.removeProfil(selmdl_.getSelectedProfil(), null);
- }
-
- public ProfileSetI getProfilSet() {
- return profSet_;
- }
- }
-
/**
* @param _sceneEditor L'editeur sp\xE9cifique a la scene.
*/
@@ -166,11 +111,12 @@
indsel=0;
}
- ProfileController cont=new ProfileController(profSet);
+ if (pnProfiles_==null)
+ pnProfiles_=new MdlCompareProfilePanel(pnCalques_.getCtuluUI(), pnCalques_.getCmdMng(), pnCalques_.getEbliFormatter());
- pnProfiles_=new MdlCompareProfilePanel(pnCalques_.getCtuluUI(), pnCalques_.getCmdMng(), pnCalques_.getEbliFormatter(), cont);
- cont.getProfilSelectionModel().setSelectedProfil(indsel);
- pnProfiles_.affiche(pnCalques_.getFrame(), MdlResource.getS("Comparaison de profils"), CtuluDialog.OK_CANCEL_OPTION);
+ pnProfiles_.setProfileSet(profSet);
+ pnProfiles_.setSelectedProfile(indsel);
+ pnProfiles_.afficheModale(pnCalques_.getFrame(), MdlResource.getS("Comparaison de profils"), CtuluDialog.OK_CANCEL_OPTION);
}
/**
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-10 16:01:49 UTC (rev 6509)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-10 16:03:53 UTC (rev 6510)
@@ -43,7 +43,7 @@
protected ProfileSetControllerI controllerProfil_;
/** Tableau d'affichage des biefs. */
protected JTable tableProfils_;
- protected TableProfilModel tbModel_;
+ private TableProfilModel tbModel_;
public PnGestionProfil(ProfileSetControllerI _controllerProfil) {
this(_controllerProfil,true);
@@ -130,7 +130,7 @@
super(new String[]{MdlResource.getS("Index"),MdlResource.getS("Nom")}, 0);
// profilSet_=controllerProfil_.getProfilSet();
// profilSet_.addListener(this);
- setProfilSet(controllerProfil_.getProfilSet());
+// setProfilSet(controllerProfil_.getProfilSet());
}
public void setProfilSet(ProfileSetI _profSet) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-10 16:01:49 UTC (rev 6509)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-10 16:03:53 UTC (rev 6510)
@@ -670,8 +670,10 @@
public VueCourbe(VueProfilI _controller, ProfileSetI _profSet){
controller_=_controller;
profSet_=_profSet;
- profSet_.addListener(this);
+ if (profSet_!=null)
+ profSet_.addListener(this);
+
// Cr\xE9ation du container des courbes \\
grapheModel_=new EGGrapheSimpleModel();
grapheVue_=new EGGraphe(grapheModel_);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-10-11 08:49:00
|
Revision: 6516
http://fudaa.svn.sourceforge.net/fudaa/?rev=6516&view=rev
Author: bmarchan
Date: 2011-10-11 08:48:54 +0000 (Tue, 11 Oct 2011)
Log Message:
-----------
Ameloiration diverse de la fenetre de comparaison
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -23,7 +23,6 @@
import org.fudaa.ctulu.CtuluListSelectionListener;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
-import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ebli.commun.EbliFormatterInterface;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSelectionModel;
@@ -43,7 +42,7 @@
*/
public class MdlCompareProfilePanel extends CtuluDialogPanel implements VueProfilI {
- CtuluUI ui_;
+ MdlVisuPanel pnCalques_;
CtuluCommandManager mng_;
CtuluCommandComposite cmp_;
EbliFormatterInterface fmt_;
@@ -109,16 +108,15 @@
}
}
- public MdlCompareProfilePanel(CtuluUI _ui, CtuluCommandManager _mng, EbliFormatterInterface _fmt) {
- mng_=_mng;
+ public MdlCompareProfilePanel(MdlVisuPanel _pnCalques) {
+ pnCalques_=_pnCalques;
+ mng_=pnCalques_.getCmdMng();
+ fmt_=pnCalques_.getEbliFormatter();
ctrl_=new ProfileSetController();
// La commande est stock\xE9e \xE0 la fin, ou elle est d\xE9jou\xE9e.
- cmp_=new CtuluCommandComposite(MdlResource.getS("Comparer les profils"));
- fmt_=_fmt;
- ui_=_ui;
-
-
+ initCommandComposite();
+
// Le panneau des profils en travers
viewCurve_=new VueCourbe(this, null);
viewCurve_.setPrevNextVisible(true);
@@ -148,7 +146,7 @@
});
// Le panneau de la vue 2D
- viewProfSet_=new VueProfileSet(_ui);
+ viewProfSet_=new VueProfileSet(pnCalques_.getCtuluUI());
viewProfSet_.addSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int indsel=viewProfSet_.getSelectedProfile();
@@ -190,6 +188,10 @@
});
}
+ private void initCommandComposite() {
+ cmp_=new CtuluCommandComposite(MdlResource.getS("Comparer les profils"));
+ }
+
/**
* Changement de profil set. Le controller est sens\xE9 avoir ce m\xEAme
* profile set.
@@ -218,14 +220,20 @@
@Override
public void apply() {
+ viewProfSet_.restoreZoneListeners();
// La commande container est stock\xE9e pour \xEAtre \xE9ventuellement d\xE9jou\xE9.
mng_.addCmd(cmp_.getSimplify());
+ initCommandComposite();
+ // B.M. : C'est pas terrible, mais ca redessine la vue 2D.
+ pnCalques_.clearSelection();;
}
@Override
public boolean cancel() {
+ viewProfSet_.restoreZoneListeners();
// On d\xE9joue tout ce qui a \xE9t\xE9 fait.
cmp_.undo();
+ initCommandComposite();
return true;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -112,7 +112,7 @@
}
if (pnProfiles_==null)
- pnProfiles_=new MdlCompareProfilePanel(pnCalques_.getCtuluUI(), pnCalques_.getCmdMng(), pnCalques_.getEbliFormatter());
+ pnProfiles_=new MdlCompareProfilePanel(pnCalques_);
pnProfiles_.setProfileSet(profSet);
pnProfiles_.setSelectedProfile(indsel);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -44,6 +44,7 @@
/** Tableau d'affichage des biefs. */
protected JTable tableProfils_;
private TableProfilModel tbModel_;
+ private boolean isNameEditable_=false;
public PnGestionProfil(ProfileSetControllerI _controllerProfil) {
this(_controllerProfil,true);
@@ -110,6 +111,7 @@
// pnButtons.add(btFusionner);
if (_showButtons) {
add(pnButtons, BuBorderLayout.EAST);
+ isNameEditable_=true;
}
setPreferredSize(new Dimension(200, 200));
}
@@ -169,7 +171,7 @@
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex==0) return false;
- return true;
+ return isNameEditable_;
}
public void setValueAt(Object value, int rowIndex, int columnIndex) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -990,21 +990,27 @@
* modifi\xE9.
*/
private void buildCurves() {
+ Color c;
+
+ c=Color.YELLOW.darker();
prevCurve_=new EGCourbeSimple(axeY_, new CourbeGeomModel());
- prevCurve_.setAspectContour(Color.YELLOW.darker());
- prevCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.YELLOW.darker()));
- prevCurve_.setDisplayPointLabels(true);
+ prevCurve_.setLigneModel(new TraceLigneModel(TraceLigne.TIRETE, 0.5f, c));
+ prevCurve_.setAspectContour(c);
+ prevCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 1, c));
grapheModel_.addCourbe(prevCurve_, null);
+ c=Color.GREEN.darker();
nextCurve_=new EGCourbeSimple(axeY_, new CourbeGeomModel());
- nextCurve_.setAspectContour(Color.GREEN.darker());
- nextCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.GREEN.darker()));
- nextCurve_.setDisplayPointLabels(true);
+ nextCurve_.setLigneModel(new TraceLigneModel(TraceLigne.TIRETE, 0.5f, c));
+ nextCurve_.setAspectContour(c);
+ nextCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 1, c));
grapheModel_.addCourbe(nextCurve_, null);
+ c=Color.RED;
courbe_=new EGCourbeSimple(axeY_, courbeModel_=new CourbeGeomModel());
- courbe_.setAspectContour(Color.RED);
- courbe_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN,2,Color.RED));
+ courbe_.setLigneModel(new TraceLigneModel(TraceLigne.LISSE, 1, c));
+ courbe_.setAspectContour(c);
+ courbe_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN,2,c));
courbe_.setDisplayPointLabels(true);
grapheModel_.addCourbe(courbe_, null);
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -23,6 +23,7 @@
import javax.swing.event.ListSelectionListener;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
+import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.ZSelectionEvent;
import org.fudaa.ebli.calque.ZSelectionListener;
@@ -48,6 +49,8 @@
List<MdlLayer2dProfile> layers_=new ArrayList<MdlLayer2dProfile>();
// MdlLayer2dProfile profils_;
List<GISZoneCollectionLigneBrisee> zones_=new ArrayList<GISZoneCollectionLigneBrisee>();
+ /** La liste des listeners de zones */
+ List<GISZoneListener> zonesListeners_=new ArrayList<GISZoneListener>();
/** Le profil set associ\xE9 */
MdlCompareProfileSet profSet;
/** Le composant des calques */
@@ -57,10 +60,9 @@
/** Les listeners de selection chang\xE9e */
Set<ListSelectionListener> listeners_=new HashSet<ListSelectionListener>();
-
/**
* Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones
- * qui ne sont concern\xE9s par la vue.
+ * qui ne sont pas concern\xE9s par la vue.
*/
class MdlProfileLayerModel extends MdlModel2dProfile {
HashSet<Integer> idxVisibles=new HashSet<Integer>();
@@ -146,8 +148,12 @@
// On construit autant de calques qu'il y a de zones. Les profils n'appartenant
// pas au profil set sont rendus invisibles.
zones_.clear();
+ zonesListeners_.clear();
layers_.clear();
+ pnLayers_.removeAllCalqueDonnees();
+ if (profSet==null) return;
+
List<MdlProfileLayerModel> mdls=new ArrayList<MdlProfileLayerModel>();
for (int i=0; i<profSet.getNbProfil(); i++) {
@@ -155,6 +161,7 @@
int index=zones_.indexOf(zone);
MdlProfileLayerModel mdl;
if (index==-1) {
+ zonesListeners_.add(zone.getListener());
mdl=new MdlProfileLayerModel(zone);
zones_.add(zone);
mdls.add(mdl);
@@ -166,7 +173,6 @@
mdl.setProfileId(profSet.getProfil(i).getGeomId(), i);
}
- pnLayers_.removeAllCalqueDonnees();
for (int i=0; i<mdls.size(); i++) {
MdlLayer2dProfile layer=new MdlLayer2dProfile(null);
layer.modele(mdls.get(i));
@@ -177,8 +183,23 @@
pnLayers_.restaurer();
}
+ /**
+ * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9
+ * par zone.
+ */
+ public void restoreZoneListeners() {
+ for (int i=0; i<zonesListeners_.size(); i++) {
+ zones_.get(i).setListener(zonesListeners_.get(i));
+ }
+ }
+
public void setProfilSet(MdlCompareProfileSet _profSet) {
if (profSet==_profSet) return;
+
+ if (profSet!=null) {
+ restoreZoneListeners();
+ }
+
profSet=_profSet;
selProfilId=-1;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -198,7 +198,8 @@
@Override
public void valueChanged(ListSelectionEvent e) {
super.valueChanged(e);
- scrollRectToVisible(getCellRect(getSelectionModel().getMaxSelectionIndex(), 0, false));
+ if (getSelectionModel().getMaxSelectionIndex()!=-1)
+ scrollRectToVisible(getCellRect(getSelectionModel().getMaxSelectionIndex(), 0, false));
}
};
table_.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer(){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-10-17 13:30:49
|
Revision: 6537
http://fudaa.svn.sourceforge.net/fudaa/?rev=6537&view=rev
Author: bmarchan
Date: 2011-10-17 13:30:39 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
Fix : Mise en conformit?\195?\169 des messages
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolationPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneOrganizePointAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneProjectionAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsProfil1d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportBiefPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ImportBiefPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionAxeHydraulique.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExportPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -46,7 +46,6 @@
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.ebli.trace.TraceSurface;
import org.fudaa.ebli.trace.TraceSurfaceModel;
-import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import com.memoire.bu.BuComboBox;
@@ -143,7 +142,7 @@
bgLayers.add(rbVisibleLayers_);
bgLayers.add(rbSelectedGeometries_);
- BuLabel lbAide=new BuLabel(FudaaLib.getS("Remarque : Les g\xE9om\xE9tries non visibles ne seront pas export\xE9es"));
+ BuLabel lbAide=new BuLabel(MdlResource.getS("Remarque : Les g\xE9om\xE9tries non visibles ne seront pas export\xE9es"));
lbAide.setFont(MdlResource.HELP_FONT);
lbAide.setForeground(MdlResource.HELP_FORGROUND_COLOR);
lbAide.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -222,9 +222,7 @@
if (!hasNoIntersectionWithContours(_scn, _mdCasiers, _selNiveaux) ||
!hasNoIntersectionWithNiveaux(_scn, _mdCasiers, _selNiveaux)) {
- ana.addError(MdlResource.getS("Les lignes de niveaux s\xE9lectionn\xE9es coupent des\n"+
- "contours de casiers ou se coupent entre elles.\n" +
- "Aucun casiers export\xE9"), -1);
+ ana.addError(MdlResource.getS("Les lignes de niveaux s\xE9lectionn\xE9es coupent des\ncontours de casiers ou se coupent entre elles.\nAucun casiers export\xE9"), -1);
return synt;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlDecimationPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -73,7 +73,7 @@
return false;
}
else if (rbDist_.isSelected() && (tfDist_.getText().trim().length()==0 || (dist_ = (Double)tfDist_.getValue())<=0)) {
- setErrorText(MdlResource.getS("La distance minimale entre 2 points doit \xEAtre > 0 ") + '!');
+ setErrorText(MdlResource.getS("La distance minimale entre 2 points doit \xEAtre > 0 !"));
return false;
}
return true;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolationPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolationPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlInterpolationPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -83,7 +83,7 @@
return false;
}
else if (rbDist_.isSelected() && (tfDist_.getText().trim().length()==0 || (dist_ = (Double)tfDist_.getValue())<=0)) {
- setErrorText(MdlResource.getS("La distance entre 2 points cons\xE9cutifs doit \xEAtre > 0 ") + '!');
+ setErrorText(MdlResource.getS("La distance entre 2 points cons\xE9cutifs doit \xEAtre > 0 !"));
return false;
}
return true;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlRefinementPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -73,7 +73,7 @@
return false;
}
else if (rbDist_.isSelected() && (tfDist_.getText().trim().length()==0 || (dist_ = (Double)tfDist_.getValue())<=0)) {
- setErrorText(MdlResource.getS("La distance maximale entre 2 points doit \xEAtre > 0 ") + '!');
+ setErrorText(MdlResource.getS("La distance maximale entre 2 points doit \xEAtre > 0 !"));
return false;
}
return true;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -155,8 +155,7 @@
nbProbGeom++;
}
if (nbProbGeom>0) {
- ui_.error(MdlResource.getS("Vous ne pouvez pas coller ou d\xE9placer ces g\xE9om\xE9tries.\n"+
- "{0} g\xE9om\xE9trie(s) a/ont moins de {1} points.",
+ ui_.error(MdlResource.getS("Vous ne pouvez pas coller ou d\xE9placer ces g\xE9om\xE9tries.\n{0} g\xE9om\xE9trie(s) a/ont moins de {1} points.",
nbProbGeom,nbMin));
return false;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneOrganizePointAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneOrganizePointAction.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneOrganizePointAction.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -36,7 +36,7 @@
* SceneOrganizePoint.x. As you want.
*/
public SceneOrganizePointAction(MdlSceneEditor _sceneEditor, String _criterion) {
- super(MdlResource.getS("R\xE9organisation sur ")+(_criterion==null?"":_criterion), null, "REORGANIZE_POLYLIGNE");
+ super(MdlResource.getS("R\xE9organisation sur")+(_criterion==null?"":" "+_criterion), null, "REORGANIZE_POLYLIGNE");
sceneEditor_=_sceneEditor;
criterion_=_criterion;
if(sceneEditor_==null||criterion_==null)
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneProjectionAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneProjectionAction.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneProjectionAction.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -29,7 +29,7 @@
public SceneProjectionAction(MdlSceneEditor _sceneEditor) {
super(MdlResource.getS("Projeter sur un semis"), null, "GIS_PROJECT");
-// setDefaultToolTip(CtuluLib.getS("Projeter la g\xE9om\xE9trie sur un semis"));
+// setDefaultToolTip(MdlResource.getS("Projeter la g\xE9om\xE9trie sur un semis"));
setSceneEditor(_sceneEditor);
sceneEditor_.getScene().addSelectionListener(this);
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/BiefsImporterFromModeleur2d.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -121,7 +121,7 @@
}
// Erreurs de donn\xE9es
catch (IllegalArgumentException _exc) {
- controller1d_.getImplementation().error(MdlResource.getS("Erreur"), MdlResource.getS("Import du bief {0} depuis le 2d :", name)+"\n"+_exc.getMessage());
+ controller1d_.getImplementation().error(MdlResource.getS("Erreur"), MdlResource.getS("Import du bief {0} depuis le 2d", name)+" :\n"+_exc.getMessage());
}
// Interruption de l'utilisateur
catch (CancelException _exc) { }
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -255,7 +255,7 @@
// Verifie que deux points cons\xE9cutifs ne sont pas confondus. \\
/* for (int i=1; i<seq.size(); i++)
if (seq.getX(i-1)==seq.getX(i)&&seq.getY(i-1)==seq.getY(i))
- throw new ProfilContainerException(FudaaLib.getS("Au moins deux points dans le profil sont confondus."));
+ throw new ProfilContainerException(MdlResource.getS("Au moins deux points dans le profil sont confondus."));
*/
// Verifie que le profil donn\xE9 ne poss\xE8de pas des segments qui se coupent entre eux \\
for(int i=1;i<seq.size();i++){
@@ -871,7 +871,7 @@
// // Variables de r\xE9solution
// double deltaTmp=equB*equB-4*equA*equC;
// if(deltaTmp<0)
-// throw new ProfilContainerException(FudaaLib.getS("Ce d\xE9placement n'est pas possible sans violer la contrainte de constance de la longueur du profil."));
+// throw new ProfilContainerException(MdlResource.getS("Ce d\xE9placement n'est pas possible sans violer la contrainte de constance de la longueur du profil."));
// double delta=Math.sqrt(equB*equB-4*equA*equC);
// x1=(-equB+delta)/(2*equA);
// y1=n-x1*m;
@@ -888,7 +888,7 @@
// // Variables de r\xE9solution
// double deltaTmp=equB*equB-4*equA*equC;
// if(deltaTmp<0)
-// throw new ProfilContainerException(FudaaLib.getS("Ce d\xE9placement n'est pas possible sans violer la contrainte de constance de la longueur du profil."));
+// throw new ProfilContainerException(MdlResource.getS("Ce d\xE9placement n'est pas possible sans violer la contrainte de constance de la longueur du profil."));
// double delta=Math.sqrt(equB*equB-4*equA*equC);
// y1=(-equB+delta)/(2*equA);
// x1=k;
@@ -897,7 +897,7 @@
// }
// // Cas 3
// else
-// throw new ProfilContainerException(FudaaLib.getS("Ce d\xE9placement n'est pas valide. Ce cas ne devrait jamais arriver. CSI_1"));
+// throw new ProfilContainerException(MdlResource.getS("Ce d\xE9placement n'est pas valide. Ce cas ne devrait jamais arriver. CSI_1"));
// // Recherche du r\xE9sultat nous interessant dans ce cas ci
// Coordinate aZ0=new Coordinate(a.x, a.y, 0);
// Coordinate bZ0=new Coordinate(b.x, b.y, 0);
@@ -914,7 +914,7 @@
// newY=y2;
// }
// else
-// throw new ProfilContainerException(FudaaLib.getS("Ce d\xE9placement n'est pas valide. Ce cas ne devrait jamais arriver. CSI_2"));
+// throw new ProfilContainerException(MdlResource.getS("Ce d\xE9placement n'est pas valide. Ce cas ne devrait jamais arriver. CSI_2"));
//
// // Verifie que le point trouv\xE9 ne coupe pas un autre axe du profil \\
// boolean noCut=true;
@@ -941,7 +941,7 @@
// }
// // Traitement de l'\xE9ventuelle d\xE9tection d'un croisement
// if(!noCut)
-// throw new ProfilContainerException(FudaaLib.getS("Ce d\xE9placement est impossible sans obtenir un profil dont des axes se coupent."));
+// throw new ProfilContainerException(MdlResource.getS("Ce d\xE9placement est impossible sans obtenir un profil dont des axes se coupent."));
// // Enregistrement du nouveau point C' et de la nouvelle valeur curviligne
// coords[_idxPoint]=new Coordinate(newX, newY, coords[_idxPoint].z);
// // Mise a jour de la table des valeurs curvilignes
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsProfil1d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsProfil1d.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/UtilsProfil1d.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -15,7 +15,6 @@
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISPoint;
import org.fudaa.ctulu.gis.GISZoneCollection;
-import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import com.vividsolutions.jts.geom.Coordinate;
@@ -42,24 +41,26 @@
// Une classe pour afficher le message.
class MessageHelper {
- public void warn(String _mes, int _idxProfil, int _idxPoint) {
- if (_ana==null) return;
+ public String getProfName(int _idxProfil) {
int iattName=_zone.getIndiceOf(GISAttributeConstants.TITRE);
- String name=(String)_zone.getValue(iattName, _idxProfil);
- _ana.addWarn(MdlResource.getS(_mes,name,_idxPoint),-1);
+ return (String)_zone.getValue(iattName, _idxProfil);
}
}
CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)_zone.getGeometry(_idxProfil)).getCoordinateSequence();
// Verifie qu'on a bien au minimum deux points. \\
if (seq.size()<2) {
- new MessageHelper().warn("Profil '{0}' : Le nombre de points mini doit \xEAtre de 2", _idxProfil, 0);
+ if (_ana!=null)
+ _ana.addWarn(MdlResource.getS("Profil '{0}' : Le nombre de points mini doit \xEAtre de 2",
+ new MessageHelper().getProfName(_idxProfil)));
return false;
}
// Verifie que deux points cons\xE9cutifs ne sont pas confondus. \\
for (int i=1; i<seq.size(); i++)
if (seq.getX(i-1)==seq.getX(i)&&seq.getY(i-1)==seq.getY(i)&&seq.getOrdinate(i,2)==seq.getOrdinate(i-1,2)) {
- new MessageHelper().warn("Profil '{0}' : Au moins 2 points sont confondus au point {1}", _idxProfil, i+1);
+ if (_ana!=null)
+ _ana.addWarn(MdlResource.getS("Profil '{0}' : Au moins 2 points sont confondus au point {1}",
+ new MessageHelper().getProfName(_idxProfil), i+1));
return false;
}
// Verifie que le profil donn\xE9 ne poss\xE8de pas des segments qui se coupent entre eux
@@ -81,7 +82,9 @@
seq.getCoordinate(j+1)}));
// Traitement d'une \xE9ventuelle intersection
if (!ok) {
- new MessageHelper().warn("Profil '{0}' : Le profil se coupe lui m\xEAme au point {1}", _idxProfil, j+1);
+ if (_ana!=null)
+ _ana.addWarn(MdlResource.getS("Profil '{0}' : Le profil se coupe lui m\xEAme au point {1}",
+ new MessageHelper().getProfName(_idxProfil), j+1));
return false;
}
}
@@ -107,7 +110,9 @@
if(idxPointRupturePrecedent<0||!seq.getCoordinate(idxPointRupturePrecedent).equals(seq.getCoordinate(idx2)))
nbPointsRupture++;
if (nbPointsRupture>2) {
- new MessageHelper().warn("Profil '{0}' : Le profil poss\xE8de plus de 3 segments",_idxProfil,0);
+ if (_ana != null)
+ _ana.addWarn(MdlResource.getS("Profil '{0}' : Le profil poss\xE8de plus de 3 segments",
+ new MessageHelper().getProfName(_idxProfil)));
return false;
}
if(idx2+1<idx3)
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportBiefPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportBiefPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ExportBiefPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -12,14 +12,12 @@
import javax.swing.JPanel;
-import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.fileformat.FileFormatVersionInterface;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.gui.CtuluFileChooserPanel;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
-import org.fudaa.fudaa.sig.FSigLib;
import com.memoire.bu.BuFileFilter;
import com.memoire.bu.BuLabel;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ImportBiefPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ImportBiefPanel.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/ImportBiefPanel.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -12,14 +12,12 @@
import javax.swing.JPanel;
-import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.fileformat.FileFormatVersionInterface;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.gui.CtuluFileChooserPanel;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
-import org.fudaa.fudaa.sig.FSigLib;
import com.memoire.bu.BuFileFilter;
import com.memoire.bu.BuLabel;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionAxeHydraulique.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionAxeHydraulique.java 2011-10-17 08:39:21 UTC (rev 6536)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionAxeHydraulique.java 2011-10-17 13:30:39 UTC (rev 6537)
@@ -64,7 +64,7 @@
Container body=new Container();
body.setLayout(new BuGridLayout(2, 2, 2));
// D\xE9calage curviligne
- body.add(lbDecalageCurviligne_=new BuLabel(MdlResource.getS("D\xE9calage abscisse: ")));
+ body.add(lbDecalageCurviligne_=new BuLabel(MdlResource.getS("D\xE9calage abscisse")+": "));
tfDecalageCurviligne_=new BuTextField();
tfDecalageCurviligne_.setCharValidator(BuCharValidator.DOUBLE);
tfDecalageCurviligne_.addActionListener(new ActionListener(){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-12-19 15:32:26
|
Revision: 6862
http://fudaa.svn.sourceforge.net/fudaa/?rev=6862&view=rev
Author: bmarchan
Date: 2011-12-19 15:32:16 +0000 (Mon, 19 Dec 2011)
Log Message:
-----------
clear imports
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlCasierExportAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/FusionBiefPanel.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java 2011-12-18 21:09:38 UTC (rev 6861)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCasierExporter.java 2011-12-19 15:32:16 UTC (rev 6862)
@@ -29,7 +29,6 @@
import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GISZoneCollectionMultiPoint;
-import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.mascaret.io.MascaretCasierFileFormat;
import org.fudaa.dodico.rubar.io.RubarCasierFileFormat;
import org.fudaa.dodico.rubar.io.RubarCasierWriter;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlCasierExportAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlCasierExportAction.java 2011-12-18 21:09:38 UTC (rev 6861)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/MdlCasierExportAction.java 2011-12-19 15:32:16 UTC (rev 6862)
@@ -11,7 +11,6 @@
import java.io.File;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
-import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISDataModel;
import org.fudaa.ctulu.gis.GISZoneCollection;
@@ -20,7 +19,6 @@
import org.fudaa.ebli.calque.ZModeleGeometry;
import org.fudaa.ebli.calque.ZScene;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.modeleur.MdlCasierExportPanel;
import org.fudaa.fudaa.modeleur.MdlCasierExporter;
import org.fudaa.fudaa.modeleur.MdlCasierExporterFilter;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2011-12-18 21:09:38 UTC (rev 6861)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2011-12-19 15:32:16 UTC (rev 6862)
@@ -31,7 +31,6 @@
import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrSegment;
-import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.modeleur.layer.BPaletteAbscisseCurviligne;
import org.fudaa.fudaa.modeleur.layer.ZCalqueAbscisseCurviligneInteraction;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java 2011-12-18 21:09:38 UTC (rev 6861)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java 2011-12-19 15:32:16 UTC (rev 6862)
@@ -9,7 +9,6 @@
import java.awt.event.ActionEvent;
-import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gis.GISPolyligne;
import org.fudaa.ebli.calque.ZScene;
import org.fudaa.ebli.calque.ZSelectionEvent;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/FusionBiefPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/FusionBiefPanel.java 2011-12-18 21:09:38 UTC (rev 6861)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/FusionBiefPanel.java 2011-12-19 15:32:16 UTC (rev 6862)
@@ -12,10 +12,8 @@
import javax.swing.SwingUtilities;
-import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ebli.commun.EbliFormatterInterface;
-import org.fudaa.fudaa.commun.FudaaLib;
import com.memoire.bu.BuBorderLayout;
import com.memoire.bu.BuCharValidator;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2011-12-19 21:09:21
|
Revision: 6867
http://fudaa.svn.sourceforge.net/fudaa/?rev=6867&view=rev
Author: bmarchan
Date: 2011-12-19 21:09:14 +0000 (Mon, 19 Dec 2011)
Log Message:
-----------
Fix : Divers probl?\195?\168mes sur le modeleur 1D
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefContainerAdapter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnAbscisseProfil.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -134,7 +134,7 @@
pnProfiles_=new PnGestionProfil(ctrl_,false);
// Le panneau des coordonn\xE9es du profil courant.
- viewTable_=new VueTableau(this, null, true);
+ viewTable_=new VueTableau(this, true);
viewTable_.addSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (listenEventSelection_) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/Controller1d.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -171,7 +171,7 @@
}
});
// Vue tableau
- vueTableau_=new VueTableau(this, controllerProfil_.getProfilSet().getProfil(0),true);
+ vueTableau_=new VueTableau(this, true);
vueTableau_.addSelectionListener(this);
// Vue courbe
vueCourbe_=new VueCourbe(this, controllerProfil_.getBiefContainer());
@@ -180,7 +180,7 @@
vueError_.setForeground(Color.RED);
vueError_.setHorizontalAlignment(JLabel.CENTER);
// Vue abscisse curv profil
- vueAbsProf_=new PnAbscisseProfil(this, controllerProfil_.getProfilSet().getProfil(0), formater_);
+ vueAbsProf_=new PnAbscisseProfil(this, formater_);
clearError();
}
@@ -220,7 +220,7 @@
controllerBief_.getSelectedBief().disableSynchroniser();
cmd_.redo();
if (newIdx_ != oldIdx_) {
- controllerBief_.biefContainerAdapter_.clearCacheProfils();
+ controllerBief_.biefContainerAdapter_.rebuildProfiles();
}
controllerBief_.getSelectedBief().enableSynchroniser();
controllerProfil_.getProfilSelectionModel().setSelectedProfil(newIdx_);
@@ -230,7 +230,7 @@
controllerBief_.getSelectedBief().disableSynchroniser();
cmd_.undo();
if (newIdx_ != oldIdx_) {
- controllerBief_.biefContainerAdapter_.clearCacheProfils();
+ controllerBief_.biefContainerAdapter_.rebuildProfiles();
}
controllerBief_.getSelectedBief().enableSynchroniser();
controllerProfil_.getProfilSelectionModel().setSelectedProfil(oldIdx_);
@@ -245,7 +245,7 @@
controllerBief_.getSelectedBief().disableSynchroniser();
int newIdxProfil=controllerBief_.orderProfils(oldIdxProfil, cmd);
if (newIdxProfil!=oldIdxProfil) {
- controllerBief_.biefContainerAdapter_.clearCacheProfils();
+ controllerBief_.biefContainerAdapter_.rebuildProfiles();
}
controllerBief_.getSelectedBief().enableSynchroniser();
controllerProfil_.getProfilSelectionModel().setSelectedProfil(newIdxProfil);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefContainerAdapter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefContainerAdapter.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/BiefContainerAdapter.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -7,11 +7,11 @@
*/
package org.fudaa.fudaa.modeleur.modeleur1d.model;
-import java.util.HashMap;
-
+import java.util.ArrayList;
import java.util.HashSet;
-
+import java.util.List;
import java.util.Set;
+
import org.fudaa.ctulu.CtuluCommand;
import org.fudaa.ctulu.CtuluCommandComposite;
import org.fudaa.ctulu.CtuluCommandContainer;
@@ -39,8 +39,8 @@
private Set<BiefContainerListener> biefListeners_=new HashSet<BiefContainerListener>();
/** Listeners profilSet */
private Set<ProfileSetListener> profSetListeners_=new HashSet<ProfileSetListener>();
- /** Le profil selectionn\xE9 du bief. */
- private int idxSelectedProfil_=-1;
+ /** Les profils reconstruits a chaque changement de bief. */
+ private List<ProfilContainerAdapter> profiles=new ArrayList<ProfilContainerAdapter>();
public BiefContainerAdapter(BiefSet _biefSet) {
biefSet_=_biefSet;
@@ -73,7 +73,7 @@
throw new IllegalArgumentException("Bief : "+_nomBief+" inconnu.");
if(_nomBief == null ? nomBiefSelected_ != null : !_nomBief.equals(nomBiefSelected_)) {
nomBiefSelected_=_nomBief;
- clearCacheProfils();
+ rebuildProfiles();
fireBiefSelectedChanged(_nomBief);
}
}
@@ -86,12 +86,19 @@
return biefSet_.getBief(_name);
}
-
- public void clearCacheProfils() {
- for (ProfilContainerAdapter pf : idx2Profil_.values()) {
- this.removeBiefContainerListener(pf);
+ /**
+ * Reconstruit les profils du bief.
+ */
+ public void rebuildProfiles() {
+ profiles.clear();
+ for (int i=0; i<getNbProfil(); i++) {
+ ProfilContainerAdapter pf=new ProfilContainerAdapter(this);
+ try {
+ pf.setSelectedProfil(i);
+ }
+ catch (Exception ex) {}
+ profiles.add(pf);
}
- idx2Profil_.clear();
}
public GISZoneCollectionLigneBrisee getZoneAxeHydraulique() {
@@ -171,17 +178,21 @@
public String getName() {return MdlResource.getS("Supprimer profil");}
}
CtuluCommandComposite cmdComp=new CtuluCommandComposite();
+ getBief(getSelectedBief()).disableSynchroniser();
getZoneProfils().removeGeometries(new int[]{_idxProfil}, cmdComp);
+ getBief(getSelectedBief()).enableSynchroniser();
+ rebuildProfiles();
if(_cmd!=null)
_cmd.addCmd(new RemoveProfilCtuluCommand(_idxProfil, cmdComp));
fireProfilRemoved(_idxProfil);
}
public void renameProfil(int _idxProfil, String _newName, CtuluCommandContainer _cmd) {
+ if(_newName==null) return;
+
if(_idxProfil<0||_idxProfil>=getZoneProfils().getNbGeometries())
throw new IllegalArgumentException("Erreur prog : Le profil "+_idxProfil+" n'existe pas");
- if(_newName==null||_newName.length()==0)
- throw new IllegalArgumentException(MdlResource.getS("Un nom doit \xEAtre donn\xE9"));
+
class RenameProfilCtuluCommand implements CtuluCommand, CtuluNamedCommand {
private int idxProfil_;
private String oldName_;
@@ -225,8 +236,6 @@
}
public void removeListener(ProfileSetListener _listener) {
-// if (!(_listener instanceof BiefContainerListener))
-// throw new UnsupportedOperationException("Parameter must be a BiefContainerListener");
profSetListeners_.remove(_listener);
}
@@ -266,31 +275,14 @@
for(BiefContainerListener listener: biefListeners_)
listener.profilRenamed(_idxProfil, _oldName, _newName);
}
-//
-// public int getSelectedIndex() {
-// return idxSelectedProfil_;
-// }
-//
-// /**
-// * Renseign\xE9 par le container.
-// * @param _idx
-// */
-// public void setSelectedIndex(int _idx) {
-// idxSelectedProfil_=_idx;
-// }
-
- HashMap<Integer, ProfilContainerAdapter> idx2Profil_=new HashMap<Integer, ProfilContainerAdapter>();
+ @Override
public ProfilContainerI getProfil(int _idxProfil) {
- if (idx2Profil_.get(_idxProfil)==null) {
- ProfilContainerAdapter pf=new ProfilContainerAdapter(this);
- try {
- pf.setSelectedProfil(_idxProfil);
- }
- catch (Exception ex) {}
- idx2Profil_.put(_idxProfil, pf);
- }
- return idx2Profil_.get(_idxProfil);
+ if (_idxProfil<0 || _idxProfil>=profiles.size())
+ return null;
+
+ ProfilContainerAdapter pf=profiles.get(_idxProfil);
+ return pf;
}
@Override
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -40,10 +40,13 @@
* simplement. Cette simplification se fait en cachant toutes les informations
* inutils et en ajoutant une information d'abcisse curviligne.
*
+ * Chaque instance est associ\xE9e \xE0 un index de profil sur la zone des profils
+ * et cet index n'est plus modifi\xE9 par la suite.
+ *
* @author Emmanuel MARTIN
* @version $Id$
*/
-public class ProfilContainerAdapter implements ProfilContainerI, BiefContainerListener {
+public class ProfilContainerAdapter implements ProfilContainerI {
/**
* Un command container pour le undo/redo.
@@ -165,7 +168,7 @@
public ProfilContainerAdapter(BiefContainerAdapter _biefContainer) {
biefContainer_=_biefContainer;
- biefContainer_.addBiefContainerListener(this);
+// biefContainer_.addBiefContainerListener(this);
}
public boolean isRupturePoint(int _idx) {
@@ -184,46 +187,11 @@
if(_idxProfil!=-1&&!biefContainer_.hasProfil(_idxProfil))
throw new IllegalArgumentException("Erreur prog : Profil : "+_idxProfil+" inconnu.");
if(_idxProfil!=idxProfilSelected_) {
- int oldProfilSelected=idxProfilSelected_;
idxProfilSelected_=_idxProfil;
updateData();
-// biefContainer_.setSelectedIndex(idxProfilSelected_);
-// fireProfilContainerSelectedChanged(oldProfilSelected, idxProfilSelected_);
}
}
- public void biefSelectedChanged(String _newName) {
- int oldSelectedProfil=idxProfilSelected_;
- idxProfilSelected_=-1;
- curv_=null;
- fireProfilContainerSelectedChanged(oldSelectedProfil, idxProfilSelected_);
- }
-
- public void biefSelectedRenamed(String name, String name2) {}
-
- public void profilAdded(int profil) {}
-
- public void profilRemoved(int _idxProfil) {
- if(_idxProfil==idxProfilSelected_) {
- int oldSelectedProfil=idxProfilSelected_;
- idxProfilSelected_=-1;
- curv_=null;
- fireProfilContainerSelectedChanged(oldSelectedProfil, idxProfilSelected_);
- }
- }
-
- public void profilRenamed(int profil, String name, String name2) {}
-
-// @Override
-// public void profilSelectionChanged(int _oldProfil, int _idxProfil) {
-// try {
-// setSelectedProfil(_idxProfil);
-// }
-// catch (ProfilContainerException ex) {
-// }
-// }
-
-
/**
* Met \xE0 jour les valeurs zMin et zMax.
* Si z est null, zMin et zMax sont mises \xE0 -1.
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnAbscisseProfil.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnAbscisseProfil.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnAbscisseProfil.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -36,12 +36,12 @@
protected ProfilContainerI data_;
protected EbliFormatterInterface formater_;
- public PnAbscisseProfil(Controller1d _controller1d, ProfilContainerI _data, EbliFormatterInterface _formatter){
+ public PnAbscisseProfil(Controller1d _controller1d, EbliFormatterInterface _formatter){
super(BoxLayout.X_AXIS);
controller_=_controller1d;
formater_=_formatter;
- setProfile(_data);
+ setProfile(null);
// Abscisse curviligne du profil sur l'axe hydraulique
tfAxeHydraulique_.addActionListener(new ActionListener(){
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -12,27 +12,26 @@
import java.awt.event.ActionListener;
import javax.swing.JButton;
+import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
-
-import com.memoire.bu.BuBorderLayout;
-import com.memoire.bu.BuButton;
-import com.memoire.bu.BuGridLayout;
-import com.memoire.bu.BuLabel;
-import javax.swing.JLabel;
-import javax.swing.SwingUtilities;
-import javax.swing.table.DefaultTableCellRenderer;
import org.fudaa.ctulu.table.CtuluTable;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSetControllerI;
import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfileSetI;
import org.fudaa.fudaa.modeleur.modeleur1d.model.ProfileSetListener;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
+import com.memoire.bu.BuBorderLayout;
+import com.memoire.bu.BuButton;
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+
/**
* Un panneau permettant de g\xE9rer les profils.
* @author Emmanuel MARTIN
@@ -46,8 +45,6 @@
protected JTable tableProfils_;
private TableProfilModel tbModel_;
private boolean isNameEditable_=false;
- /** Pour eviter la propagation sans fin des evenements */
- private boolean propagateEvent_=true;
public PnGestionProfil(ProfileSetControllerI _controllerProfil) {
this(_controllerProfil,true);
@@ -74,16 +71,7 @@
scrollRectToVisible(getCellRect(getSelectionModel().getMinSelectionIndex(), 0, false));
}
};
- tableProfils_.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
- @Override
- public void valueChanged(ListSelectionEvent e) {
- if (e.getValueIsAdjusting()) return;
-
- if (propagateEvent_)
- controllerProfil_.getProfilSelectionModel().setSelectedProfil(tableProfils_.getSelectedRow());
- }
- });
-// tableProfils_.setSelectionModel(controllerProfil_.getProfilSelectionModel());
+ tableProfils_.setSelectionModel(controllerProfil_.getProfilSelectionModel());
tableProfils_.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer(){
@Override
public JLabel getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
@@ -144,33 +132,24 @@
public TableProfilModel() {
super(new String[]{MdlResource.getS("Index"),MdlResource.getS("Nom")}, 0);
-// profilSet_=controllerProfil_.getProfilSet();
-// profilSet_.addListener(this);
-// setProfilSet(controllerProfil_.getProfilSet());
}
public void setProfilSet(ProfileSetI _profSet) {
if (profilSet_ == _profSet) {
return;
}
-
- propagateEvent_=false;
- try {
- tableProfils_.clearSelection();
- if (profilSet_ != null) {
- profilSet_.removeListener(this);
- }
- profilSet_ = _profSet;
- if (profilSet_ != null) {
- profilSet_.addListener(this);
- }
+ tableProfils_.clearSelection();
- fireTableDataChanged();
+ if (profilSet_ != null) {
+ profilSet_.removeListener(this);
}
- finally {
- propagateEvent_ = true;
+ profilSet_ = _profSet;
+ if (profilSet_ != null) {
+ profilSet_.addListener(this);
}
+
+ fireTableDataChanged();
}
public Class<?> getColumnClass(int columnIndex) {
@@ -202,30 +181,13 @@
if(!getValueAt(rowIndex, columnIndex).equals(value))
controllerProfil_.renameProfil(rowIndex, (String) value);
}
-//
-// public void biefSelectedChanged(String name) {
-// fireTableDataChanged();
-// }
-//
-// public void biefSelectedRenamed(String name, String name2) {
-// fireTableDataChanged();
-// }
public void profilRemoved(int profil) {
fireTableDataChanged();
}
-//
-// public void profilRenamed(int profil, String name, String name2) {
-// fireTableDataChanged();
-// }
public void profilAdded(int profil) {
fireTableDataChanged();
}
-
-// @Override
-// public void profilSelectionChanged(int _oldProfil, int _idxProfil) {
-//// fireTableDataChanged();
-// }
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-12-19 16:16:25 UTC (rev 6866)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-12-19 21:09:14 UTC (rev 6867)
@@ -63,7 +63,7 @@
protected ProfilContainerI data_;
protected EbliFormatterInterface formater_;
- public TableGeomModel(ProfilContainerI _data, EbliFormatterInterface _formater){
+ public TableGeomModel(EbliFormatterInterface _formater){
super(new String[]{MdlResource.getS("Index"), MdlResource.getS("Abs travers"), "Z"}, 0);
formater_=_formater;
// if(_data==null)
@@ -186,11 +186,11 @@
BuToolButton btRemove_;
- public VueTableau(VueProfilI _controller, ProfilContainerI _data, boolean _showButtons){
+ public VueTableau(VueProfilI _controller, boolean _showButtons){
controller_=_controller;
setLayout(new BuBorderLayout(2, 2));
// Tableau
- modelTable_=new TableGeomModel(_data, controller_.getFormater());
+ modelTable_=new TableGeomModel(controller_.getFormater());
table_=new CtuluTable(modelTable_) {
/* (non-Javadoc)
* @see javax.swing.JTable#valueChanged(javax.swing.event.ListSelectionEvent)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2012-12-14 07:21:38
|
Revision: 8128
http://fudaa.svn.sourceforge.net/fudaa/?rev=8128&view=rev
Author: deniger
Date: 2012-12-14 07:21:30 +0000 (Fri, 14 Dec 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridTriangleConfigurationAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2012-12-13 14:58:16 UTC (rev 8127)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -14,6 +14,8 @@
import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.meshviewer.layer.MvElementLayer;
import org.fudaa.fudaa.meshviewer.model.MvElementModelDefault;
+import org.fudaa.fudaa.modeleur.grid.MdlElementLayer;
+import org.fudaa.fudaa.modeleur.grid.MdlElementModel;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dMultiPoint;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import org.fudaa.fudaa.sig.layer.FSigEditor;
@@ -49,6 +51,15 @@
@Override
public void actionPerformed(ActionEvent _e) {
+ if (!CalqueGridTriangleConfigurationAction.isTriangleExeConfigured()) {
+ boolean ok = CalqueGridTriangleConfigurationAction.chooseExec();
+ if (!ok) {
+ return;
+ }
+ }
+ if (!CalqueGridTriangleConfigurationAction.isTriangleExeConfigured()) {
+ return;
+ }
stop = false;
setEnabled(false);
running = true;
@@ -66,6 +77,11 @@
public void run() {
processor = new CalqueCreateGridProcessor(layer.modeleDonnees(), editor.getUi());
final EfGridInterface grid = processor.process(createTask.getStateReceiver());
+ final MdlElementModel model = new MdlElementModel(grid);
+ int[] relations = processor.getRelations(grid, createTask.getStateReceiver());
+ model.setAltiIdxByGridPtIdx(relations);
+ model.setAltiModel(processor.getTriangleNodeAdapter());
+
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
@@ -73,7 +89,7 @@
setEnabled(true);
stopAction.setRunning(running);
if (grid != null && !stop) {
- addLayer(grid, saveUIProperties);
+ addLayer(model, saveUIProperties);
}
}
});
@@ -87,10 +103,10 @@
super.setEnabled(_newValue && !running);
}
- private void addLayer(EfGridInterface grid, EbliUIProperties saveUIProperties) {
- MvElementLayer eltLayer = getGridLayer();
+ private void addLayer(MdlElementModel grid, EbliUIProperties saveUIProperties) {
+ MdlElementLayer eltLayer = getGridLayer();
if (eltLayer == null) {
- eltLayer = new MvElementLayer();
+ eltLayer = new MdlElementLayer();
eltLayer.setTitle(MdlResource.getS("Maillage"));
eltLayer.setName("cqGrid");
eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY));
@@ -100,7 +116,7 @@
eltLayer.initFrom(saveUIProperties);
}
layer.add(eltLayer);
- eltLayer.setModele(new MvElementModelDefault(grid));
+ eltLayer.setModele(grid);
eltLayer.repaint();
((FSigEditor) layer.getEditor()).getPanel().getVueCalque().repaint(0);
((FSigEditor) layer.getEditor()).getPanel().getVueCalque().revalidate();
@@ -114,7 +130,7 @@
}
}
- public MvElementLayer getGridLayer() {
- return (MvElementLayer) layer.getCalqueParNom("cqGrid");
+ public MdlElementLayer getGridLayer() {
+ return (MdlElementLayer) layer.getCalqueParNom("cqGrid");
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java 2012-12-13 14:58:16 UTC (rev 8127)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -3,8 +3,10 @@
*/
package org.fudaa.fudaa.modeleur.action;
+import com.memoire.fu.FuEmptyArrays;
import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
@@ -12,6 +14,8 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.ProgressionUpdater;
+import org.fudaa.ctulu.gis.CtuluLibGeometrie;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.impl.EFGridArrayZ;
import org.fudaa.dodico.ef.io.triangle.TriangleEleNodeGridCreator;
@@ -28,14 +32,18 @@
*/
public class CalqueCreateGridProcessor implements CExecListener {
- private ZModeleMultiPoint points;
+ private final TriangleNodeAdapter triangleNodeAdapter;
private CtuluUI ui;
public CalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui) {
- this.points = points;
this.ui = ui;
+ triangleNodeAdapter = new TriangleNodeAdapter(points.getGeomData());
}
+ public TriangleNodeAdapter getTriangleNodeAdapter() {
+ return triangleNodeAdapter;
+ }
+
@Override
public void setProcess(Process _p) {
this.p = _p;
@@ -50,14 +58,47 @@
}
Process p;
+ /**
+ *
+ * Permet d'avoir une relation entre l'indice du neoud dans le maillage et celui dans le semis. Attention, il est suppos\xE9 que les points sont dans
+ * le m\xEAme ordre : a voir
+ *
+ * @param grid
+ * @return un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ */
+ public int[] getRelations(EfGridInterface grid, ProgressionInterface prog) {
+ if (grid == null) {
+ return FuEmptyArrays.INT0;
+ }
+ int[] res = new int[grid.getPtsNb()];
+ Arrays.fill(res, -1);
+ ProgressionUpdater updater = new ProgressionUpdater(prog);
+ int nb = Math.min(res.length, triangleNodeAdapter.getNbPoints());
+ updater.setValue(10, nb);
+ updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des indices"));
+ for (int i = 0; i < nb; i++) {
+ double x = triangleNodeAdapter.getX(i);
+ double y = triangleNodeAdapter.getY(i);
+ if (CtuluLibGeometrie.getDistance(x, y, grid.getPtX(i), grid.getPtY(i)) < 2e-3) {
+ res[i] = i;
+ }
+ updater.majAvancement();
+ }
+
+ return res;
+
+ }
+
public EfGridInterface process(ProgressionInterface prog) {
+ if (!CalqueGridTriangleConfigurationAction.isTriangleExeConfigured()) {
+ return null;
+ }
try {
stop = false;
File tmpDir = CtuluLibFile.createTempDir();
- System.err.println("tmp =" + tmpDir.getAbsolutePath());
File nodeFile = new File(tmpDir, "in.node");
TriangleNodeWriter writer = new TriangleNodeWriter();
- CtuluIOOperationSynthese write = writer.write(new TriangleNodeAdapter(points.getGeomData()), nodeFile, prog);
+ CtuluIOOperationSynthese write = writer.write(triangleNodeAdapter, nodeFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
return null;
@@ -67,7 +108,8 @@
}
CExec exe = new CExec();
exe.setExecDirectory(tmpDir);
- exe.setCommand(new String[]{"C:\\devel\\triangle\\CARRE\\triangle.exe", "in.node"});
+
+ exe.setCommand(new String[]{CalqueGridTriangleConfigurationAction.getTriangleExe(), "in.node"});
exe.setListener(this);
exe.exec();
if (stop) {
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridTriangleConfigurationAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridTriangleConfigurationAction.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridTriangleConfigurationAction.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -0,0 +1,80 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.action;
+
+import com.memoire.bu.BuResource;
+import java.awt.event.ActionEvent;
+import java.io.File;
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ctulu.gui.CtuluFileChooserPanel;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.modeleur.MdlPreferences;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class CalqueGridTriangleConfigurationAction extends EbliActionSimple {
+
+ public CalqueGridTriangleConfigurationAction() {
+ super(MdlResource.getS("Configurer l'ex\xE9cutable Triangle"), BuResource.BU.getIcon("configurer"), "CONFIGURE_TRIANGLE");
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ chooseExec();
+ }
+
+ static String getTriangleExe() {
+ return MdlPreferences.MDL.getStringProperty("grid.triangle.path");
+ }
+
+ static boolean isTriangleExeConfigured() {
+ return getTriangleExe() != null && new File(getTriangleExe()).exists();
+ }
+
+ /**
+ *
+ * @return true if the user accept the dialog
+ */
+ public static boolean chooseExec() {
+ ChooseExePanel pn = new ChooseExePanel();
+ if (pn.afficheModaleOk(null, MdlResource.getS("Configurer l'ex\xE9cutable Triangle"))) {
+ MdlPreferences.MDL.putStringProperty("grid.triangle.path", pn.getChoosenFile().getAbsolutePath());
+ return true;
+ }
+ return false;
+ }
+
+ public static class ChooseExePanel extends CtuluDialogPanel {
+
+ CtuluFileChooserPanel chooseExe;
+
+ public ChooseExePanel() {
+ super(true);
+ setHelpText(MdlResource.getS("Choisir le chemin vers l'ex\xE9cutable"));
+ chooseExe = addFileChooserPanel(this, MdlResource.getS("Chemin") + ": ", false, false);
+ add(chooseExe);
+ isDataValid();
+ }
+
+ public File getChoosenFile() {
+ return chooseExe.getFile();
+ }
+
+ @Override
+ public boolean isDataValid() {
+ File choosenFile = getChoosenFile();
+ if (choosenFile == null) {
+ setErrorText(MdlResource.getS("Le chemin vers l'ex\xE9cutable n'est pas d\xE9fini"));
+ return false;
+ } else if (!choosenFile.exists()) {
+ setErrorText(MdlResource.getS("Le chemin vers l'ex\xE9cutable n'existe pas: {0}", choosenFile.getAbsolutePath()));
+ return false;
+ }
+ return super.isDataValid();
+ }
+ }
+}
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -0,0 +1,13 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import org.fudaa.fudaa.meshviewer.layer.MvElementLayer;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class MdlElementLayer extends MvElementLayer {
+}
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -0,0 +1,29 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.dodico.ef.io.triangle.TriangleNodeAdapter;
+import org.fudaa.fudaa.meshviewer.model.MvElementModelDefault;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class MdlElementModel extends MvElementModelDefault {
+
+ public MdlElementModel(EfGridInterface _g) {
+ super(_g);
+ }
+ int[] altiIdxByGridPtIdx;
+
+ public void setAltiIdxByGridPtIdx(int[] relations) {
+ this.altiIdxByGridPtIdx = relations;
+ }
+ private TriangleNodeAdapter triangleNodeAdapter;
+
+ public void setAltiModel(TriangleNodeAdapter triangleNodeAdapter) {
+ this.triangleNodeAdapter = triangleNodeAdapter;
+ }
+}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2012-12-13 14:58:16 UTC (rev 8127)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2012-12-14 07:21:30 UTC (rev 8128)
@@ -16,6 +16,7 @@
import org.fudaa.ebli.trace.TraceIcon;
import org.fudaa.ebli.trace.TraceIconModel;
import org.fudaa.fudaa.modeleur.action.CalqueCreateGridAction;
+import org.fudaa.fudaa.modeleur.action.CalqueGridTriangleConfigurationAction;
import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dCloudPersistence;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import org.fudaa.fudaa.sig.layer.FSigEditor;
@@ -43,7 +44,7 @@
setTitle(MdlResource.getS("Semis de points"));
setAttributForLabels(GISAttributeConstants.LABEL);
final CalqueCreateGridAction createGridAction = new CalqueCreateGridAction(this);
- setActions(new EbliActionInterface[]{createGridAction, createGridAction.getStopAction()});
+ setActions(new EbliActionInterface[]{createGridAction, createGridAction.getStopAction(),null,new CalqueGridTriangleConfigurationAction()});
}
public MdlLayer2dCloud(FSigEditor _editor) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt 2012-12-13 14:58:16 UTC (rev 8127)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt 2012-12-14 07:21:30 UTC (rev 8128)
@@ -2,4 +2,9 @@
Mailler=Perform grid computing
Impossible de cr\xE9er un dossier temporaire=A temporary directory can't be created
Ex\xE9cution du mailleur=Extern grid processing
-Stopper le maillage=Stop grid processing
\ No newline at end of file
+Stopper le maillage=Stop grid processing
+Chemin=Path
+Le chemin vers l'ex\xE9cutable n'est pas d\xE9fini=The executable path is not defined
+Le chemin vers l'ex\xE9cutable n'existe pas\: {0}=The executable path doesn't exist\: {0}
+Choisir le chemin vers l'ex\xE9cutable=Choose the executable path
+Synchronisation des indices=Index mapping
\ 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...> - 2012-12-15 00:34:24
|
Revision: 8140
http://fudaa.svn.sourceforge.net/fudaa/?rev=8140&view=rev
Author: deniger
Date: 2012-12-15 00:34:16 +0000 (Sat, 15 Dec 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2012-12-14 18:10:54 UTC (rev 8139)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -3,26 +3,24 @@
*/
package org.fudaa.fudaa.modeleur.action;
+import com.vividsolutions.jts.geom.LinearRing;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.List;
-import javax.swing.JComboBox;
import org.fudaa.ctulu.CtuluRange;
import org.fudaa.ctulu.CtuluTaskDelegate;
-import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.commun.EbliActionSimple;
import org.fudaa.ebli.palette.BPalettePlage;
import org.fudaa.ebli.palette.BPalettePlageInterface;
import org.fudaa.fudaa.modeleur.MdlVisuPanel;
+import org.fudaa.fudaa.modeleur.grid.GridContourConvexHullPanel;
import org.fudaa.fudaa.modeleur.grid.MdlElementModel;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dContour;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dMultiPoint;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import org.fudaa.fudaa.sig.layer.FSigEditor;
-import org.fudaa.fudaa.sig.wizard.FSigWizardImportHelper;
-import org.fudaa.fudaa.sig.wizard.FSigWizardImportHelper.CalqueCellRender;
/**
*
@@ -71,33 +69,34 @@
MdlVisuPanel visuPanel = (MdlVisuPanel) editor.getPanel();
List<BCalque> calquesContours = visuPanel.getCalquesContours();
BCalque contourLayer = null;
+ LinearRing convexHull = null;
if (!calquesContours.isEmpty()) {
- calquesContours.add(0, null);
- BCalque[] bCalques = (BCalque[]) calquesContours.toArray(new BCalque[calquesContours.size()]);
- JComboBox cb = new JComboBox(bCalques);
- final CalqueCellRender calqueCellRender = new FSigWizardImportHelper.CalqueCellRender();
- calqueCellRender.setNullValue(MdlResource.getS("Aucun"));
- cb.setRenderer(calqueCellRender);
- CtuluDialogPanel pn = new CtuluDialogPanel(false);
- pn.setHelpText(MdlResource.getS("Choisir le calque qui d\xE9terminera le contour et les trous du maillage"));
- pn.add(cb);
- boolean ok = pn.afficheModaleOk(editor.getUi().getParentComponent(), MdlResource.getS("Selectionner le calque de contour"));
+ GridContourConvexHullPanel panel = new GridContourConvexHullPanel(visuPanel);
+ boolean ok = panel.afficheModaleOk(editor.getUi().getParentComponent(), MdlResource.getS("Selectionner le calque de contour"));
if (!ok) {
return;
}
- contourLayer = (BCalque) cb.getSelectedItem();
+ contourLayer = panel.getSelectedLayer();
+ convexHull = panel.getSelectedConvexHull();
}
- final MdlLayer2dContour contour = (MdlLayer2dContour) contourLayer;
+ final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) contourLayer;
+ final LinearRing finalConvexHull = convexHull;
final CtuluTaskDelegate createTask = editor.getUi().createTask(getTitle());
createTask.start(new Runnable() {
@Override
public void run() {
- processor = new CalqueCreateGridProcessor(layer.modeleDonnees(), editor.getUi(), contour);
+ processor = new CalqueCreateGridProcessor(layer.modeleDonnees(), editor.getUi(), finalContourLayer,finalConvexHull);
+ //on lit le maillage
final EfGridInterface grid = processor.process(createTask.getStateReceiver());
final MdlElementModel model = new MdlElementModel(grid);
- int[] relations = processor.getRelations(grid, createTask.getStateReceiver());
- model.setAltiIdxByGridPtIdx(relations);
- model.setAltiModel(processor.getTriangleNodeAdapter());
+ //si non null, on fait des calculs suppl\xE9mentaires:
+ if (grid != null) {
+ CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getTriangleNodeAdapter());
+ //recherche des relations entre les noeuds du maillage et le semis actuel:
+ int[] relations = synchProcess.getRelations(grid, createTask.getStateReceiver());
+ model.setAltiIdxByGridPtIdx(relations);
+ model.setAltiModel(processor.getTriangleNodeAdapter());
+ }
EventQueue.invokeLater(new Runnable() {
@Override
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java 2012-12-14 18:10:54 UTC (rev 8139)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -3,7 +3,6 @@
*/
package org.fudaa.fudaa.modeleur.action;
-import com.memoire.fu.FuEmptyArrays;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LinearRing;
import java.io.File;
@@ -17,8 +16,6 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
-import org.fudaa.ctulu.ProgressionUpdater;
-import org.fudaa.ctulu.gis.CtuluLibGeometrie;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISVisitorGeometryCollector;
import org.fudaa.dodico.ef.EfGridInterface;
@@ -41,11 +38,13 @@
public class CalqueCreateGridProcessor implements CExecListener {
private final TriangleNodeAdapter triangleNodeAdapter;
- private CtuluUI ui;
- MdlLayer2dContour contour;
+ private final CtuluUI ui;
+ private final MdlLayer2dContour contour;
+ private final LinearRing convexHull;
- public CalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui, MdlLayer2dContour contour) {
+ public CalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui, MdlLayer2dContour contour, LinearRing convexHull) {
this.ui = ui;
+ this.convexHull = convexHull;
this.contour = contour;
triangleNodeAdapter = new TriangleNodeAdapter(points.getGeomData());
}
@@ -68,37 +67,6 @@
}
Process p;
- /**
- *
- * Permet d'avoir une relation entre l'indice du neoud dans le maillage et celui dans le semis. Attention, il est suppos\xE9 que les points sont dans
- * le m\xEAme ordre : a voir
- *
- * @param grid
- * @return un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
- */
- public int[] getRelations(EfGridInterface grid, ProgressionInterface prog) {
- if (grid == null) {
- return FuEmptyArrays.INT0;
- }
- int[] res = new int[grid.getPtsNb()];
- Arrays.fill(res, -1);
- ProgressionUpdater updater = new ProgressionUpdater(prog);
- int nb = Math.min(res.length, triangleNodeAdapter.getNbPoints());
- updater.setValue(10, nb);
- updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des indices"));
- for (int i = 0; i < nb; i++) {
- double x = triangleNodeAdapter.getX(i);
- double y = triangleNodeAdapter.getY(i);
- if (CtuluLibGeometrie.getDistance(x, y, grid.getPtX(i), grid.getPtY(i)) < 2e-3) {
- res[i] = i;
- }
- updater.majAvancement();
- }
-
- return res;
-
- }
-
public EfGridInterface process(ProgressionInterface prog) {
if (!CalqueGridTriangleConfigurationAction.isTriangleExeConfigured()) {
return null;
@@ -107,6 +75,8 @@
stop = false;
File tmpDir = CtuluLibFile.createTempDir();
String fileName = null;
+ CExec exe = new CExec();
+ exe.setExecDirectory(tmpDir);
if (contour == null || contour.modeleDonnees().getNbPolygone() == 0) {
fileName = "in.node";
File nodeFile = new File(tmpDir, fileName);
@@ -116,6 +86,7 @@
ui.manageErrorOperationAndIsFatal(write);
return null;
}
+ exe.setCommand(new String[]{CalqueGridTriangleConfigurationAction.getTriangleExe(), fileName});
} else {
fileName = "in.poly";
TrianglePolyDataNodeDefault data = createPolyData();
@@ -126,15 +97,19 @@
ui.manageErrorOperationAndIsFatal(write);
return null;
}
-
+ //https://www.cs.cmu.edu/~quake/triangle.switch.html
+ String options = "-D";
+ if (convexHull == null) {
+ options = "-cD";
+ }
+ exe.setCommand(new String[]{CalqueGridTriangleConfigurationAction.getTriangleExe(), options, fileName});
}
if (prog != null) {
prog.setDesc(MdlResource.getS("Ex\xE9cution du mailleur"));
}
- CExec exe = new CExec();
- exe.setExecDirectory(tmpDir);
- exe.setCommand(new String[]{CalqueGridTriangleConfigurationAction.getTriangleExe(), fileName});
+
+
exe.setListener(this);
exe.exec();
if (stop) {
@@ -169,6 +144,13 @@
LinearRing[] linearRings = (LinearRing[]) geometries.toArray(new LinearRing[geometries.size()]);
boolean[] holes = new boolean[linearRings.length];
Arrays.fill(holes, true);
+ if (convexHull != null) {
+ for (int i = 0; i < holes.length; i++) {
+ if (linearRings[i] == convexHull) {//test voulu.
+ holes[i] = false;
+ }
+ }
+ }
TrianglePolyDataNodeDefault data = new TrianglePolyDataNodeDefault();
data.setNodeData(triangleNodeAdapter);
data.setHoles(holes);
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridSemisSynchronizeProcess.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueGridSemisSynchronizeProcess.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -0,0 +1,91 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.action;
+
+import com.memoire.fu.FuEmptyArrays;
+import com.vividsolutions.jts.geom.Coordinate;
+import java.util.Arrays;
+import java.util.TreeMap;
+import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.ProgressionUpdater;
+import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
+import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
+import org.fudaa.dodico.ef.EfElement;
+import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ * Permet d'avoir une relation entre l'indice du neoud dans le maillage et celui dans le semis
+ *
+ * @author Frederic Deniger
+ */
+public class CalqueGridSemisSynchronizeProcess {
+
+ private final GisZoneCollectionAsListPointAdapter zone;
+ double eps = 1e-3;
+
+ public CalqueGridSemisSynchronizeProcess(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
+ this.zone = triangleNodeAdapter;
+ }
+
+ /**
+ *
+ *
+ * @param grid
+ * @return un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ */
+ public int[] getRelations(EfGridInterface grid, ProgressionInterface prog) {
+ if (grid == null) {
+ return FuEmptyArrays.INT0;
+ }
+ int[] res = new int[grid.getPtsNb()];
+ Arrays.fill(res, -1);
+ ProgressionUpdater updater = new ProgressionUpdater(prog);
+ TreeMap<Coordinate, Integer> index = new TreeMap<Coordinate, Integer>(new CoordinateComparator(eps));
+ updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des indices"));
+ updater.setValue(10, zone.getNbPoints());
+ for (int i = 0; i < zone.getNbPoints(); i++) {
+ index.put(new Coordinate(zone.getX(i), zone.getY(i)), i);
+ updater.majAvancement();
+ }
+ updater.setValue(10, grid.getPtsNb());
+ boolean rescanElt = false;
+ for (int i = 0; i < grid.getPtsNb(); i++) {
+ Coordinate gridCoor = new Coordinate(grid.getPtX(i), grid.getPtY(i));
+ Integer idx = index.get(gridCoor);
+ if (idx != null) {
+ res[i] = idx;
+ } else {
+ rescanElt = true;
+ }
+ updater.majAvancement();
+ }
+ //on va affecter a des points, les m\xEAme r\xE9sultats que ceux de l'\xE9l\xE9ments.
+ if (rescanElt) {
+ for (int idxElt = 0; idxElt < grid.getEltNb(); idxElt++) {
+ EfElement elt = grid.getElement(idxElt);
+ int idxFound = -1;
+ for (int idxPt = 0; idxPt < elt.getPtNb(); idxPt++) {
+ int ptIndex = elt.getPtIndex(idxPt);
+ if (res[ptIndex] >= 0) {
+ idxFound = res[ptIndex];
+ break;
+ }
+ }
+ if (idxFound >= 0) {
+ for (int idxPt = 0; idxPt < elt.getPtNb(); idxPt++) {
+ int ptIndex = elt.getPtIndex(idxPt);
+ if (res[ptIndex] < 0) {
+ res[ptIndex] = idxFound;
+
+ }
+ }
+ }
+ }
+ }
+
+ return res;
+
+ }
+}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java 2012-12-14 18:10:54 UTC (rev 8139)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -39,14 +39,14 @@
public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException {
double[] bathy = new double[getGrid().getPtsNb()];
for (int i = 0; i < bathy.length; i++) {
- bathy[i] = model.getTriangleNodeAdapter().getValue(i, bathyIdx);
+ bathy[i] = model.getValueFromGrid(bathyIdx, i);
}
return new EfDataNode(bathy);
}
@Override
public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException {
- return model.getTriangleNodeAdapter().getValue(_idxObjet, bathyIdx);
+ return model.getValueFromGrid(bathyIdx, _idxObjet);
}
@Override
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -0,0 +1,139 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import com.memoire.bu.BuGridLayout;
+import com.memoire.bu.BuLabel;
+import com.vividsolutions.jts.geom.LinearRing;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.List;
+import javax.swing.AbstractListModel;
+import javax.swing.ComboBoxModel;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import org.apache.commons.lang.StringUtils;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
+import org.fudaa.ctulu.gis.GISAttributeModel;
+import org.fudaa.ctulu.gui.CtuluCellTextRenderer;
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ebli.calque.BCalque;
+import org.fudaa.fudaa.modeleur.MdlVisuPanel;
+import org.fudaa.fudaa.modeleur.layer.MdlLayer2dContour;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+import org.fudaa.fudaa.sig.wizard.FSigWizardImportHelper;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class GridContourConvexHullPanel extends CtuluDialogPanel {
+
+ JComboBox cbLayer;
+ JComboBox cbConvexHull;
+
+ public GridContourConvexHullPanel(MdlVisuPanel visuPanel) {
+ super(false);
+ setHelpText(MdlResource.getS("Choisir le calque qui d\xE9terminera le contour et les trous du maillage"));
+ setLayout(new BuGridLayout(2));
+ BuLabel addLabel = addLabel(MdlResource.getS("Calque contour"));
+ addLabel.setToolTipText(MdlResource.getS("Les polygones du calque formeront l'enveloppe et les trous du maillage"));
+ List<BCalque> calquesContours = visuPanel.getCalquesContours();
+ calquesContours.add(0, null);
+ BCalque[] bCalques = (BCalque[]) calquesContours.toArray(new BCalque[calquesContours.size()]);
+ cbLayer = new JComboBox(bCalques);
+ final FSigWizardImportHelper.CalqueCellRender calqueCellRender = new FSigWizardImportHelper.CalqueCellRender();
+ calqueCellRender.setNullValue(MdlResource.getS("Aucun"));
+ cbLayer.setRenderer(calqueCellRender);
+ add(cbLayer);
+ BuLabel labelEnveloppe = addLabel(MdlResource.getS("L'enveloppe"));
+ labelEnveloppe.setToolTipText("<html>" + MdlResource.getS("Choisir le polygone formant l'enveloppe du maillage") + "<br>" + MdlResource.getS("Si aucun, l'enveloppe convexe du semis de point sera utilis\xE9"));
+ cbConvexHull = new JComboBox();
+ cbConvexHull.setRenderer(new LinearRingCellRenderer());
+ add(cbConvexHull);
+ cbLayer.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ updateConvexHullCb();
+ }
+ });
+ }
+
+ private class LinearRingCellRenderer extends CtuluCellTextRenderer {
+
+ @Override
+ protected void setValue(Object _value) {
+ if (_value == null) {
+ super.setValue(MdlResource.getS("Aucun"));
+ } else {
+ int idx = cbConvexHull.getSelectedIndex() - 1;
+ if (idx >= 0) {
+ int att = getSelectedLayer().modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.LABEL);
+ GISAttributeModel dataModel = getSelectedLayer().modeleDonnees().getGeomData().getDataModel(att);
+ String title = (String) dataModel.getObjectValueAt(idx);
+ if (StringUtils.isEmpty(title)) {
+ title = MdlResource.getS("Ligne ferm\xE9e {0}", Integer.toString(idx + 1));
+ }
+ super.setValue(title);
+ }
+ super.setValue(_value);
+ }
+ }
+ }
+
+ private static class LinearRingComboBoxModel extends AbstractListModel implements ComboBoxModel {
+
+ private final MdlLayer2dContour selectedLayer;
+ Object selected_;
+
+ public LinearRingComboBoxModel(MdlLayer2dContour selectedLayer) {
+ this.selectedLayer = selectedLayer;
+ }
+
+ @Override
+ public int getSize() {
+ return selectedLayer.modeleDonnees().getNombre() + 1;
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ if (index == 0) {
+ return null;
+ }
+ return selectedLayer.modeleDonnees().getGeometries().getGeometry(index - 1);
+ }
+
+ @Override
+ public Object getSelectedItem() {
+ return selected_;
+ }
+
+ @Override
+ public void setSelectedItem(final Object _anItem) {
+ if (_anItem != selected_) {
+ selected_ = _anItem;
+ fireContentsChanged(this, -1, -1);
+ }
+ }
+ }
+
+ protected void updateConvexHullCb() {
+ MdlLayer2dContour selectedLayer = getSelectedLayer();
+ if (selectedLayer == null) {
+ cbConvexHull.setModel(new DefaultComboBoxModel());
+ } else {
+ cbConvexHull.setModel(new LinearRingComboBoxModel(selectedLayer));
+ cbConvexHull.setSelectedIndex(0);
+ }
+
+ }
+
+ public MdlLayer2dContour getSelectedLayer() {
+ return (MdlLayer2dContour) cbLayer.getSelectedItem();
+ }
+
+ public LinearRing getSelectedConvexHull() {
+ return (LinearRing) cbConvexHull.getSelectedItem();
+ }
+}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2012-12-14 18:10:54 UTC (rev 8139)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2012-12-15 00:34:16 UTC (rev 8140)
@@ -5,7 +5,6 @@
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.dodico.ef.EfGridInterface;
-import org.fudaa.dodico.ef.io.triangle.TriangleNodeAdapter;
import org.fudaa.fudaa.meshviewer.model.MvElementModelDefault;
/**
@@ -30,6 +29,18 @@
this.altiIdxByGridPtIdx = relations;
}
+ public int getAltiIdx(int ptIdxInGrid) {
+ return altiIdxByGridPtIdx[ptIdxInGrid];
+ }
+
+ public double getValueFromGrid(int idxAttribute, int ptIdxInGrid) {
+ int altiIdx = getAltiIdx(ptIdxInGrid);
+ if (altiIdx < 0) {
+ return 0;
+ }
+ return triangleNodeAdapter.getValue(altiIdx, idxAttribute);
+ }
+
public void setAltiModel(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
this.triangleNodeAdapter = triangleNodeAdapter;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt 2012-12-14 18:10:54 UTC (rev 8139)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt 2012-12-15 00:34:16 UTC (rev 8140)
@@ -16,4 +16,8 @@
Permet de modifier la palette de couleur et de n'utiliser qu'une seule couleur=To be used to change the color palette and to use only one color
Choisir le calque qui d\xE9terminera le contour et les trous du maillage=Choose the layer that will be used to set the hull and the holes
Aucun=None
-Le maillage a \xE9chou\xE9=The grid process failed
\ No newline at end of file
+Le maillage a \xE9chou\xE9=The grid process failed
+Ligne ferm\xE9e {0}=Closed line {0}
+L'enveloppe=Convex Hull
+Calque contour=Layer Hull
+Les polygones du calque formeront l'enveloppe et les trous du maillage=The linear rings of the layer will be used as the convex hull and holes
\ 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...> - 2012-12-15 00:50:57
|
Revision: 8143
http://fudaa.svn.sourceforge.net/fudaa/?rev=8143&view=rev
Author: deniger
Date: 2012-12-15 00:50:50 +0000 (Sat, 15 Dec 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LinearRingComboBoxModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditableConfigure.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridData.java
Removed Paths:
-------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridDelegate.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlIsoLayerConfigure.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridAction.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridAction.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -14,9 +14,9 @@
*/
public class ExportGridAction extends EbliActionSimple {
- private final LayerGridDelegate delegate;
+ private final LayerGridController delegate;
- public ExportGridAction(LayerGridDelegate delegate) {
+ public ExportGridAction(LayerGridController delegate) {
super(MdlResource.getS("Exporter le maillage"), BuResource.BU.getIcon("exporter"), "EXPORT_GRID");
this.delegate = delegate;
}
Deleted: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -1,56 +0,0 @@
-/*
- GPL 2
- */
-package org.fudaa.fudaa.modeleur.grid;
-
-import java.io.IOException;
-import org.fudaa.ctulu.CtuluVariable;
-import org.fudaa.dodico.ef.EfData;
-import org.fudaa.dodico.ef.EfDataNode;
-import org.fudaa.dodico.ef.EfGridData;
-import org.fudaa.dodico.ef.EfGridInterface;
-import org.fudaa.dodico.h2d.type.H2dVariableType;
-
-/**
- *
- * @author Frederic Deniger
- */
-public class ExportGridData implements EfGridData {
-
- private final MdlElementModel model;
- private final int bathyIdx;
-
- public ExportGridData(MdlElementModel model, int bathyIdx) {
- this.model = model;
- this.bathyIdx = bathyIdx;
- }
-
- @Override
- public boolean isElementVar(CtuluVariable _idxVar) {
- return false;
- }
-
- @Override
- public boolean isDefined(CtuluVariable _var) {
- return H2dVariableType.BATHYMETRIE.equals(_var);
- }
-
- @Override
- public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException {
- double[] bathy = new double[getGrid().getPtsNb()];
- for (int i = 0; i < bathy.length; i++) {
- bathy[i] = model.getValueFromGrid(bathyIdx, i);
- }
- return new EfDataNode(bathy);
- }
-
- @Override
- public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException {
- return model.getValueFromGrid(bathyIdx, _idxObjet);
- }
-
- @Override
- public EfGridInterface getGrid() {
- return model.getGrid();
- }
-}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridContourConvexHullPanel.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -6,6 +6,7 @@
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuLabel;
import com.vividsolutions.jts.geom.LinearRing;
+import java.awt.Component;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.List;
@@ -13,6 +14,7 @@
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
+import javax.swing.JList;
import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISAttributeModel;
@@ -63,61 +65,32 @@
private class LinearRingCellRenderer extends CtuluCellTextRenderer {
@Override
- protected void setValue(Object _value) {
+ public Component getListCellRendererComponent(JList _list, Object _value, int _index, boolean _isSelected, boolean _cellHasFocus) {
+ return super.getListCellRendererComponent(_list, getValue(_value, _index), _index, _isSelected, _cellHasFocus);
+ }
+
+ protected String getValue(Object _value, int selectedIdx) {
if (_value == null) {
- super.setValue(MdlResource.getS("Aucun"));
+ return MdlResource.getS("Aucun");
} else {
- int idx = cbConvexHull.getSelectedIndex() - 1;
+ int idx = selectedIdx - 1;
+ if (selectedIdx < 0) {
+ idx = cbConvexHull.getSelectedIndex() - 1;
+ }
if (idx >= 0) {
- int att = getSelectedLayer().modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.LABEL);
+ int att = getSelectedLayer().modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.TITRE);
GISAttributeModel dataModel = getSelectedLayer().modeleDonnees().getGeomData().getDataModel(att);
String title = (String) dataModel.getObjectValueAt(idx);
if (StringUtils.isEmpty(title)) {
title = MdlResource.getS("Ligne ferm\xE9e {0}", Integer.toString(idx + 1));
}
- super.setValue(title);
+ return title;
}
- super.setValue(_value);
}
+ return _value.toString();
}
}
- private static class LinearRingComboBoxModel extends AbstractListModel implements ComboBoxModel {
-
- private final MdlLayer2dContour selectedLayer;
- Object selected_;
-
- public LinearRingComboBoxModel(MdlLayer2dContour selectedLayer) {
- this.selectedLayer = selectedLayer;
- }
-
- @Override
- public int getSize() {
- return selectedLayer.modeleDonnees().getNombre() + 1;
- }
-
- @Override
- public Object getElementAt(int index) {
- if (index == 0) {
- return null;
- }
- return selectedLayer.modeleDonnees().getGeometries().getGeometry(index - 1);
- }
-
- @Override
- public Object getSelectedItem() {
- return selected_;
- }
-
- @Override
- public void setSelectedItem(final Object _anItem) {
- if (_anItem != selected_) {
- selected_ = _anItem;
- fireContentsChanged(this, -1, -1);
- }
- }
- }
-
protected void updateConvexHullCb() {
MdlLayer2dContour selectedLayer = getSelectedLayer();
if (selectedLayer == null) {
Copied: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java (from rev 8135, trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridDelegate.java)
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -0,0 +1,125 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import com.vividsolutions.jts.geom.Geometry;
+import java.awt.Color;
+import java.awt.Graphics2D;
+import org.fudaa.ctulu.gis.GISAttributeInterface;
+import org.fudaa.dodico.h2d.type.H2dVariableType;
+import org.fudaa.ebli.calque.ZModelGeometryListener;
+import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
+import org.fudaa.ebli.commun.EbliActionInterface;
+import org.fudaa.ebli.geometrie.GrBoite;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.trace.TraceLigne;
+import org.fudaa.ebli.trace.TraceLigneModel;
+import org.fudaa.fudaa.meshviewer.layer.MvIsoLayerQuickPainter;
+import org.fudaa.fudaa.meshviewer.layer.MvIsoModelDefault;
+import org.fudaa.fudaa.modeleur.LibUtils;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+import org.fudaa.fudaa.sig.layer.FSigEditor;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class LayerGridController implements ZModelGeometryListener {
+
+ private final MdlCalqueMultiPointEditable parentLayer;
+ private MdlElementModel grid;
+ MvIsoModelDefault isoModel;
+ MdlGridData gridData;
+ MvIsoLayerQuickPainter painter;
+
+ public LayerGridController(MdlCalqueMultiPointEditable parentLayer) {
+ this.parentLayer = parentLayer;
+ parentLayer.modeleDonnees().addModelListener(this);
+ }
+
+ @Override
+ public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action) {
+ if (grid != null) {
+ grid = null;
+ parentLayer.remove(getGridLayer());
+ }
+ }
+
+ public void paintDonnees(int width, int height, final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, final GrBoite _clipReel) {
+ if (gridData == null || parentLayer.getPaletteCouleur() == null) {
+ return;
+ }
+ if (!parentLayer.isTraceIsoLine() && !parentLayer.isTraceIsoSurface()) {
+ return;
+ }
+ if (isoModel == null) {
+ isoModel = new MvIsoModelDefault(gridData);
+ isoModel.setVar(H2dVariableType.BATHYMETRIE);
+ }
+ if (painter == null) {
+ painter = new MvIsoLayerQuickPainter(isoModel);
+ }
+ painter.setModel(isoModel);
+ painter.setTraceIsoLine(parentLayer.isTraceIsoLine());
+ painter.setPaletteCouleur(parentLayer.getPaletteCouleur());
+ //TODO a continuer
+ painter.setIsAntaliasing(parentLayer.isAntialiasing());
+ painter.setAlpha(parentLayer.getAlpha());
+ painter.setLigneModel(parentLayer.getLineModel(0));
+ painter.paintDonnees(width, height, _g, _versEcran, _versReel, _clipReel);
+
+ }
+
+ @Override
+ public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
+ }
+
+ @Override
+ public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
+ }
+
+ public MdlElementLayer getGridLayer() {
+ return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
+ }
+
+ public ZCalqueMultiPointEditable getParentLayer() {
+ return parentLayer;
+ }
+
+ public MdlGridData createExportGridData() {
+ return gridData;
+ }
+
+ public void setGridLayer(MdlElementModel grid) {
+ this.grid = grid;
+ gridData = null;
+ isoModel = null;
+ MdlElementLayer eltLayer = getGridLayer();
+ if (grid == null) {
+ if (eltLayer != null) {
+ parentLayer.remove(eltLayer);
+ }
+ } else {
+ installGridLayer(eltLayer, grid);
+ }
+ ((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
+ ((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
+ }
+
+ public void installGridLayer(MdlElementLayer eltLayer, MdlElementModel grid) {
+ if (eltLayer == null) {
+ eltLayer = new MdlElementLayer();
+ eltLayer.setTitle(MdlResource.getS("Maillage"));
+ eltLayer.setName("cqGrid");
+ eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY));
+ eltLayer.setAlpha(128);
+ parentLayer.add(eltLayer);
+ }
+ final int attributeZ = LibUtils.getAttributeZPosition(parentLayer.modeleDonnees().getGeomData());
+ gridData = new MdlGridData(grid, attributeZ);
+ eltLayer.setActions(new EbliActionInterface[]{new ExportGridAction(this)});
+ eltLayer.setModele(grid);
+ eltLayer.repaint();
+ }
+}
Deleted: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridDelegate.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridDelegate.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridDelegate.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -1,125 +0,0 @@
-/*
- GPL 2
- */
-package org.fudaa.fudaa.modeleur.grid;
-
-import com.vividsolutions.jts.geom.Geometry;
-import java.awt.Color;
-import java.awt.Graphics2D;
-import org.fudaa.ctulu.gis.GISAttributeInterface;
-import org.fudaa.dodico.h2d.type.H2dVariableType;
-import org.fudaa.ebli.calque.ZModelGeometryListener;
-import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
-import org.fudaa.ebli.commun.EbliActionInterface;
-import org.fudaa.ebli.geometrie.GrBoite;
-import org.fudaa.ebli.geometrie.GrMorphisme;
-import org.fudaa.ebli.trace.TraceLigne;
-import org.fudaa.ebli.trace.TraceLigneModel;
-import org.fudaa.fudaa.meshviewer.layer.MvIsoLayerQuickPainter;
-import org.fudaa.fudaa.meshviewer.layer.MvIsoModelDefault;
-import org.fudaa.fudaa.modeleur.LibUtils;
-import org.fudaa.fudaa.modeleur.resource.MdlResource;
-import org.fudaa.fudaa.sig.layer.FSigEditor;
-
-/**
- *
- * @author Frederic Deniger
- */
-public class LayerGridDelegate implements ZModelGeometryListener {
-
- private final MdlCalqueMultiPointEditable parentLayer;
- private MdlElementModel grid;
- MvIsoModelDefault isoModel;
- ExportGridData gridData;
- MvIsoLayerQuickPainter painter;
-
- public LayerGridDelegate(MdlCalqueMultiPointEditable parentLayer) {
- this.parentLayer = parentLayer;
- parentLayer.modeleDonnees().addModelListener(this);
- }
-
- @Override
- public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action) {
- if (grid != null) {
- grid = null;
- parentLayer.remove(getGridLayer());
- }
- }
-
- public void paintDonnees(int width, int height, final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, final GrBoite _clipReel) {
- if (gridData == null || parentLayer.getPaletteCouleur() == null) {
- return;
- }
- if (!parentLayer.isTraceIsoLine() && !parentLayer.isTraceIsoSurface()) {
- return;
- }
- if (isoModel == null) {
- isoModel = new MvIsoModelDefault(gridData);
- isoModel.setVar(H2dVariableType.BATHYMETRIE);
- }
- if (painter == null) {
- painter = new MvIsoLayerQuickPainter(isoModel);
- }
- painter.setModel(isoModel);
- painter.setTraceIsoLine(parentLayer.isTraceIsoLine());
- painter.setPaletteCouleur(parentLayer.getPaletteCouleur());
- //TODO a continuer
- painter.setIsAntaliasing(parentLayer.isAntialiasing());
- painter.setAlpha(parentLayer.getAlpha());
- painter.setLigneModel(parentLayer.getLineModel(0));
- painter.paintDonnees(width, height, _g, _versEcran, _versReel, _clipReel);
-
- }
-
- @Override
- public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
- }
-
- @Override
- public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
- }
-
- public MdlElementLayer getGridLayer() {
- return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
- }
-
- public ZCalqueMultiPointEditable getParentLayer() {
- return parentLayer;
- }
-
- public ExportGridData createExportGridData() {
- return gridData;
- }
-
- public void setGridLayer(MdlElementModel grid) {
- this.grid = grid;
- gridData = null;
- isoModel = null;
- MdlElementLayer eltLayer = getGridLayer();
- if (grid == null) {
- if (eltLayer != null) {
- parentLayer.remove(eltLayer);
- }
- } else {
- installGridLayer(eltLayer, grid);
- }
- ((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
- ((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
- }
-
- public void installGridLayer(MdlElementLayer eltLayer, MdlElementModel grid) {
- if (eltLayer == null) {
- eltLayer = new MdlElementLayer();
- eltLayer.setTitle(MdlResource.getS("Maillage"));
- eltLayer.setName("cqGrid");
- eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY));
- eltLayer.setAlpha(128);
- parentLayer.add(eltLayer);
- }
- final int attributeZ = LibUtils.getAttributeZPosition(parentLayer.modeleDonnees().getGeomData());
- gridData = new ExportGridData(grid, attributeZ);
- eltLayer.setActions(new EbliActionInterface[]{new ExportGridAction(this)});
- eltLayer.setModele(grid);
- eltLayer.repaint();
- }
-}
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LinearRingComboBoxModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LinearRingComboBoxModel.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LinearRingComboBoxModel.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -0,0 +1,48 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import javax.swing.AbstractListModel;
+import javax.swing.ComboBoxModel;
+import org.fudaa.fudaa.modeleur.layer.MdlLayer2dContour;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class LinearRingComboBoxModel extends AbstractListModel implements ComboBoxModel {
+ private final MdlLayer2dContour selectedLayer;
+ Object selected_;
+
+ public LinearRingComboBoxModel(MdlLayer2dContour selectedLayer) {
+ this.selectedLayer = selectedLayer;
+ }
+
+ @Override
+ public int getSize() {
+ return selectedLayer.modeleDonnees().getNombre() + 1;
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+ if (index == 0) {
+ return null;
+ }
+ return selectedLayer.modeleDonnees().getGeometries().getGeometry(index - 1);
+ }
+
+ @Override
+ public Object getSelectedItem() {
+ return selected_;
+ }
+
+ @Override
+ public void setSelectedItem(final Object _anItem) {
+ if (_anItem != selected_) {
+ selected_ = _anItem;
+ fireContentsChanged(this, -1, -1);
+ }
+ }
+
+}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -27,7 +27,7 @@
public void setTraceIsoLine(boolean traceIsoLine) {
if (traceIsoLine != this.traceIsoLine) {
this.traceIsoLine = traceIsoLine;
- firePropertyChange(MdlIsoLayerConfigure.ISO_LINE_PAINTED, !traceIsoLine, traceIsoLine);
+ firePropertyChange(MdlCalqueMultiPointEditableConfigure.ISO_LINE_PAINTED, !traceIsoLine, traceIsoLine);
repaint();
}
}
@@ -39,7 +39,7 @@
public void setTraceIsoSurface(boolean traceIsoSurface) {
if (traceIsoSurface != this.traceIsoSurface) {
this.traceIsoSurface = traceIsoSurface;
- firePropertyChange(MdlIsoLayerConfigure.ISO_SURFACE_PAINTED, !traceIsoSurface, traceIsoSurface);
+ firePropertyChange(MdlCalqueMultiPointEditableConfigure.ISO_SURFACE_PAINTED, !traceIsoSurface, traceIsoSurface);
repaint();
}
}
Copied: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditableConfigure.java (from rev 8135, trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlIsoLayerConfigure.java)
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditableConfigure.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditableConfigure.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -0,0 +1,132 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import java.awt.Color;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.List;
+import org.fudaa.ebli.calque.BCalqueConfigureSectionAbstract;
+import org.fudaa.ebli.controle.BSelecteurCheckBox;
+import org.fudaa.ebli.controle.BSelecteurInterface;
+import org.fudaa.ebli.controle.BSelecteurLineModel;
+import org.fudaa.ebli.palette.BPalettePlage;
+import org.fudaa.ebli.palette.BPalettePlageInterface;
+import org.fudaa.ebli.trace.TraceLigneModel;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ * Permet de configurer un calque MdlCalqueMultiPointEditable.
+ *
+ * @author Frederic Deniger
+ */
+public class MdlCalqueMultiPointEditableConfigure extends BCalqueConfigureSectionAbstract {
+
+ public static final String ISO_LINE_COLOR_PROP = "isoLine.draw.color";
+ public static final String ISO_LINE_PROP = BSelecteurLineModel.getProperty(0);
+ public static final String ISO_LINE_PAINTED = "isoLine.painted";
+ public static final String ISO_SURFACE_PAINTED = "isoSurface.painted";
+
+ public MdlCalqueMultiPointEditableConfigure(final MdlCalqueMultiPointEditable _target) {
+ super(_target, MdlResource.getS("Isolignes / Isosurfaces"));
+ }
+
+ @Override
+ public BSelecteurInterface[] createSelecteurs() {
+ final List dest = new ArrayList();
+ final BSelecteurCheckBox cbIsoSurface = new BSelecteurCheckBox(ISO_SURFACE_PAINTED);
+ cbIsoSurface.setTitle(MdlResource.getS("Tracer des isosurfaces"));
+ final BSelecteurCheckBox cbIsoLine = new BSelecteurCheckBox(ISO_LINE_PAINTED);
+ cbIsoLine.setTitle(MdlResource.getS("Tracer des isolignes"));
+ final BSelecteurLineModel line = new BSelecteurLineModel(ISO_LINE_PROP);
+ line.setAddColor(false);
+ dest.add(cbIsoSurface);
+ dest.add(cbIsoLine);
+ dest.add(line);
+ line.setEnabled(((MdlCalqueMultiPointEditable) target_).isTraceIsoLine());
+ cbIsoLine.getCb().addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(final ItemEvent _e) {
+ line.setEnabled(cbIsoLine.getCb().isSelected());
+ if (cbIsoLine.getCb().isSelected()) {
+ cbIsoSurface.getCb().setSelected(false);
+ }
+ }
+ });
+ cbIsoSurface.getCb().addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(final ItemEvent _e) {
+ if (cbIsoSurface.getCb().isSelected()) {
+ cbIsoLine.getCb().setSelected(false);
+ }
+ }
+ });
+
+ return (BSelecteurInterface[]) dest.toArray(new BSelecteurInterface[dest.size()]);
+ }
+
+ @Override
+ public Object getProperty(final String _key) {
+ if (ISO_LINE_PAINTED.equals(_key)) {
+ return Boolean.valueOf(((MdlCalqueMultiPointEditable) target_).isTraceIsoLine());
+ }
+ if (ISO_SURFACE_PAINTED.equals(_key)) {
+ return Boolean.valueOf(((MdlCalqueMultiPointEditable) target_).isTraceIsoSurface());
+ }
+ if (ISO_LINE_PROP.equals(_key)) {
+ return ((MdlCalqueMultiPointEditable) target_).getLineModel(0);
+ }
+ if (ISO_LINE_COLOR_PROP.equals(_key)) {
+ final BPalettePlageInterface plages = ((MdlCalqueMultiPointEditable) target_).getPaletteCouleur();
+ Color c = null;
+ if (plages.getNbPlages() > 0) {
+ c = plages.getPlageInterface(0).getCouleur();
+ }
+ if (c == null) {
+ return null;
+ }
+ for (int i = plages.getNbPlages() - 1; i > 0; i--) {
+ if (!c.equals(plages.getPlageInterface(i).getCouleur())) {
+ return null;
+ }
+
+ }
+ return c;
+ }
+ return null;
+ }
+
+ @Override
+ public boolean setProperty(final String _key, final Object _newProp) {
+ if (ISO_LINE_PAINTED.equals(_key)) {
+ ((MdlCalqueMultiPointEditable) target_).setTraceIsoLine(((Boolean) _newProp).booleanValue());
+ return true;
+ }
+ if (ISO_SURFACE_PAINTED.equals(_key)) {
+ ((MdlCalqueMultiPointEditable) target_).setTraceIsoSurface(((Boolean) _newProp).booleanValue());
+ return true;
+ }
+ if (ISO_LINE_PROP.equals(_key)) {
+ ((MdlCalqueMultiPointEditable) target_).setLineModel(0, ((TraceLigneModel) _newProp));
+ return true;
+ }
+ if (ISO_LINE_COLOR_PROP.equals(_key)) {
+ final Color c = (Color) _newProp;
+ if (c == null) {
+ return false;
+ }
+ final BPalettePlageInterface plages = ((MdlCalqueMultiPointEditable) target_).getPaletteCouleur();
+ if (plages != null) {
+ final BPalettePlage plage = new BPalettePlage(plages.getPlages());
+ for (int i = plage.getNbPlages() - 1; i >= 0; i--) {
+ plage.getPlage(i).setCouleur(c);
+ }
+ ((MdlCalqueMultiPointEditable) target_).setPaletteCouleurPlages(plage);
+
+ }
+ }
+ return false;
+ }
+}
Copied: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridData.java (from rev 8140, trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/ExportGridData.java)
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridData.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridData.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -0,0 +1,56 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid;
+
+import java.io.IOException;
+import org.fudaa.ctulu.CtuluVariable;
+import org.fudaa.dodico.ef.EfData;
+import org.fudaa.dodico.ef.EfDataNode;
+import org.fudaa.dodico.ef.EfGridData;
+import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.dodico.h2d.type.H2dVariableType;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class MdlGridData implements EfGridData {
+
+ private final MdlElementModel model;
+ private final int varIdx;
+
+ public MdlGridData(MdlElementModel model, int bathyIdx) {
+ this.model = model;
+ this.varIdx = bathyIdx;
+ }
+
+ @Override
+ public boolean isElementVar(CtuluVariable _idxVar) {
+ return false;
+ }
+
+ @Override
+ public boolean isDefined(CtuluVariable _var) {
+ return H2dVariableType.BATHYMETRIE.equals(_var);
+ }
+
+ @Override
+ public EfData getData(CtuluVariable _o, int _timeIdx) throws IOException {
+ double[] data = new double[getGrid().getPtsNb()];
+ for (int i = 0; i < data.length; i++) {
+ data[i] = model.getValueFromGrid(varIdx, i);
+ }
+ return new EfDataNode(data);
+ }
+
+ @Override
+ public double getData(CtuluVariable _o, int _timeIdx, int _idxObjet) throws IOException {
+ return model.getValueFromGrid(varIdx, _idxObjet);
+ }
+
+ @Override
+ public EfGridInterface getGrid() {
+ return model.getGrid();
+ }
+}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -14,7 +14,7 @@
*/
public class MdlGridExportFactory {
- public static MvExportFactory create(LayerGridDelegate gridDelegate) {
+ public static MvExportFactory create(LayerGridController gridDelegate) {
FSigEditor editor = (FSigEditor) gridDelegate.getParentLayer().getEditor();
DefaultListModel varModel = new DefaultListModel();
varModel.addElement(H2dVariableType.BATHYMETRIE);
@@ -23,7 +23,7 @@
return res;
}
- public static void startExport(LayerGridDelegate gridDelegate) {
+ public static void startExport(LayerGridController gridDelegate) {
final MvExportFactory exporter = create(gridDelegate);
MvExportFactory.startExport(exporter, exporter.getUi(), null);
}
Deleted: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlIsoLayerConfigure.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlIsoLayerConfigure.java 2012-12-15 00:36:06 UTC (rev 8142)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlIsoLayerConfigure.java 2012-12-15 00:50:50 UTC (rev 8143)
@@ -1,140 +0,0 @@
-/*
- GPL 2
- */
-package org.fudaa.fudaa.modeleur.grid;
-
-import java.awt.Color;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.util.ArrayList;
-import java.util.List;
-import org.fudaa.ebli.calque.BCalqueConfigureSectionAbstract;
-import org.fudaa.ebli.controle.BSelecteurCheckBox;
-import org.fudaa.ebli.controle.BSelecteurColorChooserBt;
-import org.fudaa.ebli.controle.BSelecteurInterface;
-import org.fudaa.ebli.controle.BSelecteurLineModel;
-import org.fudaa.ebli.palette.BPalettePlage;
-import org.fudaa.ebli.palette.BPalettePlageInterface;
-import org.fudaa.ebli.trace.TraceLigneModel;
-import org.fudaa.fudaa.modeleur.resource.MdlResource;
-
-/**
- *
- * @author Frederic Deniger
- */
-public class MdlIsoLayerConfigure extends BCalqueConfigureSectionAbstract {
-
- public static final String ISO_LINE_COLOR_PROP = "isoLin...
[truncated message content] |
|
From: <de...@us...> - 2013-01-03 23:01:24
|
Revision: 8176
http://fudaa.svn.sourceforge.net/fudaa/?rev=8176&view=rev
Author: deniger
Date: 2013-01-03 23:01:17 +0000 (Thu, 03 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2013-01-03 23:00:41 UTC (rev 8175)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlProjectionPanel.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -63,8 +63,7 @@
BuLabel lbTitle=new BuLabel(MdlResource.getS("S\xE9lectionnez les semis"));
add(lbTitle);
- CalqueGISTreeModel md=new CalqueGISTreeModel(null,_pn.getDonneesCalque());
- md.setMask(GISLib.MASK_MULTIPOINT);
+ CalqueGISTreeModel md=new CalqueGISTreeModel(null,_pn.getDonneesCalque(),GISLib.MASK_MULTIPOINT);
trLayers_=md.createView(true,true);
trLayers_.addTreeSelectionListener(new TreeSelectionListener() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-03 23:00:41 UTC (rev 8175)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -76,9 +76,9 @@
return null;
}
//https://www.cs.cmu.edu/~quake/triangle.switch.html
- String options = "-D";
+ String options = "-DYY";
if (convexHull == null) {
- options = "-cD";
+ options = "-cDYY";
}
exe.setCommand(new String[]{getTriangleExe(), options, fileName});
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-03 23:00:41 UTC (rev 8175)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -117,6 +117,7 @@
MdlElementLayer eltLayer = getGridLayer();
if (eltLayer != null) {
parentLayer.remove(eltLayer);
+ parentLayer.clearCacheAndRepaint();
}
}
@@ -132,6 +133,7 @@
} else {
installGridLayer(eltLayer, grid);
}
+ parentLayer.clearCacheAndRepaint();
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-03 23:00:41 UTC (rev 8175)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -28,6 +28,7 @@
import org.fudaa.fudaa.modeleur.action.CalqueCreateGridAction;
import org.fudaa.fudaa.modeleur.action.CalqueGridTriangleConfigurationAction;
import org.fudaa.fudaa.modeleur.grid.action.CreateIsoLinesAction;
+import org.fudaa.fudaa.modeleur.grid.action.DeleteGridAction;
import org.fudaa.fudaa.sig.layer.FSigEditor;
/**
@@ -69,6 +70,7 @@
final CalqueCreateGridAction createGridAction = new CalqueCreateGridAction(this);
vacts.add(createGridAction);
vacts.add(createGridAction.getStopAction());
+ vacts.add(new DeleteGridAction(layerGridDelegate));
vacts.add(null);
vacts.add(new CreateIsoLinesAction(layerGridDelegate));
vacts.add(null);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-03 23:00:41 UTC (rev 8175)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -22,8 +22,13 @@
super(_modele);
setSelectable(false);
}
-
- public void clearCacheAndRepaint(){
+
+ @Override
+ public boolean isDestructible() {
+ return true;
+ }
+
+ public void clearCacheAndRepaint() {
super.clearCache();
repaint(0);
}
Copied: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java (from rev 8171, trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/ExportGridAction.java)
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-03 23:01:17 UTC (rev 8176)
@@ -0,0 +1,37 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid.action;
+
+import com.memoire.bu.BuResource;
+import java.awt.event.ActionEvent;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.modeleur.grid.LayerGridController;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ * Action permettant d'exporter le maillage.
+ *
+ * @author Frederic Deniger
+ */
+public class DeleteGridAction extends EbliActionSimple {
+
+ private final LayerGridController delegate;
+
+ public DeleteGridAction(LayerGridController delegate) {
+ super(MdlResource.getS("Supprimer le maillage"), BuResource.BU.getIcon("detruire"), "DESTROY_GRID");
+ this.delegate = delegate;
+ }
+
+ @Override
+ public void updateStateBeforeShow() {
+ setEnabled(delegate.getGridLayer() != null);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent _e) {
+ if (delegate.getGridLayer() != null) {
+ delegate.clearGrid();
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-04 18:10:20
|
Revision: 8178
http://fudaa.svn.sourceforge.net/fudaa/?rev=8178&view=rev
Author: deniger
Date: 2013-01-04 18:10:13 +0000 (Fri, 04 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-04 18:09:21 UTC (rev 8177)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-04 18:10:13 UTC (rev 8178)
@@ -9,6 +9,7 @@
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
import org.fudaa.ctulu.gis.GISAttributeModelObjectInterface;
import org.fudaa.ebli.calque.BCalqueCacheManager;
+import org.fudaa.ebli.calque.BCalqueCacheManagerSelection;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesConfigure;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesTraceConfigure;
import org.fudaa.ebli.calque.ZModeleGeometry;
@@ -56,6 +57,7 @@
setLegende(_editor == null ? null : _editor.getPanel().getCqLegend());
installActions();
BCalqueCacheManager.installDefaultCacheManager(this);
+ BCalqueCacheManagerSelection.installDefaultCacheManagerSelection(this);
}
/**
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-04 18:09:21 UTC (rev 8177)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-04 18:10:13 UTC (rev 8178)
@@ -4,6 +4,7 @@
package org.fudaa.fudaa.modeleur.grid;
import org.fudaa.ebli.calque.BCalqueCacheManager;
+import org.fudaa.ebli.calque.BCalqueCacheManagerSelection;
import org.fudaa.fudaa.meshviewer.layer.MvElementLayer;
import org.fudaa.fudaa.meshviewer.model.MvElementModel;
@@ -16,6 +17,7 @@
public MdlElementLayer() {
setSelectable(false);
BCalqueCacheManager.installDefaultCacheManager(this);
+ BCalqueCacheManagerSelection.installDefaultCacheManagerSelection(this);
}
public MdlElementLayer(MvElementModel _modele) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-04 18:09:21 UTC (rev 8177)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-04 18:10:13 UTC (rev 8178)
@@ -11,6 +11,8 @@
import java.util.ArrayList;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
import org.fudaa.ctulu.gis.GISAttributeModelObjectList;
+import org.fudaa.ebli.calque.BCalqueCacheManager;
+import org.fudaa.ebli.calque.BCalqueCacheManagerSelection;
import org.fudaa.ebli.calque.BCalquePersistenceInterface;
import org.fudaa.ebli.calque.ZModeleGeometry;
@@ -48,6 +50,9 @@
installActions();
updatePositionDataBathy();
setLegende(_editor.getPanel().getCqLegend());
+ //a voir si a garder:
+ BCalqueCacheManager.installDefaultCacheManager(this);
+ BCalqueCacheManagerSelection.installDefaultCacheManagerSelection(this);
}
@Override
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2013-01-04 18:09:21 UTC (rev 8177)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/controller/ControllerBief.java 2013-01-04 18:10:13 UTC (rev 8178)
@@ -8,7 +8,6 @@
package org.fudaa.fudaa.modeleur.modeleur1d.controller;
import java.util.Arrays;
-import java.util.BitSet;
import java.util.Map;
import javax.swing.DefaultListSelectionModel;
@@ -38,6 +37,7 @@
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.CoordinateSequence;
+import org.fudaa.ctulu.FastBitSet;
/**
* Controller permettant de g\xE9rer (cr\xE9er, modifier, supprimer, selectionner) les biefs.
@@ -463,7 +463,7 @@
// Translation du second bief \\
// Cr\xE9ation d'une selection contenant le second axe hydraulique
if (!fakeAH) {
- BitSet bs=new BitSet(1);
+ FastBitSet bs=new FastBitSet(1);
bs.set(0);
CtuluListSelection selection=new CtuluListSelection(bs);
// Application de la translation sur le second axe hydraulique
@@ -471,7 +471,7 @@
}
// Cr\xE9ation d'une selection contenant les profils du second axe
// hydraulique
- BitSet bs=new BitSet(zoneProfils.getNbGeometries());
+ FastBitSet bs=new FastBitSet(zoneProfils.getNbGeometries());
bs.set(bief1.profils_.getNombre(), zoneProfils.getNbGeometries());
CtuluListSelection selection=new CtuluListSelection(bs);
// Application de la translation sur les profils du second axe hydraulique
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2013-01-04 18:09:21 UTC (rev 8177)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/model/ProfilContainerAdapter.java 2013-01-04 18:10:13 UTC (rev 8178)
@@ -8,7 +8,6 @@
package org.fudaa.fudaa.modeleur.modeleur1d.model;
import java.util.ArrayList;
-import java.util.BitSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -33,6 +32,7 @@
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.CoordinateSequence;
import com.vividsolutions.jts.geom.Geometry;
+import org.fudaa.ctulu.FastBitSet;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
@@ -688,7 +688,7 @@
if (!UtilsProfil1d.egal(absZeroDecal, oldAbscisseCurviligne)) {
// Cr\xE9ation d'une selection contenant la g\xE9om\xE9trie \xE0 modifier
- BitSet bs=new BitSet(biefContainer_.getZoneProfils().getNbGeometries());
+ FastBitSet bs=new FastBitSet(biefContainer_.getZoneProfils().getNbGeometries());
bs.set(idxProfilSelected_);
CtuluListSelection selection=new CtuluListSelection(bs);
// Calcul du future point de croisement entre l'axe et le profil
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-05 00:02:15
|
Revision: 8184
http://fudaa.svn.sourceforge.net/fudaa/?rev=8184&view=rev
Author: deniger
Date: 2013-01-05 00:02:06 +0000 (Sat, 05 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-05 00:01:30 UTC (rev 8183)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-05 00:02:06 UTC (rev 8184)
@@ -80,27 +80,28 @@
import com.memoire.bu.BuTaskView;
import com.memoire.bu.BuUserPreferencesPanel;
import com.memoire.fu.FuLog;
+import org.fudaa.ebli.commun.BJava3DVersionTest;
/**
- * La classe principale de mise en place de l'application, de gestion des
- * actions, des \xE9tats de l'interface, etc.
- *
+ * La classe principale de mise en place de l'application, de gestion des actions, des \xE9tats de l'interface, etc.
+ *
* @author Bertrand Marchand
* @version $Id$
*/
public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener {
protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware();
+
static {
isMdl_.name = MdlResource.getS("Modeleur");
isMdl_.version = "1.2";
isMdl_.date = "2011-12-22";
- isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2011";
+ isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)1999-2011";
isMdl_.license = "GPL2";
isMdl_.languages = "fr,en";
- isMdl_.authors=new String[]{"B.Marchand, E.Martin, F.Deniger"};
- isMdl_.contact="soi...@ed...";
- isMdl_.http="http://www.fudaa.fr/mdl/";
+ isMdl_.authors = new String[]{"B.Marchand, E.Martin, F.Deniger"};
+ isMdl_.contact = "soi...@ed...";
+ isMdl_.http = "http://www.fudaa.fr/mdl/";
isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette");
isMdl_.banner = BuResource.BU.getIcon("aproposde_32");
@@ -114,12 +115,19 @@
return "mod.zip";
}
+ public static void addJava3DTest(final BuMenu _r) {
+ _r.addSeparator();
+ _r.addMenuItem(MdlResource.getS("Tester Java 3D"), "JAVA3D", EbliResource.EBLI.getIcon("3d"), true);
+ }
+
/**
* Un filtre autorisant des extensions avec plusieurs points (.mod.zip)
+ *
* @author Bertrand Marchand
* @version $Id$
*/
private static class MdlFileFilter extends FileFilter {
+
final String extension_ = '.' + getExtension();
public boolean accept(File _f) {
@@ -127,27 +135,34 @@
}
public String getDescription() {
- return MdlResource.getS("Fudaa Modeleur")+" (*.mod.zip)";
+ return MdlResource.getS("Fudaa Modeleur") + " (*.mod.zip)";
}
-
}
public static BuInformationsSoftware informationsSoftware() {
return isMdl_;
}
-
- /** Le filtre de fichier pour des extension fichiers projets. */
+ /**
+ * Le filtre de fichier pour des extension fichiers projets.
+ */
public final static FileFilter FILTER = new MdlFileFilter();
-
- /** Fenetre interne pour le modeleur 2D. */
+ /**
+ * Fenetre interne pour le modeleur 2D.
+ */
MdlFille2d mdl2dFrame_;
- /** Fenetre interne pour le modeleur 1D */
- MdlFille1d mdl1dFrame_=null;
- /** Projet modeleur. */
+ /**
+ * Fenetre interne pour le modeleur 1D
+ */
+ MdlFille1d mdl1dFrame_ = null;
+ /**
+ * Projet modeleur.
+ */
MdlProjet project_;
FSigManageExeTools toolMng_;
- /** Si true, l'utilisateur peut sortir de l'application par Quitter. */
- boolean exitCanceled_=false;
+ /**
+ * Si true, l'utilisateur peut sortir de l'application par Quitter.
+ */
+ boolean exitCanceled_ = false;
public MdlImplementation() {
super();
@@ -156,6 +171,7 @@
/**
* Retourne le fichier s\xE9lectionn\xE9 par boite de dialogue.
+ *
* @param _saveDialog true : Save dialog, test si fichier existant avant ecriture.
* @return LE fichier, ou null si op\xE9ration abort\xE9e.
*/
@@ -165,7 +181,7 @@
private File chooseFile(boolean _saveDialog) {
return FudaaGuiLib.ouvrirFileChooser(MdlResource.getS("Fichier modeleur"), FILTER, this.getFrame(),
- _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null);
+ _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null);
}
protected void setFileIfNeeded() {
@@ -177,15 +193,15 @@
public void projectStateChanged(FudaaProjetStateInterface _proj) {
updateActionsState();
}
-
+
/**
* Mise \xE0 jour de l'\xE9tat des boutons.
*/
void updateActionsState() {
- boolean bprjOpen=project_!=null;
- boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified();
- boolean buiMod=bprjOpen && project_.getProjectState().isUIModified();
-
+ boolean bprjOpen = project_ != null;
+ boolean bprjModPar = bprjOpen && project_.getProjectState().isParamsModified();
+ boolean buiMod = bprjOpen && project_.getProjectState().isUIModified();
+
setEnabledForAction("ENREGISTRER", bprjModPar | buiMod);
setEnabledForAction("ENREGISTRERSOUS", bprjOpen);
setEnabledForAction("FERMER", bprjOpen);
@@ -202,45 +218,46 @@
getExeToolManager().setRootLayer(mdl2dFrame_.getDonneesCalque());
getExeToolManager().setCommandManager(mdl2dFrame_.getCmdMng());
}
-
+
/**
* Creation de la vue 1D. Ajout a la demande.
*/
void createNew1dFrame() {
- if (mdl1dFrame_==null) {
- mdl1dFrame_=new MdlFille1d(this);
+ if (mdl1dFrame_ == null) {
+ mdl1dFrame_ = new MdlFille1d(this);
}
}
-
+
/**
* @return La vue 1D, ou null si inexistante.
*/
public MdlFille1d get1dFrame() {
return mdl1dFrame_;
}
-
+
/**
* @return La vue 2D, ou null si inexistante.
*/
public MdlFille2d get2dFrame() {
return mdl2dFrame_;
}
-
+
/**
* Installe la vue 1d sur le desktop, et la rend active.
*/
public void install1dFrame() {
- boolean alreadyInstalled=false;
- for (JInternalFrame f: getAllInternalFrames()) {
+ boolean alreadyInstalled = false;
+ for (JInternalFrame f : getAllInternalFrames()) {
if (f.equals(mdl1dFrame_)) {
- alreadyInstalled=true;
+ alreadyInstalled = true;
break;
}
}
- if (!alreadyInstalled)
+ if (!alreadyInstalled) {
addInternalFrame(mdl1dFrame_);
- else
+ } else {
activateInternalFrame(mdl1dFrame_);
+ }
}
protected boolean buildExportDataToolIcon() {
@@ -258,17 +275,18 @@
}
/**
- * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas
- * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont).
+ * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont).
*/
protected void closeProject() {
- if (project_==null) return;
+ if (project_ == null) {
+ return;
+ }
project_.close();
try {
- if(mdl2dFrame_!=null){
+ if (mdl2dFrame_ != null) {
mdl2dFrame_.setClosed(true);
}
- if(mdl1dFrame_!=null){
+ if (mdl1dFrame_ != null) {
mdl1dFrame_.setClosed(true);
}
} catch (PropertyVetoException _evt) {
@@ -282,17 +300,20 @@
/**
* Cr\xE9e un nouveau projet, la fenetre 2D si necessaire.
+ *
* @param _add true : Recr\xE9e la fenetre.
*/
protected void createProject(final boolean _add) {
project_ = new MdlProjet();
project_.setOpening(true);
- if (_add) createNew2dFrame();
- else ((MdlVisuPanel)mdl2dFrame_.getVisuPanel()).initCalques(false);
+ if (_add) {
+ createNew2dFrame();
+ } else {
+ ((MdlVisuPanel) mdl2dFrame_.getVisuPanel()).initCalques(false);
+ }
createNew1dFrame();
project_.install(this);
BuLib.invokeLater(new Runnable() {
-
public void run() {
project_.setOpening(false);
// changeSaveActions(false);
@@ -323,6 +344,8 @@
importProject();
} else if ("AIDE_INDEX".equals(action)) {
displayHelp(getAideIndexUrl());
+ } else if ("JAVA3D".equals(action)) {
+ BJava3DVersionTest.showVersionDialog(this);
} else if (action.startsWith("TOGGLE")) {
final BuColumn c = getMainPanel().getRightColumn();
final JComponent comp = c.getToggleComponent(action);
@@ -331,17 +354,18 @@
c.revalidate();
}
} else if (action.startsWith("REOUVRIR")) {
- FuLog.trace(action.substring(9,action.length()-1));
- ouvrir(new File(action.substring(9,action.length()-1)));
- } else
+ FuLog.trace(action.substring(9, action.length() - 1));
+ ouvrir(new File(action.substring(9, action.length() - 1)));
+ } else {
super.actionPerformed(_evt);
+ }
}
/**
* Met a jour les fichiers recents chaque fois que necessaire.
*/
private void updateRecentFiles(File _fichier) {
- getMainMenuBar().addRecentFile(_fichier.getPath(),null);
+ getMainMenuBar().addRecentFile(_fichier.getPath(), null);
MdlPreferences.MDL.writeIniFile();
}
@@ -350,38 +374,41 @@
*/
@Override
public void exit() {
- if (!isExitCanceled())
+ if (!isExitCanceled()) {
confirmExit();
+ }
}
-
+
private boolean isExitCanceled() {
return exitCanceled_;
}
-
+
/**
* Definit si l'action Exit est autoris\xE9e (par exemple lors d'une sauvegarde)
+ *
* @param _b True : L'action est autoris\xE9e.
*/
private void setExitCanceled(boolean _b) {
- exitCanceled_=_b;
+ exitCanceled_ = _b;
}
-
+
/**
* L'action close est g\xE9r\xE9e au niveau applicatif (et non fenetre par fenetre).
+ *
* @return false
*/
@Override
public boolean isCloseFrameMode() {
return false;
}
-
+
/**
* Confirmation de la sortie avec ou sans sauvegarde.
*/
@Override
public boolean confirmExit() {
- if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() ||
- question(MdlResource.getS("Quitter"), MdlResource.getS("Voulez-vous vraiment quitter ce logiciel ?"))) {
+ if (!FudaaStartupExitPreferencesPanel.isExitConfirmed()
+ || question(MdlResource.getS("Quitter"), MdlResource.getS("Voulez-vous vraiment quitter ce logiciel ?"))) {
return saveAndCloseProjet(new Runnable() {
// Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e.
public void run() {
@@ -402,7 +429,7 @@
}
});
}
-
+
/**
* Action "Fermer" le projet en cours.
*/
@@ -425,41 +452,40 @@
}
/**
- * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si
- * existant.
+ * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si existant.
+ *
* @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur.
*/
public void ouvrir(final File _f) {
if (isProjectModified()) {
saveAndCloseProjet(new Runnable() {
-
public void run() {
ouvrir(_f);
}
});
return;
}
-
+
closeProject();
final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false);
- if (f==null) return; // Abandon utilisateur.
-
+ if (f == null) {
+ return; // Abandon utilisateur.
+ }
createProject(false);
setGlassPaneStop();
new CtuluRunnable(MdlResource.getS("Ouvrir"), MdlImplementation.this) {
-
public boolean run(ProgressionInterface _proj) {
project_.setOpening(true);
Runnable r = null;
try {
try {
- FudaaSaveZipLoader loader=new FudaaSaveZipLoader(f);
+ FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f);
// Recup des infos pour utilisateur.
- BuInformationsSoftware is=FudaaSaveProject.getSoftwareInfos(loader);
- FuLog.trace("File version : "+(is.version==null ? "Undefined":is.version));
-
- r= FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj,loader);
+ BuInformationsSoftware is = FudaaSaveProject.getSoftwareInfos(loader);
+ FuLog.trace("File version : " + (is.version == null ? "Undefined" : is.version));
+
+ r = FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj, loader);
} catch (final IOException _evt) {
FuLog.error(_evt);
@@ -471,25 +497,28 @@
final Runnable swingRun = r;
BuLib.invokeLater(new Runnable() {
-
public void run() {
try {
addInternalFrame(mdl2dFrame_);
mdl2dFrame_.getCmdMng().clean();
-
- if (swingRun != null) swingRun.run();
-
+
+ if (swingRun != null) {
+ swingRun.run();
+ }
+
// Met a jour la fenetre 1d
- FudaaSaveZipLoader loader=null;
+ FudaaSaveZipLoader loader = null;
try {
- loader=new FudaaSaveZipLoader(f);
+ loader = new FudaaSaveZipLoader(f);
mdl1dFrame_.restoreFrom(loader, null);
mdl1dFrame_.getCmdMng().clean();
- }
- catch (IOException _exc) {}
- finally {
- if (loader!=null) {
- try { loader.close(); } catch (IOException _exc) {}
+ } catch (IOException _exc) {
+ } finally {
+ if (loader != null) {
+ try {
+ loader.close();
+ } catch (IOException _exc) {
+ }
}
}
@@ -498,9 +527,8 @@
project_.setSaved();
if (swingRun == null) {
MdlImplementation.this.warn(MdlResource.getS("Ouvrir"),
- MdlResource.getS("Le projet n'a pas \xE9t\xE9 ouvert!"));
- }
- else {
+ MdlResource.getS("Le projet n'a pas \xE9t\xE9 ouvert!"));
+ } else {
updateRecentFiles(project_.getParamsFile());
}
} finally {
@@ -508,7 +536,6 @@
}
}
-
});
}
@@ -522,8 +549,8 @@
*/
public void save() {
if (project_.getParamsFile() != null) {
-
- CtuluRunnable act=new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
+
+ CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _proj) {
try {
setGlassPaneStop();
@@ -533,8 +560,7 @@
return true;
}
return false;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
@@ -542,16 +568,19 @@
};
act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true);
act.run();
- } else
+ } else {
saveAs();
+ }
}
-
+
/**
* Action "Enregistrer sous" le projet.
*/
public void saveAs() {
final File f = chooseNewFile(true);
- if (f == null) return;
+ if (f == null) {
+ return;
+ }
CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _proj) {
@@ -563,8 +592,7 @@
return true;
}
return false;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
@@ -576,18 +604,18 @@
protected boolean isProjectModified() {
return project_ != null
- && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified());
+ && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified());
}
-
+
public void importProject() {
- MdlProjectImportPanel pn=new MdlProjectImportPanel();
+ MdlProjectImportPanel pn = new MdlProjectImportPanel();
if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), MdlResource.getS("Import d'un projet")))) {
- File f=pn.getFile();
+ File f = pn.getFile();
try {
FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f);
- String[] ignoredLayers=pn.getIgnoredLayers();
+ String[] ignoredLayers = pn.getIgnoredLayers();
for (String s : ignoredLayers) {
- loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE+s,CtuluLibString.toString(true));
+ loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE + s, CtuluLibString.toString(true));
}
final CtuluTaskDelegate createTask = createTask(MdlResource.getS("Import d'un projet"));
@@ -595,7 +623,7 @@
// Probable pb de deadlock.
// createTask.start(new Runnable() {
// public void run() {
- FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader);
+ FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader);
// }
// });
@@ -610,15 +638,16 @@
/**
* Dans le thread swing....
- *
+ *
* @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet
*/
public boolean saveAndCloseProjet(final Runnable _relaunch) {
final Runnable r = new Runnable() {
-
public void run() {
closeProject();
- if (_relaunch != null) _relaunch.run();
+ if (_relaunch != null) {
+ _relaunch.run();
+ }
}
};
boolean save = false;
@@ -639,9 +668,11 @@
} else {
// on initilialise le fichier de dest si n\xE9cessaire
setFileIfNeeded();
- if (project_.getParamsFile()==null) return false;
-
- CtuluRunnable act=new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
+ if (project_.getParamsFile() == null) {
+ return false;
+ }
+
+ CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _prog) {
// le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier
// dans ce cas, on ne sauvegarde pas.
@@ -650,16 +681,14 @@
setGlassPaneStop();
setExitCanceled(true);
FSigProjectPersistence.saveProject(MdlImplementation.this, project_,
- project_.getParamsFile(), _prog);
+ project_.getParamsFile(), _prog);
updateRecentFiles(project_.getParamsFile());
return true;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
- }
- else {
+ } else {
return false;
}
}
@@ -674,24 +703,26 @@
protected Runnable getSaveSwingRunnable(final File _paramFile/*, final JDialog _d*/) {
return new Runnable() {
-
public void run() {
- if (_paramFile != null) project_.setParamFile(_paramFile);
+ if (_paramFile != null) {
+ project_.setParamFile(_paramFile);
+ }
project_.setSaved();
// _d.dispose();
}
};
}
-
+
/**
* Construit le menu projet.
+ *
* @return Le menu projet.
*/
protected BuMenu buildProjectMenu() {
- BuMenu mn=new BuMenu(MdlResource.getS("Projet"),"mnPROJECT");
+ BuMenu mn = new BuMenu(MdlResource.getS("Projet"), "mnPROJECT");
mn.add(new MdlShow2DFrameAction(this));
mn.add(new MdlShow1DFrameAction(this));
-
+
mn.setVisible(false);
return mn;
}
@@ -708,23 +739,20 @@
_frAddTab.add(new FudaaLookPreferencesPanel(this));
_frAddTab.add(new BuBrowserPreferencesPanel(this));
_frAddTab.add(new EbliMiseEnPagePreferencesPanel());
- _frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Visuel"),MdlResource.getS("Cartographie"),
- new BuAbstractPreferencesComponent[] {
- new EbliGISPreferencesComponent(),
- new MdlLayerTreePreferencesComponent()
- }
- ));
+ _frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Visuel"), MdlResource.getS("Cartographie"),
+ new BuAbstractPreferencesComponent[]{
+ new EbliGISPreferencesComponent(),
+ new MdlLayerTreePreferencesComponent()
+ }));
_frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Export"),
- new BuAbstractPreferencesComponent[] {
- new CtuluTablePreferencesComponent(),
- new MascaretExportPreferencesComponent()
- }
- ));
+ new BuAbstractPreferencesComponent[]{
+ new CtuluTablePreferencesComponent(),
+ new MascaretExportPreferencesComponent()
+ }));
_frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Vue 1D"),
- new BuAbstractPreferencesComponent[] {
- new Mdl1dPreferencesComponent()
- }
- ));
+ new BuAbstractPreferencesComponent[]{
+ new Mdl1dPreferencesComponent()
+ }));
}
/**
@@ -744,16 +772,15 @@
sp.setPreferredSize(new Dimension(150, 80));
sp.setToolTipText(MdlResource.getS("Les t\xE2ches en cours"));
rc.addToggledComponent(MdlResource.getS("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp,
- true, this).setToolTipText(MdlResource.getS("Cacher/Afficher les t\xE2ches"));
+ true, this).setToolTipText(MdlResource.getS("Cacher/Afficher les t\xE2ches"));
mp.setTaskView(taches);
}
-
+
/**
* Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie.
- *
- * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues
- * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon
- * inattendue.
+ *
+ * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues par d'autres applications Fudaa, qui risquent alors de s'afficher de
+ * facon inattendue.
*/
protected void savePreferencesAndTerminate() {
final Point p = getFrame().getLocation();
@@ -762,16 +789,16 @@
BuPreferences.BU.putIntegerProperty("window.y", p.y);
BuPreferences.BU.putIntegerProperty("window.w", d.width);
BuPreferences.BU.putIntegerProperty("window.h", d.height);
- BuPreferences.BU.putIntegerProperty("leftcolumn.width",getMainPanel().getLeftColumn().getWidth());
- BuPreferences.BU.putIntegerProperty("rightcolumn.width",getMainPanel().getRightColumn().getWidth());
+ BuPreferences.BU.putIntegerProperty("leftcolumn.width", getMainPanel().getLeftColumn().getWidth());
+ BuPreferences.BU.putIntegerProperty("rightcolumn.width", getMainPanel().getRightColumn().getWidth());
BuPreferences.BU.writeIniFile();
-
+
BuRegistry.unregister(this.getFrame());
}
-
/**
* Maximisation syst\xE9matique de la fenetre.
+ *
* @param _f La fenetre ajout\xE9e.
*/
@Override
@@ -781,14 +808,13 @@
public void run() {
try {
_f.setMaximum(true);
- }
- catch (PropertyVetoException ex) {
+ } catch (PropertyVetoException ex) {
Logger.getLogger(MdlImplementation.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
-
+
/**
* Mise en place de l'application ava,nt affichage.
*/
@@ -796,7 +822,7 @@
public void init() {
super.init();
- TransferHandler transHdl=new TransferHandler() {
+ TransferHandler transHdl = new TransferHandler() {
@Override
public boolean canImport(TransferSupport support) {
for (DataFlavor df : support.getDataFlavors()) {
@@ -818,11 +844,9 @@
}
ouvrir(files.get(0));
return true;
- }
- catch (UnsupportedFlavorException ufe) {
+ } catch (UnsupportedFlavorException ufe) {
ufe.printStackTrace();
- }
- catch (IOException ioe) {
+ } catch (IOException ioe) {
ioe.printStackTrace();
}
}
@@ -837,13 +861,9 @@
removeUnusedActions();
final BuMenuBar mb = getMainMenuBar();
// on enleve le menu des look and feel : moche car tout n'est pas mis a jour
-/* Issu de Fudaa-Prepro
- final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE");
+ final BuMenu mAide = (BuMenu) mb.getMenu("MENU_AIDE");
+ addJava3DTest(mAide);
- mAide.add(TrLib.buildAideContextItem(this), 0);
- TrLib.addJavawsForJnlp(mAide);
- TrLib.addJava3DJMFTest(mAide);*/
-
// Les actions qu'on peut retrouver partout.
EbliActionMap.getInstance().addAction(new MdlBiefImportAction(this));
@@ -853,36 +873,36 @@
setEnabledForAction("OUVRIR", true);
setEnabledForAction("IMPORTER", true);
setEnabledForAction("EXPORTER", true);
-
- BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR");
+
+ BuMenuRecentFiles mr = (BuMenuRecentFiles) mb.getMenu("REOUVRIR");
if (mr != null) {
mr.setPreferences(MdlPreferences.MDL);
mr.setResource(MdlResource.MDL);
mr.setEnabled(true);
}
-
-/* setEnabledForAction("MAJ", true);
- setEnabledForAction("SEND_COMMENT", true);
- setEnabledForAction("LAUNCH_JAVAWS", true);
- final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER");
- mFichier.addMenuItem(MdlResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU
- .getIcon("fermer"), true, 0);
- final BuToolBar tb = getMainToolBar();
- if (!isSupervisor()) {
- tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR",
- TrResource.getSupervisorIcon(), true).setVisible(true);
+ /* setEnabledForAction("MAJ", true);
+ setEnabledForAction("SEND_COMMENT", true);
+ setEnabledForAction("LAUNCH_JAVAWS", true);
+ final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER");
+ mFichier.addMenuItem(MdlResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU
+ .getIcon("fermer"), true, 0);
+ final BuToolBar tb = getMainToolBar();
+ if (!isSupervisor()) {
- }*/
+ tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR",
+ TrResource.getSupervisorIcon(), true).setVisible(true);
+
+ }*/
// les menus exporter et importer sont construit dynamiquement
// b.getMenu(getExporterCmd()).addItemListener(this);
BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER");
BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER");
-
+
// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(),
// this).setEnabled(false);
mmImport.addMenuItem(MdlResource.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this)
- .setEnabled(false);
+ .setEnabled(false);
// menu.addItemListener(this);
setEnabledForAction("IMPORT_PROJECT", true);
mmImport.setEnabled(true);
@@ -890,69 +910,69 @@
BuMenuItem itExportData = new BuMenuItem();
super.initExportDataButton(itExportData);
mnExport.add(itExportData);
-
- BuMenu mnProject=buildProjectMenu();
+
+ BuMenu mnProject = buildProjectMenu();
mb.addMenu(mnProject);
-
+
// Ajout du menu des exe tools
- BuMenu mnEdition=(BuMenu)mb.getMenu("MENU_EDITION");
+ BuMenu mnEdition = (BuMenu) mb.getMenu("MENU_EDITION");
mnEdition.addSeparator();
addExeToolsMenu(mnEdition);
-
-/* setEnabledForAction("RANGERICONES", true);
- if (!isSupervisor()) {
- final JComponent cp = getMainPanel().getMiddleComponent();
- if (cp instanceof JScrollPane) {
- ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp);
- }
- }*/
+
+ /* setEnabledForAction("RANGERICONES", true);
+ if (!isSupervisor()) {
+ final JComponent cp = getMainPanel().getMiddleComponent();
+ if (cp instanceof JScrollPane) {
+ ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp);
+ }
+ }*/
buildTaskView();
}
@Override
protected FSigManageExeTools getExeToolManager() {
- if (toolMng_==null)
- toolMng_=new FSigManageExeTools(this);
+ if (toolMng_ == null) {
+ toolMng_ = new FSigManageExeTools(this);
+ }
return toolMng_;
}
-
/**
* Suppression des commandes par d\xE9faut dans Fudaa.
*/
protected void removeUnusedActions() {
-/* Issu de Fudaa-Prepro
- final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION");
- if (r != null) {
- r.removeAll();
- r.addMenuItem(MdlResource.getS("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z);
- r.addMenuItem(MdlResource.getS("Refaire"), "REFAIRE", false).setAccelerator(
- KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
- // normalement Ctrl-Y
- // r.addSeparator();
- //
- r.addMenuItem(MdlResource.getS("Copier"), "COPIER", false, KeyEvent.VK_C);
- r.addMenuItem(MdlResource.getS("Couper"), "COUPER", false, KeyEvent.VK_X);
- r.addMenuItem(MdlResource.getS("Coller"), "COLLER", false, KeyEvent.VK_V);
- // r.addMenuItem(M...
[truncated message content] |
|
From: <de...@us...> - 2013-01-05 00:04:49
|
Revision: 8185
http://fudaa.svn.sourceforge.net/fudaa/?rev=8185&view=rev
Author: deniger
Date: 2013-01-05 00:04:38 +0000 (Sat, 05 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-05 00:02:06 UTC (rev 8184)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-05 00:04:38 UTC (rev 8185)
@@ -90,7 +90,7 @@
}
//lancement de la triangulation dans un thread \xE0 part.
final CtuluTaskDelegate createTask = editor.getUi().createTask(getTitle());
- createTask.start(new CreateGridRunnable(panel, createTask.getMainStateReceiver()));
+ createTask.start(new CreateGridRunnable(panel, createTask.getStateReceiver()));
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-05 00:02:06 UTC (rev 8184)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-05 00:04:38 UTC (rev 8185)
@@ -31,7 +31,7 @@
super(EbliLib.getS("Afficher la vue 3D"), EbliResource.EBLI.getToolIcon("3d"), "SHOW_3D");
this.delegate = delegate;
setEnabled(true);
- super.setDefaultToolTip(EbliLib.getS("Afficher la vue 3D"));
+ super.setDefaultToolTip(MdlResource.getS("Afficher la vue 3D du maillage associ\xE9 au semis de points"));
super.setUnableToolTip(MdlResource.getS("Le semis doit \xEAtre maill\xE9 et Java3D install\xE9"));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 16:03:00
|
Revision: 8198
http://fudaa.svn.sourceforge.net/fudaa/?rev=8198&view=rev
Author: deniger
Date: 2013-01-10 16:02:52 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -213,8 +213,8 @@
CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getTriangleNodeAdapter());
//recherche des relations entre les noeuds du maillage et le semis actuel:
int[][] relations = synchProcess.getRelations(grid, progression);
+ model.setTriangleNodeAdapter(processor.getTriangleNodeAdapter());
model.setAltiIdxByGridPtIdx(relations);
- model.setAltiModel(processor.getTriangleNodeAdapter());
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -103,6 +103,14 @@
return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
}
+ /**
+ *
+ * @return true si un maillage est pr\xE9sent.
+ */
+ public boolean isGridCreated() {
+ return elementModel != null;
+ }
+
public ZCalqueMultiPointEditable getParentLayer() {
return parentLayer;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -6,12 +6,14 @@
import java.awt.Color;
import java.awt.Graphics2D;
import java.util.ArrayList;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
import org.fudaa.ctulu.gis.GISAttributeModelObjectInterface;
import org.fudaa.ebli.calque.BCalqueCacheManager;
import org.fudaa.ebli.calque.BCalqueCacheManagerSelection;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesConfigure;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesTraceConfigure;
+import org.fudaa.ebli.calque.ZCalqueGeometryLabelConfigure;
import org.fudaa.ebli.calque.ZModeleGeometry;
import org.fudaa.ebli.calque.ZModeleMultiPoint;
import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
@@ -24,8 +26,11 @@
import org.fudaa.ebli.controle.BConfigurableInterface;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.palette.BPalettePlage;
+import org.fudaa.ebli.trace.TraceIcon;
import org.fudaa.ebli.trace.TraceIconModel;
+import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.modeleur.action.CalqueCreateGridAction;
import org.fudaa.fudaa.modeleur.action.CalqueGridTriangleConfigurationAction;
import org.fudaa.fudaa.modeleur.grid.action.CreateIsoLinesAction;
@@ -95,10 +100,11 @@
@Override
protected BConfigurableInterface getAffichageConf() {
- final BConfigurableInterface[] sect = new BConfigurableInterface[2 + getNbSet()];
+ final BConfigurableInterface[] sect = new BConfigurableInterface[3 + getNbSet()];
sect[0] = new ZCalqueAffichageDonneesConfigure(this);
- sect[1] = new MdlCalqueMultiPointEditableConfigure(this);
- for (int i = 2; i < sect.length; i++) {
+ sect[1] = new ZCalqueGeometryLabelConfigure(this);
+ sect[2] = new MdlCalqueMultiPointEditableConfigure(this);
+ for (int i = 3; i < sect.length; i++) {
sect[i] = new ZCalqueAffichageDonneesTraceConfigure(this, i - 2);
}
return new BConfigurableComposite(sect, EbliLib.getS("Affichage"));
@@ -143,10 +149,32 @@
@Override
public void paintDonnees(Graphics2D _g, GrMorphisme _versEcran, GrMorphisme _versReel, GrBoite _clipReel) {
- super.paintDonnees(_g, _versEcran, _versReel, _clipReel);
+ if ((modele_ == null) || (modele_.getNombre() <= 0)) {
+ return;
+ }
+ // Trac\xE9 des surfaces
+// paintSurfaces(_g, _versEcran, _versReel, _clipReel);//pas la peine ici
+// paintLines(_clipReel, _versEcran, _g);//pas la peine ici
+ // Les icones sur les atomiques
+ //faudrait voir pour ne redesinner inutilement des points ...
+ paintIconsOnAtomics(_g, _versEcran, _versReel, _clipReel);
layerGridDelegate.paintDonnees(getWidth(), getHeight(), _g, _versEcran, _versReel, _clipReel);
+ paintLabelsOnAtomics(_g, _versEcran, _versReel, _clipReel);
}
+ @Override
+ protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
+ if (getLayerGridDelegate().isGridCreated() && isTraceIsoSurface()) {
+ MdlElementModel modele = getLayerGridDelegate().getGridLayer().modele();
+ int idx = modele.getTriangleNodeAdapter().getIdx(idxGeometry, idxPoint);
+ if (modele.isNodePaintedByIso(idx)) {
+ return false;
+ }
+ return true;
+ }
+ return super.isIconOnAtomicsPainted(idxGeometry, idxPoint);
+ }
+
/**
*
* @return true car ce claque pourra avoir le calque maillage comme calque enfant.
@@ -174,7 +202,16 @@
return res;
}
+ /**
+ * @param _idx
+ * @return null pour \xE9viter de configurer une ligne qui ne sera pas utilis\xE9.
+ */
@Override
+ public TraceLigneModel getLineModel(int _idx) {
+ return null;
+ }
+
+ @Override
public void initFrom(EbliUIProperties _p) {
super.initFrom(_p);
if (_p.isDefined("traceIsoLine")) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -4,6 +4,7 @@
package org.fudaa.fudaa.modeleur.grid;
import java.util.Arrays;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.CtuluLibGeometrie;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.dodico.ef.EfElement;
@@ -31,11 +32,33 @@
* une repr\xE9sentation des points du semis sous forme de liste.
*/
private GisZoneCollectionAsListPointAdapter triangleNodeAdapter;
+ /**
+ * Contient la liste des indices des points (issus de triangleNodeAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial
+ * qui correspondantent pr\xE9cisement \xE0 un point du maillage
+ */
+ CtuluListSelection gisNodePaintedInIso;
public void setAltiIdxByGridPtIdx(int[][] relations) {
this.altiIdxByGridPtIdx = relations;
+ gisNodePaintedInIso = new CtuluListSelection();
+ for (int i = 0; i < relations.length; i++) {
+ int[] is = relations[i];
+ if (is != null && is.length == 1) {
+ gisNodePaintedInIso.add(is[0]);
+ }
+ }
}
+ /**
+ * pour des raisons de perf permet de savoir si un point du TriangleNodeAdapter correspond \xE0 un point du
+ *
+ * @param idxInCollection
+ * @return
+ */
+ public boolean isNodePaintedByIso(int idxInCollection) {
+ return gisNodePaintedInIso != null && gisNodePaintedInIso.isSelected(idxInCollection);
+ }
+
public void setPainted(int[] idxElt, boolean painted) {
if (idxElt == null) {
return;
@@ -111,7 +134,7 @@
return num / den;
}
- public void setAltiModel(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
+ public void setTriangleNodeAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
this.triangleNodeAdapter = triangleNodeAdapter;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -55,7 +55,7 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
/**
@@ -113,7 +113,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() == null) {
+ if (!delegate.isGridCreated()) {
delegate.getUI().warn(getTitle(), MdlResource.getS("Pour cr\xE9er des isolignes, le maillage correspondant doit \xEAtre cr\xE9\xE9"), false);
return;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -25,12 +25,12 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
delegate.clearGrid();
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -26,7 +26,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
final int[] selectedElementIdx = delegate.getGridLayer().getSelectedElementIdx();
if (ArrayUtils.isNotEmpty(selectedElementIdx)) {
delegate.setEltPainted(selectedElementIdx, true);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -26,7 +26,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
final int[] selectedElementIdx = delegate.getGridLayer().getSelectedElementIdx();
if (ArrayUtils.isNotEmpty(selectedElementIdx)) {
delegate.setEltPainted(selectedElementIdx, false);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -42,7 +42,7 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
@Override
@@ -51,7 +51,7 @@
delegate.getUI().error(getTitle(), BJava3DVersionTest.getHtmlInstallMessage(true), false);
return;
}
- if (delegate.getGridLayer() == null) {
+ if (!delegate.isGridCreated()) {
delegate.getUI().error(getTitle(), MdlResource.getS("Le semis doit \xEAtre maill\xE9"), false);
return;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -49,7 +49,9 @@
setDestructible(true);
installActions();
updatePositionDataBathy();
- setLegende(_editor.getPanel().getCqLegend());
+ if (_editor != null) {
+ setLegende(_editor.getPanel().getCqLegend());
+ }
//a voir si a garder:
BCalqueCacheManager.installDefaultCacheManager(this);
BCalqueCacheManagerSelection.installDefaultCacheManagerSelection(this);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -11,6 +11,7 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -33,103 +34,115 @@
import org.fudaa.fudaa.modeleur.layer.MdlModel2dProfile;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ControllerBief;
-
/**
- * Ce panneau permet le visionnage d'un set de profils en 2D.
- * La vue est suivant l'axe Z.
- *
+ * Ce panneau permet le visionnage d'un set de profils en 2D. La vue est suivant l'axe Z.
+ *
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
*/
public class VueProfileSet extends JPanel /*implements ProfilContainerListener*/ {
-
- /** Le controller de la fen\xEAtre 1d. */
+
+ /**
+ * Le controller de la fen\xEAtre 1d.
+ */
protected ControllerBief controllerBief_;
- /** Le calque des profils, pour mise a jour du profil selectionn\xE9. */
- List<MdlLayer2dProfile> layers_=new ArrayList<MdlLayer2dProfile>();
+ /**
+ * Le calque des profils, pour mise a jour du profil selectionn\xE9.
+ */
+ List<MdlLayer2dProfile> layers_ = new ArrayList<MdlLayer2dProfile>();
// MdlLayer2dProfile profils_;
- List<GISZoneCollectionLigneBrisee> zones_=new ArrayList<GISZoneCollectionLigneBrisee>();
- /** La liste des listeners de zones */
- List<GISZoneListener> zonesListeners_=new ArrayList<GISZoneListener>();
- /** Le profil set associ\xE9 */
+ List<GISZoneCollectionLigneBrisee> zones_ = new ArrayList<GISZoneCollectionLigneBrisee>();
+ /**
+ * La liste des listeners de zones
+ */
+ List<GISZoneListener> zonesListeners_ = new ArrayList<GISZoneListener>();
+ /**
+ * Le profil set associ\xE9
+ */
MdlCompareProfileSet profSet;
- /** Le composant des calques */
+ /**
+ * Le composant des calques
+ */
ZEbliCalquesPanel pnLayers_;
- /** Le profil selectionn\xE9 */
- int selProfilId=-1;
- /** Les listeners de selection chang\xE9e */
- Set<ListSelectionListener> listeners_=new HashSet<ListSelectionListener>();
-
/**
- * Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones
- * qui ne sont pas concern\xE9s par la vue.
+ * Le profil selectionn\xE9
*/
+ int selProfilId = -1;
+ /**
+ * Les listeners de selection chang\xE9e
+ */
+ Set<ListSelectionListener> listeners_ = new HashSet<ListSelectionListener>();
+
+ /**
+ * Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones qui ne sont pas concern\xE9s par la vue.
+ */
class MdlProfileLayerModel extends MdlModel2dProfile {
- HashSet<Integer> idxVisibles=new HashSet<Integer>();
- HashMap<Integer,Integer> idxgeom2idxprof=new HashMap<Integer, Integer>();
-
+
+ HashSet<Integer> idxVisibles = new HashSet<Integer>();
+ HashMap<Integer, Integer> idxgeom2idxprof = new HashMap<Integer, Integer>();
+
public MdlProfileLayerModel(GISZoneCollectionLigneBrisee _zone) {
super(_zone, null, null);
}
-
+
public void addVisibleProfile(int _idxGeom) {
idxVisibles.add(_idxGeom);
}
-
+
public void setProfileId(int _idxGeom, int _idxProf) {
idxgeom2idxprof.put(_idxGeom, _idxProf);
}
-
+
public int getProfileId(int _idxGeom) {
return idxgeom2idxprof.get(_idxGeom);
}
@Override
public boolean isGeometryVisible(int _idxGeom) {
- if (idxVisibles.contains(_idxGeom))
+ if (idxVisibles.contains(_idxGeom)) {
return super.isGeometryVisible(_idxGeom);
+ }
return false;
}
}
-
+
public VueProfileSet(CtuluUI _impl) {
setLayout(new BorderLayout());
-
- pnLayers_=new ZEbliCalquesPanel(_impl);
+
+ pnLayers_ = new ZEbliCalquesPanel(_impl);
pnLayers_.getScene().setRestrictedToCalqueActif(false);
pnLayers_.getScene().addSelectionListener(new ZSelectionListener() {
public void selectionChanged(ZSelectionEvent _evt) {
- int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
- if (idScene==-1) {
- selProfilId=-1;
+ int idScene = pnLayers_.getScene().getLayerSelection().getMinIndex();
+ if (idScene == -1) {
+ selProfilId = -1;
+ } else {
+ MdlProfileLayerModel mdl = (MdlProfileLayerModel) pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
+ int idGeom = pnLayers_.getScene().sceneId2LayerId(idScene);
+ selProfilId = mdl.getProfileId(idGeom);
}
- else {
- MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
- int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
- selProfilId=mdl.getProfileId(idGeom);
- }
fireSelectionChanged();
}
});
- List<JComponent> buttons=EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
-
- BuSpecificBar tb=new BuSpecificBar();
+ List<JComponent> buttons = EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
+
+ BuSpecificBar tb = new BuSpecificBar();
tb.addTools(buttons.toArray(new JComponent[0]));
-
+
add(tb, BorderLayout.NORTH);
add(pnLayers_, BorderLayout.CENTER);
-
- setPreferredSize(new Dimension(200,200));
+
+ setPreferredSize(new Dimension(200, 200));
}
-
+
public void addSelectionListener(ListSelectionListener _l) {
listeners_.add(_l);
}
-
+
public void removeSelectionListener(ListSelectionListener _l) {
listeners_.remove(_l);
}
-
+
private void fireSelectionChanged() {
for (ListSelectionListener l : listeners_) {
l.valueChanged(new ListSelectionEvent(this, getSelectedProfile(), getSelectedProfile(), false));
@@ -139,10 +152,9 @@
public void restaurer() {
pnLayers_.restaurer();
}
-
+
/**
- * G\xE9n\xE8re un arbre de calques pour afficher le contenu du bief. Et ajoute ce
- * calque \xE0 l'instance (en ayant pr\xE9c\xE9dement supprim\xE9 les pr\xE9c\xE9dents).
+ * G\xE9n\xE8re un arbre de calques pour afficher le contenu du bief. Et ajoute ce calque \xE0 l'instance (en ayant pr\xE9c\xE9dement supprim\xE9 les pr\xE9c\xE9dents).
*/
private void updateView() {
// On construit autant de calques qu'il y a de zones. Les profils n'appartenant
@@ -150,80 +162,88 @@
zones_.clear();
zonesListeners_.clear();
layers_.clear();
-
+
pnLayers_.removeAllCalqueDonnees();
- if (profSet==null) return;
-
- List<MdlProfileLayerModel> mdls=new ArrayList<MdlProfileLayerModel>();
-
- for (int i=0; i<profSet.getNbProfil(); i++) {
- GISZoneCollectionLigneBrisee zone=profSet.getProfil(i).getZone();
- int index=zones_.indexOf(zone);
+ if (profSet == null) {
+ return;
+ }
+
+ List<MdlProfileLayerModel> mdls = new ArrayList<MdlProfileLayerModel>();
+
+ for (int i = 0; i < profSet.getNbProfil(); i++) {
+ GISZoneCollectionLigneBrisee zone = profSet.getProfil(i).getZone();
+ int index = zones_.indexOf(zone);
MdlProfileLayerModel mdl;
- if (index==-1) {
+ if (index == -1) {
zonesListeners_.add(zone.getListener());
- mdl=new MdlProfileLayerModel(zone);
+ mdl = new MdlProfileLayerModel(zone);
zones_.add(zone);
mdls.add(mdl);
+ } else {
+ mdl = mdls.get(index);
}
- else {
- mdl=mdls.get(index);
- }
mdl.addVisibleProfile(profSet.getProfil(i).getGeomId());
mdl.setProfileId(profSet.getProfil(i).getGeomId(), i);
}
-
- for (int i=0; i<mdls.size(); i++) {
- MdlLayer2dProfile layer=new MdlLayer2dProfile(null);
+
+ for (int i = 0; i < mdls.size(); i++) {
+ MdlLayer2dProfile layer = new MdlLayer2dProfile(null);
layer.modele(mdls.get(i));
pnLayers_.addCalque(layer);
layers_.add(layer);
}
-
- pnLayers_.restaurer();
+ EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ pnLayers_.restaurer();
+ }
+ });
+
}
/**
- * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9
- * par zone.
+ * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9 par zone.
*/
public void restoreZoneListeners() {
- for (int i=0; i<zonesListeners_.size(); i++) {
+ for (int i = 0; i < zonesListeners_.size(); i++) {
zones_.get(i).setListener(zonesListeners_.get(i));
}
}
public void setProfilSet(MdlCompareProfileSet _profSet) {
- if (profSet==_profSet) return;
-
- if (profSet!=null) {
+ if (profSet == _profSet) {
+ return;
+ }
+
+ if (profSet != null) {
restoreZoneListeners();
}
-
- profSet=_profSet;
- selProfilId=-1;
-
+
+ profSet = _profSet;
+ selProfilId = -1;
+
updateView();
}
-
+
public void setSelectedProfile(int _idxProfil) {
- if (_idxProfil==selProfilId || profSet==null) return;
-
- selProfilId=_idxProfil;
-
+ if (_idxProfil == selProfilId || profSet == null) {
+ return;
+ }
+
+ selProfilId = _idxProfil;
+
if (selProfilId != -1) {
- GISZoneCollectionLigneBrisee zone=profSet.getProfil(_idxProfil).getZone();
- int geomId=profSet.getProfil(_idxProfil).getGeomId();
- int zoneId=zones_.indexOf(zone);
- MdlLayer2dProfile layer=layers_.get(zoneId);
- int sceneId=pnLayers_.getScene().layerId2SceneId(layer, geomId);
+ GISZoneCollectionLigneBrisee zone = profSet.getProfil(_idxProfil).getZone();
+ int geomId = profSet.getProfil(_idxProfil).getGeomId();
+ int zoneId = zones_.indexOf(zone);
+ MdlLayer2dProfile layer = layers_.get(zoneId);
+ int sceneId = pnLayers_.getScene().layerId2SceneId(layer, geomId);
pnLayers_.getScene().setSelection(new int[]{sceneId});
- }
- else {
+ } else {
pnLayers_.getScene().clearSelection();
}
}
-
+
public int getSelectedProfile() {
return selProfilId;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -171,9 +171,10 @@
((ZModeleMultiPointEditable) thisCalque.modeleDonnees()).getGeomData().addAll(new GISDataModelZoneAdapter(zone, null), null, true);
}
MdlElementModel model = (MdlElementModel) _saver.getUI().get(KEY_ELTMODEL);
+ GISZoneCollection points = (GISZoneCollection) thisCalque.modeleDonnees().getGeomData();
+ points.updateListeners();
if (model != null) {
- GISZoneCollection points = (GISZoneCollection) thisCalque.modeleDonnees().getGeomData();
- model.setAltiModel(new TriangleNodeAdapter(points));
+ model.setTriangleNodeAdapter(new TriangleNodeAdapter(points));
thisCalque.getLayerGridDelegate().setGridLayer(model);
//on r\xE9initialise les propri\xE9t\xE9s por
thisCalque.initFrom(_saver.getUI());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 12:45:17
|
Revision: 8206
http://fudaa.svn.sourceforge.net/fudaa/?rev=8206&view=rev
Author: deniger
Date: 2013-01-14 12:45:08 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -25,6 +25,7 @@
import org.fudaa.fudaa.modeleur.grid.AbstractCalqueCreateGridProcessor;
import org.fudaa.fudaa.modeleur.grid.CalqueCreateGridPoly2TriProcessor;
import org.fudaa.fudaa.modeleur.grid.CalqueCreateGridTriangleProcessor;
+import org.fudaa.fudaa.modeleur.grid.CalqueGridSemisSynchronizeProcess.Result;
import org.fudaa.fudaa.modeleur.grid.GridChooseToolAndContourConvexHullPanel;
import org.fudaa.fudaa.modeleur.grid.MdlCalqueMultiPointEditable;
import org.fudaa.fudaa.modeleur.grid.MdlElementModel;
@@ -195,9 +196,11 @@
((FSigEditor) layer.getEditor()).getPanel().getArbreCalqueModel().setSelectionCalque(layer);
}
}
+ private double eps = 1e-3;
@Override
public void run() {
+ eps=panel.getEps();
final LinearRing finalConvexHull = panel.getSelectedConvexHull();
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (panel.isTriangleSelected()) {
@@ -205,16 +208,20 @@
} else {
processor = new CalqueCreateGridPoly2TriProcessor(layer.modeleDonnees(), getUI(), finalContourLayer, finalConvexHull);
}
+ processor.setEps(eps);
+ //TODO boolean
//on execute la triangulation et on lit le maillage
final EfGridInterface grid = processor.process(progression);
final MdlElementModel model = new MdlElementModel(grid);
//si non null, on fait des calculs suppl\xE9mentaires:
if (grid != null) {
- CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getTriangleNodeAdapter());
+ CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getPointsAdapter());
+ synchProcess.setEps(eps);
//recherche des relations entre les noeuds du maillage et le semis actuel:
- int[][] relations = synchProcess.getRelations(grid, progression);
- model.setTriangleNodeAdapter(processor.getTriangleNodeAdapter());
- model.setAltiIdxByGridPtIdx(relations);
+ Result relations = synchProcess.getRelations(grid, progression);
+ model.setPointsAdapter(processor.getPointsAdapter());
+ model.setAltiIdxByGridPtIdx(relations.getRelations());
+ model.setInitPointPaintedByMesh(relations.getInitPointPaintedByMesh());
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -13,8 +13,11 @@
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISVisitorGeometryCollector;
+import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
+import org.fudaa.ctulu.gis.process.GisZoneCollectionPointDoublonRemover;
+import org.fudaa.ctulu.gis.process.PointsMapping;
+import org.fudaa.ctulu.gis.process.PointsMappingEmpty;
import org.fudaa.dodico.ef.EfGridInterface;
-import org.fudaa.dodico.ef.io.triangle.TriangleNodeAdapter;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.objet.CExecListener;
import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
@@ -26,22 +29,33 @@
*/
public abstract class AbstractCalqueCreateGridProcessor implements CExecListener {
- final TriangleNodeAdapter triangleNodeAdapter;
- final CtuluUI ui;
- final ZCalqueLigneBrisee contour;
- final LinearRing convexHull;
+ protected final CtuluUI ui;
+ protected final ZCalqueLigneBrisee contour;
+ protected final LinearRing convexHull;
+ protected double eps = 1e-3;
+ private final GisZoneCollectionAsListPointAdapter pointsAdapter;
+ private PointsMapping pointsMapping;
public AbstractCalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
this.ui = ui;
this.convexHull = convexHull;
this.contour = contour;
- triangleNodeAdapter = new TriangleNodeAdapter(points.getGeomData());
+ this.pointsAdapter = new GisZoneCollectionAsListPointAdapter(points.getGeomData());
}
- public final TriangleNodeAdapter getTriangleNodeAdapter() {
- return triangleNodeAdapter;
+ public PointsMapping getPointsMapping() {
+ return pointsMapping;
}
+ public GisZoneCollectionAsListPointAdapter getPointsAdapter() {
+ return pointsAdapter;
+ }
+
+ public void setEps(double epsForDoublon) {
+ this.eps = epsForDoublon;
+ }
+
+
@Override
public final void setProcess(Process _p) {
this.p = _p;
@@ -74,7 +88,16 @@
return true;
}
- public final TriangulationPolyDataNodeDefault createPolyData() {
+ protected PointsMapping createMapping(ProgressionInterface prog) {
+ pointsMapping = null;
+ GisZoneCollectionPointDoublonRemover remover = new GisZoneCollectionPointDoublonRemover(pointsAdapter, eps);
+ pointsMapping = remover.createFiltered(prog);
+
+ return pointsMapping;
+ }
+
+ public final TriangulationPolyDataNodeDefault createPolyData(ProgressionInterface prog) {
+
TriangulationPolyDataNodeDefault data = new TriangulationPolyDataNodeDefault();
if (contour != null) {
GISVisitorGeometryCollector collector = new GISVisitorGeometryCollector(GISLib.MASK_POLYGONE);
@@ -93,9 +116,8 @@
data.setHoles(holes);
data.setRings(linearRings);
}
-
- data.setNodeData(triangleNodeAdapter);
-
+ PointsMapping filteredPoints = createMapping(prog);
+ data.setNodeData(filteredPoints);
data.setUseZAsAttribute(false);
return data;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -24,28 +24,29 @@
/**
* Pas complet: laisser si repris mais ne fonctionne pas comme attendu. Le chemin en dur vers gmsh est laiss\xE9 ( voir le TODO).
+ *
* @author Frederic Deniger
*/
-public class CalqueCreateGridGmshProcessor extends AbstractCalqueCreateGridProcessor{
-
-
+public class CalqueCreateGridGmshProcessor extends AbstractCalqueCreateGridProcessor {
+
public CalqueCreateGridGmshProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
super(points, ui, contour, convexHull);
}
-
+
@Override
public EfGridInterface process(ProgressionInterface prog) {
- try {
+ try {
stop = false;
File tmpDir = CtuluLibFile.createTempDir();
String fileName = null;
CExec exe = new CExec();
exe.setExecDirectory(tmpDir);
-
+
fileName = "in.geo";
- TriangulationPolyDataNodeDefault data = createPolyData();
+ TriangulationPolyDataNodeDefault data = createPolyData(prog);
File polyFile = new File(tmpDir, fileName);
GmshGeoWriter writer = new GmshGeoWriter();
+ writer.setEps(eps);
CtuluIOOperationSynthese write = writer.write(data, polyFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
@@ -82,5 +83,4 @@
}
return null;
}
-
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -24,10 +24,10 @@
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.EfNode;
import org.fudaa.dodico.ef.impl.EfGrid;
-import org.fudaa.dodico.ef.io.common.TriangulationConvexHullBuilder;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataInterface;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContent;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContentBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationConvexHullBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataInterface;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContent;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContentBuilder;
import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
import org.fudaa.ebli.calque.ZModeleMultiPoint;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
@@ -54,7 +54,7 @@
@Override
public EfGridInterface process(ProgressionInterface prog) {
stop = false;
- TriangulationPolyDataInterface data = createPolyData();
+ TriangulationPolyDataInterface data = createPolyData(prog);
ProgressionUpdater updater = new ProgressionUpdater(prog);
updater.majProgessionStateOnly(MdlResource.getS("Construction des donn\xE9es d'entr\xE9e"));
@@ -69,14 +69,11 @@
data = builder.addConvexHullIfNeeded(data);
int idxExternPoly = builder.getExternPolygonIdx(data);
updater.majProgessionStateOnly(MdlResource.getS("Construction des points"));
- TreeSet<Coordinate> addedCoordinate = new TreeSet<Coordinate>(new CoordinateComparator());
+ TreeSet<Coordinate> addedCoordinate = new TreeSet<Coordinate>(new CoordinateComparator(eps));
LinearRing externRing = data.getPoly(idxExternPoly);
SIRtreePointInRing isInMainRing = new SIRtreePointInRing(externRing);
List<SIRtreePointInRing> isInHoles = new ArrayList<SIRtreePointInRing>();
List<PolygonPoint> polygonPoints = createPolygonPoints(externRing, addedCoordinate);
- boolean valid = externRing.isValid();
- boolean simple = externRing.isSimple();
- boolean ccW = CGAlgorithms.isCCW(externRing.getCoordinates());
Polygon polygon = new Polygon(polygonPoints);
if (data.getNbPoly() > 1) {
for (int idxPoly = 0; idxPoly < data.getNbPoly(); idxPoly++) {
@@ -86,7 +83,7 @@
}
}
}
- int nbPoints = data.getNbPoints();
+ int nbPoints = data.getPtsNb();
updater.setValue(10, nbPoints);
for (int idxPt = 0; idxPt < nbPoints; idxPt++) {
double x = data.getPtX(idxPt);
@@ -115,7 +112,7 @@
return createGrid(polygon, prog);
} else {
- TriangulationUniqueDataContent content = new TriangulationUniqueDataContentBuilder(data).build(null);
+ TriangulationUniqueDataContent content = new TriangulationUniqueDataContentBuilder(data, eps).build(prog);
List<TriangulationPoint> pointSet = new ArrayList<TriangulationPoint>();
for (int i = 0; i < content.getNbPoints(); i++) {
pointSet.add(new TPoint(content.getX(i), content.getY(i)));
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -13,9 +13,11 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.gis.process.PointsMapping;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.impl.EFGridArrayZ;
import org.fudaa.dodico.ef.io.triangle.TriangleEleNodeGridCreator;
+import org.fudaa.dodico.ef.io.triangle.TriangleNodeSupportAdapter;
import org.fudaa.dodico.ef.io.triangle.TriangleNodeWriter;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.ef.io.triangle.TrianglePolyWriter;
@@ -30,20 +32,19 @@
* @author Frederic Deniger
*/
public class CalqueCreateGridTriangleProcessor extends AbstractCalqueCreateGridProcessor {
-
+
public static String getTriangleExe() {
return MdlPreferences.MDL.getStringProperty("grid.triangle.path");
}
-
+
public static boolean isTriangleExeConfigured() {
return getTriangleExe() != null && new File(getTriangleExe()).exists();
}
-
+
public CalqueCreateGridTriangleProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
super(points, ui, contour, convexHull);
}
-
-
+
@Override
public EfGridInterface process(ProgressionInterface prog) {
if (!isTriangleExeConfigured()) {
@@ -59,7 +60,9 @@
fileName = "in.node";
File nodeFile = new File(tmpDir, fileName);
TriangleNodeWriter writer = new TriangleNodeWriter();
- CtuluIOOperationSynthese write = writer.write(triangleNodeAdapter, nodeFile, prog);
+ //construction des points filtr\xE9s.
+ PointsMapping points = createMapping(prog);
+ CtuluIOOperationSynthese write = writer.write(new TriangleNodeSupportAdapter(points), nodeFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
return null;
@@ -67,9 +70,10 @@
exe.setCommand(new String[]{getTriangleExe(), fileName});
} else {
fileName = "in.poly";
- TriangulationPolyDataNodeDefault data = createPolyData();
+ TriangulationPolyDataNodeDefault data = createPolyData(prog);
File polyFile = new File(tmpDir, fileName);
TrianglePolyWriter writer = new TrianglePolyWriter();
+ writer.setEps(super.eps);
CtuluIOOperationSynthese write = writer.write(data, polyFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
@@ -85,9 +89,9 @@
if (prog != null) {
prog.setDesc(MdlResource.getS("Ex\xE9cution du mailleur"));
}
-
-
-
+
+
+
exe.setListener(this);
exe.exec();
if (stop) {
@@ -114,5 +118,4 @@
}
return null;
}
-
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -4,7 +4,9 @@
package org.fudaa.fudaa.modeleur.grid;
import com.vividsolutions.jts.geom.Coordinate;
+import gnu.trove.TIntArrayList;
import java.util.TreeMap;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
@@ -26,27 +28,71 @@
private final GisZoneCollectionAsListPointAdapter zone;
private double eps = 1e-3;
+ public static class Result {
+
+ //un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ int[][] relations;
+ /**
+ * contient la liste des points du semis qui sera support\xE9 par un point du maillage.
+ */
+ CtuluListSelection initPointPaintedByMesh;
+
+ public Result(int[][] relations, CtuluListSelection initPointPaintedByMesh) {
+ this.relations = relations;
+ this.initPointPaintedByMesh = initPointPaintedByMesh;
+ }
+
+ /**
+ * un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ * @return
+ */
+ public int[][] getRelations() {
+ return relations;
+ }
+
+ /**
+ *
+ * @return les points de la zone support\xE9 par un unique point du maillage.
+ */
+ public CtuluListSelection getInitPointPaintedByMesh() {
+ return initPointPaintedByMesh;
+ }
+ }
+
public CalqueGridSemisSynchronizeProcess(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
this.zone = triangleNodeAdapter;
}
+ public void setEps(double eps) {
+ this.eps = eps;
+ }
+
/**
*
*
* @param grid
* @return un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
*/
- public int[][] getRelations(EfGridInterface grid, ProgressionInterface prog) {
+ public Result getRelations(EfGridInterface grid, ProgressionInterface prog) {
if (grid == null) {
- return new int[0][0];
+ return new Result(new int[0][0], new CtuluListSelection());
}
int[][] res = new int[grid.getPtsNb()][];
+
ProgressionUpdater updater = new ProgressionUpdater(prog);
- TreeMap<Coordinate, Integer> index = new TreeMap<Coordinate, Integer>(new CoordinateComparator(eps));
+ TreeMap<Coordinate, TIntArrayList> index = new TreeMap<Coordinate, TIntArrayList>(new CoordinateComparator(eps));
updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des indices"));
updater.setValue(10, zone.getPtsNb());
+ //indique les points de la zone qui seront repr\xE9sent\xE9s par un unique point du maillage.
+ CtuluListSelection initPointPaintedByMesh = new CtuluListSelection(zone.getPtsNb());
for (int i = 0; i < zone.getPtsNb(); i++) {
- index.put(new Coordinate(zone.getPtX(i), zone.getPtY(i)), i);
+ final Coordinate coordinate = new Coordinate(zone.getPtX(i), zone.getPtY(i));
+ TIntArrayList ptIdx = index.get(coordinate);
+ if (ptIdx == null) {
+ ptIdx = new TIntArrayList();
+ index.put(coordinate, ptIdx);
+ }
+ ptIdx.add(i);
updater.majAvancement();
}
updater.setValue(10, grid.getPtsNb());
@@ -54,9 +100,13 @@
for (int i = 0; i < grid.getPtsNb(); i++) {
Coordinate gridCoor = new Coordinate(grid.getPtX(i), grid.getPtY(i));
- Integer idx = index.get(gridCoor);
- if (idx != null) {
- res[i] = new int[]{idx};
+ TIntArrayList idxs = index.get(gridCoor);
+ if (idxs != null) {
+ for (int j = idxs.size() - 1; j >= 0; j--) {
+ initPointPaintedByMesh.add(idxs.get(j));
+ }
+ //le premier point de la collection est pris.
+ res[i] = new int[]{idxs.get(0)};
} else {
rescanElt = true;
}
@@ -74,7 +124,7 @@
}
//on va affecter a des points, les m\xEAme r\xE9sultats que ceux de l'\xE9l\xE9ments.
- return res;
+ return new Result(res, initPointPaintedByMesh);
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -5,6 +5,7 @@
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuTextField;
import com.vividsolutions.jts.geom.LinearRing;
import java.awt.Component;
import java.awt.event.ItemEvent;
@@ -32,22 +33,28 @@
* @author Frederic Deniger
*/
public class GridChooseToolAndContourConvexHullPanel extends CtuluDialogPanel {
-
+
JComboBox cbTriangulateur;
JComboBox cbLayer;
JComboBox cbConvexHull;
+ BuTextField tfEps;
CtuluFileChooserPanel chooseExe;
-
+
public GridChooseToolAndContourConvexHullPanel(MdlVisuPanel visuPanel) {
super(false);
setHelpText(MdlResource.getS("Choisir le calque qui d\xE9terminera le contour et les trous du maillage"));
setLayout(new BuGridLayout(2, 5, 5));
+ BuLabel chooseEps = addLabel(MdlResource.getS("Epsilon"));
+ chooseEps.setToolTipText(MdlResource.getS("Distance en-dessous de laquelle 2 points sont consid\xE9r\xE9s comme \xE9gaux"));
+ tfEps = addDoubleText();
+ tfEps.setText("0.001");
+ tfEps.setToolTipText(chooseEps.getToolTipText());
BuLabel chooseMailleur = addLabel(MdlResource.getS("Triangulateur"));
chooseMailleur.setToolTipText(MdlResource.getS("<html><body>Choisi le triangulateur<br>Triangle est plus robuste et mieux adapt\xE9 au volume important.<br>Si vous utiliser Triangle, vous devez t\xE9l\xE9charger un ex\xE9cutable.<br>https://www.cs.cmu.edu/~quake/triangle.html"));
cbTriangulateur = new JComboBox(TriangulateurEnum.values());
add(cbTriangulateur);
chooseExe = addFileChooserPanel(this, MdlResource.getS("Chemin pour Triangle") + ": ", false, false);
-
+
cbTriangulateur.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
@@ -88,11 +95,11 @@
}
updateChooseExecState();
}
-
+
protected final void updateChooseExecState() {
chooseExe.setEnabled(isTriangleSelected());
}
-
+
@Override
public boolean isDataValid() {
if (!isTriangleSelected()) {
@@ -106,9 +113,18 @@
setErrorText(MdlResource.getS("Le chemin vers l'ex\xE9cutable Triangle n'existe pas: {0}", choosenFile.getAbsolutePath()));
return false;
}
+ Double value = getEps();
+ if (value == null || value < 0) {
+ setErrorText(MdlResource.getS("Une valeur strictement positive pour epsilon est requise"));
+ return false;
+ }
return super.isDataValid();
}
-
+
+ public Double getEps() {
+ return (Double) tfEps.getValue();
+ }
+
@Override
public void apply() {
super.apply();
@@ -116,30 +132,30 @@
File choosenFile = chooseExe.getFile();
if (choosenFile != null) {
MdlPreferences.MDL.putStringProperty("grid.triangle.path", choosenFile.getAbsolutePath());
-
+
}
}
MdlPreferences.MDL.putStringProperty("grid.triangulateur.used", isTriangleSelected() ? "triangle" : "interne");
MdlPreferences.MDL.writeIniFile();
}
-
+
private boolean isTriangleLastUsed() {
return "triangle".equals(MdlPreferences.MDL.getStringProperty("grid.triangulateur.used"));
}
-
+
public boolean isTriangleSelected() {
return TriangulateurEnum.TRIANGLE.equals(cbTriangulateur.getSelectedItem());
-
-
+
+
}
-
+
private class LinearRingCellRenderer extends CtuluCellTextRenderer {
-
+
@Override
public Component getListCellRendererComponent(JList _list, Object _value, int _index, boolean _isSelected, boolean _cellHasFocus) {
return super.getListCellRendererComponent(_list, getValue(_value, _index), _index, _isSelected, _cellHasFocus);
}
-
+
protected String getValue(Object _value, int selectedIdx) {
if (_value == null) {
return MdlResource.getS("Aucun");
@@ -161,7 +177,7 @@
return _value.toString();
}
}
-
+
protected void updateConvexHullCb() {
ZCalqueLigneBrisee selectedLayer = getSelectedLayer();
if (selectedLayer == null) {
@@ -170,13 +186,13 @@
cbConvexHull.setModel(new LinearRingComboBoxModel(selectedLayer));
cbConvexHull.setSelectedIndex(0);
}
-
+
}
-
+
public ZCalqueLigneBrisee getSelectedLayer() {
return cbLayer == null ? null : (ZCalqueLigneBrisee) cbLayer.getSelectedItem();
}
-
+
public LinearRing getSelectedConvexHull() {
return cbConvexHull == null ? null : (LinearRing) cbConvexHull.getSelectedItem();
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -166,7 +166,7 @@
protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
if (getLayerGridDelegate().isGridCreated() && isTraceIsoSurface()) {
MdlElementModel modele = getLayerGridDelegate().getGridLayer().modele();
- int idx = modele.getTriangleNodeAdapter().getIdx(idxGeometry, idxPoint);
+ int idx = modele.getPointsAdapter().getIdx(idxGeometry, idxPoint);
if (modele.isNodePaintedByIso(idx)) {
return false;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -31,27 +31,28 @@
/**
* une repr\xE9sentation des points du semis sous forme de liste.
*/
- private GisZoneCollectionAsListPointAdapter triangleNodeAdapter;
+ private GisZoneCollectionAsListPointAdapter pointsAdapter;
/**
- * Contient la liste des indices des points (issus de triangleNodeAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial
- * qui correspondantent pr\xE9cisement \xE0 un point du maillage
+ * Contient la liste des indices des points (issus de pointsAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial qui
+ * correspondantent pr\xE9cisement \xE0 un point du maillage
*/
CtuluListSelection gisNodePaintedInIso;
public void setAltiIdxByGridPtIdx(int[][] relations) {
this.altiIdxByGridPtIdx = relations;
- gisNodePaintedInIso = new CtuluListSelection();
- for (int i = 0; i < relations.length; i++) {
- int[] is = relations[i];
- if (is != null && is.length == 1) {
- gisNodePaintedInIso.add(is[0]);
- }
- }
}
/**
- * pour des raisons de perf permet de savoir si un point du TriangleNodeAdapter correspond \xE0 un point du
*
+ * @param initPointPaintedByMesh les points de la zone de points correspondant \xE0 un unique point du maillage.
+ */
+ public void setInitPointPaintedByMesh(CtuluListSelection initPointPaintedByMesh) {
+ this.gisNodePaintedInIso = initPointPaintedByMesh;
+ }
+
+ /**
+ * pour des raisons de perf permet de savoir si un point du PointsAdapter correspond \xE0 un point du
+ *
* @param idxInCollection
* @return
*/
@@ -113,7 +114,7 @@
return 0;
}
if (idxs.length == 1) {
- return triangleNodeAdapter.getValue(idxs[0], idxAttribute);
+ return pointsAdapter.getValue(idxs[0], idxAttribute);
}
//on interpole:
double num = 0;
@@ -124,24 +125,29 @@
// ptIdx est l'indice du point de reference
final int ptIdx = idxs[j];
if (ptIdx >= 0) {
- final double xref = triangleNodeAdapter.getPtX(ptIdx);
- final double yref = triangleNodeAdapter.getPtY(ptIdx);
+ final double xref = pointsAdapter.getPtX(ptIdx);
+ final double yref = pointsAdapter.getPtY(ptIdx);
final double dist = CtuluLibGeometrie.getD2(xref, yref, ptX, ptY);
- num += triangleNodeAdapter.getValue(ptIdx, idxAttribute) / dist;
+ num += pointsAdapter.getValue(ptIdx, idxAttribute) / dist;
den += 1d / dist;
}
}
return num / den;
}
- public void setTriangleNodeAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
- this.triangleNodeAdapter = triangleNodeAdapter;
+ public void setPointsAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
+ this.pointsAdapter = triangleNodeAdapter;
}
- public GisZoneCollectionAsListPointAdapter getTriangleNodeAdapter() {
- return triangleNodeAdapter;
+ public GisZoneCollectionAsListPointAdapter...
[truncated message content] |
|
From: <de...@us...> - 2013-01-15 00:16:15
|
Revision: 8208
http://fudaa.svn.sourceforge.net/fudaa/?rev=8208&view=rev
Author: deniger
Date: 2013-01-15 00:15:11 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -94,8 +94,8 @@
static {
isMdl_.name = MdlResource.getS("Modeleur");
- isMdl_.version = "1.2RC4";
- isMdl_.date = "2013-01-10";
+ isMdl_.version = "1.2RC5";
+ isMdl_.date = "2013-01-14";
isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)1999-2011";
isMdl_.license = "GPL2";
isMdl_.languages = "fr,en";
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -7,6 +7,7 @@
*/
package org.fudaa.fudaa.modeleur;
+import com.memoire.fu.FuLog;
import gnu.trove.TIntArrayList;
import java.util.ArrayList;
@@ -59,6 +60,7 @@
import com.vividsolutions.jts.geom.CoordinateSequence;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LineString;
+import org.fudaa.ebli.commun.EbliLib;
/**
* L'\xE9diteur effectuant les traitements sur la scene sp\xE9cifiques au modeleur.
@@ -343,6 +345,7 @@
if (pnDecimation_.afficheModaleOk(pn_.getFrame(), title)) {
// Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est
// pas en mode sommet.
+ int nbRemoved=0;
int[] geoms = getScene().getSelectionHelper().getSelectedIndexes();
for (int i = 0; i < geoms.length; i++) {
int idxGeom = geoms[i];
@@ -364,10 +367,13 @@
ZModeleDonnees mdld = getScene().getLayerForId(idxGeom).modeleDonnees();
if (mdld instanceof MdlModel2dLine) {
MdlModel2dLine mdl = (MdlModel2dLine) mdld;
- mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0 : 1, pnDecimation_
+ nbRemoved+= mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0 : 1, pnDecimation_
.getNbPts(), pnDecimation_.getDistance(), cmp);
}
}
+ final String msg = EbliLib.getS("D\xE9cimation: {0} point(s) enlev\xE9(s)", Integer.toString(nbRemoved));
+ FuLog.warning("MOD:" + msg);
+ getUI().message(null, msg, true);
}
getScene().clearSelection();
@@ -397,6 +403,7 @@
// Les g\xE9om\xE9tries. On a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est
// pas en mode sommet.
int[] geoms = getScene().getSelectionHelper().getSelectedIndexes();
+ int nbATotaldded = 0;
for (int i = 0; i < geoms.length; i++) {
int idxGeom = geoms[i];
Geometry geom = (Geometry) getScene().getObject(idxGeom);
@@ -417,11 +424,16 @@
ZModeleDonnees mdld = getScene().getLayerForId(idxGeom).modeleDonnees();
if (mdld instanceof MdlModel2dLine) {
MdlModel2dLine mdl = (MdlModel2dLine) mdld;
- mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0 : 1, pnRaffinement_
+ int nb = mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0 : 1, pnRaffinement_
.getNbPts(), pnRaffinement_.getDistance(), cmd);
+
+ nbATotaldded=nbATotaldded+nb;
}
}
getScene().clearSelection();
+ final String msg = EbliLib.getS("Raffinement: {0} point(s) ajout\xE9(s)", Integer.toString(nbATotaldded));
+ FuLog.warning("MOD:" + msg);
+ getUI().message(null, msg, true);
}
if (getMng() != null) {
getMng().addCmd(cmd.getSimplify());
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -6,6 +6,7 @@
import com.vividsolutions.jts.geom.LineString;
import org.fudaa.fudaa.modeleur.grid.CalqueGridSemisSynchronizeProcess;
import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.operation.valid.IsValidOp;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
@@ -72,7 +73,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- layer.getLayerGridDelegate().clearGrid();
+
stop = false;
setEnabled(false);
running = true;
@@ -84,6 +85,7 @@
boolean ok = panel.afficheModaleOk(editor.getUi().getParentComponent(), MdlResource.getS("Selectionner le calque de contour"));
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (ok) {
+ layer.getLayerGridDelegate().clearGrid();
ok = checkParameters(finalContourLayer, editor, panel);
}
if (!ok) {
@@ -124,8 +126,9 @@
GISAttributeModel model = finalContourLayer.modeleDonnees().getGeomData().getModel(GISAttributeConstants.TITRE);
for (int i = 0; i < numGeometries; i++) {
LineString line = (LineString) finalContourLayer.modeleDonnees().getGeomData().getGeometry(i);
- if (!line.isValid()) {
- nonValideLines.add((String) model.getObjectValueAt(i));
+ IsValidOp isValid = new IsValidOp(line);
+ if (!isValid.isValid()) {
+ nonValideLines.add((String) model.getObjectValueAt(i) + ". " + isValid.getValidationError().getMessage() + "; Point: " + isValid.getValidationError().getCoordinate());
}
}
if (!nonValideLines.isEmpty()) {
@@ -200,7 +203,7 @@
@Override
public void run() {
- eps=panel.getEps();
+ eps = panel.getEps();
final LinearRing finalConvexHull = panel.getSelectedConvexHull();
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (panel.isTriangleSelected()) {
@@ -222,10 +225,17 @@
model.setPointsAdapter(processor.getPointsAdapter());
model.setAltiIdxByGridPtIdx(relations.getRelations());
model.setInitPointPaintedByMesh(relations.getInitPointPaintedByMesh());
+ if (progression != null) {
+ progression.setDesc(MdlResource.getS("Affichage"));
+ progression.setProgression(0);
+ }
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
installGridLayer(model);
+ if (progression != null) {
+ progression.reset();
+ }
}
});
} else {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -16,7 +16,6 @@
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.ctulu.gis.process.GisZoneCollectionPointDoublonRemover;
import org.fudaa.ctulu.gis.process.PointsMapping;
-import org.fudaa.ctulu.gis.process.PointsMappingEmpty;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.objet.CExecListener;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -5,14 +5,20 @@
import com.vividsolutions.jts.geom.Coordinate;
import gnu.trove.TIntArrayList;
+import gnu.trove.TIntHashSet;
import java.util.TreeMap;
+import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
import org.fudaa.ctulu.interpolation.bilinear.InterpolationBilinearSupportSorted;
+import org.fudaa.dodico.ef.AllFrontierIteratorInterface;
+import org.fudaa.dodico.ef.EfFrontierInterface;
import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.dodico.ef.EfLib;
+import org.fudaa.dodico.ef.EfNeighborMesh;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
@@ -44,15 +50,16 @@
/**
* un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
- * @return
+ *
+ * @return
*/
public int[][] getRelations() {
return relations;
}
/**
- *
- * @return les points de la zone support\xE9 par un unique point du maillage.
+ *
+ * @return les points de la zone support\xE9 par un unique point du maillage.
*/
public CtuluListSelection getInitPointPaintedByMesh() {
return initPointPaintedByMesh;
@@ -97,7 +104,7 @@
}
updater.setValue(10, grid.getPtsNb());
boolean rescanElt = false;
-
+ int nbToRescan = 0;
for (int i = 0; i < grid.getPtsNb(); i++) {
Coordinate gridCoor = new Coordinate(grid.getPtX(i), grid.getPtY(i));
TIntArrayList idxs = index.get(gridCoor);
@@ -108,17 +115,72 @@
//le premier point de la collection est pris.
res[i] = new int[]{idxs.get(0)};
} else {
+ nbToRescan++;
rescanElt = true;
}
updater.majAvancement();
}
if (rescanElt) {
+ //pour les points, on recherche les points adjacents avec des valeurs connus
+ final int[][] ptVoisins = EfLib.getConnexionFor(grid, prog, new CtuluAnalyze());
+ for (int globalIdx = 0; globalIdx < grid.getPtsNb(); globalIdx++) {
+ if (res[globalIdx] == null) {
+ int[] voisins = ptVoisins[globalIdx];
+ TIntArrayList knownVoisin = null;
+ for (int i = 0; i < voisins.length; i++) {
+ int idxVoisin = voisins[i];
+ if (res[idxVoisin] != null && res[idxVoisin].length == 1) {
+ if (knownVoisin == null) {
+ knownVoisin = new TIntArrayList();
+ }
+ knownVoisin.add(res[idxVoisin][0]);
+ }
+ }
+ if (knownVoisin != null) {
+ if (knownVoisin.size() == 1) {//pour \xE9viter que le point soit consid\xE9r\xE9 comme un point exact.
+ knownVoisin.add(-1);
+ }
+ res[globalIdx] = knownVoisin.toNativeArray();
+ nbToRescan--;
+ }
+ }
+ }
+ //pour les points fronti\xE8res isol\xE9s, on recommence \xE0 chercher les points \xE0 utiliser.
+ AllFrontierIteratorInterface allFrontierIterator = grid.getFrontiers().getAllFrontierIterator();
+ while (allFrontierIterator.hasNext()) {
+ int globalIdx = allFrontierIterator.next();
+ if (res[globalIdx] == null) {
+ int[] voisins = ptVoisins[globalIdx];
+ TIntHashSet knownVoisin = null;
+ for (int i = 0; i < voisins.length; i++) {
+ int idxVoisin = voisins[i];
+ if (res[idxVoisin] != null) {
+ if (knownVoisin == null) {
+ knownVoisin = new TIntHashSet();
+ }
+ knownVoisin.addAll(res[idxVoisin]);
+ }
+ }
+ if (knownVoisin != null) {
+ if (knownVoisin.size() == 1) {//pour \xE9viter que le point soit consid\xE9r\xE9 comme un point exact.
+ knownVoisin.add(-1);
+ }
+ res[globalIdx] = knownVoisin.toArray();
+ nbToRescan--;
+ }
+ }
+ }
+ }
+ updater.setValue(10, nbToRescan);
+
+ if (rescanElt && nbToRescan > 0) {
+ updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des points hors semis"));
final InterpolationBilinearSupportSorted src = InterpolationBilinearSupportSorted.buildSortedSrc(zone, prog);
for (int i = 0; i < grid.getPtsNb(); i++) {
if (res[i] == null) {
-
res[i] = new int[4];
src.getQuadrantIdx(grid.getPtX(i), grid.getPtY(i), res[i]);
+ updater.majAvancement();
}
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -32,22 +32,22 @@
* @author Frederic Deniger
*/
public class LayerGridController implements ZModelGeometryListener {
-
+
private final MdlCalqueMultiPointEditable parentLayer;
private MdlElementModel elementModel;
private MdlIsoModelDefault isoModel;
private MdlGridData gridData;
private MvIsoLayerQuickPainter painter;
-
+
public LayerGridController(MdlCalqueMultiPointEditable parentLayer) {
this.parentLayer = parentLayer;
parentLayer.modeleDonnees().addModelListener(this);
}
-
+
public CtuluUI getUI() {
return ((FSigEditor) parentLayer.getEditor()).getUi();
}
-
+
@Override
public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action) {
if (elementModel != null) {
@@ -87,38 +87,39 @@
painter.setIsAntaliasing(parentLayer.isAntialiasing());
painter.setAlpha(parentLayer.getAlpha());
painter.setLigneModel(parentLayer.getLineModel(0));
+ painter.setRapide(parentLayer.isRapide());
painter.paintDonnees(width, height, _g, _versEcran, _versReel, _clipReel);
-
+
}
-
+
@Override
public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
}
-
+
@Override
public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
}
-
+
public MdlElementLayer getGridLayer() {
return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
}
/**
- *
- * @return true si un maillage est pr\xE9sent.
+ *
+ * @return true si un maillage est pr\xE9sent.
*/
public boolean isGridCreated() {
return elementModel != null;
}
-
+
public ZCalqueMultiPointEditable getParentLayer() {
return parentLayer;
}
-
+
public MdlGridData getExportGridData() {
return gridData;
}
-
+
public void clearGrid() {
elementModel = null;
gridData = null;
@@ -129,7 +130,7 @@
parentLayer.clearCacheAndRepaint();
}
}
-
+
public void setGridLayer(MdlElementModel grid) {
this.elementModel = grid;
gridData = null;
@@ -146,14 +147,15 @@
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
}
-
+
public void installGridLayer(MdlElementLayer eltLayer, MdlElementModel grid) {
if (eltLayer == null) {
eltLayer = new MdlElementLayer();
eltLayer.setTitle(MdlResource.getS("Maillage"));
eltLayer.setName("cqGrid");
eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY));
- eltLayer.setAlpha(128);
+// eltLayer.setAlpha(128);
+ eltLayer.setVisible(false);
parentLayer.add(eltLayer);
}
final int attributeZ = LibUtils.getAttributeZPosition(parentLayer.modeleDonnees().getGeomData());
@@ -168,7 +170,7 @@
eltLayer.setModele(grid);
eltLayer.repaint();
}
-
+
public void setEltPainted(int[] selectedElementIdx, boolean b) {
getGridLayer().modele().setPainted(selectedElementIdx, b);
getGridLayer().clearCacheAndRepaint();
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -32,7 +32,7 @@
/**
* Un mod\xE8le de calque pour un calque 2D contenant des lignes.
- *
+ *
* @author Bertrand Marchand
* @version $Id$
*/
@@ -42,11 +42,12 @@
* Construction d'un modele de profil avec pile de commandes.
*/
public MdlModel2dLine(final ZModelGeometryListener _listener) {
- this(_listener,new GISZoneCollectionLigneBrisee(null));
+ this(_listener, new GISZoneCollectionLigneBrisee(null));
}
-
+
/**
* Construction d'un modele de profil avec pile de commandes.
+ *
* @param _listener Un listener du modele.
* @param _zone La zone utilis\xE9e par le mod\xE8le.
*/
@@ -58,55 +59,57 @@
/**
* Interpole entre 2 points, suivant un nombre de points donn\xE9s.
+ *
* @param _coords Les 2 coordonn\xE9es
* @param _dist La distance entre 2 points cons\xE9cutifs.
* @param _useBorderPoints vrai si la ligne int\xE9pol\xE9e doit contenir les coordonn\xE9es fournies.
* @param _cmd Le container de commandes.
* @return true si modif ok.
*/
- public boolean interpolate(Coordinate[] _coords, double _dist, boolean _useBorderPoints, final CtuluCommandContainer _cmd){
- double distTot=
- Math.sqrt((_coords[1].x-_coords[0].x)*(_coords[1].x-_coords[0].x)+(_coords[1].y-_coords[0].y)*(_coords[1].y-_coords[0].y));
- int nbpts=(int)Math.round(distTot/_dist)-1;
+ public boolean interpolate(Coordinate[] _coords, double _dist, boolean _useBorderPoints, final CtuluCommandContainer _cmd) {
+ double distTot =
+ Math.sqrt((_coords[1].x - _coords[0].x) * (_coords[1].x - _coords[0].x) + (_coords[1].y - _coords[0].y) * (_coords[1].y - _coords[0].y));
+ int nbpts = (int) Math.round(distTot / _dist) - 1;
Coordinate[] coords;
if (_useBorderPoints) {
- coords=new Coordinate[_coords.length+nbpts];
- for (int i=1; i<coords.length-1; i++)
- coords[i]=new Coordinate(
- _coords[0].x+(_coords[1].x-_coords[0].x)*i*_dist/distTot,
- _coords[0].y+(_coords[1].y-_coords[0].y)*i*_dist/distTot,
- _coords[0].z+(_coords[1].z-_coords[0].z)*i*_dist/distTot
- );
- coords[0]=(Coordinate)_coords[0].clone();
- coords[coords.length-1]=(Coordinate)_coords[1].clone();
+ coords = new Coordinate[_coords.length + nbpts];
+ for (int i = 1; i < coords.length - 1; i++) {
+ coords[i] = new Coordinate(
+ _coords[0].x + (_coords[1].x - _coords[0].x) * i * _dist / distTot,
+ _coords[0].y + (_coords[1].y - _coords[0].y) * i * _dist / distTot,
+ _coords[0].z + (_coords[1].z - _coords[0].z) * i * _dist / distTot);
+ }
+ coords[0] = (Coordinate) _coords[0].clone();
+ coords[coords.length - 1] = (Coordinate) _coords[1].clone();
+ } else {
+ coords = new Coordinate[nbpts];
+ for (int i = 0; i < coords.length; i++) {
+ coords[i] = new Coordinate(
+ _coords[0].x + (_coords[1].x - _coords[0].x) * (i + 1) * _dist / distTot,
+ _coords[0].y + (_coords[1].y - _coords[0].y) * (i + 1) * _dist / distTot,
+ _coords[0].z + (_coords[1].z - _coords[0].z) * (i + 1) * _dist / distTot);
+ }
}
- else {
- coords=new Coordinate[nbpts];
- for (int i=0; i<coords.length; i++)
- coords[i]=new Coordinate(
- _coords[0].x+(_coords[1].x-_coords[0].x)*(i+1)*_dist/distTot,
- _coords[0].y+(_coords[1].y-_coords[0].y)*(i+1)*_dist/distTot,
- _coords[0].z+(_coords[1].z-_coords[0].z)*(i+1)*_dist/distTot
- );
- }
- if (coords.length>=2) {
- GISPolyligne poly=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(coords);
- CtuluCommandComposite cmd=new CtuluCommandComposite();
- int idx=getGeomData().addGeometry(poly, null, cmd);
- if (idx!=-1)
+ if (coords.length >= 2) {
+ GISPolyligne poly = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(coords);
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
+ int idx = getGeomData().addGeometry(poly, null, cmd);
+ if (idx != -1) {
setGeomModif(idx, cmd);
- if(_cmd!=null)
+ }
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
+ }
return true;
+ } else {
+ return false;
}
- else
- return false;
}
-
+
/**
- * Decime une ligne. La m\xE9thode utilis\xE9e pour d\xE9cimer peut \xEAtre :<p>
- * 0 : Suivant un nombre de points a supprimer entre 2 points conserv\xE9s.<br>
- * 1 : Suivant une distance minimale.
+ * Decime une ligne. La m\xE9thode utilis\xE9e pour d\xE9cimer peut \xEAtre :<p> 0 : Suivant un nombre de points a supprimer entre 2 points conserv\xE9s.<br> 1 :
+ * Suivant une distance minimale.
+ *
* @param _idxGeom La g\xE9om\xE9trie a d\xE9cimer.
* @param _idxdeb L'indice de d\xE9but de d\xE9cimation.
* @param _idxfin L'indice de fin de d\xE9cimation.
@@ -114,53 +117,51 @@
* @param _nbpts Le nombre de points.
* @param _dstmin La distance minimale.
* @param _cmd Le container de commandes.
- * @return true si modif ok.
+ * @return le nombre de points enlev\xE9
*/
- public boolean decimate(int _idxGeom, int _idxdeb,int _idxfin,int _meth,int _nbpts, double _dstmin, CtuluCommandContainer _cmd) {
- TIntArrayList list=new TIntArrayList();
-
+ public int decimate(int _idxGeom, int _idxdeb, int _idxfin, int _meth, int _nbpts, double _dstmin, CtuluCommandContainer _cmd) {
+ TIntArrayList list = new TIntArrayList();
+
// Methode par nombre de points.
- if (_meth==0) {
- int idx=_idxdeb+1+_nbpts;
- for (int i=_idxdeb+1; i<=_idxfin-1; i++) {
- if (i<idx) {
+ if (_meth == 0) {
+ int idx = _idxdeb + 1 + _nbpts;
+ for (int i = _idxdeb + 1; i <= _idxfin - 1; i++) {
+ if (i < idx) {
list.add(i);
+ } else {
+ idx = i + 1 + _nbpts;
}
- else {
- idx=i+1+_nbpts;
- }
}
- }
- // Methode par distance mini.
- else if (_meth==1) {
- LineString geom=(LineString)getGeomData().getGeometry(_idxGeom);
- CoordinateSequence seq=geom.getCoordinateSequence();
- double dst=0;
- for (int i=_idxdeb+1; i<=_idxfin-1; i++) {
- dst+=Math.sqrt((seq.getX(i)-seq.getX(i-1))*(seq.getX(i)-seq.getX(i-1))+
- (seq.getY(i)-seq.getY(i-1))*(seq.getY(i)-seq.getY(i-1)));
- if (dst<_dstmin) {
+ } // Methode par distance mini.
+ else if (_meth == 1) {
+ LineString geom = (LineString) getGeomData().getGeometry(_idxGeom);
+ CoordinateSequence seq = geom.getCoordinateSequence();
+ double dst = 0;
+ for (int i = _idxdeb + 1; i <= _idxfin - 1; i++) {
+ dst += Math.sqrt((seq.getX(i) - seq.getX(i - 1)) * (seq.getX(i) - seq.getX(i - 1))
+ + (seq.getY(i) - seq.getY(i - 1)) * (seq.getY(i) - seq.getY(i - 1)));
+ if (dst < _dstmin) {
list.add(i);
+ } else {
+ dst = 0;
}
- else {
- dst=0;
- }
}
}
-
+
CtuluListSelectionInterface ids = new CtuluListSelection(list.toNativeArray());
- CtuluCommandComposite cmd=new CtuluCommandComposite();
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
getGeomData().removeAtomics(_idxGeom, ids, null, cmd); // L'UI est null, le cas ou moins de 2 points ne peut pas arriver.
setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie
- if(_cmd!=null)
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
- return true;
+ }
+ return ids.getNbSelectedIndex();
}
-
+
/**
- * Raffine une ligne. La m\xE9thode utilis\xE9e pour raffiner peut \xEAtre :<p>
- * 0 : Suivant un nombre de points a ajouter entre 2 points.<br>
- * 1 : Suivant une distance maximale.
+ * Raffine une ligne. La m\xE9thode utilis\xE9e pour raffiner peut \xEAtre :<p> 0 : Suivant un nombre de points a ajouter entre 2 points.<br> 1 : Suivant une
+ * distance maximale.
+ *
* @param _idxGeom La g\xE9om\xE9trie a raffiner.
* @param _idxdeb L'indice de d\xE9but de raffinement.
* @param _idxfin L'indice de fin de raffinement.
@@ -168,71 +169,85 @@
* @param _nbpts Le nombre de points.
* @param _dstmax La distance maximale.
* @param _cmd Le container de commandes.
- * @return true si modif ok.
+ * @return le nombre de points ajout\xE9s
*/
- public boolean refine(int _idxGeom, int _idxdeb,int _idxfin,int _meth,int _nbpts, double _dstmax, CtuluCommandContainer _cmd) {
- LineString geom=(LineString)getGeomData().getGeometry(_idxGeom);
- CoordinateSequence seq=GISLib.refine(geom.getCoordinateSequence(), _idxdeb, _idxfin, _meth, _nbpts, _dstmax);
-
- GISPolyligne newgeom=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(seq);
- CtuluCommandComposite cmd=new CtuluCommandComposite();
+ public int refine(int _idxGeom, int _idxdeb, int _idxfin, int _meth, int _nbpts, double _dstmax, CtuluCommandContainer _cmd) {
+ LineString geom = (LineString) getGeomData().getGeometry(_idxGeom);
+ CoordinateSequence seq = GISLib.refine(geom.getCoordinateSequence(), _idxdeb, _idxfin, _meth, _nbpts, _dstmax);
+
+ GISPolyligne newgeom = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(seq);
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
getGeomData().setGeometry(_idxGeom, newgeom, cmd);
setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie
- if(_cmd!=null)
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
- return true;
+ }
+ return seq.size() - geom.getNumPoints();
}
-
+
/**
- * Sort the points of selected polylignes. This sorting is done on the _icoord.
+ * Sort the points of selected polylignes. This sorting is done on the _icoord.
+ *
* @param _icoord 0: x, 1: y.
*/
public void organizePoints(int _idxGeom, int _icoord, CtuluCommandContainer _cmd) {
- /** This class contain needed data to sort points. */
- class SortableIndex implements Comparable<SortableIndex>{
+ /**
+ * This class contain needed data to sort points.
+ */
+ class SortableIndex implements Comparable<SortableIndex> {
+
public double coord;
private int ind;
+
public SortableIndex(double _coord, int _ind) {
- ind=_ind;
- coord=_coord;
+ ind = _ind;
+ coord = _coord;
}
public int compareTo(SortableIndex o) {
- if (coord<o.coord) return -1;
- else if (coord==o.coord) return 0;
- else return 1;
+ if (coord < o.coord) {
+ return -1;
+ } else if (coord == o.coord) {
+ return 0;
+ } else {
+ return 1;
+ }
}
}
- CtuluCommandComposite cmp=new CtuluCommandComposite(MdlResource.getS("R\xE9organisation de la g\xE9om\xE9trie"));
+ CtuluCommandComposite cmp = new CtuluCommandComposite(MdlResource.getS("R\xE9organisation de la g\xE9om\xE9trie"));
- GISZoneCollection zone=getGeomData();
- CoordinateSequence oldseq=zone.getCoordinateSequence(_idxGeom);
+ GISZoneCollection zone = getGeomData();
+ CoordinateSequence oldseq = zone.getCoordinateSequence(_idxGeom);
// Construction de la structure de tri
- SortableIndex[] points=new SortableIndex[oldseq.size()];
- for(int j=0;j<points.length;j++)
- points[j]=new SortableIndex(oldseq.getOrdinate(j,_icoord), j);
+ SortableIndex[] points = new SortableIndex[oldseq.size()];
+ for (int j = 0; j < points.length; j++) {
+ points[j] = new SortableIndex(oldseq.getOrdinate(j, _icoord), j);
+ }
Arrays.sort(points);
-
+
// Remplacement de la g\xE9om\xE9trie r\xE9ordonn\xE9e.
- Coordinate[] coords=new Coordinate[points.length];
- for(int j=0;j<points.length;j++)
- coords[j]=oldseq.getCoordinateCopy(points[j].ind);
+ Coordinate[] coords = new Coordinate[points.length];
+ ...
[truncated message content] |
|
From: <de...@us...> - 2013-01-16 21:27:11
|
Revision: 8214
http://fudaa.svn.sourceforge.net/fudaa/?rev=8214&view=rev
Author: deniger
Date: 2013-01-16 21:27:04 +0000 (Wed, 16 Jan 2013)
Log Message:
-----------
optimisation maillage important
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-16 21:26:35 UTC (rev 8213)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-16 21:27:04 UTC (rev 8214)
@@ -81,6 +81,7 @@
import com.memoire.bu.BuUserPreferencesPanel;
import com.memoire.fu.FuLog;
import org.fudaa.ebli.commun.BJava3DVersionTest;
+import org.fudaa.fudaa.commun.trace2d.FudaaPerformancePreferencesPanel;
/**
* La classe principale de mise en place de l'application, de gestion des actions, des \xE9tats de l'interface, etc.
@@ -732,6 +733,8 @@
*/
@Override
protected void buildPreferences(final List<BuAbstractPreferencesPanel> _frAddTab) {
+
+ _frAddTab.add(new FudaaPerformancePreferencesPanel(this));
_frAddTab.add(new BuUserPreferencesPanel(this));
_frAddTab.add(new BuLanguagePreferencesPanel(this));
_frAddTab.add(new BuDesktopPreferencesPanel(this));
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-16 21:26:35 UTC (rev 8213)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-16 21:27:04 UTC (rev 8214)
@@ -73,7 +73,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
-
+
stop = false;
setEnabled(false);
running = true;
@@ -182,9 +182,7 @@
* @param model
*/
private void installGridLayer(MdlElementModel model) {
- running = false;
- setEnabled(true);
- stopAction.setRunning(running);
+ stopRunning();
if (!stop) {
if (layer.isTraceIsoLine() || layer.isTraceIsoSurface()) {
if (layer.getPaletteCouleur() == null) {
@@ -239,6 +237,7 @@
}
});
} else {
+ stopRunning();
getUI().warn(MdlResource.getS("Construction de la triangulation"), getLongHelp(), false);
}
@@ -250,5 +249,11 @@
+ "<br>Si vous utiliser le triangulateur interne, il est pr\xE9f\xE9rable de d\xE9finir une enveloppe externe"
+ "<br>Utiliser le triangulateur externe (Triangle) de pr\xE9f\xE9rence: plus stable et plus rapide");
}
+
+ public void stopRunning() {
+ running = false;
+ setEnabled(true);
+ stopAction.setRunning(running);
+ }
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-16 21:26:35 UTC (rev 8213)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-16 21:27:04 UTC (rev 8214)
@@ -15,10 +15,8 @@
import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
import org.fudaa.ctulu.interpolation.bilinear.InterpolationBilinearSupportSorted;
import org.fudaa.dodico.ef.AllFrontierIteratorInterface;
-import org.fudaa.dodico.ef.EfFrontierInterface;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.EfLib;
-import org.fudaa.dodico.ef.EfNeighborMesh;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-16 21:26:35 UTC (rev 8213)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-16 21:27:04 UTC (rev 8214)
@@ -32,22 +32,22 @@
* @author Frederic Deniger
*/
public class LayerGridController implements ZModelGeometryListener {
-
+
private final MdlCalqueMultiPointEditable parentLayer;
private MdlElementModel elementModel;
private MdlIsoModelDefault isoModel;
private MdlGridData gridData;
private MvIsoLayerQuickPainter painter;
-
+
public LayerGridController(MdlCalqueMultiPointEditable parentLayer) {
this.parentLayer = parentLayer;
parentLayer.modeleDonnees().addModelListener(this);
}
-
+
public CtuluUI getUI() {
return ((FSigEditor) parentLayer.getEditor()).getUi();
}
-
+
@Override
public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action) {
if (elementModel != null) {
@@ -58,7 +58,7 @@
}
/**
- * Dessine les isosurfaces/lignes.
+ * Dessine les isosurfaces/lignes. Si rapide dessine des isolignes.
*
* @param width
* @param height
@@ -82,26 +82,27 @@
painter = new MvIsoLayerQuickPainter(isoModel);
}
painter.setModel(isoModel);
- painter.setTraceIsoLine(parentLayer.isTraceIsoLine());
+ //si bcp de donn\xE9es on trace des iso lignes.
+ painter.setTraceIsoLine(parentLayer.isRapideForBigData() ? true : parentLayer.isTraceIsoLine());
painter.setPaletteCouleur(parentLayer.getPaletteCouleur());
painter.setIsAntaliasing(parentLayer.isAntialiasing());
painter.setAlpha(parentLayer.getAlpha());
painter.setLigneModel(parentLayer.getLineModel(0));
painter.setRapide(parentLayer.isRapide());
painter.paintDonnees(width, height, _g, _versEcran, _versReel, _clipReel);
-
+
}
-
+
@Override
public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
}
-
+
@Override
public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
}
-
+
public MdlElementLayer getGridLayer() {
- return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
+ return eltLayer;
}
/**
@@ -111,44 +112,45 @@
public boolean isGridCreated() {
return elementModel != null;
}
-
+
public ZCalqueMultiPointEditable getParentLayer() {
return parentLayer;
}
-
+
public MdlGridData getExportGridData() {
return gridData;
}
-
+
public void clearGrid() {
elementModel = null;
gridData = null;
isoModel = null;
- MdlElementLayer eltLayer = getGridLayer();
if (eltLayer != null) {
parentLayer.remove(eltLayer);
parentLayer.clearCacheAndRepaint();
+ eltLayer = null;
}
}
-
+
public void setGridLayer(MdlElementModel grid) {
this.elementModel = grid;
gridData = null;
isoModel = null;
- MdlElementLayer eltLayer = getGridLayer();
- if (grid == null) {
- if (eltLayer != null) {
- parentLayer.remove(eltLayer);
- }
- } else {
- installGridLayer(eltLayer, grid);
+
+ if (eltLayer != null) {
+ parentLayer.remove(eltLayer);
+ eltLayer = null;
}
+ if (grid != null) {
+ installGridLayer(grid);
+ }
parentLayer.clearCacheAndRepaint();
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
}
-
- public void installGridLayer(MdlElementLayer eltLayer, MdlElementModel grid) {
+ MdlElementLayer eltLayer;
+
+ public void installGridLayer(MdlElementModel grid) {
if (eltLayer == null) {
eltLayer = new MdlElementLayer();
eltLayer.setTitle(MdlResource.getS("Maillage"));
@@ -170,7 +172,7 @@
eltLayer.setModele(grid);
eltLayer.repaint();
}
-
+
public void setEltPainted(int[] selectedElementIdx, boolean b) {
getGridLayer().modele().setPainted(selectedElementIdx, b);
getGridLayer().clearCacheAndRepaint();
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-16 21:26:35 UTC (rev 8213)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-16 21:27:04 UTC (rev 8214)
@@ -6,7 +6,6 @@
import java.awt.Color;
import java.awt.Graphics2D;
import java.util.ArrayList;
-import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
import org.fudaa.ctulu.gis.GISAttributeModelObjectInterface;
import org.fudaa.ebli.calque.BCalqueCacheManager;
@@ -26,7 +25,6 @@
import org.fudaa.ebli.controle.BConfigurableInterface;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
-import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.palette.BPalettePlage;
import org.fudaa.ebli.trace.TraceIcon;
import org.fudaa.ebli.trace.TraceIconModel;
@@ -147,24 +145,36 @@
updatePositionDataBathy();
}
+ public boolean isRapideForBigData() {
+ return isRapide() && layerGridDelegate.isGridCreated() && layerGridDelegate.getGridLayer().modele().getNbPoint() > 100000;
+ }
+
@Override
public void paintDonnees(Graphics2D _g, GrMorphisme _versEcran, GrMorphisme _versReel, GrBoite _clipReel) {
if ((modele_ == null) || (modele_.getNombre() <= 0)) {
return;
}
- // Trac\xE9 des surfaces
-// paintSurfaces(_g, _versEcran, _versReel, _clipReel);//pas la peine ici
-// paintLines(_clipReel, _versEcran, _g);//pas la peine ici
- // Les icones sur les atomiques
- //faudrait voir pour ne redesinner inutilement des points ...
+ //si rapide, le delegate trace des isoligne.
+ //dans ce cas on s'assure de tracer les icones sur les points
+ if (isRapideForBigData() && isTraceIsoSurface() && (iconModel_.getType() == TraceIcon.RIEN || iconModel_.getTaille() <= 0)) {
+ iconModel_.setTaille(1);
+ iconModel_.setType(TraceIcon.CARRE);
+ }
paintIconsOnAtomics(_g, _versEcran, _versReel, _clipReel);
+
layerGridDelegate.paintDonnees(getWidth(), getHeight(), _g, _versEcran, _versReel, _clipReel);
+ TraceIconModel saved = iconModel_.cloneData();
+
paintLabelsOnAtomics(_g, _versEcran, _versReel, _clipReel);
+ iconModel_.updateData(saved);
}
@Override
protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
if (getLayerGridDelegate().isGridCreated() && isTraceIsoSurface()) {
+ if (isRapide()) {
+ return true;//optimisation
+ }
MdlElementModel modele = getLayerGridDelegate().getGridLayer().modele();
int idx = modele.getPointsAdapter().getIdx(idxGeometry, idxPoint);
if (modele.isNodePaintedByIso(idx)) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-21 09:38:47
|
Revision: 8229
http://fudaa.svn.sourceforge.net/fudaa/?rev=8229&view=rev
Author: deniger
Date: 2013-01-21 09:38:40 +0000 (Mon, 21 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -141,11 +141,20 @@
return cqAlti_;
}
+ public BGroupeCalque getGroupSing() {
+ return cqSing_;
+ }
+
public List<BCalque> getCalquesContours() {
BCalque[] calques = cqSing_.getCalques();
return findCalques(calques, MdlLayer2dContour.EXT_NAME);
}
+ public List<BCalque> getCalquesContraintes() {
+ BCalque[] calques = cqSing_.getCalques();
+ return findCalques(calques, MdlLayer2dConstraintLine.EXT_NAME);
+ }
+
public List<BCalque> findCalques(BCalque[] in, String extName) {
List<BCalque> res = new ArrayList<BCalque>();
if (in != null) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -83,7 +83,7 @@
//le panneau permet de choisir le triangulateur et le calque contour.
final GridChooseToolAndContourConvexHullPanel panel = new GridChooseToolAndContourConvexHullPanel(visuPanel);
boolean ok = panel.afficheModaleOk(editor.getUi().getParentComponent(), MdlResource.getS("Selectionner le calque de contour"));
- final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
+ final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedContourLayer();
if (ok) {
layer.getLayerGridDelegate().clearGrid();
ok = checkParameters(finalContourLayer, editor, panel);
@@ -203,13 +203,16 @@
public void run() {
eps = panel.getEps();
final LinearRing finalConvexHull = panel.getSelectedConvexHull();
- final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
+ final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedContourLayer();
if (panel.isTriangleSelected()) {
processor = new CalqueCreateGridTriangleProcessor(layer.modeleDonnees(), getUI(), finalContourLayer, finalConvexHull);
} else {
processor = new CalqueCreateGridPoly2TriProcessor(layer.modeleDonnees(), getUI(), finalContourLayer, finalConvexHull);
}
processor.setEps(eps);
+ processor.setContraintLines(panel.getSelectedContrainteLayer());
+ processor.setUseHole(panel.isUseHoleIsSelected());
+ processor.setAddPointOnFrontier(panel.isAddPointOnFrontierSelected());
//TODO boolean
//on execute la triangulation et on lit le maillage
final EfGridInterface grid = processor.process(progression);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -6,13 +6,16 @@
import com.vividsolutions.jts.algorithm.SIRtreePointInRing;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.LinearRing;
-import java.util.Arrays;
+import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang.ArrayUtils;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISVisitorGeometryCollector;
+import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.ctulu.gis.process.GisZoneCollectionPointDoublonRemover;
import org.fudaa.ctulu.gis.process.PointsMapping;
@@ -30,10 +33,13 @@
protected final CtuluUI ui;
protected final ZCalqueLigneBrisee contour;
+ protected ZCalqueLigneBrisee contraintLayer;
protected final LinearRing convexHull;
protected double eps = 1e-3;
private final GisZoneCollectionAsListPointAdapter pointsAdapter;
private PointsMapping pointsMapping;
+ private boolean useHole;
+ protected boolean addPointOnFrontier;
public AbstractCalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
this.ui = ui;
@@ -42,6 +48,14 @@
this.pointsAdapter = new GisZoneCollectionAsListPointAdapter(points.getGeomData());
}
+ public void setUseHole(boolean useHole) {
+ this.useHole = useHole;
+ }
+
+ public void setAddPointOnFrontier(boolean addPointOnFrontier) {
+ this.addPointOnFrontier = addPointOnFrontier;
+ }
+
public PointsMapping getPointsMapping() {
return pointsMapping;
}
@@ -54,7 +68,6 @@
this.eps = epsForDoublon;
}
-
@Override
public final void setProcess(Process _p) {
this.p = _p;
@@ -95,29 +108,64 @@
return pointsMapping;
}
+ private boolean isNoPolygoneSelected() {
+ return contour == null || (contour.modeleDonnees().getNbPolygone() == 0) || (convexHull == null && !useHole);
+ }
+
+ private boolean isNoConstraintLineSelected() {
+ return contraintLayer == null || (contraintLayer.modeleDonnees().getNombre() == 0);
+ }
+
+ protected boolean isNoLinesSelected() {
+ return isNoPolygoneSelected() && isNoConstraintLineSelected();
+ }
+
+ public boolean isPolygoneSelected() {
+ return !isNoPolygoneSelected();
+ }
+
public final TriangulationPolyDataNodeDefault createPolyData(ProgressionInterface prog) {
TriangulationPolyDataNodeDefault data = new TriangulationPolyDataNodeDefault();
+ List<LineString> lines = new ArrayList<LineString>();
+ List<Boolean> holes = new ArrayList<Boolean>();
if (contour != null) {
- GISVisitorGeometryCollector collector = new GISVisitorGeometryCollector(GISLib.MASK_POLYGONE);
- contour.modeleDonnees().getGeomData().accept(collector);
- List<Geometry> geometries = collector.getGeometries();
- LinearRing[] linearRings = (LinearRing[]) geometries.toArray(new LinearRing[geometries.size()]);
- boolean[] holes = new boolean[linearRings.length];
- Arrays.fill(holes, true);
if (convexHull != null) {
- for (int i = 0; i < holes.length; i++) {
- if (linearRings[i] == convexHull) {//test voulu.
- holes[i] = false;
+ lines.add(convexHull);
+ holes.add(Boolean.FALSE);
+ }
+ if (useHole) {
+ GISVisitorGeometryCollector collector = new GISVisitorGeometryCollector(GISLib.MASK_POLYGONE);
+ contour.modeleDonnees().getGeomData().accept(collector);
+ List<Geometry> geometries = collector.getGeometries();
+ LinearRing[] linearRings = (LinearRing[]) geometries.toArray(new LinearRing[geometries.size()]);
+ for (int i = 0; i < linearRings.length; i++) {
+ LinearRing linearRing = linearRings[i];
+ if (linearRing != convexHull) {
+ lines.add(linearRing);
+ holes.add(Boolean.TRUE);
}
}
}
- data.setHoles(holes);
- data.setRings(linearRings);
}
+ if (contraintLayer != null) {
+ GISZoneCollectionLigneBrisee linesCollection = contraintLayer.modeleDonnees().getGeomData();
+ for (int i = 0; i < linesCollection.getNumGeometries(); i++) {
+ lines.add((LineString) linesCollection.getGeometry(i));
+ holes.add(Boolean.FALSE);
+ }
+ }
+ LineString[] lineStrings = (LineString[]) lines.toArray(new LineString[lines.size()]);
+ Boolean[] holesInBoolean = (Boolean[]) holes.toArray(new Boolean[holes.size()]);
+ data.setLineString(lineStrings);
+ data.setHoles(ArrayUtils.toPrimitive(holesInBoolean));
PointsMapping filteredPoints = createMapping(prog);
data.setNodeData(filteredPoints);
data.setUseZAsAttribute(false);
return data;
}
+
+ public void setContraintLines(ZCalqueLigneBrisee selectedContrainteLayer) {
+ this.contraintLayer = selectedContrainteLayer;
+ }
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -58,7 +58,7 @@
ProgressionUpdater updater = new ProgressionUpdater(prog);
updater.majProgessionStateOnly(MdlResource.getS("Construction des donn\xE9es d'entr\xE9e"));
- if (data.getNbPoly() > 0) {
+ if (data.getNbLines() > 0) {
TriangulationConvexHullBuilder builder = new TriangulationConvexHullBuilder();
int nbExtern = builder.getNbExternPolygon(data);
if (nbExtern > 1) {
@@ -70,16 +70,16 @@
int idxExternPoly = builder.getExternPolygonIdx(data);
updater.majProgessionStateOnly(MdlResource.getS("Construction des points"));
TreeSet<Coordinate> addedCoordinate = new TreeSet<Coordinate>(new CoordinateComparator(eps));
- LinearRing externRing = data.getPoly(idxExternPoly);
+ LinearRing externRing = (LinearRing) data.getLine(idxExternPoly);
SIRtreePointInRing isInMainRing = new SIRtreePointInRing(externRing);
List<SIRtreePointInRing> isInHoles = new ArrayList<SIRtreePointInRing>();
List<PolygonPoint> polygonPoints = createPolygonPoints(externRing, addedCoordinate);
Polygon polygon = new Polygon(polygonPoints);
- if (data.getNbPoly() > 1) {
- for (int idxPoly = 0; idxPoly < data.getNbPoly(); idxPoly++) {
- if (idxPoly != idxExternPoly) {
- isInHoles.add(new SIRtreePointInRing(data.getPoly(idxPoly)));
- polygon.addHole(new Polygon(createPolygonPoints(data.getPoly(idxPoly), addedCoordinate)));
+ if (data.getNbLines() > 1) {
+ for (int idxPoly = 0; idxPoly < data.getNbLines(); idxPoly++) {
+ if (idxPoly != idxExternPoly && data.isClosed(idxPoly)) {
+ isInHoles.add(new SIRtreePointInRing((LinearRing) data.getLine(idxPoly)));
+ polygon.addHole(new Polygon(createPolygonPoints((LinearRing) data.getLine(idxPoly), addedCoordinate)));
}
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -32,19 +32,19 @@
* @author Frederic Deniger
*/
public class CalqueCreateGridTriangleProcessor extends AbstractCalqueCreateGridProcessor {
-
+
public static String getTriangleExe() {
return MdlPreferences.MDL.getStringProperty("grid.triangle.path");
}
-
+
public static boolean isTriangleExeConfigured() {
return getTriangleExe() != null && new File(getTriangleExe()).exists();
}
-
+
public CalqueCreateGridTriangleProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
super(points, ui, contour, convexHull);
}
-
+
@Override
public EfGridInterface process(ProgressionInterface prog) {
if (!isTriangleExeConfigured()) {
@@ -56,7 +56,7 @@
String fileName = null;
CExec exe = new CExec();
exe.setExecDirectory(tmpDir);
- if (contour == null || contour.modeleDonnees().getNbPolygone() == 0) {
+ if (isNoLinesSelected()) {
fileName = "in.node";
File nodeFile = new File(tmpDir, fileName);
TriangleNodeWriter writer = new TriangleNodeWriter();
@@ -80,18 +80,18 @@
return null;
}
//https://www.cs.cmu.edu/~quake/triangle.switch.html
- String options = "-DYY";
+ String options = addPointOnFrontier ? "-D" : "-DYY";
if (convexHull == null) {
- options = "-cDYY";
+ options = addPointOnFrontier ? "-cD" : "-cDYY";
}
exe.setCommand(new String[]{getTriangleExe(), options, fileName});
}
if (prog != null) {
prog.setDesc(MdlResource.getS("Ex\xE9cution du mailleur"));
}
-
-
-
+
+
+
exe.setListener(this);
exe.exec();
if (stop) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-21 09:38:14 UTC (rev 8228)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-21 09:38:40 UTC (rev 8229)
@@ -13,6 +13,7 @@
import java.io.File;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
+import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JList;
import org.apache.commons.lang.StringUtils;
@@ -33,13 +34,16 @@
* @author Frederic Deniger
*/
public class GridChooseToolAndContourConvexHullPanel extends CtuluDialogPanel {
-
+
JComboBox cbTriangulateur;
- JComboBox cbLayer;
+ JComboBox cbLayerContour;
+ JComboBox cbLayerInteriorLine;
JComboBox cbConvexHull;
+ JCheckBox cbUseHole;
+ JCheckBox cbAddPointOnFrontier;
BuTextField tfEps;
CtuluFileChooserPanel chooseExe;
-
+
public GridChooseToolAndContourConvexHullPanel(MdlVisuPanel visuPanel) {
super(false);
setHelpText(MdlResource.getS("Choisir le calque qui d\xE9terminera le contour et les trous du maillage"));
@@ -54,11 +58,12 @@
cbTriangulateur = new JComboBox(TriangulateurEnum.values());
add(cbTriangulateur);
chooseExe = addFileChooserPanel(this, MdlResource.getS("Chemin pour Triangle") + ": ", false, false);
-
+ cbAddPointOnFrontier = new JCheckBox();
cbTriangulateur.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
updateChooseExecState();
+ updateCbAddPointOnFrontierAndContraint();
}
});
String triangleExe = CalqueCreateGridTriangleProcessor.getTriangleExe();
@@ -68,38 +73,67 @@
if (isTriangleLastUsed()) {
cbTriangulateur.setSelectedItem(TriangulateurEnum.TRIANGLE);
}
+ BuLabel lbAddPoint = addLabel(MdlResource.getS("Ajouter des points sur la fronti\xE8re externe"));
+ lbAddPoint.setToolTipText(MdlResource.getS("Si activ\xE9, le triangulateur peut ajouter des points sur la fronti\xE8re"));
+
+ add(cbAddPointOnFrontier);
+ updateCbAddPointOnFrontierAndContraint();
List<BCalque> calquesContours = visuPanel.getCalquesContours();
+ final FSigWizardImportHelper.CalqueCellRender calqueCellRender = new FSigWizardImportHelper.CalqueCellRender();
+ calqueCellRender.setNullValue(MdlResource.getS("Aucun"));
if (!calquesContours.isEmpty()) {
- addLabel("");
- addLabel("");
+ addLabel(" ");
+ addLabel(" ");
BuLabel addLabel = addLabel(MdlResource.getS("Calque contour"));
addLabel.setToolTipText(MdlResource.getS("Les polygones du calque formeront l'enveloppe et les trous du maillage"));
calquesContours.add(0, null);
BCalque[] bCalques = (BCalque[]) calquesContours.toArray(new BCalque[calquesContours.size()]);
- cbLayer = new JComboBox(bCalques);
- final FSigWizardImportHelper.CalqueCellRender calqueCellRender = new FSigWizardImportHelper.CalqueCellRender();
- calqueCellRender.setNullValue(MdlResource.getS("Aucun"));
- cbLayer.setRenderer(calqueCellRender);
- add(cbLayer);
+ cbLayerContour = new JComboBox(bCalques);
+
+ cbLayerContour.setRenderer(calqueCellRender);
+ add(cbLayerContour);
BuLabel labelEnveloppe = addLabel(MdlResource.getS("L'enveloppe externe"));
labelEnveloppe.setToolTipText("<html>" + MdlResource.getS("Choisir le polygone formant l'enveloppe du maillage") + "<br>" + MdlResource.getS("Si aucun, l'enveloppe convexe du semis de point sera utilis\xE9"));
cbConvexHull = new JComboBox();
cbConvexHull.setRenderer(new LinearRingCellRenderer());
add(cbConvexHull);
- cbLayer.addItemListener(new ItemListener() {
+ BuLabel labelUseHole = addLabel(MdlResource.getS("Utiliser Les autres lignes ferm\xE9es comme des \xEEles"));
+ labelUseHole.setToolTipText("<html>" + MdlResource.getS("Si activ\xE9, les lignes ferm\xE9es, hormis l'enveloppe externe, seront consid\xE9r\xE9es comme \xE9tant des \xECles"));
+ cbUseHole = new JCheckBox();
+ add(cbUseHole);
+ cbUseHole.setSelected(true);
+ cbLayerContour.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
updateConvexHullCb();
}
});
}
+ List<BCalque> calqueLine2d = visuPanel.getCalquesContraintes();
+ addLabel(" ");
+ addLabel(" ");
+ BuLabel addLabel = addLabel(MdlResource.getS("Lignes de contraintes"));
+ addLabel.setToolTipText(MdlResource.getS("Lignes sur lesquelles le maillage devra s'appuyer. Non support\xE9 par le mailleur interne."));
+ calqueLine2d.add(0, null);
+ BCalque[] bCalques = (BCalque[]) calqueLine2d.toArray(new BCalque[calqueLine2d.size()]);
+ cbLayerInteriorLine = new JComboBox(bCalques);
+ cbLayerInteriorLine.setRenderer(calqueCellRender);
+ add(cbLayerInteriorLine);
+ updateCbAddPointOnFrontierAndContraint();
updateChooseExecState();
}
-
+
protected final void updateChooseExecState() {
chooseExe.setEnabled(isTriangleSelected());
}
-
+
+ protected final void updateCbAddPointOnFrontierAndContraint() {
+ cbAddPointOnFrontier.setEnabled(isTriangleSelected());
+ if (cbLayerInteriorLine != null) {
+ cbLayerInteriorLine.setEnabled(isTriangleSelected());
+ }
+ }
+
@Override
public boolean isDataValid() {
if (!isTriangleSelected()) {
@@ -120,11 +154,11 @@
}
return super.isDataValid();
}
-
+
public Double getEps() {
return (Double) tfEps.getValue();
}
-
+
@Override
public void apply() {
super.apply();
@@ -132,30 +166,36 @@
File choosenFile = chooseExe.getFile();
if (choosenFile != null) {
MdlPreferences.MDL.putStringProperty("grid.triangle.path", choosenFile.getAbsolutePath());
-
+
}
}
MdlPreferences.MDL.putStringProperty("grid.triangulateur.used", isTriangleSelected() ? "triangle" : "interne");
MdlPreferences.MDL.writeIniFile();
}
-
+
private boolean isTriangleLastUsed() {
return "triangle".equals(MdlPreferences.MDL.getStringProperty("grid.triangulateur.used"));
}
-
+
public boolean isTriangleSelected() {
return TriangulateurEnum.TRIANGLE.equals(cbTriangulateur.getSelectedItem());
-
-
}
-
+
+ public boolean isUseHoleIsSelected() {
+ return cbUseHole.isSelected();
+ }
+
+ public boolean isAddPointOnFrontierSelected() {
+ return cbAddPointOnFrontier.isSelected();
+ }
+
private class LinearRingCellRenderer extends CtuluCellTextRenderer {
-
+
@Override
public Component getListCellRendererComponent(JList _list, Object _value, int _index, boolean _isSelected, boolean _cellHasFocus) {
return super.getListCellRendererComponent(_list, getValue(_value, _index), _index, _isSelected, _cellHasFocus);
}
-
+
protected String getValue(Object _value, int selectedIdx) {
if (_value == null) {
return MdlResource.getS("Aucun");
@@ -165,8 +205,8 @@
idx = cbConvexHull.getSelectedIndex() - 1;
}
if (idx >= 0) {
- int att = getSelectedLayer().modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.TITRE);
- GISAttributeModel dataModel = getSelectedLayer().modeleDonnees().getGeomData().getDataModel(att);
+ int att = getSelectedContourLayer().modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.TITRE);
+ GISAttributeModel dataModel = getSelectedContourLayer().modeleDonnees().getGeomData().getDataModel(att);
String title = (String) dataModel.getObjectValueAt(idx);
if (StringUtils.isEmpty(title)) {
title = MdlResource.getS("Ligne ferm\xE9e {0}", Integer.toString(idx + 1));
@@ -177,22 +217,27 @@
return _value.toString();
}
}
-
+
protected void updateConvexHullCb() {
- ZCalqueLigneBrisee selectedLayer = getSelectedLayer();
+ ZCalqueLigneBrisee selectedLayer = getSelectedContourLayer();
+ cbUseHole.setEnabled(selectedLayer != null);
if (selectedLayer == null) {
cbConvexHull.setModel(new DefaultComboBoxModel());
} else {
cbConvexHull.setModel(new LinearRingComboBoxModel(selectedLayer));
cbConvexHull.setSelectedIndex(0);
}
-
+
}
-
- public ZCalqueLigneBrisee getSelectedLayer() {
- return cbLayer == null ? null : (ZCalqueLigneBrisee) cbLayer.getSelectedItem();
+
+ public ZCalqueLigneBrisee getSelectedContourLayer() {
+ return cbLayerContour == null ? null : (ZCalqueLigneBrisee) cbLayerContour.getSelectedItem();
}
-
+
+ public ZCalqueLigneBrisee getSelectedContrainteLayer() {
+ return cbLayerInteriorLine == null ? null : (ZCalqueLigneBrisee) cbLayerInteriorLine.getSelectedItem();
+ }
+
public LinearRing getSelectedConvexHull() {
return cbConvexHull == null ? null : (LinearRing) cbConvexHull.getSelectedItem();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|