|
From: <de...@us...> - 2013-09-09 22:20:45
|
Revision: 8496
http://sourceforge.net/p/fudaa/svn/8496
Author: deniger
Date: 2013-09-09 22:20:42 +0000 (Mon, 09 Sep 2013)
Log Message:
-----------
maj librairie de graph
Modified Paths:
--------------
trunk/soft/fudaa-crue/pom.xml
trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioVisuService.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkBuilder.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkGisPositionnerResult.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/VisuLoadingResult.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportVisuPanelService.java
Added Paths:
-----------
trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/layout/
trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/layout/Bundle.properties
Modified: trunk/soft/fudaa-crue/pom.xml
===================================================================
--- trunk/soft/fudaa-crue/pom.xml 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/pom.xml 2013-09-09 22:20:42 UTC (rev 8496)
@@ -8,7 +8,7 @@
</parent>
<groupId>org.fudaa.soft.fudaa-crue</groupId>
<artifactId>fudaa-crue</artifactId>
- <version>1.0RC3-SNAPSHOT</version>
+ <version>1.0RC4-SNAPSHOT</version>
<name>Fudaa-Crue</name>
<packaging>pom</packaging>
<ciManagement>
@@ -331,7 +331,8 @@
<dependency>
<groupId>jgraphx</groupId>
<artifactId>jgraphx</artifactId>
- <version>1.10.0.5</version>
+ <!--<version>1.10.0.5</version>-->
+ <version>2.1.1.2</version>
</dependency>
</dependencies>
</dependencyManagement>
Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioVisuService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioVisuService.java 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioVisuService.java 2013-09-09 22:20:42 UTC (rev 8496)
@@ -7,6 +7,7 @@
import org.fudaa.dodico.crue.metier.etude.EMHProjet;
import org.fudaa.fudaa.crue.common.helper.CtuluUIForNetbeans;
import org.fudaa.fudaa.crue.common.helper.DialogHelper;
+import org.fudaa.fudaa.crue.common.log.LogsDisplayer;
import org.fudaa.fudaa.crue.common.services.ModellingScenarioService;
import org.fudaa.fudaa.crue.modelling.emh.ModellingOpenEMHPlanimetryAdapter;
import org.fudaa.fudaa.crue.modelling.loi.SimplificationSeuilsChooser;
@@ -37,31 +38,31 @@
*/
@ServiceProvider(service = ModellingScenarioVisuService.class)
public class ModellingScenarioVisuService implements LookupListener, Lookup.Provider, AdditionalLayerSaveStateListener {
-
+
protected InstanceContent dynamicContent = new InstanceContent();
protected Lookup lookup = new AbstractLookup(dynamicContent);
ModellingScenarioService modellingScenarioService = Lookup.getDefault().lookup(ModellingScenarioService.class);
ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
AdditionalLayersSaveServices additionalLayersSaveServices = Lookup.getDefault().lookup(AdditionalLayersSaveServices.class);
private final Result<EMHScenario> resultat;
-
+
public ModellingScenarioVisuService() {
resultat = modellingScenarioService.getLookup().lookupResult(
EMHScenario.class);
resultat.addLookupListener(this);
}
-
+
public ModellingScenarioService getModellingScenarioService() {
return modellingScenarioService;
}
-
+
@Override
public void additionalLayerSavedBy(Object source, PlanimetryController controller) {
if (getPlanimetryVisuPanel() != null && !AdditionalLayerSaveStateListener.FROM_MODELLING.equals(source)) {
getPlanimetryVisuPanel().getPlanimetryController().reloadAdditionLayersFrom(controller);
}
}
-
+
@Override
public void resultChanged(LookupEvent ev) {
//changement massif: on ne fait rien
@@ -74,12 +75,12 @@
unloadScenario();
}
}
-
+
@Override
public Lookup getLookup() {
return lookup;
}
-
+
void load(final EMHScenario scenarioLoaded) {
ContainerActivityVisibility activity = new ContainerActivityVisibility();
activity.initialize(scenarioLoaded);
@@ -87,11 +88,11 @@
SwingWorker loader = new VisuPanelLoader(scenarioLoaded);
loader.execute();
}
-
+
public void activityChanged() {
activityChanged(getContainerActivityVisibility());
}
-
+
public void activityChanged(ContainerActivityVisibility visibility) {
if (modellingScenarioService.isScenarioLoaded()) {
ContainerActivityVisibility old = getContainerActivityVisibility();
@@ -105,7 +106,7 @@
planimetryVisuPanel.getPlanimetryController().setContainerActivityVisibility(visibility);
}
}
-
+
public void unloadScenario() {
PlanimetryVisuPanel old = getPlanimetryVisuPanel();
if (old != null) {
@@ -117,7 +118,7 @@
dynamicContent.remove(containerActivityVisibility);
}
}
-
+
private void loadScenario() {
unloadScenario();
boolean dirOfConfigDefined = modellingScenarioService.getSelectedProjet().getInfos().isDirOfConfigDefined();
@@ -132,35 +133,35 @@
});
}
}
-
+
public PlanimetryVisuPanel getPlanimetryVisuPanel() {
return lookup.lookup(PlanimetryVisuPanel.class);
}
-
+
public ContainerActivityVisibility getContainerActivityVisibility() {
return lookup.lookup(ContainerActivityVisibility.class);
}
-
+
private class VisuPanelLoader extends SwingWorker<VisuLoadingResult, Object> {
-
+
private final EMHScenario scenarioLoaded;
final ProgressHandle ph = ProgressHandleFactory.createHandle(NbBundle.getMessage(ModellingScenarioVisuService.class,
"gisDataLoad.Task.Name"));
-
+
public VisuPanelLoader(EMHScenario scenarioLoaded) {
this.scenarioLoaded = scenarioLoaded;
}
-
+
@Override
protected VisuLoadingResult doInBackground() throws Exception {
ph.start();
ph.switchToIndeterminate();
final EMHProjet selectedProjet = modellingScenarioService.getSelectedProjet();
final EMHScenario scenario = scenarioLoaded;
-
+
return VisuLoadingResult.loadVisuConfig(selectedProjet, scenario);
}
-
+
@Override
protected void done() {
try {
@@ -182,6 +183,10 @@
}
dynamicContent.add(panel);
additionalLayersSaveServices.removeListener(ModellingScenarioVisuService.this);
+ if (result.log != null && result.log.containsErrorOrSevereError()) {
+ LogsDisplayer.displayError(result.log, NbBundle.getMessage(ModellingScenarioVisuService.class,
+ "gisDataLoad.Task.Name"));
+ }
} catch (Exception exception) {
Exceptions.printStackTrace(exception);
} finally {
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkBuilder.java 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkBuilder.java 2013-09-09 22:20:42 UTC (rev 8496)
@@ -18,6 +18,8 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.swing.SwingConstants;
import org.fudaa.ctulu.CtuluTroveProcedure;
import org.fudaa.ctulu.CtuluUI;
@@ -119,7 +121,12 @@
int bigger = graphesBuilder.getBigger();
if (graphesBuilder.getNb() > 0) {
DirectedWeightedMultigraph<Long, BrancheEdge> graph = graphesBuilder.getGraph(bigger);
- buildGisData(graph, res, initX, initY, configuration);
+ Exception ex = buildGisData(graph, res, initX, initY, configuration);
+ if (ex != null) {
+ res.getError().addError(org.openide.util.NbBundle.getMessage(NetworkBuilder.class, "buildNetworkFail"));
+ Logger.getLogger(NetworkBuilder.class.getName()).log(Level.INFO, "Error while layout", ex);
+ }
+
int nb = graphesBuilder.getNb();
for (int i = 0; i < nb; i++) {
if (i == bigger) {
@@ -127,7 +134,12 @@
}
Envelope envelopeInternal = res.edges.getEnvelopeInternal();
double xOffset = envelopeInternal.getMaxX() + configuration.getMinimalDistanceBeetweenParallelEdges();
- buildGisData(graphesBuilder.getGraph(i), res, xOffset, 0, configuration);
+ ex = buildGisData(graphesBuilder.getGraph(i), res, xOffset, 0, configuration);
+ if (ex != null) {
+ res.getError().addError(org.openide.util.NbBundle.getMessage(NetworkBuilder.class, "buildNetworkFail"));
+ Logger.getLogger(NetworkBuilder.class.getName()).log(Level.INFO, "Error while layout", ex);
+ }
+
}
}
//les
@@ -278,10 +290,11 @@
return modified;
}
- private void buildGisData(DirectedWeightedMultigraph<Long, BrancheEdge> graph, NetworkGisPositionnerResult res,
+ private Exception buildGisData(DirectedWeightedMultigraph<Long, BrancheEdge> graph, NetworkGisPositionnerResult res,
double globalXOffset,
double globalYOffset, VisuConfiguration configuration) {
//on construit un mxGraph pour lui faire faire le layout:
+ Exception exceptionCaught = null;
mxGraph mxGraphe = new mxGraph();
NodeYFinder ys = new NodeYFinder();
TObjectDoubleHashMap<Long> findYs = ys.findYs(graph);
@@ -314,8 +327,11 @@
layout.setIntraCellSpacing(configuration.getMinimalDistanceBetweenNode());
layout.setInterRankCellSpacing(configuration.getMinimalDistanceBetweenNode());
layout.setResizeParent(true);
- layout.setLayoutFromSinks(true);
- layout.execute(mxGraphe.getDefaultParent());
+ try {
+ layout.execute(mxGraphe.getDefaultParent());
+ } catch (Exception ex) {
+ exceptionCaught = ex;
+ }
CtuluTroveProcedure.DoubleMaxValue procedure = new CtuluTroveProcedure.DoubleMaxValue();
@@ -335,23 +351,26 @@
Long sourceVertex = graph.getEdgeSource(brancheEdge);
Long targetVertex = graph.getEdgeTarget(brancheEdge);
final mxGeometry geometry = brancheCell.getGeometry();
- List<mxPoint> points = geometry.getPoints();
List<Coordinate> finalCoordinate = new ArrayList<Coordinate>();
final Coordinate amontRealCoordinate = node.get(sourceVertex).getCoordinate();
- final mxPoint sourcePoint = points.get(0);
final Coordinate avalRealCoordinate = node.get(targetVertex).getCoordinate();
- final mxPoint targetPoint = points.get(points.size() - 1);
- double yRatio = (avalRealCoordinate.y - amontRealCoordinate.y) / (targetPoint.getY() - sourcePoint.getY());
finalCoordinate.add(amontRealCoordinate);
- for (int i = 1; i < points.size() - 1; i++) {
- mxPoint pt = points.get(i);
- double y = amontRealCoordinate.y + (pt.getY() - sourcePoint.getY()) * yRatio;
- Coordinate c = new Coordinate(pt.getX(), y);
- finalCoordinate.add(c);
+ List<mxPoint> points = geometry.getPoints();
+ if (points != null) {
+ final mxPoint targetPoint = points.get(points.size() - 1);
+ final mxPoint sourcePoint = points.get(0);
+ double yRatio = (avalRealCoordinate.y - amontRealCoordinate.y) / (targetPoint.getY() - sourcePoint.getY());
+ for (int i = 1; i < points.size() - 1; i++) {
+ mxPoint pt = points.get(i);
+ double y = amontRealCoordinate.y + (pt.getY() - sourcePoint.getY()) * yRatio;
+ Coordinate c = new Coordinate(pt.getX(), y);
+ finalCoordinate.add(c);
+ }
}
finalCoordinate.add(avalRealCoordinate);
res.addEdge(finalCoordinate, (CatEMHBranche) res.idRegistry.getEmh(id));
}
+ return exceptionCaught;
}
private static class ConnectedGraphBuilder {
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkGisPositionnerResult.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkGisPositionnerResult.java 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/layout/NetworkGisPositionnerResult.java 2013-09-09 22:20:42 UTC (rev 8496)
@@ -10,6 +10,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gis.GISAttributeModel;
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISPoint;
@@ -45,7 +46,12 @@
VisuConfiguration visuConfiguration;
LayerVisibility layerVisibility;
CrueConfigMetier ccm;
+ CtuluLog error = new CtuluLog();
+ public CtuluLog getError() {
+ return error;
+ }
+
public NetworkGisPositionnerResult(PlanimetryGisModelContainer container, GISZoneCollectionPoint nodes,
GISZoneCollectionLigneBrisee edges, GISZoneCollectionLigneBrisee casiers) {
this.context = container;
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/VisuLoadingResult.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/VisuLoadingResult.java 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/save/VisuLoadingResult.java 2013-09-09 22:20:42 UTC (rev 8496)
@@ -5,6 +5,7 @@
import java.io.File;
import java.util.List;
+import org.fudaa.ctulu.CtuluLog;
import org.fudaa.dodico.crue.config.ccm.CrueConfigMetier;
import org.fudaa.dodico.crue.metier.emh.EMHScenario;
import org.fudaa.dodico.crue.metier.etude.EMHProjet;
@@ -39,20 +40,25 @@
NetworkBuilder builder = new NetworkBuilder();
final File dirOfConfig = selectedProjet.getInfos().getDirOfConfig();
NetworkGisPositionnerResult load = loader.load(dirOfConfig, scenario);
+ VisuLoadingResult result = new VisuLoadingResult();
if (load == null) {
load = builder.buildNewGisData(scenario, visuConfiguration, crueConfigMetier, 0, 0);
}
+ if (load == null) {
+ load = new NetworkGisPositionnerResult(scenario);
+ }
load.setLayerVisibility(visibility);
load.setVisuConfiguration(visuConfiguration);
load.setCcm(crueConfigMetier);
- VisuLoadingResult result = new VisuLoadingResult();
result.networkGisPositionnerResult = load;
ConfigLoaderExtern.ResultExtern loadConfigEtudeExtern = ConfigLoaderExtern.loadConfigEtudeExtern(selectedProjet);
if (loadConfigEtudeExtern != null) {
result.additionnalLayer = loadConfigEtudeExtern.additionnalLayers;
}
+ result.log = load.getError();
return result;
}
public NetworkGisPositionnerResult networkGisPositionnerResult;
public List<PlanimetryAdditionalLayerContrat> additionnalLayer;
+ public CtuluLog log;
}
Copied: trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/layout/Bundle.properties (from rev 8404, trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/Bundle.properties)
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/layout/Bundle.properties (rev 0)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/layout/Bundle.properties 2013-09-09 22:20:42 UTC (rev 8496)
@@ -0,0 +1 @@
+buildNetworkFail=Impossible de construire compl\u00e8tement le r\u00e9seau par d\u00e9faut
Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportVisuPanelService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportVisuPanelService.java 2013-09-09 06:48:43 UTC (rev 8495)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportVisuPanelService.java 2013-09-09 22:20:42 UTC (rev 8496)
@@ -9,6 +9,7 @@
import org.fudaa.ebli.calque.BCalqueLegende;
import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.fudaa.crue.common.helper.CtuluUIForNetbeans;
+import org.fudaa.fudaa.crue.common.log.LogsDisplayer;
import org.fudaa.fudaa.crue.options.services.ConfigurationManagerService;
import org.fudaa.fudaa.crue.planimetry.PlanimetryVisuPanel;
import org.fudaa.fudaa.crue.planimetry.controller.PlanimetryController;
@@ -152,6 +153,10 @@
}
dynamicContent.add(panel);
additionalLayersSaveServices.addListener(ReportVisuPanelService.this);
+ if (result.log != null && result.log.containsErrorOrSevereError()) {
+ LogsDisplayer.displayError(result.log, NbBundle.getMessage(ReportVisuPanelService.class,
+ "gisDataLoad.Task.Name"));
+ }
} catch (Exception exception) {
Exceptions.printStackTrace(exception);
} finally {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|