From: <de...@us...> - 2012-12-12 17:43:00
|
Revision: 8123 http://fudaa.svn.sourceforge.net/fudaa/?rev=8123&view=rev Author: deniger Date: 2012-12-12 17:42:46 +0000 (Wed, 12 Dec 2012) Log Message: ----------- Modified Paths: -------------- trunk/soft/fudaa-modeleur/pom.xml trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlFille2d.java trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.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/layer/MdlLayer2dMultiPoint.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/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/action/CalqueCreateGridStopAction.java Modified: trunk/soft/fudaa-modeleur/pom.xml =================================================================== --- trunk/soft/fudaa-modeleur/pom.xml 2012-12-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/pom.xml 2012-12-12 17:42:46 UTC (rev 8123) @@ -1,51 +1,51 @@ <?xml version="1.0" encoding="UTF-8"?> <project - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" - xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <modelVersion>4.0.0</modelVersion> - <properties> - <fudaa-sig.version>1.4-SNAPSHOT</fudaa-sig.version> - <javaCompiler>1.6</javaCompiler> - <targetJdk>1.6</targetJdk> - </properties> - <parent> - <groupId>org.fudaa.pom</groupId> - <artifactId>soft-pom</artifactId> - <version>1.3</version> - </parent> - <groupId>org.fudaa.soft.fudaa-modeleur</groupId> - <artifactId>fudaa-modeleur</artifactId> - <version>1.2-SNAPSHOT</version> - <name>Fudaa-Modeleur</name> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.fudaa.business.fudaa-sig</groupId> - <artifactId>fudaa-sig</artifactId> - <version>${fudaa-sig.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - <dependencies> - <dependency> - <groupId>org.fudaa.business.fudaa-sig</groupId> - <artifactId>fudaa-sig</artifactId> - <version>${fudaa-sig.version}</version> - </dependency> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <properties> + <fudaa-mesh.version>1.4-SNAPSHOT</fudaa-mesh.version> + <javaCompiler>1.6</javaCompiler> + <targetJdk>1.6</targetJdk> + </properties> + <parent> + <groupId>org.fudaa.pom</groupId> + <artifactId>soft-pom</artifactId> + <version>1.3</version> + </parent> + <groupId>org.fudaa.soft.fudaa-modeleur</groupId> + <artifactId>fudaa-modeleur</artifactId> + <version>1.2-SNAPSHOT</version> + <name>Fudaa-Modeleur</name> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.fudaa.soft.fudaa-mesh</groupId> + <artifactId>fudaa-mesh</artifactId> + <version>${fudaa-mesh.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> <dependency> - <groupId>org.fudaa.framework.ebli</groupId> - <artifactId>ebli-1d</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> + <groupId>org.fudaa.soft.fudaa-mesh</groupId> + <artifactId>fudaa-mesh</artifactId> + <version>${fudaa-mesh.version}</version> + </dependency> + <dependency> + <groupId>org.fudaa.framework.ebli</groupId> + <artifactId>ebli-1d</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> - <plugins> +<!-- <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> @@ -68,10 +68,10 @@ </execution> </executions> </plugin> - </plugins> + </plugins>--> <pluginManagement> <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> + <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlFille2d.java =================================================================== --- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlFille2d.java 2012-12-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlFille2d.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -45,6 +45,7 @@ public MdlFille2d(MdlImplementation _ui) { super(new MdlVisuPanel(_ui), _ui, null); + setDoubleBuffered(false); setTitle(MdlResource.getS("Vue 2D")); setPreferredSize(new Dimension(500, 400)); cutCopyPasteManager_=new MdlCutCopyPasteManager(this, (MdlSceneEditor) getMdlVisuPanel().getEditor().getSceneEditor()); 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 2012-12-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -76,7 +76,7 @@ super(_impl); impl_=_impl; setName("mdlMainFille"); - + setDoubleBuffered(false); initCalques(true); installLayerActions(); getScene().setRestrictedToCalqueActif(false); Added: 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 (rev 0) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -0,0 +1,120 @@ +/* + GPL 2 + */ +package org.fudaa.fudaa.modeleur.action; + +import java.awt.Color; +import java.awt.EventQueue; +import java.awt.event.ActionEvent; +import org.fudaa.ctulu.CtuluTaskDelegate; +import org.fudaa.dodico.ef.EfGridInterface; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliUIProperties; +import org.fudaa.ebli.trace.TraceLigne; +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.layer.MdlLayer2dMultiPoint; +import org.fudaa.fudaa.modeleur.resource.MdlResource; +import org.fudaa.fudaa.sig.layer.FSigEditor; + +/** + * + * @author Frederic Deniger + */ +public class CalqueCreateGridAction extends EbliActionSimple { + + private final MdlLayer2dMultiPoint layer; + CalqueCreateGridStopAction stopAction; + + public CalqueCreateGridAction(MdlLayer2dMultiPoint layer) { + super(MdlResource.getS("Mailler"), null, "PERFORM_GRID"); + this.layer = layer; + stopAction = new CalqueCreateGridStopAction(this); + stopAction.setEnabled(false); + } + + public CalqueCreateGridStopAction getStopAction() { + return stopAction; + + + } + CalqueCreateGridProcessor processor; + private volatile boolean running; + + @Override + public void updateStateBeforeShow() { + setEnabled(!running); + } + + @Override + public void actionPerformed(ActionEvent _e) { + stop = false; + setEnabled(false); + running = true; + stopAction.setRunning(true); + MvElementLayer gridLayer = getGridLayer(); + final EbliUIProperties saveUIProperties = gridLayer == null ? null : gridLayer.saveUIProperties(); + if (gridLayer != null) { + layer.remove(gridLayer); + ((FSigEditor) layer.getEditor()).getPanel().getVueCalque().repaint(0); + } + final FSigEditor editor = (FSigEditor) layer.getEditor(); + final CtuluTaskDelegate createTask = editor.getUi().createTask(getTitle()); + createTask.start(new Runnable() { + @Override + public void run() { + processor = new CalqueCreateGridProcessor(layer.modeleDonnees(), editor.getUi()); + final EfGridInterface grid = processor.process(createTask.getStateReceiver()); + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + running = false; + setEnabled(true); + stopAction.setRunning(running); + if (grid != null && !stop) { + addLayer(grid, saveUIProperties); + } + } + }); + } + }); + + } + + @Override + public void setEnabled(boolean _newValue) { + super.setEnabled(_newValue && !running); + } + + private void addLayer(EfGridInterface grid, EbliUIProperties saveUIProperties) { + MvElementLayer eltLayer = getGridLayer(); + if (eltLayer == null) { + eltLayer = new MvElementLayer(); + eltLayer.setTitle(MdlResource.getS("Maillage")); + eltLayer.setName("cqGrid"); + eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY)); + eltLayer.setAlpha(128); + } + if (saveUIProperties != null) { + eltLayer.initFrom(saveUIProperties); + } + layer.add(eltLayer); + eltLayer.setModele(new MvElementModelDefault(grid)); + eltLayer.repaint(); + ((FSigEditor) layer.getEditor()).getPanel().getVueCalque().repaint(0); + ((FSigEditor) layer.getEditor()).getPanel().getVueCalque().revalidate(); + } + private volatile boolean stop; + + void stop() { + stop = true; + if (processor != null) { + processor.stop(); + } + } + + public MvElementLayer getGridLayer() { + return (MvElementLayer) layer.getCalqueParNom("cqGrid"); + } +} Added: 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 (rev 0) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridProcessor.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -0,0 +1,93 @@ +/* + GPL 2 + */ +package org.fudaa.fudaa.modeleur.action; + +import java.io.File; +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.fudaa.ctulu.CtuluIOOperationSynthese; +import org.fudaa.ctulu.CtuluIOResult; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.ProgressionInterface; +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.TriangleNodeAdapter; +import org.fudaa.dodico.ef.io.triangle.TriangleNodeWriter; +import org.fudaa.dodico.objet.CExec; +import org.fudaa.dodico.objet.CExecListener; +import org.fudaa.ebli.calque.ZModeleMultiPoint; +import org.fudaa.fudaa.modeleur.resource.MdlResource; + +/** + * + * @author Frederic Deniger + */ +public class CalqueCreateGridProcessor implements CExecListener { + + private ZModeleMultiPoint points; + private CtuluUI ui; + + public CalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui) { + this.points = points; + this.ui = ui; + } + + @Override + public void setProcess(Process _p) { + this.p = _p; + } + private volatile boolean stop; + + public void stop() { + stop = true; + if (p != null) { + p.destroy(); + } + } + Process p; + + public EfGridInterface process(ProgressionInterface prog) { + 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); + if (write.containsError()) { + ui.manageErrorOperationAndIsFatal(write); + return null; + } + if (prog != null) { + prog.setDesc(MdlResource.getS("Ex\xE9cution du mailleur")); + } + CExec exe = new CExec(); + exe.setExecDirectory(tmpDir); + exe.setCommand(new String[]{"C:\\devel\\triangle\\CARRE\\triangle.exe", "in.node"}); + exe.setListener(this); + exe.exec(); + if (stop) { + return null; + } + File targetNode = new File(tmpDir, "in.1.node"); + File targetEle = new File(tmpDir, "in.1.ele"); + TriangleEleNodeGridCreator creator = new TriangleEleNodeGridCreator(); + creator.setProgression(prog); + creator.setUseFirstAttributesAsZ(false); + CtuluIOResult<EFGridArrayZ> readGrid = creator.readGrid(targetNode, targetEle); + if (readGrid.getSource() == null) { + ui.manageAnalyzeAndIsFatal(readGrid.getAnalyze()); + } + CtuluLibFile.deleteDir(tmpDir); + return readGrid.getSource(); + } catch (IOException ex) { + ui.error(MdlResource.getS("Impossible de cr\xE9er un dossier temporaire")); + Logger.getLogger(CalqueCreateGridProcessor.class.getName()).log(Level.SEVERE, null, ex); + } + return null; + } +} Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridStopAction.java =================================================================== --- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridStopAction.java (rev 0) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridStopAction.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -0,0 +1,45 @@ +/* + GPL 2 + */ +package org.fudaa.fudaa.modeleur.action; + +import com.memoire.bu.BuResource; +import java.awt.event.ActionEvent; +import javax.swing.Icon; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.fudaa.modeleur.resource.MdlResource; + +/** + * + * @author Frederic Deniger + */ +public class CalqueCreateGridStopAction extends EbliActionSimple { + + CalqueCreateGridAction action; + boolean running; + + public CalqueCreateGridStopAction(CalqueCreateGridAction action) { + super(MdlResource.getS("Stopper le maillage"), BuResource.BU.getIcon("arreter"), "STOP_GRID"); + this.action = action; + } + + @Override + public void actionPerformed(ActionEvent _e) { + action.stop(); + } + + @Override + public void updateStateBeforeShow() { + setEnabled(running); + } + + protected void setRunning(boolean running) { + this.running = running; + setEnabled(running); + } + + @Override + public void setEnabled(boolean _newValue) { + super.setEnabled(_newValue && running); + } +} 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-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dCloud.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -10,11 +10,12 @@ import java.awt.Color; import org.fudaa.ctulu.gis.GISAttributeConstants; -import org.fudaa.ebli.calque.BCalqueLegende; import org.fudaa.ebli.calque.BCalquePersistenceInterface; import org.fudaa.ebli.calque.edition.ZModeleMultiPointEditable; +import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; +import org.fudaa.fudaa.modeleur.action.CalqueCreateGridAction; import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dCloudPersistence; import org.fudaa.fudaa.modeleur.resource.MdlResource; import org.fudaa.fudaa.sig.layer.FSigEditor; @@ -41,6 +42,8 @@ setIconModel(0, new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, new Color(0, 190, 0))); setTitle(MdlResource.getS("Semis de points")); setAttributForLabels(GISAttributeConstants.LABEL); + final CalqueCreateGridAction createGridAction = new CalqueCreateGridAction(this); + setActions(new EbliActionInterface[]{createGridAction, createGridAction.getStopAction()}); } public MdlLayer2dCloud(FSigEditor _editor) { Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java =================================================================== --- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2012-12-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2012-12-12 17:42:46 UTC (rev 8123) @@ -46,7 +46,7 @@ setDestructible(true); installActions(); updatePositionDataBathy(); - setLegende(_editor==null?null:_editor.getPanel().getCqLegend()); + setLegende(_editor == null ? null : _editor.getPanel().getCqLegend()); } private void updatePositionDataBathy() { @@ -59,7 +59,16 @@ updatePositionDataBathy(); } + /** + * + * @return true car ce claque pourra avoir le calque maillage comme calque enfant. + */ @Override + public boolean isGroupeCalque() { + return true; + } + + @Override public void modele(ZModeleMultiPoint _modele) { super.modele(_modele); updatePositionDataBathy(); @@ -90,12 +99,12 @@ @Override public boolean isPaletteModifiable() { - return bathyDonneesIndice>=0; + return bathyDonneesIndice >= 0; } @Override public boolean isDonneesBoiteAvailable() { - return bathyDonneesIndice>=0; + return bathyDonneesIndice >= 0; } @Override 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-12 16:47:19 UTC (rev 8122) +++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/resource/mdl_en.fr_txt 2012-12-12 17:42:46 UTC (rev 8123) @@ -1 +1,5 @@ -Fond de carte=Raster map \ No newline at end of file +Fond de carte=Raster map +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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |