|
From: <de...@us...> - 2012-11-02 18:23:10
|
Revision: 7851
http://fudaa.svn.sourceforge.net/fudaa/?rev=7851&view=rev
Author: deniger
Date: 2012-11-02 18:23:03 +0000 (Fri, 02 Nov 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/AbstractLayerSectionController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionGisBuilder.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/PlanimetryGisModelContainer.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryLigneBriseeLayerModel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryPointLayerModel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayerModel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/controller/Bundle.properties
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/AbstractLayerSectionController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/AbstractLayerSectionController.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/AbstractLayerSectionController.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -14,13 +14,13 @@
/**
* Un controleur commun pour les traces et section
+ *
* @author deniger ( genesis)
*/
public abstract class AbstractLayerSectionController<L extends ZCalqueAffichageDonnees> extends LayerModelControllerDefault<L> {
SectionUpdaterFromBranche sectionUpdaterFromBranche;
PropertyChangeListener zoomChangedListener = new PropertyChangeListener() {
-
@Override
public void propertyChange(PropertyChangeEvent evt) {
updateIfZoomChanged();
@@ -94,7 +94,7 @@
double rayon = getVisuConfiguration().getNodeConfiguration().getRayon();
lastUsedOffset = GrMorphisme.convertDistanceXY(versReel, rayon);
GISZoneCollectionGeometry rebuild = rebuild(lastUsedOffset);
- rebuild.setGeomModifiable(getGISCollection().isGeomModifiable());
+ rebuild.setGeomModifiable(false);
setGISCollection(rebuild);
}
@@ -108,5 +108,4 @@
sectionUpdaterFromBranche = new SectionUpdaterFromBranche(this);
helper.getBrancheController().addGISListener(sectionUpdaterFromBranche);
}
-
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionGisBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionGisBuilder.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionGisBuilder.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -21,7 +21,7 @@
* @author deniger ( genesis)
*/
public class LayerSectionGisBuilder {
-
+
public static TObjectDoubleHashMap<RelationEMHSectionDansBranche> getRatio(int position, double minRealDistance,
LayerBrancheController brancheController) {
TObjectDoubleHashMap<RelationEMHSectionDansBranche> res = new TObjectDoubleHashMap<RelationEMHSectionDansBranche>();
@@ -49,7 +49,7 @@
double avalRatio = 1d;
double amontRatio = 0d;
final double length = branche.getLength();
-
+
if (visuLength > minRealDistance) {
amontRatio = minRealDistance / visuLength;
avalRatio = (visuLength - minRealDistance) / visuLength;
@@ -76,11 +76,11 @@
return res;
}
private final PlanimetryController controller;
-
+
public LayerSectionGisBuilder(PlanimetryController controller) {
this.controller = controller;
}
-
+
protected GISZoneCollectionPoint rebuild(double offsetForAmonAvalSection) {
final GISZoneCollectionPoint newSectionCollection = controller.getPlanimetryGisModelContainer().createSectionCollection();
newSectionCollection.setGeomModifiable(true);
@@ -105,6 +105,7 @@
null);
}
}
+ newSectionCollection.setGeomModifiable(false);
return newSectionCollection;
}
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -118,6 +118,13 @@
return relationSectionDansBranche.getEmh();
}
+ @Override
+ public void setEditable(boolean editable) {
+ this.editable = editable;
+ getHelper().getPlanimetryGisModelContainer().setAnglesEditable(editable);
+ getLayer().setActionsEnable(editable);
+ }
+
public void getSelectedEMHs(Collection<Long> uids) {
if (!layer.isVisible() || layer.isSelectionEmpty()) {
return;
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -3,6 +3,7 @@
import com.vividsolutions.jts.geom.Coordinate;
import gnu.trove.TObjectDoubleHashMap;
import gnu.trove.TObjectDoubleIterator;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
@@ -10,6 +11,7 @@
import org.fudaa.ctulu.gis.GISPolyligne;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GisAbscCurviligneToCoordinate;
+import org.fudaa.dodico.crue.common.Pair;
import org.fudaa.dodico.crue.config.ItemEnum;
import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
import org.fudaa.dodico.crue.metier.emh.DonPrtGeo;
@@ -26,13 +28,13 @@
* @author deniger ( genesis)
*/
public class LayerTraceGisBuilder {
-
+
private final PlanimetryController controller;
-
+
public LayerTraceGisBuilder(PlanimetryController controller) {
this.controller = controller;
}
-
+
public static double findXmaxLit(List<LitNumerote> litNumerotes, boolean onlyActif) {
double xmax = 0;
boolean first = true;
@@ -46,11 +48,11 @@
} else {
xmax = Math.max(xmax, litNumerote.getLimFin().getAbscisse());
}
-
+
}
return xmax;
}
-
+
public static double findXminLit(List<LitNumerote> litNumerotes, boolean onlyActif) {
double xmin = 0;
boolean first = true;
@@ -64,7 +66,7 @@
} else {
xmin = Math.min(xmin, litNumerote.getLimDeb().getAbscisse());
}
-
+
}
return xmin;
}
@@ -76,14 +78,30 @@
* @return
*/
public GISZoneCollectionLigneBrisee rebuild(double offsetForAmonAvalSection) {
- final GISZoneCollectionLigneBrisee newSectionCollection = controller.getPlanimetryGisModelContainer().createTraceCollection();
+ final GISZoneCollectionLigneBrisee oldSectionCollection = controller.getTraceController().getGISCollection();
+ Map<Long, Pair<Double, Double>> oldAngle = new HashMap<Long, Pair<Double, Double>>();
+ final PlanimetryGisModelContainer planimetryGisModelContainer = controller.getPlanimetryGisModelContainer();
+ if (oldSectionCollection != null && oldSectionCollection.getNumGeometries() > 0) {
+ int nb = oldSectionCollection.getNumGeometries();
+ for (int i = 0; i < nb; i++) {
+ Long uid = planimetryGisModelContainer.getUid(oldSectionCollection, i);
+ if (uid != null) {
+ Double startAngleInDegree = planimetryGisModelContainer.getAngleBegin(oldSectionCollection, i);
+ Double endAngleInDegree = planimetryGisModelContainer.getAngleEnd(oldSectionCollection, i);
+ oldAngle.put(uid, new Pair<Double, Double>(startAngleInDegree, endAngleInDegree));
+ }
+ }
+ }
+
+ final GISZoneCollectionLigneBrisee newSectionCollection = planimetryGisModelContainer.createTraceCollection();
newSectionCollection.setGeomModifiable(true);
final LayerBrancheController brancheController = controller.getBrancheController();
GISZoneCollectionLigneBrisee brancheCollection = brancheController.getBrancheCollection();
int nb = brancheCollection.getNumGeometries();
GisAbscCurviligneToCoordinate.Result tmpResult = new GisAbscCurviligneToCoordinate.Result();
double realDistance = offsetForAmonAvalSection;
-// GrPoint pt = new GrPoint();
+ double defaultAngleInRadians = getTraceConfiguration().getAngleInRadians();
+ double defaultAngleInDegree = getTraceConfiguration().getAngleInDegree();
for (int i = nb - 1; i >= 0; i--) {
CatEMHBranche branche = brancheController.getBranche(i);
GISPolyligne brancheGis = brancheController.getBrancheGis(i);
@@ -106,23 +124,33 @@
if (!tmpResult.isFound()) {
continue;
}
-// pt.initialiseAvec(tmpResult.getCoordinate());
-// intersectionBrancheSection = new Coordinate(tmpResult.getCoordinate());
- GISPolyligne traceGIS = createLine(profilSection, brancheGis, tmpResult);
- newSectionCollection.addPolyligne(traceGIS, controller.getPlanimetryGisModelContainer().buildSectionData(
- sectionDansBranche, branche), null);
+ double startAngleInRadians = defaultAngleInRadians;
+ double startAngleInDegree = defaultAngleInDegree;
+ double endAngleInRadians = defaultAngleInRadians;
+ double endAngleInDegree = defaultAngleInDegree;
+ Pair<Double, Double> angleInDegrees = oldAngle.get(sectionDansBranche.getEmh().getUiId());
+ if (angleInDegrees != null) {
+ startAngleInDegree = angleInDegrees.first;
+ startAngleInRadians = Math.toRadians(startAngleInDegree);
+ endAngleInDegree = angleInDegrees.second;
+ endAngleInRadians = Math.toRadians(endAngleInDegree);
+ }
+ GISPolyligne traceGIS = createLine(profilSection, brancheGis, tmpResult, startAngleInRadians, endAngleInRadians);
+ newSectionCollection.addPolyligne(traceGIS, planimetryGisModelContainer.buildTraceData(
+ sectionDansBranche, branche, startAngleInDegree, endAngleInDegree), null);
}
}
+ newSectionCollection.setGeomModifiable(false);
return newSectionCollection;
-
+
}
-
+
private TraceConfiguration getTraceConfiguration() {
return controller.getVisuConfiguration().getTraceConfiguration();
}
-
+
protected GISPolyligne createLine(DonPrtGeoProfilSection profilSection, GISPolyligne brancheGis,
- GisAbscCurviligneToCoordinate.Result tmpResult) {
+ GisAbscCurviligneToCoordinate.Result tmpResult, double angleStartInRadians, double angleEndInRadians) {
if (profilSection == null) {
return null;
}
@@ -154,8 +182,8 @@
}
}
}
-
-
+
+
int segmentidx = tmpResult.getSegmentidx();
Coordinate amont = brancheGis.getCoordinateN(segmentidx);
Coordinate aval = brancheGis.getCoordinateN(segmentidx + 1);
@@ -173,7 +201,7 @@
}
Map<ItemEnum, DonPrtGeoProfilEtiquette> createMap = DonPrtGeoProfilEtiquette.createMap(profilSection.getEtiquettes());
DonPrtGeoProfilEtiquette axeHyd = createMap.get(controller.getCrueConfigMetier().getLitNomme().getEtiquetteAxeHyd());
-
+
double xAxeHydraulique = (maxMineur + minMineur) / 2;//retrouver la notion d'axe hydraulique...
if (axeHyd != null) {
xAxeHydraulique = axeHyd.getPoint().getXt();
@@ -191,31 +219,33 @@
compute(accrochePt, vxTrace, vyTrace, (xAxeHydraulique - xmax), rg);
compute(accrochePt, vxTrace, vyTrace, (xAxeHydraulique - xmaxActif), rgActif);
compute(accrochePt, vxTrace, vyTrace, (xAxeHydraulique - maxMineur), rgMineur);
- double angle = getTraceConfiguration().getAngleInRadians();
-// angle=0;
- if (angle != 0) {
- final double sinAlpha = Math.sin(angle);
- final double cosAlpha = Math.cos(angle);
+ if (angleStartInRadians != 0) {
+ final double sinAlpha = Math.sin(angleStartInRadians);
+ final double cosAlpha = Math.cos(angleStartInRadians);
if (!rd.equals2D(rdMineur)) {
rotate(rd, rdMineur, cosAlpha, sinAlpha);
rotate(rdActif, rdMineur, cosAlpha, sinAlpha);
}
+ }
+ if (angleEndInRadians != 0) {
+ final double sinAlpha = Math.sin(angleEndInRadians);
+ final double cosAlpha = Math.cos(angleEndInRadians);
if (!rg.equals2D(rgMineur)) {
rotate(rg, rgMineur, cosAlpha, sinAlpha);
rotate(rgActif, rgMineur, cosAlpha, sinAlpha);
}
}
-
+
return (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(
new Coordinate[]{rd, rdActif, rdMineur, rgMineur, rgActif, rg});
}
-
+
protected void compute(Coordinate base, double vx, double vy, double norm, Coordinate pt) {
pt.x = base.x + vx * norm;
pt.y = base.y + vy * norm;
-
+
}
-
+
private void rotate(Coordinate ptToRotate, Coordinate reference, final double cosAlpha, final double sinAlpha) {
double vx = ptToRotate.x - reference.x;
double vy = ptToRotate.y - reference.y;
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/PlanimetryGisModelContainer.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/PlanimetryGisModelContainer.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/PlanimetryGisModelContainer.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -3,8 +3,10 @@
import com.rits.cloning.Cloner;
import java.util.ArrayList;
import java.util.List;
+import org.fudaa.ctulu.editor.CtuluValueEditorDouble;
import org.fudaa.ctulu.editor.CtuluValueEditorString;
import org.fudaa.ctulu.gis.GISAttribute;
+import org.fudaa.ctulu.gis.GISAttributeDouble;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISAttributeLong;
import org.fudaa.ctulu.gis.GISAttributeModel;
@@ -38,9 +40,15 @@
*/
public static final int BRANCHE_NOM_POSITION = 3;
public static final int RELATION_SECTION_DANS_BRANCHE_POSITION = 4;
+ public static final int TRACE_ANGLE_BEGIN = 5;
+ public static final int TRACE_ANGLE_END = 6;
GISAttributeLong uid = new GISAttributeLong("uid");
GISAttributeString id = new GISAttributeString(org.openide.util.NbBundle.getMessage(PlanimetryGisModelContainer.class,
- "attributeEMH.Name"));
+ "attributeEMH.Name"));
+ GISAttributeDouble beginAngle = new GISAttributeDouble(org.openide.util.NbBundle.getMessage(PlanimetryGisModelContainer.class,
+ "BeginAngle.Name"), false);
+ GISAttributeDouble endAngle = new GISAttributeDouble(org.openide.util.NbBundle.getMessage(PlanimetryGisModelContainer.class,
+ "EndAngle.Name"), false);
/**
* utilisé par section et trace
*/
@@ -49,7 +57,7 @@
* utilisé par section et trace
*/
GISAttributeString brancheId = new GISAttributeString(NbBundle.getMessage(PlanimetryGisModelContainer.class,
- "attributeBranche.Name"));
+ "attributeBranche.Name"));
/**
* utilise pour recuperer la relation utilisee entre la branche et la section.
*/
@@ -64,8 +72,15 @@
sectionDansBranche.setUserVisible(false);
((CtuluValueEditorString) id.getEditor()).setEditable(false);
((CtuluValueEditorString) brancheId.getEditor()).setEditable(false);
+ setAnglesEditable(false);
}
+ public final void setAnglesEditable(boolean editable) {
+ ((CtuluValueEditorDouble) beginAngle.getEditor()).setEditable(editable);
+ ((CtuluValueEditorDouble) endAngle.getEditor()).setEditable(editable);
+
+ }
+
public void setScenario(EMHScenario scenario) {
this.scenario = scenario;
scenarioInitial = null;
@@ -115,8 +130,17 @@
return (Long) zone.getDataModel(UID_POSITION).getObjectValueAt(idx);
}
+ public Double getAngleBegin(GISZoneCollectionGeometry zone, int idx) {
+ return (Double) zone.getDataModel(TRACE_ANGLE_BEGIN).getObjectValueAt(idx);
+ }
+
+ public Double getAngleEnd(GISZoneCollectionGeometry zone, int idx) {
+ return (Double) zone.getDataModel(TRACE_ANGLE_END).getObjectValueAt(idx);
+ }
+
/**
* ne doit etre appele que pour les sections ou trace de section
+ *
* @param zone
* @param idx
* @return
@@ -127,6 +151,7 @@
/**
* ne doit etre appele que pour les sections ou trace de section
+ *
* @param zone
* @param idx
* @return
@@ -152,7 +177,7 @@
public GISZoneCollectionLigneBrisee createTraceCollection() {
GISZoneCollectionLigneBrisee res = new GISZoneCollectionLigneBrisee();
//attention, l'ordre de ce tableau doit respecter les indices *_POSITION de cette classe.
- res.setAttributes(new GISAttributeInterface[]{uid, id, brancheUid, brancheId, sectionDansBranche}, null);
+ res.setAttributes(new GISAttributeInterface[]{uid, id, brancheUid, brancheId, sectionDansBranche, beginAngle, endAngle}, null);
return res;
}
@@ -183,8 +208,22 @@
return data.toArray();
}
+ public Object[] buildTraceData(RelationEMHSectionDansBranche relation,
+ CatEMHBranche branche, double angleInDegreeBegin, double angleInDegreeEnd) {
+ List data = new ArrayList();
+ CatEMHSection section = relation.getEmh();
+ data.add(section.getUiId());
+ data.add(section.getNom());
+ data.add(branche.getUiId());
+ data.add(branche.getNom());
+ data.add(relation);
+ data.add(angleInDegreeBegin);
+ data.add(angleInDegreeEnd);
+ return data.toArray();
+ }
+
public Object[] buildSectionData(RelationEMHSectionDansBranche relation,
- CatEMHBranche branche) {
+ CatEMHBranche branche) {
List data = new ArrayList();
CatEMHSection section = relation.getEmh();
data.add(section.getUiId());
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryLigneBriseeLayerModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryLigneBriseeLayerModel.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryLigneBriseeLayerModel.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -12,8 +12,8 @@
import org.fudaa.ebli.geometrie.GrPolyligne;
/**
- * Un modele que tous les modeles de calques éditables doivent utilsées. Permet de gérer les modifications, en faisant une copie
- * des données avant toutes modifications via l'UI
+ * Un modele que tous les modeles de calques éditables doivent utilsées. Permet de gérer les modifications, en faisant une copie des données avant
+ * toutes modifications via l'UI
*
* @author deniger ( genesis)
*/
@@ -30,6 +30,11 @@
return layerController;
}
+ @Override
+ public void modificationWillBeDone() {
+ getLayerController().changeWillBeDone();
+ }
+
public PlanimetryLigneBriseeLayerModel() {
}
@@ -99,7 +104,7 @@
@Override
public boolean moveAtomic(EbliListeSelectionMultiInterface _selection, double _dx, double _dy, double _dz,
- CtuluCommandContainer _cmd, CtuluUI _ui) {
+ CtuluCommandContainer _cmd, CtuluUI _ui) {
layerController.changeWillBeDone();
final boolean done = super.moveAtomic(_selection, _dx, _dy, _dz, null, _ui);
layerController.changeDone();
@@ -124,7 +129,7 @@
@Override
public boolean rotateAtomic(EbliListeSelectionMultiInterface _selection, double _angRad, double _xreel0, double _yreel0,
- CtuluCommandContainer _cmd, CtuluUI _ui) {
+ CtuluCommandContainer _cmd, CtuluUI _ui) {
layerController.changeWillBeDone();
final boolean done = super.rotateAtomic(_selection, _angRad, _xreel0, _yreel0, null, _ui);
layerController.changeDone();
@@ -133,7 +138,7 @@
@Override
public boolean rotateGlobal(CtuluListSelectionInterface _selection, double _angRad, double _xreel0, double _yreel0,
- CtuluCommandContainer _cmd) {
+ CtuluCommandContainer _cmd) {
layerController.changeWillBeDone();
final boolean done = super.rotateGlobal(_selection, _angRad, _xreel0, _yreel0, null);
layerController.changeDone();
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryPointLayerModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryPointLayerModel.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryPointLayerModel.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -8,8 +8,8 @@
import org.fudaa.ebli.geometrie.GrPoint;
/**
- * Un modele que tous les modeles de calques éditables doivent utilsées. Permet de gérer les modifications, en faisant une copie
- * des données avant toutes modifications via l'UI
+ * Un modele que tous les modeles de calques éditables doivent utilsées. Permet de gérer les modifications, en faisant une copie des données avant
+ * toutes modifications via l'UI
*
* @author deniger ( genesis)
*/
@@ -22,6 +22,11 @@
this.layerController = layerModelController;
}
+ @Override
+ public void modificationWillBeDone() {
+ getLayerController().changeWillBeDone();
+ }
+
public C getLayerController() {
return layerController;
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayerModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayerModel.java 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayerModel.java 2012-11-02 18:23:03 UTC (rev 7851)
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.List;
import org.fudaa.ctulu.CtuluCommandContainer;
+import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.dodico.crue.edition.EditionDelete;
import org.fudaa.dodico.crue.metier.emh.CatEMHSection;
@@ -33,6 +34,27 @@
}
@Override
+ public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
+ getLayerController().changeWillBeDone();
+ PlanimetryControllerHelper helper = super.getLayerController().getHelper();
+ helper.scenarioEditionStarted();
+ super.attributeValueChangeAction(_source, _indexAtt, _att, _indexGeom, _newValue);
+ getLayerController().rebuildGis();
+ getLayerController().changeDone();
+ getLayerController().getLayer().repaint(0);
+ }
+
+ @Override
+ public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
+ super.attributeAction(_source, _indexAtt, _att, _action);
+ }
+
+ @Override
+ public void objectAction(Object _source, int _idx, Object _obj, int _action) {
+ super.objectAction(_source, _idx, _obj, _action);
+ }
+
+ @Override
public boolean removeLigneBrisee(int[] _idx, CtuluCommandContainer _cmd) {
return removeTraces(_idx, false);
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/controller/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/controller/Bundle.properties 2012-11-02 18:10:54 UTC (rev 7850)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/controller/Bundle.properties 2012-11-02 18:23:03 UTC (rev 7851)
@@ -1,5 +1,7 @@
attributeBranche.Name=Branche
attributeEMH.Name=Nom EMH
+BeginAngle.Name=Trace angle D\u00e9but
+EndAngle.Name=Trace angle Fin
cqTrace=Trace de ProfilSection
cqBranche=Branches
cqNode=Noeuds
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|