|
From: <de...@us...> - 2012-06-01 01:09:46
|
Revision: 7260
http://fudaa.svn.sourceforge.net/fudaa/?rev=7260&view=rev
Author: deniger
Date: 2012-06-01 01:09:38 +0000 (Fri, 01 Jun 2012)
Log Message:
-----------
prise en compte caractere editable
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/comparaison/TestRequete.java
trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/metier/emh/CloneTest.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerBrancheController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerCasierController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerModelControllerDefault.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/NetworkBuilder.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PLanimetryDeplacementAction.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGISEditionAction.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisAttributeContext.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/configuration/VisuConfiguration.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryBrancheModel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryCasierLayerModel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetrySectionLayer.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayer.java
Added Paths:
-----------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGISGMLZoneExporter.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGisSaver.java
Modified: trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/comparaison/TestRequete.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/comparaison/TestRequete.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/comparaison/TestRequete.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -194,13 +194,6 @@
public void testFile() {
CustomPropertyUtilsBeanInstaller.install();
- final ArrayList o = new ArrayList();
- Map res = null;
- try {
- res = PropertyUtils.describe(o);
- } catch (final Exception e) {
- e.printStackTrace();
- }
final ReaderConfig readerConfig = new ReaderConfig();
final ConfComparaisonConteneur read = readerConfig.read(ReaderConfig.class.getResource("default-comparaison.xml"));
final ExecuteComparaison comp = new ExecuteComparaison(read, TestCrueConfigMetierLoaderDefault.DEFAULT, null);
Modified: trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/metier/emh/CloneTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/metier/emh/CloneTest.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/crue-server/src/test/java/org/fudaa/dodico/crue/metier/emh/CloneTest.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -6,7 +6,15 @@
import com.rits.cloning.Cloner;
import java.util.List;
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.comparaison.ExecuteComparaison;
+import org.fudaa.dodico.crue.comparaison.config.ConfComparaisonConteneur;
+import org.fudaa.dodico.crue.comparaison.io.ReaderConfig;
import org.fudaa.dodico.crue.config.TestCrueConfigMetierLoaderDefault;
+import org.fudaa.dodico.crue.io.ReadHelper;
+import org.fudaa.dodico.crue.io.TestCrueDH;
+import org.fudaa.dodico.crue.io.common.CrueData;
+import org.fudaa.dodico.crue.io.common.CrueIOResu;
import org.fudaa.dodico.crue.metier.factory.EMHRelationFactory;
import org.junit.Test;
import static org.junit.Assert.*;
@@ -16,25 +24,51 @@
* @author deniger ( genesis)
*/
public class CloneTest {
-
+
public CloneTest() {
}
-
+
@Test
public void testClone() {
CatEMHBranche br = new CatEMHBranche("toto");
br.addInfosEMH(new DonPrtCIniBranche(TestCrueConfigMetierLoaderDefault.DEFAULT));
- EMHRelationFactory.addNoeudAmont(br, new EMHNoeudNiveauContinu("Test"));
+ final EMHNoeudNiveauContinu emhNoeudNiveauContinu = new EMHNoeudNiveauContinu("Test");
+ EMHRelationFactory.addNoeudAmont(br, emhNoeudNiveauContinu);
+ EMHRelationFactory.addNoeudAval(br, emhNoeudNiveauContinu);
Cloner cloner = new Cloner();
CatEMHBranche br2 = cloner.deepClone(br);
assertNotNull(br2);
assertEquals(br2.getNom(), br.getNom());
assertFalse(br2 == br);
- List<RelationEMH> relationEMHInit = br.getRelationEMH();
List<RelationEMH> relationEMH = br2.getRelationEMH();
- assertEquals(1, relationEMH.size());
-
-
-
+ assertEquals(2, relationEMH.size());
+ RelationEMHNoeudDansBranche firstRelationIn1 = (RelationEMHNoeudDansBranche) br.getRelationEMH().get(0);
+ RelationEMHNoeudDansBranche firstRelationIn2 = (RelationEMHNoeudDansBranche) relationEMH.get(0);
+ assertFalse(firstRelationIn1 == firstRelationIn2);
+ assertEquals(firstRelationIn1.getClass(), firstRelationIn2.getClass());
+ assertEquals(firstRelationIn1.getEmh().getNom(), firstRelationIn2.getEmh().getNom());
+ assertEquals(firstRelationIn1.getEmh().getId(), firstRelationIn2.getEmh().getId());
+ RelationEMHNoeudDansBranche secRelationIn2 = (RelationEMHNoeudDansBranche) relationEMH.get(1);
+ assertTrue(secRelationIn2.getEmh() == firstRelationIn2.getEmh());
}
+
+ @Test
+ public void testAll() {
+ CrueIOResu<CrueData> readModele = ReadHelper.readModele(new CtuluLog(), TestCrueDH.FICHIER_TEST_MODELE3_DC,
+ TestCrueDH.FICHIER_TEST_MODELE3_DH);
+ EMHScenario scenarioData = readModele.getMetier().getScenarioData();
+ Cloner cloner = new Cloner();
+ EMHScenario clonedScenario = cloner.deepClone(scenarioData);
+ final ReaderConfig readerConfig = new ReaderConfig();
+ final ConfComparaisonConteneur read = readerConfig.read(ReaderConfig.class.getResource("default-comparaison.xml"));
+ final ExecuteComparaison comp = new ExecuteComparaison(read, TestCrueConfigMetierLoaderDefault.DEFAULT, null);
+ final List<ExecuteComparaison.ExecuteComparaisonResult> launch = comp.launch(scenarioData, clonedScenario);
+ for (ExecuteComparaison.ExecuteComparaisonResult result : launch) {
+ if (result.getLog().containsErrorOrSevereError()) {
+ result.getLog().printResume();
+ fail();
+ }
+ assertTrue(result.getRes() == null || result.getRes().isSame());
+ }
+ }
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerBrancheController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerBrancheController.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerBrancheController.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -45,7 +45,7 @@
return;
}
super.changeWillBeDone();
- //on sauvegarde égaleemnt les autres données hydrau
+ //on sauvegarde également les autres données hydrau
getHelper().getNodeController().changeWillBeDone();
getHelper().getCasierController().changeWillBeDone();
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerCasierController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerCasierController.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerCasierController.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -49,9 +49,6 @@
return ((ZModeleLigneBriseeEditable) layer.modeleDonnees()).getGeomData();
}
- public boolean isDefinedAsPolygone(int position) {
- return helper.getPlanimetryGisAttributeContext().getCasierAsLineModel(getCasierCollection()).getValue(position);
- }
CasierUpdaterFromNode casierUpdaterFromNode;
@Override
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerModelControllerDefault.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerModelControllerDefault.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/LayerModelControllerDefault.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -1,6 +1,5 @@
package org.fudaa.fudaa.crue.planimetry;
-import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gis.GISZoneCollectionGeometry;
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ctulu.gis.GISZoneListenerDispatcher;
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/NetworkBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/NetworkBuilder.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/NetworkBuilder.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -72,13 +72,9 @@
}
protected void addCasierAsPolygone(GISPolygone finalCoordinate, CatEMHCasier casier) {
- casiers.addPolygone(finalCoordinate, context.buildCasierData(casier, true), null);
+ casiers.addPolygone(finalCoordinate, context.buildCasierData(casier), null);
}
- protected void addCasierAsPoint(GISPolygone finalCoordinate, CatEMHCasier casier) {
- casiers.addPolygone(finalCoordinate, context.buildCasierData(casier, false), null);
- }
-
public GISZoneCollectionPoint getNodes() {
return nodes;
}
@@ -154,12 +150,13 @@
CatEMHCasier casier = nd.getCasier();
if (casier != null) {
casierDone.add(casier.getUiId());
- double xMin = pt.getX();
- double yMin = pt.getY();
- double xMax = pt.getX();
- double yMax = pt.getY();
+ double defaultCasierRealDimension = configuration.getDefaultCasierRealDimension();
+ double xMin = pt.getX() - defaultCasierRealDimension / 2;
+ double yMin = pt.getY() - defaultCasierRealDimension / 2;
+ double xMax = pt.getX() + defaultCasierRealDimension / 2;
+ double yMax = pt.getY() + defaultCasierRealDimension / 2;
GISPolygone rectangle = GISGeometryFactory.INSTANCE.createLinearRing(xMin, xMax, yMin, yMax);
- res.addCasierAsPoint(rectangle, casier);
+ res.addCasierAsPolygone(rectangle, casier);
}
}
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PLanimetryDeplacementAction.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PLanimetryDeplacementAction.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PLanimetryDeplacementAction.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -2,6 +2,7 @@
import com.memoire.bu.BuLabel;
import java.awt.FlowLayout;
+import javax.swing.event.TreeSelectionEvent;
import javax.swing.tree.TreeSelectionModel;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ebli.calque.action.SceneDeplacementAction;
@@ -58,10 +59,10 @@
PlanimetryPanelDeplacement content = (PlanimetryPanelDeplacement) getPaletteContent();
content.setEditable(paletteEnable);
}
+ }
+
- }
-
@Override
public void setSelected(boolean _b) {
if (!editable) {
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGISEditionAction.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGISEditionAction.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGISEditionAction.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -1,6 +1,8 @@
package org.fudaa.fudaa.crue.planimetry;
+import javax.swing.event.TreeSelectionEvent;
import javax.swing.tree.TreeSelectionModel;
+import org.fudaa.ebli.calque.BCalqueInteraction;
import org.fudaa.ebli.calque.ZScene;
import org.fudaa.ebli.calque.action.CalqueGISEditionAction;
import org.fudaa.ebli.calque.edition.ZEditorDefault;
@@ -22,4 +24,17 @@
bPaletteEdition.buildComponents();
return bPaletteEdition;
}
+
+ /**
+ * Appelée quand il y a un changement de selection dans l'arbre des calques.
+ */
+ @Override
+ public void valueChanged(final TreeSelectionEvent _e) {
+ unactivePaletteCreation();
+ BCalqueInteraction calqueInteraction = editor_.getPanel().getController().getCalqueInteraction("cqDeplacement");
+ if (calqueInteraction.isGele() && editor_.getPanel().getController().getCqSelectionI() != null) {
+ editor_.getPanel().getController().getCqSelectionI().setGele(false);
+ }
+ setTarget(getTarget((TreeSelectionModel) _e.getSource()));
+ }
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisAttributeContext.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisAttributeContext.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisAttributeContext.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -24,7 +24,7 @@
* @author deniger ( genesis)
*/
public class PlanimetryGisAttributeContext {
-
+
public static final int UID_POSITION = 0;
public static final int CASIER_AS_POLYGON_POSITION = 2;
GISAttributeLong uid = new GISAttributeLong("uid");
@@ -32,75 +32,73 @@
GISAttributeBoolean casierAsClosedLine = new GISAttributeBoolean("casierAsClosedLine");
private final IdRegistry idRegistry;
private final CrueConfigMetier crueConfigMetier;
-
+
public PlanimetryGisAttributeContext(IdRegistry idRegistry, CrueConfigMetier crueConfigMetier) {
this.idRegistry = idRegistry;
uid.setUserVisible(false);
((CtuluValueEditorString) id.getEditor()).setEditable(false);
this.crueConfigMetier = crueConfigMetier;
}
-
+
public CrueConfigMetier getCrueConfigMetier() {
return crueConfigMetier;
}
-
+
public <T extends EMH> T getEMH(Long uid) {
return (T) idRegistry.getEmh(uid);
}
-
+
public boolean isUid(GISAttributeInterface attribute) {
return uid == attribute;
}
-
+
public GISAttributeModel getUidModel(GISZoneCollectionGeometry zone) {
return zone.getDataModel(UID_POSITION);
}
-
- public GISAttributeModelBooleanInterface getCasierAsLineModel(GISZoneCollectionLigneBrisee zone) {
- return (GISAttributeModelBooleanInterface) zone.getDataModel(CASIER_AS_POLYGON_POSITION);
- }
-
+
+// public GISAttributeModelBooleanInterface getCasierAsLineModel(GISZoneCollectionLigneBrisee zone) {
+// return (GISAttributeModelBooleanInterface) zone.getDataModel(CASIER_AS_POLYGON_POSITION);
+// }
public Long getUid(GISZoneCollectionGeometry zone, int idx) {
return (Long) zone.getDataModel(UID_POSITION).getObjectValueAt(idx);
}
-
+
protected GISZoneCollectionPoint createNodeCollection() {
GISZoneCollectionPoint res = new GISZoneCollectionPoint();
res.setAttributes(new GISAttributeInterface[]{uid, id}, null);
return res;
}
-
+
protected List buildNodeData(CatEMHNoeud nd) {
List data = new ArrayList();
data.add(Long.valueOf(nd.getUiId()));
data.add(nd.getId());
return data;
}
-
+
GISZoneCollectionLigneBrisee createEdgeCollection() {
GISZoneCollectionLigneBrisee res = new GISZoneCollectionLigneBrisee();
res.setAttributes(new GISAttributeInterface[]{uid, id}, null);
return res;
}
-
+
GISZoneCollectionLigneBrisee createCasierCollection() {
GISZoneCollectionLigneBrisee res = new GISZoneCollectionLigneBrisee();
- res.setAttributes(new GISAttributeInterface[]{uid, id, casierAsClosedLine}, null);
+ res.setAttributes(new GISAttributeInterface[]{uid, id}, null);
return res;
}
-
+
Object[] buildEdgeData(CatEMHBranche branche) {
List data = new ArrayList();
data.add(Long.valueOf(branche.getUiId()));
data.add(branche.getId());
return data.toArray();
}
-
- Object[] buildCasierData(CatEMHCasier casier, boolean asPolygone) {
+
+ Object[] buildCasierData(CatEMHCasier casier) {
List data = new ArrayList();
data.add(Long.valueOf(casier.getUiId()));
data.add(casier.getId());
- data.add(Boolean.valueOf(asPolygone));
return data.toArray();
}
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/configuration/VisuConfiguration.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/configuration/VisuConfiguration.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/configuration/VisuConfiguration.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -12,6 +12,7 @@
double minimalDistanceBetweenNode = 100;
double minimalDistanceBeetweenParallelEdges = 100;
double casierTaille = 5;
+ double defaultCasierRealDimension = 4;
NodeConfiguration nodeConfiguration;
BrancheConfiguration brancheConfiguration;
SectionConfiguration sectionConfiguration;
@@ -26,19 +27,21 @@
return r;
}
+ public double getDefaultCasierRealDimension() {
+ return defaultCasierRealDimension;
+ }
+
public VisuConfiguration() {
nodeConfiguration = new NodeConfiguration(this);
brancheConfiguration = new BrancheConfiguration(this);
sectionConfiguration = new SectionConfiguration(this);
casierConfiguration = new CasierConfiguration(this);
- traceConfiguration=new TraceConfiguration(this);
+ traceConfiguration = new TraceConfiguration(this);
}
public TraceConfiguration getTraceConfiguration() {
return traceConfiguration;
}
-
-
public NodeConfiguration getNodeConfiguration() {
return nodeConfiguration;
@@ -47,8 +50,6 @@
public boolean isInactiveEMHVisible() {
return inactiveEMHVisible;
}
-
-
/**
* To get a font of the same family than an other but a little differente in size or style.
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryBrancheModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryBrancheModel.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryBrancheModel.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -23,12 +23,12 @@
super(_zone, modelController);
}
- TObjectDoubleHashMap<RelationEMHSectionDansBranche> getRatio(int position, CatEMHBranche branche, double minRealDistance,
- CrueConfigMetier confMetier) {
+ TObjectDoubleHashMap<RelationEMHSectionDansBranche> getRatio(int position, double minRealDistance, CrueConfigMetier confMetier) {
TObjectDoubleHashMap<RelationEMHSectionDansBranche> res = new TObjectDoubleHashMap<RelationEMHSectionDansBranche>();
if (position < 0) {
return res;
}
+ CatEMHBranche branche = getModelController().getBranche(position);
List<RelationEMHSectionDansBranche> listeSections = branche.getListeSections();
RelationEMHSectionDansBranche amontRelation = (RelationEMHSectionDansBranche) CollectionUtils.find(listeSections,
new PredicateFactory.PredicateRelationEMHSectionDansBranche(
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryCasierLayerModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryCasierLayerModel.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryCasierLayerModel.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -20,6 +20,6 @@
@Override
public boolean isGeometryReliee(int _idxGeom) {
- return getModelController().isDefinedAsPolygone(_idxGeom);
+ return true;
}
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetrySectionLayer.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetrySectionLayer.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetrySectionLayer.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -98,7 +98,7 @@
continue;
}
GISPolyligne brancheGis = brancheModel.getModelController().getBrancheGis(i);
- TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, branche, realDistance,
+ TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, realDistance,
crueConfigMetier);
for (TObjectDoubleIterator it = ratiosBySection.iterator(); it.hasNext();) {
it.advance();
@@ -231,6 +231,11 @@
}
@Override
+ public GrBoite getDomaine() {
+ return getBrancheModel().getModelController().getLayer().getDomaine();
+ }
+
+ @Override
public void paintSelection(Graphics2D _g, ZSelectionTrace _trace, GrMorphisme _versEcran, GrBoite _clipReel) {
}
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayer.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayer.java 2012-06-01 00:38:08 UTC (rev 7259)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layer/PlanimetryTraceLayer.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -91,9 +91,12 @@
if (!isVisible()) {
return null;
}
- GrBoite boite = new GrBoite();
int nb = brancheModel.getNombre();
final LayerBrancheController modelController = brancheModel.getModelController();
+ GrBoite boite = modelController.getLayer().getDomaine();
+ if (boite == null) {
+ boite = new GrBoite();
+ }
final CrueConfigMetier crueConfigMetier = modelController.getCrueConfigMetier();
GisAbscCurviligneToCoordinate.Result tmpResult = new GisAbscCurviligneToCoordinate.Result();
for (int i = nb - 1; i >= 0; i--) {
@@ -105,7 +108,8 @@
continue;
}
GISPolyligne brancheGis = modelController.getBrancheGis(i);
- TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, branche, 0,
+ boite.ajuste(brancheGis.getEnvelopeInternal());
+ TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, 0,
crueConfigMetier);
for (TObjectDoubleIterator it = ratiosBySection.iterator(); it.hasNext();) {
it.advance();
@@ -121,9 +125,11 @@
continue;
}
GisAbscCurviligneToCoordinate.find(brancheGis, ratio, tmpResult);
- GISPolyligne traceGIS = createLine(profilSection, brancheGis, tmpResult);
- if (traceGIS != null) {
- boite.ajuste(traceGIS.getEnvelopeInternal());
+ if (tmpResult.isFound()) {
+ GISPolyligne traceGIS = createLine(profilSection, brancheGis, tmpResult);
+ if (traceGIS != null) {
+ boite.ajuste(traceGIS.getEnvelopeInternal());
+ }
}
}
}
@@ -154,7 +160,7 @@
continue;
}
GISPolyligne brancheGis = modelController.getBrancheGis(i);
- TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, branche, realDistance,
+ TObjectDoubleHashMap<RelationEMHSectionDansBranche> ratiosBySection = brancheModel.getRatio(i, realDistance,
crueConfigMetier);
XtComparator xtComparator = new XtComparator(modelController.getCrueConfigMetier());
Coordinate intersectionBrancheSection = null;
@@ -177,6 +183,9 @@
continue;
}
GisAbscCurviligneToCoordinate.find(brancheGis, ratio, tmpResult);
+ if (!tmpResult.isFound()) {
+ continue;
+ }
pt.initialiseAvec(tmpResult.getCoordinate());
intersectionBrancheSection = new Coordinate(tmpResult.getCoordinate());
GISPolyligne traceGIS = createLine(profilSection, brancheGis, tmpResult);
Copied: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGISGMLZoneExporter.java (from rev 7196, trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/gml/GISGMLZoneExporter.java)
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGISGMLZoneExporter.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGISGMLZoneExporter.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -0,0 +1,255 @@
+/*
+ * @creation 19 mai 2005
+ *
+ * @modification $Date: 2008-03-28 14:59:28 $
+ *
+ * @license GNU General Public License 2
+ *
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ *
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.crue.planimetry.save;
+
+import gnu.trove.TIntArrayList;
+import gnu.trove.TObjectIntHashMap;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.fudaa.ctulu.CtuluActivity;
+import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.ProgressionUpdater;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
+import org.fudaa.ctulu.gis.GISAttributeDouble;
+import org.fudaa.ctulu.gis.GISAttributeInterface;
+import org.fudaa.ctulu.gis.GISAttributeModel;
+import org.fudaa.ctulu.gis.GISLib;
+import org.fudaa.ctulu.gis.GISZoneCollection;
+import org.geotools.data.DataStore;
+import org.geotools.data.FeatureWriter;
+import org.geotools.data.Transaction;
+import org.geotools.feature.AttributeType;
+import org.geotools.feature.AttributeTypeFactory;
+import org.geotools.feature.Feature;
+import org.geotools.feature.FeatureType;
+import org.geotools.feature.FeatureTypes;
+import org.geotools.feature.IllegalAttributeException;
+import org.geotools.feature.SchemaException;
+import org.geotools.feature.type.BasicFeatureTypes;
+
+import org.fudaa.ctulu.gis.GISDataModel;
+
+import com.memoire.fu.FuLog;
+import com.vividsolutions.jts.geom.Geometry;
+import org.fudaa.ctulu.gis.gml.GMLFeatureWriter;
+
+/**
+ * @author Fred Deniger
+ * @version $Id: GISGMLZoneExporter.java,v 1.1.6.1 2008-03-28 14:59:28 bmarchan Exp $
+ */
+public class PlanimetryGISGMLZoneExporter implements CtuluActivity {
+
+ boolean stop_;
+
+ public void stop() {
+ stop_ = true;
+ }
+
+ public PlanimetryGISGMLZoneExporter() {
+ super();
+ }
+
+ private boolean useIdAsName_;
+
+ /**
+ * Cr�ation de tous les attributes types a partir des attributs de la zone. L'attribut pris pour Z n'est pas cr��, car
+ * transf�r� dans le Z.
+ *
+ * @param _zone La zone.
+ * @param _attIsZ L'attribut pris pour Z
+ * @param _attrIdx Argument de sortie. Une table associant l'indice des attributs de la zone a un attribut cr��.
+ * @return Les attributs cr�es.
+ */
+ public AttributeType[] createAttributes(final GISDataModel _zone, final GISAttributeDouble _attIsZ, final TObjectIntHashMap _attrIdx) {
+ final int attributeNb = _zone.getNbAttributes();
+ final TIntArrayList attribute = new TIntArrayList(attributeNb);
+
+ for (int i = 0; i < attributeNb; i++) {
+ // Seul l'attribut pris pour Z n'est pas enregistr�.
+ if (!_zone.getAttribute(i).equals(_attIsZ)) {
+ // if (!_zone.getAttribute(i).isAtomicValue()) {
+ attribute.add(i);
+ if (FuLog.isDebug()) {
+ FuLog.debug("add attribute " + _zone.getAttribute(i).getID() + " classe " + _zone.getAttribute(i).getDataClass());
+ }
+ }
+ }
+ final int size = attribute.size();
+ // on construit les attributs que vont bien
+ final AttributeType[] atts = new AttributeType[2 + size];
+ // le premier correspond a la geometrie
+ atts[0] = AttributeTypeFactory.newAttributeType(BasicFeatureTypes.GEOMETRY_ATTRIBUTE_NAME, Geometry.class);
+
+ for (int i = 0; i < size; i++) {
+ final int posInZone = attribute.get(i);
+ atts[i + 1] = GISLib.createAttributeFrom(_zone.getAttribute(posInZone), useIdAsName_);
+ _attrIdx.put(atts[i + 1], posInZone);
+ }
+
+ // Le dernier correspond � l'index de la g�om�trie dans la GISZone
+ GISAttributeInterface attInd = GISAttributeConstants.INDEX_GEOM;
+ atts[atts.length - 1] = AttributeTypeFactory.newAttributeType(attInd.getID(), attInd.getDataClass());
+ return atts;
+ }
+
+ DataStore store_;
+ OutputStream out_;
+
+ protected FeatureWriter createWriter(final FeatureType _type) throws IOException {
+ if (store_ != null) {
+ store_.createSchema(_type);
+ return store_.getFeatureWriter(_type.getTypeName(), Transaction.AUTO_COMMIT);
+ }
+ return new GMLFeatureWriter(_type, out_);
+ }
+
+ /**
+ * @param _prog la barre de progression
+ * @param _zone la zone a exporter
+ * @param _dest la destination
+ * @throws IOException
+ * @throws SchemaException
+ * @throws IllegalAttributeException
+ */
+ public void process(final ProgressionInterface _prog, final GISDataModel _zone, final GISAttributeDouble _attIsZ, final DataStore _dest)
+ throws IOException, SchemaException, IllegalAttributeException {
+ out_ = null;
+ store_ = _dest;
+ process(_prog, _zone, _attIsZ);
+ }
+
+ /**
+ * Attention: l'outputstream n'est pas ferme.
+ *
+ * @param _prog
+ * @param _zone
+ * @param _dest
+ * @throws IOException
+ * @throws SchemaException
+ * @throws IllegalAttributeException
+ */
+ public void processGML(final ProgressionInterface _prog, final GISZoneCollection _zone, final OutputStream _dest) throws IOException,
+ SchemaException, IllegalAttributeException {
+ out_ = _dest;
+ store_ = null;
+ _zone.prepareExport();
+ process(_prog, _zone, _zone.getAttributeIsZ());
+ }
+
+ /**
+ * Enregistre la zone sous un format GML.
+ * <p>
+ * Les attributs globaux sont enregistr�s comme attributs globaux de chaque g�om�trie, l'attribut pris pour Z est
+ * enregistr� dans les coordonn�es Z des g�om�tries.<br>
+ * Les attributs atomiques sont enregistr�s sous forme de tableau de String, s�par�s par une virgule.
+ *
+ * @param _prog Progression de la tache.
+ * @param _zone La zone a enregistrer
+ * @param _attIsZ L'attrribut pris pour Z (atomique ou non).
+ */
+ private void process(final ProgressionInterface _prog, final GISDataModel _zone, GISAttributeDouble _attIsZ) throws IOException, SchemaException,
+ IllegalAttributeException {
+ /*
+ * Pour que les z atomiques soient export�s correctement, il faut que
+ * prepareExport() ait �t� appel� en amont de cette m�thode.
+ */
+ stop_ = false;
+ final TObjectIntHashMap attIdx = new TObjectIntHashMap(_zone.getNbAttributes());
+ final AttributeType[] atts = createAttributes(_zone, _attIsZ, attIdx);
+ if (stop_) {
+ return;
+ }
+ final FeatureType featureType = createFeatureType(_zone, atts);
+ FeatureWriter writer = null;
+ try {
+ writer = createWriter(featureType);
+ if (stop_) {
+ return;
+ }
+ final int nb = _zone.getNumGeometries();
+ final ProgressionUpdater up = new ProgressionUpdater(_prog);
+ up.setValue(9, nb, 10, 90);
+ final int nbAttribute = atts.length;
+ for (int i = 0; i < nb; i++) {
+ if (stop_) {
+ return;
+ }
+ final Feature feature = writer.next();
+ feature.setDefaultGeometry(_zone.getGeometry(i));
+ for (int j = 1; j < nbAttribute - 1; j++) {
+
+ // Pour les attributs atomiques, les valeurs sont stock�es sous forme d'un tableau {a,b,c,...}
+ if (_zone.getAttribute(attIdx.get(atts[j])).isAtomicValue()) {
+ Object value = _zone.getValue(attIdx.get(atts[j]), i);
+ StringBuilder sb = new StringBuilder();
+ if (value instanceof GISAttributeModel) {
+ GISAttributeModel md = (GISAttributeModel) value;
+
+ sb.append("{").append(md.getObjectValueAt(0).toString().replaceAll(",", "‚"));
+ for (int k = 1; k < md.getSize(); k++)
+ sb.append(",").append(md.getObjectValueAt(k).toString().replaceAll(",", "‚"));
+ sb.append("}");
+ } else if (value != null) {
+ sb.append("{").append(value.toString().replaceAll(",", "‚"));
+ sb.append("}");
+ }
+
+ feature.setAttribute(j, sb);
+ }
+
+ /// Atributs standards.
+ else feature.setAttribute(j, _zone.getValue(attIdx.get(atts[j]), i));
+ }
+
+ // Enregistrement de l'index de la g�om�trie dans le fichier
+ feature.setAttribute(nbAttribute - 1, new Integer(i));
+ writer.write();
+
+ up.majAvancement();
+ }
+ } finally {
+ if (writer != null) {
+ if (out_ == null) {
+ writer.close();
+ } else {
+ ((GMLFeatureWriter) writer).writeFooter();
+ }
+ }
+ }
+ }
+
+ public FeatureType createFeatureType(final GISDataModel _zone, final AttributeType[] _atts) throws SchemaException {
+ /* Changement de GISZoneCollection en GISDataModel, suppression des lignes dessous
+ String name = _zone.getTitle();
+ if (name == null) {
+ name = "zone";
+ }*/
+ final FeatureType featureType = FeatureTypes.newFeatureType(_atts, "zone");
+ return featureType;
+ }
+
+ /**
+ * A utiliser pour des donn�es sensibles lorsque l'on veut que certains attributs soient retrouv� dans toutes les
+ * langues.
+ *
+ * @return true si on utilise l'ID de la variable pour construire l'attribut � inclure dans le fichier de sortie.
+ */
+ protected boolean isUseIdAsName() {
+ return useIdAsName_;
+ }
+
+ public void setUseIdAsName(final boolean _useIdAsName) {
+ useIdAsName_ = _useIdAsName;
+ }
+}
Added: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGisSaver.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGisSaver.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/PlanimetryGisSaver.java 2012-06-01 01:09:38 UTC (rev 7260)
@@ -0,0 +1,22 @@
+package org.fudaa.fudaa.crue.planimetry.save;
+
+import java.io.File;
+import org.fudaa.dodico.crue.metier.etude.EMHProjet;
+import org.fudaa.fudaa.crue.planimetry.PlanimetryController;
+
+/**
+ *
+ * @author deniger ( genesis)
+ */
+public class PlanimetryGisSaver {
+
+ EMHProjet target;
+ PlanimetryController controller;
+
+ public void save() {
+ File dirOfConfig = target.getInfos().getDirOfConfig();
+ controller.getNodeController().getNodeCollection();
+ controller.getBrancheController().getBranchePosition(Long.MIN_VALUE);
+
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|