You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
| 2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
| 2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
| 2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
| 2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
| 2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
| 2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
| 2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
| 2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <de...@us...> - 2013-01-16 21:26:42
|
Revision: 8213
http://fudaa.svn.sourceforge.net/fudaa/?rev=8213&view=rev
Author: deniger
Date: 2013-01-16 21:26:35 +0000 (Wed, 16 Jan 2013)
Log Message:
-----------
optimisation maillage important
Modified Paths:
--------------
trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java
Modified: trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java
===================================================================
--- trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java 2013-01-16 21:26:13 UTC (rev 8212)
+++ trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java 2013-01-16 21:26:35 UTC (rev 8213)
@@ -8,6 +8,8 @@
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.RenderingHints;
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibArray;
import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.ebli.geometrie.GrBoite;
@@ -92,16 +94,21 @@
}
private boolean isLineAllPaintedByNode(int minX, int maxX, int minY, int maxY, int[] x, int[] y, int nbPt) {
- if (maxX - minX == 0 && maxY - minY < nbPt) {
- boolean[] dots = new boolean[maxY - minY + 1];
+ final int deltaX = maxX - minX;
+ final int deltaY = maxY - minY;
+ if (deltaX <= 1 && deltaY <= 1) {
+ return true;
+ }
+ if (deltaX == 0 && deltaY < nbPt) {
+ boolean[] dots = new boolean[deltaY + 1];
for (int i = 0; i < nbPt; i++) {
dots[y[i] - minY] = true;
}
return isAllTrue(dots);
}
- if (maxX - minX < nbPt && maxY - minY == 0) {
- boolean[] dots = new boolean[maxX - minX + 1];
+ if (deltaX < nbPt && deltaY == 0) {
+ boolean[] dots = new boolean[deltaX + 1];
for (int i = 0; i < nbPt; i++) {
dots[x[i] - minX] = true;
}
@@ -120,38 +127,33 @@
}
public void paintDonnees(int width, int height, final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, final GrBoite _clipReel) {
-
int idxElt;
TraceIsoInterface isos = null;
- // TrIsoTraceSurface isos = null;
- boolean keepAntialias = false;
MvIsoModelInterface modelToUse = model;
if (traceIsoLine) {
isos = new TraceIsoLignesAvecPlages(paletteCouleur, alpha, ligneModel);
- keepAntialias = true;
} else {
isos = new TraceIsoSurfacesAvecPlages(paletteCouleur, alpha);
}
GrBoite clipEcran = _clipReel.applique(_versEcran);
isos.setRapide(rapide);
- isos.setDimension(width, height);
+ int w = width + 1;
+ CtuluListSelection memory = new CtuluListSelection(w * height);
+ isos.setDimension(width, height, memory);
isos.setClipEcran(clipEcran);
// pour les surfaces, on voudrait eviter d'utiliser l'anticrenelage
- if (!keepAntialias && isAntaliasing) {
- final RenderingHints renderingHints = _g.getRenderingHints();
- renderingHints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
- renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
- _g.setRenderingHints(renderingHints);
- }
+ final RenderingHints renderingHints = _g.getRenderingHints();
+ renderingHints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
+ _g.setRenderingHints(renderingHints);
+// }
final int n = modelToUse.getNbElt();
int[] x = null;
int[] y = null;
GrPoint pt = new GrPoint();
- int w = width + 1;
- CtuluListSelection memory = new CtuluListSelection(w * height);
+
Envelope envReel = _clipReel.getEnv();
-
for (idxElt = 0; idxElt < n; idxElt++) {
if (!modelToUse.isPainted(idxElt)) {
continue;
@@ -169,7 +171,7 @@
if (y == null || y.length < nbPt) {
y = new int[nbPt];
}
- boolean isOnlyOnePoint = true;
+
int maxX = -1;
int minX = Integer.MAX_VALUE;
int maxY = -1;
@@ -183,14 +185,14 @@
final int yi = (int) pt.y_;
x[iPt] = xi;
y[iPt] = yi;
- if (iPt > 0 && isOnlyOnePoint) {
- isOnlyOnePoint = (xi == x[iPt - 1] && yi == y[iPt - 1]);
- }
maxX = Math.max(maxX, xi);
maxY = Math.max(maxY, yi);
minX = Math.min(minX, xi);
minY = Math.min(minY, yi);
}
+ final int deltaX = maxX - minX;
+ final int deltaY = maxY - minY;
+ boolean isOnlyOnePoint = deltaX == 0 && deltaY == 0;
// Trace des isosurfaces / Isolignes (dans la couleur du fond si les isocouleurs sont
// tracees).
if (isos != null) {
@@ -199,45 +201,85 @@
int idxDone = x[0] + y[0] * w;
if (idxDone >= 0 && !memory.isSelected(idxDone)) {
memory.add(idxDone);
- double value = modelToUse.getDatatFor(idxElt, 0);
- final Color c = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(value);
+ double ptValue = modelToUse.getDatatFor(idxElt, 0);
+ final Color c = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(ptValue);
if (c != null) {
- _g.setColor(EbliLib.getAlphaColor(c, alpha));
+ _g.setColor(rapide ? c : EbliLib.getAlphaColor(c, alpha));
_g.drawLine(x[0], y[0], x[0], y[0]);
}
}
- }
+ }
+ //l'element est un element plat(ligne) ou est contenu dans un carre 2*2
} else if (!traceIsoLine && isLineAllPaintedByNode(minX, maxX, minY, maxY, x, y, nbPt)) {
- for (int iPt = 0; iPt < nbPt; iPt++) {
- if (clipEcran.contientXY(x[iPt], y[iPt])) {
- int idxDone = x[iPt] + y[iPt] * w;
- if (idxDone >= 0 && !memory.isSelected(idxDone)) {
- memory.add(idxDone);
- double value = modelToUse.getDatatFor(idxElt, iPt);
- final Color c = EbliLib.getAlphaColor(paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
- value), alpha);
- if (c != null) {
- _g.setColor(c);
- _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+
+ boolean painted = false;
+ if (deltaX == 0 || deltaY == 0) {
+ double valueToUse = modelToUse.getDatatFor(idxElt, 0);
+ boolean constant = true;
+ //pour les points sur 2 pixels on ne fait pas le tests pour savoir si meme valeur.
+ if (deltaX >= 1 || deltaY >= 1) {
+ for (int iPt = 1; iPt < nbPt; iPt++) {
+ double val = modelToUse.getDatatFor(idxElt, iPt);
+ if (constant) {
+ constant = CtuluLib.isEquals(val, valueToUse, 1e-10);
+ if (!constant) {
+ break;
+ }
}
}
- }
+ }
+ if (constant) {
+ painted = true;
+ final Color color = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
+ valueToUse);
+ final Color c = rapide ? color : EbliLib.getAlphaColor(color, alpha);
+ if (c != null) {
+ _g.setColor(c);
+ _g.drawLine(minX, minY, maxX, maxY);
+ }
+ for (int iPt = 0; iPt < nbPt; iPt++) {
+ int idxDone = x[iPt] + y[iPt] * w;
+ if (idxDone >= 0) {
+ memory.add(idxDone);
+ }
+ }
+ }
}
+ if (!painted) {
+ for (int iPt = 0; iPt < nbPt; iPt++) {
+ if (clipEcran.contientXY(x[iPt], y[iPt])) {
+ int idxDone = x[iPt] + y[iPt] * w;
+ if (idxDone >= 0 && !memory.isSelected(idxDone)) {
+ memory.add(idxDone);
+ final Color color = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
+ modelToUse.getDatatFor(idxElt, iPt));
+ final Color c = rapide ? color : EbliLib.getAlphaColor(color, alpha);
+ if (c != null) {
+ _g.setColor(c);
+ _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+ }
+ }
+ }
+ }
+ }
} else {
value = modelToUse.fillWithData(idxElt, value);
if (value != null) {
- final Polygon p = new Polygon(x, y, nbPt);
- isos.draw(_g, p, value);
- for (int iPoly = 0; iPoly < nbPt; iPoly++) {
- final int memoryIndex = x[iPoly] + y[iPoly] * w;
- if (memoryIndex >= 0) {
- memory.add(memoryIndex);
- }
+ if (rapide && !traceIsoLine && deltaX <= 5 && deltaY <= 5) {
+ double moyenne = CtuluLibArray.getMoyenne(value);
+ final Color c = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
+ moyenne);
+ _g.setColor(c);
+ _g.fillRect(minX, minY, deltaX + 1, deltaY + 1);
+ } else {
+ final Polygon p = new Polygon(x, y, nbPt);
+ isos.draw(_g, p, value);
}
}
}
}
}
+
}
boolean rapide;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-16 21:24:36
|
Revision: 8211
http://fudaa.svn.sourceforge.net/fudaa/?rev=8211&view=rev
Author: deniger
Date: 2013-01-16 21:24:26 +0000 (Wed, 16 Jan 2013)
Log Message:
-----------
optimisation maillage important
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrSupervisorImplementation.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/common/TrCommonImplementation.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrSupervisorImplementation.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrSupervisorImplementation.java 2013-01-15 00:17:30 UTC (rev 8210)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrSupervisorImplementation.java 2013-01-16 21:24:26 UTC (rev 8211)
@@ -24,6 +24,7 @@
import org.fudaa.fudaa.commun.exec.FudaaExec;
import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel;
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
+import org.fudaa.fudaa.commun.trace2d.FudaaPerformancePreferencesPanel;
import org.fudaa.fudaa.tr.common.TrApplicationManager;
import org.fudaa.fudaa.tr.common.TrCommonImplementation;
import org.fudaa.fudaa.tr.common.TrExplorer;
@@ -139,6 +140,7 @@
@Override
protected void buildPreferences(final List _prefs) {
+ _prefs.add(new FudaaPerformancePreferencesPanel(this));
_prefs.add(new BuUserPreferencesPanel(this));
_prefs.add(new BuBrowserPreferencesPanel(this));
_prefs.add(new FudaaStartupExitPreferencesPanel(true));
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/common/TrCommonImplementation.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/common/TrCommonImplementation.java 2013-01-15 00:17:30 UTC (rev 8210)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/common/TrCommonImplementation.java 2013-01-16 21:24:26 UTC (rev 8211)
@@ -65,6 +65,7 @@
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel;
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
+import org.fudaa.fudaa.commun.trace2d.FudaaPerformancePreferencesPanel;
import org.fudaa.fudaa.fdico.FDicoPreferences;
import org.fudaa.fudaa.sig.FSigLib;
import org.fudaa.fudaa.sig.layer.FSigImageImportAction;
@@ -77,9 +78,7 @@
public abstract class TrCommonImplementation extends FudaaCommonImplementation implements ItemListener {
protected BArbreCalque arbre_;
-
protected TrLauncher launcher_;
-
BuTaskView taches_;
public TrCommonImplementation() {
@@ -98,7 +97,9 @@
}
protected void addExportCurrentFrame(final BuMenu _m) {
- if(_m==null) return;
+ if (_m == null) {
+ return;
+ }
final BuMenu m = new BuMenu();
m.setIcon(BuResource.BU.getIcon("bu_internalframe_corner_ocean"));
m.setText(TrResource.getS("Fen\xEAtre active"));
@@ -138,8 +139,7 @@
}
/**
- * Methode appelee une seule fois pour construire le menu d'export.
- * Methods called once to build the export menu
+ * Methode appelee une seule fois pour construire le menu d'export. Methods called once to build the export menu
*/
protected void buildExporterMenu() {
addExportCurrentFrame((BuMenu) getMainMenuBar().getMenu(getExporterCmd()));
@@ -147,6 +147,7 @@
@Override
protected void buildPreferences(final List _prefs) {
+ _prefs.add(new FudaaPerformancePreferencesPanel(this));
_prefs.add(new BuUserPreferencesPanel(this));
_prefs.add(new BuBrowserPreferencesPanel(this));
_prefs.add(new FudaaStartupExitPreferencesPanel(true));
@@ -171,7 +172,7 @@
sp.setPreferredSize(new Dimension(150, 80));
sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours"));
rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp,
- true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches"));
+ true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches"));
mp.setTaskView(taches_);
}
@@ -210,8 +211,6 @@
return null;
}
-
-
protected abstract void ouvrir();
protected void removeUnusedActions() {
@@ -220,7 +219,7 @@
r.removeAll();
r.addMenuItem(BuResource.BU.getString("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z);
r.addMenuItem(BuResource.BU.getString("Refaire"), "REFAIRE", false).setAccelerator(
- KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
+ KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
// normalement Ctrl-Y
// r.addSeparator();
//
@@ -283,12 +282,14 @@
pn.showHelp();
if (EventQueue.isDispatchThread()) {
showHelp(_s, _title, pn);
- } else BuLib.invokeLater(new Runnable() {
- @Override
- public void run() {
- showHelp(_s, _title, pn);
- }
- });
+ } else {
+ BuLib.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ showHelp(_s, _title, pn);
+ }
+ });
+ }
}
protected void showHelp(final String _s, final String _title, final FudaaHelpPanel _pn) {
@@ -301,13 +302,13 @@
if ("SUPERVISEUR".equals(act)) {
launcher_.openSupervisor();
} /*
- * else if ("CLEARSELECTION".equals(act)) { final JInternalFrame frame = getCurrentInternalFrame();
- *
- * if (frame instanceof CtuluSelectionInterface) { ((CtuluSelectionInterface) frame).clearSelection(); } } else if
- * ("INVERSESELECTION".equals(act)) { final JInternalFrame frame = getCurrentInternalFrame();
- *
- * if (frame instanceof CtuluSelectionInterface) { ((CtuluSelectionInterface) frame).inverseSelection(); } }
- */else if ("OUVRIR".equals(act)) {
+ * else if ("CLEARSELECTION".equals(act)) { final JInternalFrame frame = getCurrentInternalFrame();
+ *
+ * if (frame instanceof CtuluSelectionInterface) { ((CtuluSelectionInterface) frame).clearSelection(); } } else if
+ * ("INVERSESELECTION".equals(act)) { final JInternalFrame frame = getCurrentInternalFrame();
+ *
+ * if (frame instanceof CtuluSelectionInterface) { ((CtuluSelectionInterface) frame).inverseSelection(); } }
+ */ else if ("OUVRIR".equals(act)) {
ouvrir();
} else if ("AIDE".equals(act)) {
// displayAide();
@@ -331,7 +332,7 @@
}
} else if ("LAUNCH_JAVAWS".equals(act)) {
try {
- FuLib.startProgram(new String[] { TrLib.getJavaws(), "-viewer" });
+ FuLib.startProgram(new String[]{TrLib.getJavaws(), "-viewer"});
} catch (final IOException _ioEvt) {
FuLog.error(_ioEvt);
@@ -354,14 +355,15 @@
@Override
public boolean confirmExit() {
- if (FudaaStartupExitPreferencesPanel.isExitConfirmed()) { return question(BuResource.BU.getString("Quitter"),
- BuResource.BU.getString("Voulez-vous vraiment quitter ce logiciel ?")); } //Do you really want to leave this software
+ if (FudaaStartupExitPreferencesPanel.isExitConfirmed()) {
+ return question(BuResource.BU.getString("Quitter"),
+ BuResource.BU.getString("Voulez-vous vraiment quitter ce logiciel ?"));
+ } //Do you really want to leave this software
return true;
}
public ProgressionInterface createProgressionForMainPanel() {
return new ProgressionInterface() {
-
@Override
public void reset() {
unsetMainMessage();
@@ -397,7 +399,7 @@
if (aide_ == null) {
try {
final URL url = new URL(getInformationsSoftware().http + "doc."
- + (CtuluLib.isFrenchLanguageSelected() ? "fr" : "en") + ".html");
+ + (CtuluLib.isFrenchLanguageSelected() ? "fr" : "en") + ".html");
aide_ = new FudaaHelpPanel(this, new URL(dir), url);
} catch (final MalformedURLException _e) {
error(BuResource.BU.getString("Aide"), _e.getMessage());
@@ -438,7 +440,8 @@
public abstract String getSpecificName();
- protected void buildImportMenu() {}
+ protected void buildImportMenu() {
+ }
@Override
protected boolean buildFudaaReportTool() {
@@ -458,13 +461,13 @@
removeUnusedActions();
final BuMenuBar b = getMainMenuBar();
// on enleve le menu des look and feel : moche car tout n'est pas mis a jour
- //we remove the look and feel from the menu : bad because all is not up to date
+ //we remove the look and feel from the menu : bad because all is not up to date
final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE");
mAide.add(TrLib.buildAideContextItem(this), 0);
TrLib.addJavawsForJnlp(mAide);
mAide.addMenuItem(TrResource.getS("Soumettre une demande d'am\xE9lioration"), "SEND_COMMENT", BuResource.BU
- .getIcon("envoyer"), true);
+ .getIcon("envoyer"), true);
TrLib.addJava3DJMFTest(mAide);
setEnabledForAction("QUITTER", true);
@@ -473,23 +476,23 @@
setEnabledForAction("LAUNCH_JAVAWS", true);
final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER");
mFichier.addMenuItem(TrResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU
- .getIcon("fermer"), true, 0);
+ .getIcon("fermer"), true, 0);
final BuToolBar tb = getMainToolBar();
if (!isSupervisor()) {
tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR",
- TrResource.getSupervisorIcon(), true).setVisible(true);
+ TrResource.getSupervisorIcon(), true).setVisible(true);
}
// les menus exporter et importer sont construit dynamiquement
- // the exported and imported menus are dynamically built
+ // the exported and imported menus are dynamically built
b.getMenu(getExporterCmd()).addItemListener(this);
final BuMenu menu = (BuMenu) b.getMenu("IMPORTER");
menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(),
- this).setEnabled(false);
+ this).setEnabled(false);
menu
- .addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this)
- .setEnabled(false);
+ .addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this)
+ .setEnabled(false);
menu.addItemListener(this);
setEnabledForAction(getExporterCmd(), true);
menu.setEnabled(true);
@@ -504,10 +507,12 @@
}
@Override
- public void installContextHelp(final JComponent _cp) {}
+ public void installContextHelp(final JComponent _cp) {
+ }
@Override
- public void installContextHelp(final JComponent _cp, final String _url) {}
+ public void installContextHelp(final JComponent _cp, final String _url) {
+ }
@Override
public void internalFrameDeactivated(final InternalFrameEvent _evt) {
@@ -529,7 +534,9 @@
public void itemStateChanged(final ItemEvent _e) {
if (_e.getStateChange() == ItemEvent.SELECTED) {
final BuMenu menu = (BuMenu) _e.getSource();
- if (menu.getMenuComponentCount() != 0) { return; }
+ if (menu.getMenuComponentCount() != 0) {
+ return;
+ }
final String com = menu.getActionCommand();
if ("IMPORTER".equals(com)) {
buildImportMenu();
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-15 00:17:30 UTC (rev 8210)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-16 21:24:26 UTC (rev 8211)
@@ -814,16 +814,21 @@
TrIsoModelEltDataAdapter eltAdapter_;
private boolean isLineAllPaintedByNode(int minX, int maxX, int minY, int maxY, int[] x, int[] y, int nbPt) {
- if (maxX - minX == 0 && maxY - minY < nbPt) {
- boolean[] dots = new boolean[maxY - minY + 1];
+ final int deltaX = maxX - minX;
+ final int deltaY = maxY - minY;
+ if (deltaX <= 1 && deltaY <= 1) {
+ return true;
+ }
+ if (deltaX == 0 && deltaY < nbPt) {
+ boolean[] dots = new boolean[deltaY + 1];
for (int i = 0; i < nbPt; i++) {
dots[y[i] - minY] = true;
}
return isAllTrue(dots);
}
- if (maxX - minX < nbPt && maxY - minY == 0) {
- boolean[] dots = new boolean[maxX - minX + 1];
+ if (deltaX < nbPt && deltaY == 0) {
+ boolean[] dots = new boolean[deltaX + 1];
for (int i = 0; i < nbPt; i++) {
dots[x[i] - minX] = true;
}
@@ -859,11 +864,9 @@
if (getIsoModelAbstract().getVariableSelected() == null) {
return;
}
- boolean keepAntialias = false;
MvIsoModelInterface modelToUse = getIsoModelAbstract();
if (traceIsoLine_) {
isos = new TraceIsoLignesAvecPlages(paletteCouleur_, alpha_, ligneModel_);
- keepAntialias = true;
if (isElement) {
// TODO:a modifier null?
if (eltAdapter_ == null) {
@@ -878,13 +881,14 @@
} else if (!isElement) {
isos = new TraceIsoSurfacesAvecPlages(paletteCouleur_, alpha_);
}
+ isos.setRapide(isRapide());
+ isos.setClipEcran(_clipReel.applique(_versEcran));
+
// pour les surfaces, on voudrait eviter d'utiliser l'anticrenelage
- if (!keepAntialias && isAntialiasing()) {
- final RenderingHints renderingHints = _g.getRenderingHints();
- renderingHints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
- renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
- _g.setRenderingHints(renderingHints);
- }
+ final RenderingHints renderingHints = _g.getRenderingHints();
+ renderingHints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
+ _g.setRenderingHints(renderingHints);
final int n = modelToUse.getNbElt();
int[] x = null;
@@ -892,6 +896,7 @@
GrPoint pt = new GrPoint();
int w = getWidth() + 1;
CtuluListSelection memory = new CtuluListSelection(w * getHeight());
+ isos.setDimension(getWidth(), getHeight(), selection_);
Envelope envReel = _clipReel.getEnv();
for (idxElt = 0; idxElt < n; idxElt++) {
if (!modelToUse.isPainted(idxElt)) {
@@ -910,7 +915,6 @@
if (y == null || y.length < nbPt) {
y = new int[nbPt];
}
- boolean isOnlyOnePoint = true;
int maxX = -1;
int minX = Integer.MAX_VALUE;
int maxY = -1;
@@ -919,19 +923,19 @@
pt.x_ = modelToUse.getX(idxElt, iPt);
pt.y_ = modelToUse.getY(idxElt, iPt);
pt.z_ = 0;
- pt.autoApplique(_versEcran);
+ pt.autoApplique2D(_versEcran);
final int xi = (int) pt.x_;
final int yi = (int) pt.y_;
x[iPt] = xi;
y[iPt] = yi;
- if (iPt > 0 && isOnlyOnePoint) {
- isOnlyOnePoint = (xi == x[iPt - 1] && yi == y[iPt - 1]);
- }
maxX = Math.max(maxX, xi);
maxY = Math.max(maxY, yi);
minX = Math.min(minX, xi);
minY = Math.min(minY, yi);
}
+ final int deltaX = maxX - minX;
+ final int deltaY = maxY - minY;
+ boolean isOnlyOnePoint = deltaX == 0 && deltaY == 0;
// Trace des isosurfaces / Isolignes (dans la couleur du fond si les isocouleurs sont
// tracees).
if (isElement && !traceIsoLine_) {
@@ -940,7 +944,7 @@
final Color c = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(getIsoModelAbstract().getValue(
idxElt));
if (c != null) {
- _g.setColor(EbliLib.getAlphaColor(c, alpha_));
+ _g.setColor(rapide ? c : EbliLib.getAlphaColor(c, alpha_));
_g.fillPolygon(p);
}
@@ -952,7 +956,7 @@
double value = modelToUse.getDatatFor(idxElt, 0);
final Color c = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(value);
if (c != null) {
- _g.setColor(EbliLib.getAlphaColor(c, alpha_));
+ _g.setColor(rapide ? c : EbliLib.getAlphaColor(c, alpha_));
_g.drawLine(x[0], y[0], x[0], y[0]);
}
}
@@ -962,8 +966,9 @@
if (idxDone >= 0 && !memory.isSelected(idxDone)) {
memory.add(idxDone);
double value = modelToUse.getDatatFor(idxElt, iPt);
- final Color c = EbliLib.getAlphaColor(paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(
- value), alpha_);
+ final Color color = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(
+ value);
+ final Color c = rapide ? color : EbliLib.getAlphaColor(color, alpha_);
if (c != null) {
_g.setColor(c);
_g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
@@ -974,14 +979,17 @@
} else {
v_ = modelToUse.fillWithData(idxElt, v_);
if (v_ != null) {
- final Polygon p = new Polygon(x, y, nbPt);
- isos.draw(_g, p, v_);
- for (int iPoly = 0; iPoly < nbPt; iPoly++) {
- final int memoryIndex = x[iPoly] + y[iPoly] * w;
- if (memoryIndex >= 0) {
- memory.add(memoryIndex);
- }
+ if (rapide && deltaX <= 5 && deltaY <= 5) {
+ double moyenne = CtuluLibArray.getMoyenne(v_);
+ final Color c = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(
+ moyenne);
+ _g.setColor(c);
+ _g.fillRect(minX, minY, deltaX + 1, deltaY + 1);
+ } else {
+ final Polygon p = new Polygon(x, y, nbPt);
+ isos.draw(_g, p, v_);
}
+
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-15 00:17:38
|
Revision: 8210
http://fudaa.svn.sourceforge.net/fudaa/?rev=8210&view=rev
Author: deniger
Date: 2013-01-15 00:17:30 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java
trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java
Modified: trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java
===================================================================
--- trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java 2013-01-15 00:16:59 UTC (rev 8209)
+++ trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvElementLayer.java 2013-01-15 00:17:30 UTC (rev 8210)
@@ -54,12 +54,12 @@
* @version $Id: MvElementLayer.java,v 1.31.6.1 2008-02-20 10:11:50 bmarchan Exp $
*/
public class MvElementLayer extends ZCalquePolygone implements MvLayerGrid {
-
+
public MvElementLayer() {
super();
iconModel_ = null;
}
-
+
public final static int[] getSelectedEdgeIdx(final EfGridVolumeInterface _grid, final CtuluListSelectionInterface _select) {
if (_grid == null || _select == null) {
return null;
@@ -76,7 +76,7 @@
Arrays.sort(res);
return res;
}
-
+
public final static int[] getSelectedEdgeIdx(final EfGridVolumeInterface _grid, final int[] _select) {
if (_grid == null || _select == null) {
return null;
@@ -90,7 +90,7 @@
Arrays.sort(res);
return res;
}
-
+
@Override
public int[] getSelectedEdgeIdx() {
if (((MvElementModel) modele_).getGrid() instanceof EfGridVolumeInterface) {
@@ -98,7 +98,7 @@
}
return null;
}
-
+
@Override
public boolean isSelectionEdgeEmpty() {
return isSelectionEmpty();
@@ -110,12 +110,12 @@
public MvElementLayer(final MvElementModel _modele) {
super(_modele);
}
-
+
@Override
public EbliFindActionInterface getFinder() {
return new MvFindActionNodeElt(this);
}
-
+
@Override
public EbliFindExpressionContainerInterface getExpressionContainer() {
final EbliFindExpressionContainerInterface i = ((MvElementModel) modele_).getExpressionContainer();
@@ -124,7 +124,7 @@
/**
* Ne dessine que les donn\xE9es.
- *
+ *
* @param _g le graphics cible
*/
@Override
@@ -138,7 +138,6 @@
final int nombre = modele_.getNombre();
// pour ne pas modifier le model par defaut
final TraceIcon icone = iconModel_ == null ? null : new TraceIcon(new TraceIconModel(iconModel_));
- final GrBoite bPoly = new GrBoite();
int incrementPt = 1;
final TraceLigne tl = new TraceLigne(new TraceLigneModel(ligneModel_));
if (isAttenue()) {
@@ -152,9 +151,9 @@
if (icone != null) {
icone.setCouleur(EbliLib.getAlphaColor(icone.getCouleur(), alpha_));
}
-
+
}
-
+
final MvElementModel model = (MvElementModel) modele_;
final boolean containsFr = model.getFrNbFrontier() > 0;
Envelope envReel = _clipReel.getEnv();
@@ -164,6 +163,7 @@
GrPoint pt = new GrPoint();
int w = getWidth() + 1;
CtuluListSelection memory = new CtuluListSelection(w * getHeight());
+
for (int idxElement = 0; idxElement < nombre; idxElement++) {
if (!model.isPainted(idxElement)) {
continue;
@@ -180,23 +180,23 @@
if (y == null || y.length < nbPt) {
y = new int[nbPt];
}
- boolean isOnlyOnePoint = true;
+ boolean eltIsOnePoint = true;
for (int iPt = 0; iPt < nbPt; iPt++) {
pt.x_ = model.getX(idxElement, iPt);
pt.y_ = model.getY(idxElement, iPt);
pt.z_ = 0;
- pt.autoApplique(_versEcran);
+ pt.autoApplique2D(_versEcran);
final int xi = (int) pt.x_;
final int yi = (int) pt.y_;
x[iPt] = xi;
y[iPt] = yi;
- if (iPt > 0 && isOnlyOnePoint) {
- isOnlyOnePoint = (xi == x[iPt - 1] && yi == y[iPt - 1]);
+ if (iPt > 0 && eltIsOnePoint) {
+ eltIsOnePoint = (xi == x[iPt - 1] && yi == y[iPt - 1]);
}
}
-
+
updateTrace(icone == null ? null : icone.getModel(), tl.getModel(), idxElement);
- if (isOnlyOnePoint) {
+ if (eltIsOnePoint) {
int idxDone = x[0] + y[0] * w;
if (idxDone >= 0 && !memory.isSelected(idxDone)) {
memory.add(idxDone);
@@ -216,7 +216,16 @@
if (icone != null) {
icone.paintIconCentre(this, _g, x[ptOri], y[ptOri]);
}
- tl.dessineTrait(_g, x[ptOri], y[ptOri], x[j], y[j]);
+ boolean onePoint = (x[ptOri] == x[j]) && (y[ptOri] == y[j]);
+ if (onePoint) {
+ int idxToDo = x[j] + y[j] * w;
+ if (!memory.isSelected(idxToDo)) {
+ tl.dessineTrait(_g, x[ptOri], y[ptOri], x[j], y[j]);
+ memory.add(idxToDo);
+ }
+ } else {
+ tl.dessineTrait(_g, x[ptOri], y[ptOri], x[j], y[j]);
+ }
}
ptOri = j;
idxFrom = idxTo;
@@ -233,38 +242,40 @@
if (idxFrom > idxTo) {
model.point(idxFrom, ptOri);
model.point(idxTo, ptDest);
- ptDest.autoApplique(versEcran);
- ptOri.autoApplique(versEcran);
- if (icone != null) {
- icone.paintIconCentre(this, _g, ptOri.x_, ptOri.y_);
+ if (_clipReel.intersectXYBoite(ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_)) {
+ ptDest.autoApplique2D(versEcran);
+ ptOri.autoApplique2D(versEcran);
+ if (icone != null) {
+ icone.paintIconCentre(this, _g, ptOri.x_, ptOri.y_);
+ }
+ tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
}
- tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
}
idxFrom = idxTo;
}
-
+
}
}
-
+
@Override
public int[] getSelectedElementIdx() {
return selection_ == null ? null : selection_.getSelectedIndex();
}
-
+
@Override
public int[] getSelectedObjectInTable() {
return getSelectedElementIdx();
}
-
+
protected EfGridInterface getGrid() {
return ((MvElementModel) modele_).getGrid();
}
-
+
@Override
public CtuluListSelection selection(final GrPoint _pt, final int _tolerance) {
return getGrid().getIndex() == null ? super.selection(_pt, _tolerance) : selectionFromIndex(_pt, _tolerance);
}
-
+
public CtuluListSelection selectionFromIndex(final LinearRing _poly, final int _mode) {
if (Fu.DEBUG && FuLog.isDebug()) {
FuLog.debug("FMV: layer select from index");
@@ -286,10 +297,10 @@
r.add(idx);
}
}
-
+
return r;
}
-
+
private CtuluListSelection selectionFromIndex(final GrPoint _pt, final int _tolerance) {
if (Fu.DEBUG && FuLog.isDebug()) {
FuLog.debug("FMV: layer select from index");
@@ -299,12 +310,12 @@
// grid.getIndex().query(EfIndexVisitorNearestNode.getEnvelope(_pt.x_, _pt.y_, toleranceReel), visitor);
// return visitor.getSelection();
}
-
+
@Override
public CtuluListSelection selection(final LinearRing _polySelection, final int _mode) {
return getGrid().getIndex() == null ? super.selection(_polySelection, _mode) : selectionFromIndex(_polySelection, _mode);
}
-
+
@Override
public int[] getSelectedPtIdx() {
if (!isSelectionEmpty()) {
@@ -320,7 +331,7 @@
}
return null;
}
-
+
@Override
public GrBoite getDomaineOnSelected() {
if (isSelectionEmpty()) {
@@ -343,30 +354,30 @@
// ajusteZoomOnSelected(r);
return r;
}
-
+
public boolean isConfigurable() {
return true;
}
-
+
public boolean isFontModifiable() {
return false;
}
-
+
@Override
public boolean isPaletteModifiable() {
return false;
}
-
+
@Override
public boolean isSelectionElementEmpty() {
return isSelectionEmpty();
}
-
+
@Override
public boolean isSelectionPointEmpty() {
return isSelectionEmpty();
}
-
+
@Override
public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) {
super.paintIcon(_c, _g, _x, _y);
@@ -391,4 +402,4 @@
_g.drawLine(x1, y1, x3, y3);
_g.drawLine(x1, y1, x4, y4);
}
-}
\ No newline at end of file
+}
Modified: trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java
===================================================================
--- trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java 2013-01-15 00:16:59 UTC (rev 8209)
+++ trunk/soft/fudaa-mesh/src/main/java/org/fudaa/fudaa/meshviewer/layer/MvIsoLayerQuickPainter.java 2013-01-15 00:17:30 UTC (rev 8210)
@@ -132,6 +132,10 @@
} else {
isos = new TraceIsoSurfacesAvecPlages(paletteCouleur, alpha);
}
+ GrBoite clipEcran = _clipReel.applique(_versEcran);
+ isos.setRapide(rapide);
+ isos.setDimension(width, height);
+ isos.setClipEcran(clipEcran);
// pour les surfaces, on voudrait eviter d'utiliser l'anticrenelage
if (!keepAntialias && isAntaliasing) {
final RenderingHints renderingHints = _g.getRenderingHints();
@@ -147,6 +151,7 @@
int w = width + 1;
CtuluListSelection memory = new CtuluListSelection(w * height);
Envelope envReel = _clipReel.getEnv();
+
for (idxElt = 0; idxElt < n; idxElt++) {
if (!modelToUse.isPainted(idxElt)) {
continue;
@@ -155,7 +160,7 @@
final int nbPt = modelToUse.getNbPt(idxElt);
Envelope envelopeElement = modelToUse.getEnvelopeForElement(idxElt);
- if (!envReel.intersects(envelopeElement)) {
+ if (!envelopeElement.intersects(envReel)) {
continue;
}
if (x == null || x.length < nbPt) {
@@ -189,31 +194,34 @@
// Trace des isosurfaces / Isolignes (dans la couleur du fond si les isocouleurs sont
// tracees).
if (isos != null) {
- if (isOnlyOnePoint) {
- int idxDone = x[0] + y[0] * w;
- if (idxDone >= 0 && !memory.isSelected(idxDone)) {
- memory.add(idxDone);
- double value = modelToUse.getDatatFor(idxElt, 0);
- final Color c = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(value);
- if (c != null) {
- _g.setColor(EbliLib.getAlphaColor(c, alpha));
- _g.drawLine(x[0], y[0], x[0], y[0]);
- }
- }
- } else if (isLineAllPaintedByNode(minX, maxX, minY, maxY, x, y, nbPt)) {
- for (int iPt = 0; iPt < nbPt; iPt++) {
- int idxDone = x[iPt] + y[iPt] * w;
+ if (!traceIsoLine && isOnlyOnePoint) {
+ if (clipEcran.contientXY(x[0], y[0])) {
+ int idxDone = x[0] + y[0] * w;
if (idxDone >= 0 && !memory.isSelected(idxDone)) {
memory.add(idxDone);
- double value = modelToUse.getDatatFor(idxElt, iPt);
- final Color c = EbliLib.getAlphaColor(paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
- value), alpha);
+ double value = modelToUse.getDatatFor(idxElt, 0);
+ final Color c = paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(value);
if (c != null) {
- _g.setColor(c);
- _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+ _g.setColor(EbliLib.getAlphaColor(c, alpha));
+ _g.drawLine(x[0], y[0], x[0], y[0]);
}
}
-
+ }
+ } else if (!traceIsoLine && isLineAllPaintedByNode(minX, maxX, minY, maxY, x, y, nbPt)) {
+ for (int iPt = 0; iPt < nbPt; iPt++) {
+ if (clipEcran.contientXY(x[iPt], y[iPt])) {
+ int idxDone = x[iPt] + y[iPt] * w;
+ if (idxDone >= 0 && !memory.isSelected(idxDone)) {
+ memory.add(idxDone);
+ double value = modelToUse.getDatatFor(idxElt, iPt);
+ final Color c = EbliLib.getAlphaColor(paletteCouleur == null ? null : ((BPalettePlage) paletteCouleur).getColorFor(
+ value), alpha);
+ if (c != null) {
+ _g.setColor(c);
+ _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+ }
+ }
+ }
}
} else {
value = modelToUse.fillWithData(idxElt, value);
@@ -231,4 +239,9 @@
}
}
}
+ boolean rapide;
+
+ public void setRapide(boolean rapide) {
+ this.rapide = rapide;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-15 00:17:12
|
Revision: 8209
http://fudaa.svn.sourceforge.net/fudaa/?rev=8209&view=rev
Author: deniger
Date: 2013-01-15 00:16:59 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/persistence/FSigLayerPointPersistence.java
Modified: trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/persistence/FSigLayerPointPersistence.java
===================================================================
--- trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/persistence/FSigLayerPointPersistence.java 2013-01-15 00:15:11 UTC (rev 8208)
+++ trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/persistence/FSigLayerPointPersistence.java 2013-01-15 00:16:59 UTC (rev 8209)
@@ -13,20 +13,29 @@
import com.memoire.fu.Fu;
import com.memoire.fu.FuLog;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.fudaa.ctulu.CtuluArkLoader;
import org.fudaa.ctulu.CtuluArkSaver;
+import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISDataModel;
import org.fudaa.ctulu.gis.GISDataModelFeatureAdapter;
+import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gis.GISZoneCollectionPoint;
import org.fudaa.ctulu.gis.gml.GISGMLZoneExporter;
import org.fudaa.ctulu.gis.gml.GMLInputTemplate;
import org.fudaa.ctulu.gis.gml.GMLReader;
+import org.fudaa.ctulu.gis.shapefile.ShapefileDataStore;
import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.BCalquePersistenceGroupe;
import org.fudaa.ebli.calque.BCalquePersistenceSingle;
@@ -38,7 +47,10 @@
import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup;
import org.fudaa.fudaa.commun.save.FudaaSaveLib;
import org.fudaa.fudaa.sig.layer.FSigLayerGroup;
+import org.geotools.data.DataStore;
+import org.geotools.data.FeatureSource;
import org.geotools.feature.FeatureCollection;
+import org.geotools.feature.FeatureType;
/**
* @author Fred Deniger
@@ -57,6 +69,10 @@
save.getUI().put(getGeomId(), geomData);
return save;
}
+ /**
+ * pour des raisons de performances, shapefile peut \xEAtre utilis\xE9 afin d'acc\xE9l\xE9rer les sauvegardes
+ */
+ private boolean useShapefile = false;
/**
* Sauvegarde des entites g\xE9ometriques sur entry .gml.
@@ -66,13 +82,34 @@
final String _parentDirEntry, final String _parentDirIndice) {
final BCalqueSaverSingle res = (BCalqueSaverSingle) super.saveIn(_cqToSave, _saver, _parentDirEntry,
_parentDirIndice);
- final String entry = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + ".gml";
- try {
- _saver.startEntry(entry);
- createExporter().processGML(null, getGeomData(_cqToSave), _saver.getOutStream());
- _saver.getOutStream().flush();
- } catch (final Exception _evt) {
- FuLog.error(_evt);
+
+
+ if (useShapefile) {
+ File shp = null;
+ try {
+ shp = File.createTempFile("tmp", ".shp");
+ DataStore store = new ShapefileDataStore(shp.toURI().toURL());
+ createExporter().process(null, getGeomData(_cqToSave), null, store);
+ final String entry = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + ".shp";
+ _saver.startEntry(entry);
+ CtuluLibFile.copyStream(new FileInputStream(shp), _saver.getOutStream(), true, false);
+ _saver.getOutStream().flush();
+ } catch (Exception ex) {
+ Logger.getLogger(FSigLayerPointPersistence.class.getName()).log(Level.SEVERE, null, ex);
+ } finally {
+ if (shp != null) {
+ shp.delete();
+ }
+ }
+ } else {
+ final String entry = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + ".gml";
+ try {
+ _saver.startEntry(entry);
+ createExporter().processGML(null, getGeomData(_cqToSave), _saver.getOutStream());
+ _saver.getOutStream().flush();
+ } catch (final Exception _evt) {
+ FuLog.error(_evt);
+ }
}
return res;
@@ -112,22 +149,54 @@
final BCalqueSaverTargetInterface _parentPanel, final BCalque _parentCalque, final String _parentDirEntry,
final String _entryName, final ProgressionInterface _proj) {
boolean r = false;
- try {
+ InputStream shapeInputStream = null;
+ if (useShapefile) {
+ shapeInputStream = getShapeInputStream(_loader, _parentDirEntry, _entryName);
+ }
+ if (useShapefile && shapeInputStream != null) {
- final GMLInputTemplate input = new GMLInputTemplate();
- final InputStream inputStream = getGMLInputStream(_loader, _parentDirEntry, _entryName);
- if (inputStream == null) {
- return true;
+ File shp = null;
+ try {
+ shp = File.createTempFile("tmp", ".shp");
+ CtuluLibFile.copyStream(shapeInputStream, new FileOutputStream(shp), false, true);
+ ShapefileDataStore store = new ShapefileDataStore(shp.toURI().toURL(), null, GISGeometryFactory.INSTANCE);
+ FeatureType schema = store.getSchema();
+ final String[] name = store.getTypeNames();
+ if (name == null || name.length == 0) {
+ throw new IOException("name not found");
+ }
+ final String typeName = schema.getTypeName();
+ FeatureSource featureSource = store.getFeatureSource(typeName);
+ final FeatureCollection feature = featureSource.getFeatures();
+ _saver.getUI().put(getGeomId(), createCollection(GISDataModelFeatureAdapter.load(feature)));
+ r = true;
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ } finally {
+ if (shp != null) {
+ shp.delete();
+ }
}
- input.load(new InputStreamReader(inputStream));
- final GMLReader gmlReader = new GMLReader();
- gmlReader.setInputTemplate(input);
- final FeatureCollection feature = gmlReader.open(getGMLInputStream(_loader, _parentDirEntry, _entryName));
- _saver.getUI().put(getGeomId(), createCollection(GISDataModelFeatureAdapter.load(feature)));
- r = true;
- } catch (final Exception _evt) {
- FuLog.error(_evt);
+
+ } else {
+ try {
+
+ final GMLInputTemplate input = new GMLInputTemplate();
+ final InputStream inputStream = getGMLInputStream(_loader, _parentDirEntry, _entryName);
+ if (inputStream == null) {
+ return true;
+ }
+ input.load(new InputStreamReader(inputStream));
+ final GMLReader gmlReader = new GMLReader();
+ gmlReader.setInputTemplate(input);
+ final FeatureCollection feature = gmlReader.open(getGMLInputStream(_loader, _parentDirEntry, _entryName));
+ _saver.getUI().put(getGeomId(), createCollection(GISDataModelFeatureAdapter.load(feature)));
+ r = true;
+ } catch (final Exception _evt) {
+ FuLog.error(_evt);
+
+ }
}
return r;
}
@@ -137,6 +206,11 @@
return _loader.getReader(_parentDirEntry, _entryName + ".gml");
}
+ private InputStream getShapeInputStream(final CtuluArkLoader _loader, final String _parentDirEntry,
+ final String _entryName) {
+ return _loader.getReader(_parentDirEntry, _entryName + ".shp");
+ }
+
protected BCalque addInParent(final FSigLayerGroup _gr, final BCalqueSaverInterface _cqName,
final GISZoneCollection _collection) {
return _gr.addPointLayerAct(_cqName.getUI().getTitle(), (GISZoneCollectionPoint) _collection, null);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-15 00:16:15
|
Revision: 8208
http://fudaa.svn.sourceforge.net/fudaa/?rev=8208&view=rev
Author: deniger
Date: 2013-01-15 00:15:11 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -94,8 +94,8 @@
static {
isMdl_.name = MdlResource.getS("Modeleur");
- isMdl_.version = "1.2RC4";
- isMdl_.date = "2013-01-10";
+ isMdl_.version = "1.2RC5";
+ isMdl_.date = "2013-01-14";
isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)1999-2011";
isMdl_.license = "GPL2";
isMdl_.languages = "fr,en";
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -7,6 +7,7 @@
*/
package org.fudaa.fudaa.modeleur;
+import com.memoire.fu.FuLog;
import gnu.trove.TIntArrayList;
import java.util.ArrayList;
@@ -59,6 +60,7 @@
import com.vividsolutions.jts.geom.CoordinateSequence;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LineString;
+import org.fudaa.ebli.commun.EbliLib;
/**
* L'\xE9diteur effectuant les traitements sur la scene sp\xE9cifiques au modeleur.
@@ -343,6 +345,7 @@
if (pnDecimation_.afficheModaleOk(pn_.getFrame(), title)) {
// Les g\xE9om\xE9tries. On n'a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est
// pas en mode sommet.
+ int nbRemoved=0;
int[] geoms = getScene().getSelectionHelper().getSelectedIndexes();
for (int i = 0; i < geoms.length; i++) {
int idxGeom = geoms[i];
@@ -364,10 +367,13 @@
ZModeleDonnees mdld = getScene().getLayerForId(idxGeom).modeleDonnees();
if (mdld instanceof MdlModel2dLine) {
MdlModel2dLine mdl = (MdlModel2dLine) mdld;
- mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0 : 1, pnDecimation_
+ nbRemoved+= mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0 : 1, pnDecimation_
.getNbPts(), pnDecimation_.getDistance(), cmp);
}
}
+ final String msg = EbliLib.getS("D\xE9cimation: {0} point(s) enlev\xE9(s)", Integer.toString(nbRemoved));
+ FuLog.warning("MOD:" + msg);
+ getUI().message(null, msg, true);
}
getScene().clearSelection();
@@ -397,6 +403,7 @@
// Les g\xE9om\xE9tries. On a plusieurs g\xE9om\xE9tries que dans le cas o\xF9 on n'est
// pas en mode sommet.
int[] geoms = getScene().getSelectionHelper().getSelectedIndexes();
+ int nbATotaldded = 0;
for (int i = 0; i < geoms.length; i++) {
int idxGeom = geoms[i];
Geometry geom = (Geometry) getScene().getObject(idxGeom);
@@ -417,11 +424,16 @@
ZModeleDonnees mdld = getScene().getLayerForId(idxGeom).modeleDonnees();
if (mdld instanceof MdlModel2dLine) {
MdlModel2dLine mdl = (MdlModel2dLine) mdld;
- mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0 : 1, pnRaffinement_
+ int nb = mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0 : 1, pnRaffinement_
.getNbPts(), pnRaffinement_.getDistance(), cmd);
+
+ nbATotaldded=nbATotaldded+nb;
}
}
getScene().clearSelection();
+ final String msg = EbliLib.getS("Raffinement: {0} point(s) ajout\xE9(s)", Integer.toString(nbATotaldded));
+ FuLog.warning("MOD:" + msg);
+ getUI().message(null, msg, true);
}
if (getMng() != null) {
getMng().addCmd(cmd.getSimplify());
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -6,6 +6,7 @@
import com.vividsolutions.jts.geom.LineString;
import org.fudaa.fudaa.modeleur.grid.CalqueGridSemisSynchronizeProcess;
import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.operation.valid.IsValidOp;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
@@ -72,7 +73,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- layer.getLayerGridDelegate().clearGrid();
+
stop = false;
setEnabled(false);
running = true;
@@ -84,6 +85,7 @@
boolean ok = panel.afficheModaleOk(editor.getUi().getParentComponent(), MdlResource.getS("Selectionner le calque de contour"));
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (ok) {
+ layer.getLayerGridDelegate().clearGrid();
ok = checkParameters(finalContourLayer, editor, panel);
}
if (!ok) {
@@ -124,8 +126,9 @@
GISAttributeModel model = finalContourLayer.modeleDonnees().getGeomData().getModel(GISAttributeConstants.TITRE);
for (int i = 0; i < numGeometries; i++) {
LineString line = (LineString) finalContourLayer.modeleDonnees().getGeomData().getGeometry(i);
- if (!line.isValid()) {
- nonValideLines.add((String) model.getObjectValueAt(i));
+ IsValidOp isValid = new IsValidOp(line);
+ if (!isValid.isValid()) {
+ nonValideLines.add((String) model.getObjectValueAt(i) + ". " + isValid.getValidationError().getMessage() + "; Point: " + isValid.getValidationError().getCoordinate());
}
}
if (!nonValideLines.isEmpty()) {
@@ -200,7 +203,7 @@
@Override
public void run() {
- eps=panel.getEps();
+ eps = panel.getEps();
final LinearRing finalConvexHull = panel.getSelectedConvexHull();
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (panel.isTriangleSelected()) {
@@ -222,10 +225,17 @@
model.setPointsAdapter(processor.getPointsAdapter());
model.setAltiIdxByGridPtIdx(relations.getRelations());
model.setInitPointPaintedByMesh(relations.getInitPointPaintedByMesh());
+ if (progression != null) {
+ progression.setDesc(MdlResource.getS("Affichage"));
+ progression.setProgression(0);
+ }
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
installGridLayer(model);
+ if (progression != null) {
+ progression.reset();
+ }
}
});
} else {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -16,7 +16,6 @@
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.ctulu.gis.process.GisZoneCollectionPointDoublonRemover;
import org.fudaa.ctulu.gis.process.PointsMapping;
-import org.fudaa.ctulu.gis.process.PointsMappingEmpty;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.objet.CExecListener;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -5,14 +5,20 @@
import com.vividsolutions.jts.geom.Coordinate;
import gnu.trove.TIntArrayList;
+import gnu.trove.TIntHashSet;
import java.util.TreeMap;
+import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
import org.fudaa.ctulu.interpolation.bilinear.InterpolationBilinearSupportSorted;
+import org.fudaa.dodico.ef.AllFrontierIteratorInterface;
+import org.fudaa.dodico.ef.EfFrontierInterface;
import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.dodico.ef.EfLib;
+import org.fudaa.dodico.ef.EfNeighborMesh;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
@@ -44,15 +50,16 @@
/**
* un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
- * @return
+ *
+ * @return
*/
public int[][] getRelations() {
return relations;
}
/**
- *
- * @return les points de la zone support\xE9 par un unique point du maillage.
+ *
+ * @return les points de la zone support\xE9 par un unique point du maillage.
*/
public CtuluListSelection getInitPointPaintedByMesh() {
return initPointPaintedByMesh;
@@ -97,7 +104,7 @@
}
updater.setValue(10, grid.getPtsNb());
boolean rescanElt = false;
-
+ int nbToRescan = 0;
for (int i = 0; i < grid.getPtsNb(); i++) {
Coordinate gridCoor = new Coordinate(grid.getPtX(i), grid.getPtY(i));
TIntArrayList idxs = index.get(gridCoor);
@@ -108,17 +115,72 @@
//le premier point de la collection est pris.
res[i] = new int[]{idxs.get(0)};
} else {
+ nbToRescan++;
rescanElt = true;
}
updater.majAvancement();
}
if (rescanElt) {
+ //pour les points, on recherche les points adjacents avec des valeurs connus
+ final int[][] ptVoisins = EfLib.getConnexionFor(grid, prog, new CtuluAnalyze());
+ for (int globalIdx = 0; globalIdx < grid.getPtsNb(); globalIdx++) {
+ if (res[globalIdx] == null) {
+ int[] voisins = ptVoisins[globalIdx];
+ TIntArrayList knownVoisin = null;
+ for (int i = 0; i < voisins.length; i++) {
+ int idxVoisin = voisins[i];
+ if (res[idxVoisin] != null && res[idxVoisin].length == 1) {
+ if (knownVoisin == null) {
+ knownVoisin = new TIntArrayList();
+ }
+ knownVoisin.add(res[idxVoisin][0]);
+ }
+ }
+ if (knownVoisin != null) {
+ if (knownVoisin.size() == 1) {//pour \xE9viter que le point soit consid\xE9r\xE9 comme un point exact.
+ knownVoisin.add(-1);
+ }
+ res[globalIdx] = knownVoisin.toNativeArray();
+ nbToRescan--;
+ }
+ }
+ }
+ //pour les points fronti\xE8res isol\xE9s, on recommence \xE0 chercher les points \xE0 utiliser.
+ AllFrontierIteratorInterface allFrontierIterator = grid.getFrontiers().getAllFrontierIterator();
+ while (allFrontierIterator.hasNext()) {
+ int globalIdx = allFrontierIterator.next();
+ if (res[globalIdx] == null) {
+ int[] voisins = ptVoisins[globalIdx];
+ TIntHashSet knownVoisin = null;
+ for (int i = 0; i < voisins.length; i++) {
+ int idxVoisin = voisins[i];
+ if (res[idxVoisin] != null) {
+ if (knownVoisin == null) {
+ knownVoisin = new TIntHashSet();
+ }
+ knownVoisin.addAll(res[idxVoisin]);
+ }
+ }
+ if (knownVoisin != null) {
+ if (knownVoisin.size() == 1) {//pour \xE9viter que le point soit consid\xE9r\xE9 comme un point exact.
+ knownVoisin.add(-1);
+ }
+ res[globalIdx] = knownVoisin.toArray();
+ nbToRescan--;
+ }
+ }
+ }
+ }
+ updater.setValue(10, nbToRescan);
+
+ if (rescanElt && nbToRescan > 0) {
+ updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des points hors semis"));
final InterpolationBilinearSupportSorted src = InterpolationBilinearSupportSorted.buildSortedSrc(zone, prog);
for (int i = 0; i < grid.getPtsNb(); i++) {
if (res[i] == null) {
-
res[i] = new int[4];
src.getQuadrantIdx(grid.getPtX(i), grid.getPtY(i), res[i]);
+ updater.majAvancement();
}
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -32,22 +32,22 @@
* @author Frederic Deniger
*/
public class LayerGridController implements ZModelGeometryListener {
-
+
private final MdlCalqueMultiPointEditable parentLayer;
private MdlElementModel elementModel;
private MdlIsoModelDefault isoModel;
private MdlGridData gridData;
private MvIsoLayerQuickPainter painter;
-
+
public LayerGridController(MdlCalqueMultiPointEditable parentLayer) {
this.parentLayer = parentLayer;
parentLayer.modeleDonnees().addModelListener(this);
}
-
+
public CtuluUI getUI() {
return ((FSigEditor) parentLayer.getEditor()).getUi();
}
-
+
@Override
public void geometryAction(Object _source, int _indexGeom, Geometry _geom, int _action) {
if (elementModel != null) {
@@ -87,38 +87,39 @@
painter.setIsAntaliasing(parentLayer.isAntialiasing());
painter.setAlpha(parentLayer.getAlpha());
painter.setLigneModel(parentLayer.getLineModel(0));
+ painter.setRapide(parentLayer.isRapide());
painter.paintDonnees(width, height, _g, _versEcran, _versReel, _clipReel);
-
+
}
-
+
@Override
public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
}
-
+
@Override
public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) {
}
-
+
public MdlElementLayer getGridLayer() {
return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
}
/**
- *
- * @return true si un maillage est pr\xE9sent.
+ *
+ * @return true si un maillage est pr\xE9sent.
*/
public boolean isGridCreated() {
return elementModel != null;
}
-
+
public ZCalqueMultiPointEditable getParentLayer() {
return parentLayer;
}
-
+
public MdlGridData getExportGridData() {
return gridData;
}
-
+
public void clearGrid() {
elementModel = null;
gridData = null;
@@ -129,7 +130,7 @@
parentLayer.clearCacheAndRepaint();
}
}
-
+
public void setGridLayer(MdlElementModel grid) {
this.elementModel = grid;
gridData = null;
@@ -146,14 +147,15 @@
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().repaint(0);
((FSigEditor) parentLayer.getEditor()).getPanel().getVueCalque().revalidate();
}
-
+
public void installGridLayer(MdlElementLayer eltLayer, MdlElementModel grid) {
if (eltLayer == null) {
eltLayer = new MdlElementLayer();
eltLayer.setTitle(MdlResource.getS("Maillage"));
eltLayer.setName("cqGrid");
eltLayer.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1f, Color.LIGHT_GRAY));
- eltLayer.setAlpha(128);
+// eltLayer.setAlpha(128);
+ eltLayer.setVisible(false);
parentLayer.add(eltLayer);
}
final int attributeZ = LibUtils.getAttributeZPosition(parentLayer.modeleDonnees().getGeomData());
@@ -168,7 +170,7 @@
eltLayer.setModele(grid);
eltLayer.repaint();
}
-
+
public void setEltPainted(int[] selectedElementIdx, boolean b) {
getGridLayer().modele().setPainted(selectedElementIdx, b);
getGridLayer().clearCacheAndRepaint();
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2013-01-15 00:13:48 UTC (rev 8207)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2013-01-15 00:15:11 UTC (rev 8208)
@@ -32,7 +32,7 @@
/**
* Un mod\xE8le de calque pour un calque 2D contenant des lignes.
- *
+ *
* @author Bertrand Marchand
* @version $Id$
*/
@@ -42,11 +42,12 @@
* Construction d'un modele de profil avec pile de commandes.
*/
public MdlModel2dLine(final ZModelGeometryListener _listener) {
- this(_listener,new GISZoneCollectionLigneBrisee(null));
+ this(_listener, new GISZoneCollectionLigneBrisee(null));
}
-
+
/**
* Construction d'un modele de profil avec pile de commandes.
+ *
* @param _listener Un listener du modele.
* @param _zone La zone utilis\xE9e par le mod\xE8le.
*/
@@ -58,55 +59,57 @@
/**
* Interpole entre 2 points, suivant un nombre de points donn\xE9s.
+ *
* @param _coords Les 2 coordonn\xE9es
* @param _dist La distance entre 2 points cons\xE9cutifs.
* @param _useBorderPoints vrai si la ligne int\xE9pol\xE9e doit contenir les coordonn\xE9es fournies.
* @param _cmd Le container de commandes.
* @return true si modif ok.
*/
- public boolean interpolate(Coordinate[] _coords, double _dist, boolean _useBorderPoints, final CtuluCommandContainer _cmd){
- double distTot=
- Math.sqrt((_coords[1].x-_coords[0].x)*(_coords[1].x-_coords[0].x)+(_coords[1].y-_coords[0].y)*(_coords[1].y-_coords[0].y));
- int nbpts=(int)Math.round(distTot/_dist)-1;
+ public boolean interpolate(Coordinate[] _coords, double _dist, boolean _useBorderPoints, final CtuluCommandContainer _cmd) {
+ double distTot =
+ Math.sqrt((_coords[1].x - _coords[0].x) * (_coords[1].x - _coords[0].x) + (_coords[1].y - _coords[0].y) * (_coords[1].y - _coords[0].y));
+ int nbpts = (int) Math.round(distTot / _dist) - 1;
Coordinate[] coords;
if (_useBorderPoints) {
- coords=new Coordinate[_coords.length+nbpts];
- for (int i=1; i<coords.length-1; i++)
- coords[i]=new Coordinate(
- _coords[0].x+(_coords[1].x-_coords[0].x)*i*_dist/distTot,
- _coords[0].y+(_coords[1].y-_coords[0].y)*i*_dist/distTot,
- _coords[0].z+(_coords[1].z-_coords[0].z)*i*_dist/distTot
- );
- coords[0]=(Coordinate)_coords[0].clone();
- coords[coords.length-1]=(Coordinate)_coords[1].clone();
+ coords = new Coordinate[_coords.length + nbpts];
+ for (int i = 1; i < coords.length - 1; i++) {
+ coords[i] = new Coordinate(
+ _coords[0].x + (_coords[1].x - _coords[0].x) * i * _dist / distTot,
+ _coords[0].y + (_coords[1].y - _coords[0].y) * i * _dist / distTot,
+ _coords[0].z + (_coords[1].z - _coords[0].z) * i * _dist / distTot);
+ }
+ coords[0] = (Coordinate) _coords[0].clone();
+ coords[coords.length - 1] = (Coordinate) _coords[1].clone();
+ } else {
+ coords = new Coordinate[nbpts];
+ for (int i = 0; i < coords.length; i++) {
+ coords[i] = new Coordinate(
+ _coords[0].x + (_coords[1].x - _coords[0].x) * (i + 1) * _dist / distTot,
+ _coords[0].y + (_coords[1].y - _coords[0].y) * (i + 1) * _dist / distTot,
+ _coords[0].z + (_coords[1].z - _coords[0].z) * (i + 1) * _dist / distTot);
+ }
}
- else {
- coords=new Coordinate[nbpts];
- for (int i=0; i<coords.length; i++)
- coords[i]=new Coordinate(
- _coords[0].x+(_coords[1].x-_coords[0].x)*(i+1)*_dist/distTot,
- _coords[0].y+(_coords[1].y-_coords[0].y)*(i+1)*_dist/distTot,
- _coords[0].z+(_coords[1].z-_coords[0].z)*(i+1)*_dist/distTot
- );
- }
- if (coords.length>=2) {
- GISPolyligne poly=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(coords);
- CtuluCommandComposite cmd=new CtuluCommandComposite();
- int idx=getGeomData().addGeometry(poly, null, cmd);
- if (idx!=-1)
+ if (coords.length >= 2) {
+ GISPolyligne poly = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(coords);
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
+ int idx = getGeomData().addGeometry(poly, null, cmd);
+ if (idx != -1) {
setGeomModif(idx, cmd);
- if(_cmd!=null)
+ }
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
+ }
return true;
+ } else {
+ return false;
}
- else
- return false;
}
-
+
/**
- * Decime une ligne. La m\xE9thode utilis\xE9e pour d\xE9cimer peut \xEAtre :<p>
- * 0 : Suivant un nombre de points a supprimer entre 2 points conserv\xE9s.<br>
- * 1 : Suivant une distance minimale.
+ * Decime une ligne. La m\xE9thode utilis\xE9e pour d\xE9cimer peut \xEAtre :<p> 0 : Suivant un nombre de points a supprimer entre 2 points conserv\xE9s.<br> 1 :
+ * Suivant une distance minimale.
+ *
* @param _idxGeom La g\xE9om\xE9trie a d\xE9cimer.
* @param _idxdeb L'indice de d\xE9but de d\xE9cimation.
* @param _idxfin L'indice de fin de d\xE9cimation.
@@ -114,53 +117,51 @@
* @param _nbpts Le nombre de points.
* @param _dstmin La distance minimale.
* @param _cmd Le container de commandes.
- * @return true si modif ok.
+ * @return le nombre de points enlev\xE9
*/
- public boolean decimate(int _idxGeom, int _idxdeb,int _idxfin,int _meth,int _nbpts, double _dstmin, CtuluCommandContainer _cmd) {
- TIntArrayList list=new TIntArrayList();
-
+ public int decimate(int _idxGeom, int _idxdeb, int _idxfin, int _meth, int _nbpts, double _dstmin, CtuluCommandContainer _cmd) {
+ TIntArrayList list = new TIntArrayList();
+
// Methode par nombre de points.
- if (_meth==0) {
- int idx=_idxdeb+1+_nbpts;
- for (int i=_idxdeb+1; i<=_idxfin-1; i++) {
- if (i<idx) {
+ if (_meth == 0) {
+ int idx = _idxdeb + 1 + _nbpts;
+ for (int i = _idxdeb + 1; i <= _idxfin - 1; i++) {
+ if (i < idx) {
list.add(i);
+ } else {
+ idx = i + 1 + _nbpts;
}
- else {
- idx=i+1+_nbpts;
- }
}
- }
- // Methode par distance mini.
- else if (_meth==1) {
- LineString geom=(LineString)getGeomData().getGeometry(_idxGeom);
- CoordinateSequence seq=geom.getCoordinateSequence();
- double dst=0;
- for (int i=_idxdeb+1; i<=_idxfin-1; i++) {
- dst+=Math.sqrt((seq.getX(i)-seq.getX(i-1))*(seq.getX(i)-seq.getX(i-1))+
- (seq.getY(i)-seq.getY(i-1))*(seq.getY(i)-seq.getY(i-1)));
- if (dst<_dstmin) {
+ } // Methode par distance mini.
+ else if (_meth == 1) {
+ LineString geom = (LineString) getGeomData().getGeometry(_idxGeom);
+ CoordinateSequence seq = geom.getCoordinateSequence();
+ double dst = 0;
+ for (int i = _idxdeb + 1; i <= _idxfin - 1; i++) {
+ dst += Math.sqrt((seq.getX(i) - seq.getX(i - 1)) * (seq.getX(i) - seq.getX(i - 1))
+ + (seq.getY(i) - seq.getY(i - 1)) * (seq.getY(i) - seq.getY(i - 1)));
+ if (dst < _dstmin) {
list.add(i);
+ } else {
+ dst = 0;
}
- else {
- dst=0;
- }
}
}
-
+
CtuluListSelectionInterface ids = new CtuluListSelection(list.toNativeArray());
- CtuluCommandComposite cmd=new CtuluCommandComposite();
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
getGeomData().removeAtomics(_idxGeom, ids, null, cmd); // L'UI est null, le cas ou moins de 2 points ne peut pas arriver.
setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie
- if(_cmd!=null)
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
- return true;
+ }
+ return ids.getNbSelectedIndex();
}
-
+
/**
- * Raffine une ligne. La m\xE9thode utilis\xE9e pour raffiner peut \xEAtre :<p>
- * 0 : Suivant un nombre de points a ajouter entre 2 points.<br>
- * 1 : Suivant une distance maximale.
+ * Raffine une ligne. La m\xE9thode utilis\xE9e pour raffiner peut \xEAtre :<p> 0 : Suivant un nombre de points a ajouter entre 2 points.<br> 1 : Suivant une
+ * distance maximale.
+ *
* @param _idxGeom La g\xE9om\xE9trie a raffiner.
* @param _idxdeb L'indice de d\xE9but de raffinement.
* @param _idxfin L'indice de fin de raffinement.
@@ -168,71 +169,85 @@
* @param _nbpts Le nombre de points.
* @param _dstmax La distance maximale.
* @param _cmd Le container de commandes.
- * @return true si modif ok.
+ * @return le nombre de points ajout\xE9s
*/
- public boolean refine(int _idxGeom, int _idxdeb,int _idxfin,int _meth,int _nbpts, double _dstmax, CtuluCommandContainer _cmd) {
- LineString geom=(LineString)getGeomData().getGeometry(_idxGeom);
- CoordinateSequence seq=GISLib.refine(geom.getCoordinateSequence(), _idxdeb, _idxfin, _meth, _nbpts, _dstmax);
-
- GISPolyligne newgeom=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(seq);
- CtuluCommandComposite cmd=new CtuluCommandComposite();
+ public int refine(int _idxGeom, int _idxdeb, int _idxfin, int _meth, int _nbpts, double _dstmax, CtuluCommandContainer _cmd) {
+ LineString geom = (LineString) getGeomData().getGeometry(_idxGeom);
+ CoordinateSequence seq = GISLib.refine(geom.getCoordinateSequence(), _idxdeb, _idxfin, _meth, _nbpts, _dstmax);
+
+ GISPolyligne newgeom = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(seq);
+ CtuluCommandComposite cmd = new CtuluCommandComposite();
getGeomData().setGeometry(_idxGeom, newgeom, cmd);
setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie
- if(_cmd!=null)
+ if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
- return true;
+ }
+ return seq.size() - geom.getNumPoints();
}
-
+
/**
- * Sort the points of selected polylignes. This sorting is done on the _icoord.
+ * Sort the points of selected polylignes. This sorting is done on the _icoord.
+ *
* @param _icoord 0: x, 1: y.
*/
public void organizePoints(int _idxGeom, int _icoord, CtuluCommandContainer _cmd) {
- /** This class contain needed data to sort points. */
- class SortableIndex implements Comparable<SortableIndex>{
+ /**
+ * This class contain needed data to sort points.
+ */
+ class SortableIndex implements Comparable<SortableIndex> {
+
public double coord;
private int ind;
+
public SortableIndex(double _coord, int _ind) {
- ind=_ind;
- coord=_coord;
+ ind = _ind;
+ coord = _coord;
}
public int compareTo(SortableIndex o) {
- if (coord<o.coord) return -1;
- else if (coord==o.coord) return 0;
- else return 1;
+ if (coord < o.coord) {
+ return -1;
+ } else if (coord == o.coord) {
+ return 0;
+ } else {
+ return 1;
+ }
}
}
- CtuluCommandComposite cmp=new CtuluCommandComposite(MdlResource.getS("R\xE9organisation de la g\xE9om\xE9trie"));
+ CtuluCommandComposite cmp = new CtuluCommandComposite(MdlResource.getS("R\xE9organisation de la g\xE9om\xE9trie"));
- GISZoneCollection zone=getGeomData();
- CoordinateSequence oldseq=zone.getCoordinateSequence(_idxGeom);
+ GISZoneCollection zone = getGeomData();
+ CoordinateSequence oldseq = zone.getCoordinateSequence(_idxGeom);
// Construction de la structure de tri
- SortableIndex[] points=new SortableIndex[oldseq.size()];
- for(int j=0;j<points.length;j++)
- points[j]=new SortableIndex(oldseq.getOrdinate(j,_icoord), j);
+ SortableIndex[] points = new SortableIndex[oldseq.size()];
+ for (int j = 0; j < points.length; j++) {
+ points[j] = new SortableIndex(oldseq.getOrdinate(j, _icoord), j);
+ }
Arrays.sort(points);
-
+
// Remplacement de la g\xE9om\xE9trie r\xE9ordonn\xE9e.
- Coordinate[] coords=new Coordinate[points.length];
- for(int j=0;j<points.length;j++)
- coords[j]=oldseq.getCoordinateCopy(points[j].ind);
+ Coordinate[] coords = new Coordinate[points.length];
+ for (int j = 0; j < points.length; j++) {
+ coords[j] = oldseq.getCoordinateCopy(points[j].ind);
+ }
zone.setCoordinateSequence(_idxGeom, new GISCoordinateSequenceFactory().create(coords), cmp);
-
+
// R\xE9ordonnancement des attributs atomiques.
- for(int iatt=0;iatt<zone.getNbAttributes();iatt++)
- if(zone.getAttribute(iatt).isAtomicValue()){
- GISAttributeModel oldvalues=(GISAttributeModel) zone.getDataModel(iatt).getObjectValueAt(_idxGeom);
- GISAttributeModel newvalues=(GISAttributeModel)zone.getDataModel(iatt).getAttribute().createDataForGeom(oldvalues, oldvalues.getSize());
- for(int j=0;j<oldvalues.getSize();j++){
- newvalues.setObject(j,oldvalues.getObjectValueAt(points[j].ind), null);
+ for (int iatt = 0; iatt < zone.getNbAttributes(); iatt++) {
+ if (zone.getAttribute(iatt).isAtomicValue()) {
+ GISAttributeModel oldvalues = (GISAttributeModel) zone.getDataModel(iatt).getObjectValueAt(_idxGeom);
+ GISAttributeModel newvalues = (GISAttributeModel) zone.getDataModel(iatt).getAttribute().createDataForGeom(oldvalues, oldvalues.getSize());
+ for (int j = 0; j < oldvalues.getSize(); j++) {
+ newvalues.setObject(j, oldvalues.getObjectValueAt(points[j].ind), null);
}
- zone.setAttributValue(iatt, _idxGeom,newvalues,cmp);
+ zone.setAttributValue(iatt, _idxGeom, newvalues, cmp);
}
-
- if(_cmd!=null)
+ }
+
+ if (_cmd != null) {
_cmd.addCmd(cmp.getSimplify());
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 12:45:17
|
Revision: 8206
http://fudaa.svn.sourceforge.net/fudaa/?rev=8206&view=rev
Author: deniger
Date: 2013-01-14 12:45:08 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -25,6 +25,7 @@
import org.fudaa.fudaa.modeleur.grid.AbstractCalqueCreateGridProcessor;
import org.fudaa.fudaa.modeleur.grid.CalqueCreateGridPoly2TriProcessor;
import org.fudaa.fudaa.modeleur.grid.CalqueCreateGridTriangleProcessor;
+import org.fudaa.fudaa.modeleur.grid.CalqueGridSemisSynchronizeProcess.Result;
import org.fudaa.fudaa.modeleur.grid.GridChooseToolAndContourConvexHullPanel;
import org.fudaa.fudaa.modeleur.grid.MdlCalqueMultiPointEditable;
import org.fudaa.fudaa.modeleur.grid.MdlElementModel;
@@ -195,9 +196,11 @@
((FSigEditor) layer.getEditor()).getPanel().getArbreCalqueModel().setSelectionCalque(layer);
}
}
+ private double eps = 1e-3;
@Override
public void run() {
+ eps=panel.getEps();
final LinearRing finalConvexHull = panel.getSelectedConvexHull();
final MdlLayer2dContour finalContourLayer = (MdlLayer2dContour) panel.getSelectedLayer();
if (panel.isTriangleSelected()) {
@@ -205,16 +208,20 @@
} else {
processor = new CalqueCreateGridPoly2TriProcessor(layer.modeleDonnees(), getUI(), finalContourLayer, finalConvexHull);
}
+ processor.setEps(eps);
+ //TODO boolean
//on execute la triangulation et on lit le maillage
final EfGridInterface grid = processor.process(progression);
final MdlElementModel model = new MdlElementModel(grid);
//si non null, on fait des calculs suppl\xE9mentaires:
if (grid != null) {
- CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getTriangleNodeAdapter());
+ CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getPointsAdapter());
+ synchProcess.setEps(eps);
//recherche des relations entre les noeuds du maillage et le semis actuel:
- int[][] relations = synchProcess.getRelations(grid, progression);
- model.setTriangleNodeAdapter(processor.getTriangleNodeAdapter());
- model.setAltiIdxByGridPtIdx(relations);
+ Result relations = synchProcess.getRelations(grid, progression);
+ model.setPointsAdapter(processor.getPointsAdapter());
+ model.setAltiIdxByGridPtIdx(relations.getRelations());
+ model.setInitPointPaintedByMesh(relations.getInitPointPaintedByMesh());
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/AbstractCalqueCreateGridProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -13,8 +13,11 @@
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISVisitorGeometryCollector;
+import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
+import org.fudaa.ctulu.gis.process.GisZoneCollectionPointDoublonRemover;
+import org.fudaa.ctulu.gis.process.PointsMapping;
+import org.fudaa.ctulu.gis.process.PointsMappingEmpty;
import org.fudaa.dodico.ef.EfGridInterface;
-import org.fudaa.dodico.ef.io.triangle.TriangleNodeAdapter;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.objet.CExecListener;
import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
@@ -26,22 +29,33 @@
*/
public abstract class AbstractCalqueCreateGridProcessor implements CExecListener {
- final TriangleNodeAdapter triangleNodeAdapter;
- final CtuluUI ui;
- final ZCalqueLigneBrisee contour;
- final LinearRing convexHull;
+ protected final CtuluUI ui;
+ protected final ZCalqueLigneBrisee contour;
+ protected final LinearRing convexHull;
+ protected double eps = 1e-3;
+ private final GisZoneCollectionAsListPointAdapter pointsAdapter;
+ private PointsMapping pointsMapping;
public AbstractCalqueCreateGridProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
this.ui = ui;
this.convexHull = convexHull;
this.contour = contour;
- triangleNodeAdapter = new TriangleNodeAdapter(points.getGeomData());
+ this.pointsAdapter = new GisZoneCollectionAsListPointAdapter(points.getGeomData());
}
- public final TriangleNodeAdapter getTriangleNodeAdapter() {
- return triangleNodeAdapter;
+ public PointsMapping getPointsMapping() {
+ return pointsMapping;
}
+ public GisZoneCollectionAsListPointAdapter getPointsAdapter() {
+ return pointsAdapter;
+ }
+
+ public void setEps(double epsForDoublon) {
+ this.eps = epsForDoublon;
+ }
+
+
@Override
public final void setProcess(Process _p) {
this.p = _p;
@@ -74,7 +88,16 @@
return true;
}
- public final TriangulationPolyDataNodeDefault createPolyData() {
+ protected PointsMapping createMapping(ProgressionInterface prog) {
+ pointsMapping = null;
+ GisZoneCollectionPointDoublonRemover remover = new GisZoneCollectionPointDoublonRemover(pointsAdapter, eps);
+ pointsMapping = remover.createFiltered(prog);
+
+ return pointsMapping;
+ }
+
+ public final TriangulationPolyDataNodeDefault createPolyData(ProgressionInterface prog) {
+
TriangulationPolyDataNodeDefault data = new TriangulationPolyDataNodeDefault();
if (contour != null) {
GISVisitorGeometryCollector collector = new GISVisitorGeometryCollector(GISLib.MASK_POLYGONE);
@@ -93,9 +116,8 @@
data.setHoles(holes);
data.setRings(linearRings);
}
-
- data.setNodeData(triangleNodeAdapter);
-
+ PointsMapping filteredPoints = createMapping(prog);
+ data.setNodeData(filteredPoints);
data.setUseZAsAttribute(false);
return data;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -24,28 +24,29 @@
/**
* Pas complet: laisser si repris mais ne fonctionne pas comme attendu. Le chemin en dur vers gmsh est laiss\xE9 ( voir le TODO).
+ *
* @author Frederic Deniger
*/
-public class CalqueCreateGridGmshProcessor extends AbstractCalqueCreateGridProcessor{
-
-
+public class CalqueCreateGridGmshProcessor extends AbstractCalqueCreateGridProcessor {
+
public CalqueCreateGridGmshProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
super(points, ui, contour, convexHull);
}
-
+
@Override
public EfGridInterface process(ProgressionInterface prog) {
- try {
+ try {
stop = false;
File tmpDir = CtuluLibFile.createTempDir();
String fileName = null;
CExec exe = new CExec();
exe.setExecDirectory(tmpDir);
-
+
fileName = "in.geo";
- TriangulationPolyDataNodeDefault data = createPolyData();
+ TriangulationPolyDataNodeDefault data = createPolyData(prog);
File polyFile = new File(tmpDir, fileName);
GmshGeoWriter writer = new GmshGeoWriter();
+ writer.setEps(eps);
CtuluIOOperationSynthese write = writer.write(data, polyFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
@@ -82,5 +83,4 @@
}
return null;
}
-
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -24,10 +24,10 @@
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.EfNode;
import org.fudaa.dodico.ef.impl.EfGrid;
-import org.fudaa.dodico.ef.io.common.TriangulationConvexHullBuilder;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataInterface;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContent;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContentBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationConvexHullBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataInterface;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContent;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContentBuilder;
import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
import org.fudaa.ebli.calque.ZModeleMultiPoint;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
@@ -54,7 +54,7 @@
@Override
public EfGridInterface process(ProgressionInterface prog) {
stop = false;
- TriangulationPolyDataInterface data = createPolyData();
+ TriangulationPolyDataInterface data = createPolyData(prog);
ProgressionUpdater updater = new ProgressionUpdater(prog);
updater.majProgessionStateOnly(MdlResource.getS("Construction des donn\xE9es d'entr\xE9e"));
@@ -69,14 +69,11 @@
data = builder.addConvexHullIfNeeded(data);
int idxExternPoly = builder.getExternPolygonIdx(data);
updater.majProgessionStateOnly(MdlResource.getS("Construction des points"));
- TreeSet<Coordinate> addedCoordinate = new TreeSet<Coordinate>(new CoordinateComparator());
+ TreeSet<Coordinate> addedCoordinate = new TreeSet<Coordinate>(new CoordinateComparator(eps));
LinearRing externRing = data.getPoly(idxExternPoly);
SIRtreePointInRing isInMainRing = new SIRtreePointInRing(externRing);
List<SIRtreePointInRing> isInHoles = new ArrayList<SIRtreePointInRing>();
List<PolygonPoint> polygonPoints = createPolygonPoints(externRing, addedCoordinate);
- boolean valid = externRing.isValid();
- boolean simple = externRing.isSimple();
- boolean ccW = CGAlgorithms.isCCW(externRing.getCoordinates());
Polygon polygon = new Polygon(polygonPoints);
if (data.getNbPoly() > 1) {
for (int idxPoly = 0; idxPoly < data.getNbPoly(); idxPoly++) {
@@ -86,7 +83,7 @@
}
}
}
- int nbPoints = data.getNbPoints();
+ int nbPoints = data.getPtsNb();
updater.setValue(10, nbPoints);
for (int idxPt = 0; idxPt < nbPoints; idxPt++) {
double x = data.getPtX(idxPt);
@@ -115,7 +112,7 @@
return createGrid(polygon, prog);
} else {
- TriangulationUniqueDataContent content = new TriangulationUniqueDataContentBuilder(data).build(null);
+ TriangulationUniqueDataContent content = new TriangulationUniqueDataContentBuilder(data, eps).build(prog);
List<TriangulationPoint> pointSet = new ArrayList<TriangulationPoint>();
for (int i = 0; i < content.getNbPoints(); i++) {
pointSet.add(new TPoint(content.getX(i), content.getY(i)));
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridTriangleProcessor.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -13,9 +13,11 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.gis.process.PointsMapping;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.impl.EFGridArrayZ;
import org.fudaa.dodico.ef.io.triangle.TriangleEleNodeGridCreator;
+import org.fudaa.dodico.ef.io.triangle.TriangleNodeSupportAdapter;
import org.fudaa.dodico.ef.io.triangle.TriangleNodeWriter;
import org.fudaa.dodico.ef.io.triangle.TriangulationPolyDataNodeDefault;
import org.fudaa.dodico.ef.io.triangle.TrianglePolyWriter;
@@ -30,20 +32,19 @@
* @author Frederic Deniger
*/
public class CalqueCreateGridTriangleProcessor extends AbstractCalqueCreateGridProcessor {
-
+
public static String getTriangleExe() {
return MdlPreferences.MDL.getStringProperty("grid.triangle.path");
}
-
+
public static boolean isTriangleExeConfigured() {
return getTriangleExe() != null && new File(getTriangleExe()).exists();
}
-
+
public CalqueCreateGridTriangleProcessor(ZModeleMultiPoint points, CtuluUI ui, ZCalqueLigneBrisee contour, LinearRing convexHull) {
super(points, ui, contour, convexHull);
}
-
-
+
@Override
public EfGridInterface process(ProgressionInterface prog) {
if (!isTriangleExeConfigured()) {
@@ -59,7 +60,9 @@
fileName = "in.node";
File nodeFile = new File(tmpDir, fileName);
TriangleNodeWriter writer = new TriangleNodeWriter();
- CtuluIOOperationSynthese write = writer.write(triangleNodeAdapter, nodeFile, prog);
+ //construction des points filtr\xE9s.
+ PointsMapping points = createMapping(prog);
+ CtuluIOOperationSynthese write = writer.write(new TriangleNodeSupportAdapter(points), nodeFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
return null;
@@ -67,9 +70,10 @@
exe.setCommand(new String[]{getTriangleExe(), fileName});
} else {
fileName = "in.poly";
- TriangulationPolyDataNodeDefault data = createPolyData();
+ TriangulationPolyDataNodeDefault data = createPolyData(prog);
File polyFile = new File(tmpDir, fileName);
TrianglePolyWriter writer = new TrianglePolyWriter();
+ writer.setEps(super.eps);
CtuluIOOperationSynthese write = writer.write(data, polyFile, prog);
if (write.containsError()) {
ui.manageErrorOperationAndIsFatal(write);
@@ -85,9 +89,9 @@
if (prog != null) {
prog.setDesc(MdlResource.getS("Ex\xE9cution du mailleur"));
}
-
-
-
+
+
+
exe.setListener(this);
exe.exec();
if (stop) {
@@ -114,5 +118,4 @@
}
return null;
}
-
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueGridSemisSynchronizeProcess.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -4,7 +4,9 @@
package org.fudaa.fudaa.modeleur.grid;
import com.vividsolutions.jts.geom.Coordinate;
+import gnu.trove.TIntArrayList;
import java.util.TreeMap;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
@@ -26,27 +28,71 @@
private final GisZoneCollectionAsListPointAdapter zone;
private double eps = 1e-3;
+ public static class Result {
+
+ //un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ int[][] relations;
+ /**
+ * contient la liste des points du semis qui sera support\xE9 par un point du maillage.
+ */
+ CtuluListSelection initPointPaintedByMesh;
+
+ public Result(int[][] relations, CtuluListSelection initPointPaintedByMesh) {
+ this.relations = relations;
+ this.initPointPaintedByMesh = initPointPaintedByMesh;
+ }
+
+ /**
+ * un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
+ * @return
+ */
+ public int[][] getRelations() {
+ return relations;
+ }
+
+ /**
+ *
+ * @return les points de la zone support\xE9 par un unique point du maillage.
+ */
+ public CtuluListSelection getInitPointPaintedByMesh() {
+ return initPointPaintedByMesh;
+ }
+ }
+
public CalqueGridSemisSynchronizeProcess(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
this.zone = triangleNodeAdapter;
}
+ public void setEps(double eps) {
+ this.eps = eps;
+ }
+
/**
*
*
* @param grid
* @return un tableau dont la taille est grid.nbPoint.Pour chaque point du maillage donne l'indice du noeud dans le mod\xE8les multipoint.
*/
- public int[][] getRelations(EfGridInterface grid, ProgressionInterface prog) {
+ public Result getRelations(EfGridInterface grid, ProgressionInterface prog) {
if (grid == null) {
- return new int[0][0];
+ return new Result(new int[0][0], new CtuluListSelection());
}
int[][] res = new int[grid.getPtsNb()][];
+
ProgressionUpdater updater = new ProgressionUpdater(prog);
- TreeMap<Coordinate, Integer> index = new TreeMap<Coordinate, Integer>(new CoordinateComparator(eps));
+ TreeMap<Coordinate, TIntArrayList> index = new TreeMap<Coordinate, TIntArrayList>(new CoordinateComparator(eps));
updater.majProgessionStateOnly(MdlResource.getS("Synchronisation des indices"));
updater.setValue(10, zone.getPtsNb());
+ //indique les points de la zone qui seront repr\xE9sent\xE9s par un unique point du maillage.
+ CtuluListSelection initPointPaintedByMesh = new CtuluListSelection(zone.getPtsNb());
for (int i = 0; i < zone.getPtsNb(); i++) {
- index.put(new Coordinate(zone.getPtX(i), zone.getPtY(i)), i);
+ final Coordinate coordinate = new Coordinate(zone.getPtX(i), zone.getPtY(i));
+ TIntArrayList ptIdx = index.get(coordinate);
+ if (ptIdx == null) {
+ ptIdx = new TIntArrayList();
+ index.put(coordinate, ptIdx);
+ }
+ ptIdx.add(i);
updater.majAvancement();
}
updater.setValue(10, grid.getPtsNb());
@@ -54,9 +100,13 @@
for (int i = 0; i < grid.getPtsNb(); i++) {
Coordinate gridCoor = new Coordinate(grid.getPtX(i), grid.getPtY(i));
- Integer idx = index.get(gridCoor);
- if (idx != null) {
- res[i] = new int[]{idx};
+ TIntArrayList idxs = index.get(gridCoor);
+ if (idxs != null) {
+ for (int j = idxs.size() - 1; j >= 0; j--) {
+ initPointPaintedByMesh.add(idxs.get(j));
+ }
+ //le premier point de la collection est pris.
+ res[i] = new int[]{idxs.get(0)};
} else {
rescanElt = true;
}
@@ -74,7 +124,7 @@
}
//on va affecter a des points, les m\xEAme r\xE9sultats que ceux de l'\xE9l\xE9ments.
- return res;
+ return new Result(res, initPointPaintedByMesh);
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/GridChooseToolAndContourConvexHullPanel.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -5,6 +5,7 @@
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuTextField;
import com.vividsolutions.jts.geom.LinearRing;
import java.awt.Component;
import java.awt.event.ItemEvent;
@@ -32,22 +33,28 @@
* @author Frederic Deniger
*/
public class GridChooseToolAndContourConvexHullPanel extends CtuluDialogPanel {
-
+
JComboBox cbTriangulateur;
JComboBox cbLayer;
JComboBox cbConvexHull;
+ BuTextField tfEps;
CtuluFileChooserPanel chooseExe;
-
+
public GridChooseToolAndContourConvexHullPanel(MdlVisuPanel visuPanel) {
super(false);
setHelpText(MdlResource.getS("Choisir le calque qui d\xE9terminera le contour et les trous du maillage"));
setLayout(new BuGridLayout(2, 5, 5));
+ BuLabel chooseEps = addLabel(MdlResource.getS("Epsilon"));
+ chooseEps.setToolTipText(MdlResource.getS("Distance en-dessous de laquelle 2 points sont consid\xE9r\xE9s comme \xE9gaux"));
+ tfEps = addDoubleText();
+ tfEps.setText("0.001");
+ tfEps.setToolTipText(chooseEps.getToolTipText());
BuLabel chooseMailleur = addLabel(MdlResource.getS("Triangulateur"));
chooseMailleur.setToolTipText(MdlResource.getS("<html><body>Choisi le triangulateur<br>Triangle est plus robuste et mieux adapt\xE9 au volume important.<br>Si vous utiliser Triangle, vous devez t\xE9l\xE9charger un ex\xE9cutable.<br>https://www.cs.cmu.edu/~quake/triangle.html"));
cbTriangulateur = new JComboBox(TriangulateurEnum.values());
add(cbTriangulateur);
chooseExe = addFileChooserPanel(this, MdlResource.getS("Chemin pour Triangle") + ": ", false, false);
-
+
cbTriangulateur.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
@@ -88,11 +95,11 @@
}
updateChooseExecState();
}
-
+
protected final void updateChooseExecState() {
chooseExe.setEnabled(isTriangleSelected());
}
-
+
@Override
public boolean isDataValid() {
if (!isTriangleSelected()) {
@@ -106,9 +113,18 @@
setErrorText(MdlResource.getS("Le chemin vers l'ex\xE9cutable Triangle n'existe pas: {0}", choosenFile.getAbsolutePath()));
return false;
}
+ Double value = getEps();
+ if (value == null || value < 0) {
+ setErrorText(MdlResource.getS("Une valeur strictement positive pour epsilon est requise"));
+ return false;
+ }
return super.isDataValid();
}
-
+
+ public Double getEps() {
+ return (Double) tfEps.getValue();
+ }
+
@Override
public void apply() {
super.apply();
@@ -116,30 +132,30 @@
File choosenFile = chooseExe.getFile();
if (choosenFile != null) {
MdlPreferences.MDL.putStringProperty("grid.triangle.path", choosenFile.getAbsolutePath());
-
+
}
}
MdlPreferences.MDL.putStringProperty("grid.triangulateur.used", isTriangleSelected() ? "triangle" : "interne");
MdlPreferences.MDL.writeIniFile();
}
-
+
private boolean isTriangleLastUsed() {
return "triangle".equals(MdlPreferences.MDL.getStringProperty("grid.triangulateur.used"));
}
-
+
public boolean isTriangleSelected() {
return TriangulateurEnum.TRIANGLE.equals(cbTriangulateur.getSelectedItem());
-
-
+
+
}
-
+
private class LinearRingCellRenderer extends CtuluCellTextRenderer {
-
+
@Override
public Component getListCellRendererComponent(JList _list, Object _value, int _index, boolean _isSelected, boolean _cellHasFocus) {
return super.getListCellRendererComponent(_list, getValue(_value, _index), _index, _isSelected, _cellHasFocus);
}
-
+
protected String getValue(Object _value, int selectedIdx) {
if (_value == null) {
return MdlResource.getS("Aucun");
@@ -161,7 +177,7 @@
return _value.toString();
}
}
-
+
protected void updateConvexHullCb() {
ZCalqueLigneBrisee selectedLayer = getSelectedLayer();
if (selectedLayer == null) {
@@ -170,13 +186,13 @@
cbConvexHull.setModel(new LinearRingComboBoxModel(selectedLayer));
cbConvexHull.setSelectedIndex(0);
}
-
+
}
-
+
public ZCalqueLigneBrisee getSelectedLayer() {
return cbLayer == null ? null : (ZCalqueLigneBrisee) cbLayer.getSelectedItem();
}
-
+
public LinearRing getSelectedConvexHull() {
return cbConvexHull == null ? null : (LinearRing) cbConvexHull.getSelectedItem();
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -166,7 +166,7 @@
protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
if (getLayerGridDelegate().isGridCreated() && isTraceIsoSurface()) {
MdlElementModel modele = getLayerGridDelegate().getGridLayer().modele();
- int idx = modele.getTriangleNodeAdapter().getIdx(idxGeometry, idxPoint);
+ int idx = modele.getPointsAdapter().getIdx(idxGeometry, idxPoint);
if (modele.isNodePaintedByIso(idx)) {
return false;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -31,27 +31,28 @@
/**
* une repr\xE9sentation des points du semis sous forme de liste.
*/
- private GisZoneCollectionAsListPointAdapter triangleNodeAdapter;
+ private GisZoneCollectionAsListPointAdapter pointsAdapter;
/**
- * Contient la liste des indices des points (issus de triangleNodeAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial
- * qui correspondantent pr\xE9cisement \xE0 un point du maillage
+ * Contient la liste des indices des points (issus de pointsAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial qui
+ * correspondantent pr\xE9cisement \xE0 un point du maillage
*/
CtuluListSelection gisNodePaintedInIso;
public void setAltiIdxByGridPtIdx(int[][] relations) {
this.altiIdxByGridPtIdx = relations;
- gisNodePaintedInIso = new CtuluListSelection();
- for (int i = 0; i < relations.length; i++) {
- int[] is = relations[i];
- if (is != null && is.length == 1) {
- gisNodePaintedInIso.add(is[0]);
- }
- }
}
/**
- * pour des raisons de perf permet de savoir si un point du TriangleNodeAdapter correspond \xE0 un point du
*
+ * @param initPointPaintedByMesh les points de la zone de points correspondant \xE0 un unique point du maillage.
+ */
+ public void setInitPointPaintedByMesh(CtuluListSelection initPointPaintedByMesh) {
+ this.gisNodePaintedInIso = initPointPaintedByMesh;
+ }
+
+ /**
+ * pour des raisons de perf permet de savoir si un point du PointsAdapter correspond \xE0 un point du
+ *
* @param idxInCollection
* @return
*/
@@ -113,7 +114,7 @@
return 0;
}
if (idxs.length == 1) {
- return triangleNodeAdapter.getValue(idxs[0], idxAttribute);
+ return pointsAdapter.getValue(idxs[0], idxAttribute);
}
//on interpole:
double num = 0;
@@ -124,24 +125,29 @@
// ptIdx est l'indice du point de reference
final int ptIdx = idxs[j];
if (ptIdx >= 0) {
- final double xref = triangleNodeAdapter.getPtX(ptIdx);
- final double yref = triangleNodeAdapter.getPtY(ptIdx);
+ final double xref = pointsAdapter.getPtX(ptIdx);
+ final double yref = pointsAdapter.getPtY(ptIdx);
final double dist = CtuluLibGeometrie.getD2(xref, yref, ptX, ptY);
- num += triangleNodeAdapter.getValue(ptIdx, idxAttribute) / dist;
+ num += pointsAdapter.getValue(ptIdx, idxAttribute) / dist;
den += 1d / dist;
}
}
return num / den;
}
- public void setTriangleNodeAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
- this.triangleNodeAdapter = triangleNodeAdapter;
+ public void setPointsAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
+ this.pointsAdapter = triangleNodeAdapter;
}
- public GisZoneCollectionAsListPointAdapter getTriangleNodeAdapter() {
- return triangleNodeAdapter;
+ public GisZoneCollectionAsListPointAdapter getPointsAdapter() {
+ return pointsAdapter;
}
+ public CtuluListSelection getGisNodePaintedInIso() {
+ return gisNodePaintedInIso;
+ }
+
+
/**
* Attention on ne fait pas de copie defensive du tableau pour des raisons de performance.
*
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-14 12:44:27 UTC (rev 8205)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-14 12:45:08 UTC (rev 8206)
@@ -30,6 +30,7 @@
import org.apache.commons.lang.ArrayUtils;
import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluArkSaver;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.dodico.ef.EfElement;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.EfNode;
@@ -50,7 +51,14 @@
public abstract class MdlLayer2dMultiPointPersistence extends FSigLayerLinePersistence {
public static final String PAINTED_EXT = ".painted";
- public static final String CORRESPONDANCE_EXT = ".correspondance";
+ /**
+ * correspondance entre points du maillage et point du semis
+ */
+ public static final String CORRESPONDANCE_EXT = ".mapping";
+ /**
+ * points du semis support\xE9s par un unique point du maillage
+ */
+ public static final String CORRESPONDANCE_PAINTED_EXT = ".painted.mapping";
public static final String GRID_X_EXT = ".grid.x";
public static final String GRID_Y_EXT = ".grid.y";
public static final String GRID_IPOBO_EXT = ".grid.ipobo";
@@ -121,11 +129,16 @@
if (reader != null) {
DodicoArraysBinaryFileSaver saver = new DodicoArraysBinaryFileSaver();
int[][] correspondance = saver.load(reader);
- if (correspondance != null) {
+ InputStream paintedReader = _loader.getReader(_parentDirEntry, _entryName + CORRESPONDANCE_PAINTED_EXT);
+ int[] gisNodePaintedInIso = null;
+ if (paintedReader != null) {
+ gisNodePaintedInIso = saver.loadSimpleArray(paintedReader);
+ }
+ if (correspondance != null && gisNodePaintedInIso != null) {
reader = _loader.getReader(_parentDirEntry, _entryName + PAINTED_EXT);
MdlElementModel model = new MdlElementModel(grid);
model.setAltiIdxByGridPtIdx(correspondance);
-
+ model.setInitPointPaintedByMesh(new CtuluListSelection(gisNodePaintedInIso));
boolean[] userVisible = saver.loadBoolean(reader);
if (ArrayUtils.isNotEmpty(userVisible)) {
model.setUserVisible(userVisible);
@@ -174,7 +187,7 @@
GISZoneCollection points = (GISZoneCollection) thisCalque.modeleDonnees().getGeomData();
points.updateListeners();
if (model != null) {
- model.setTriangleNodeAdapter(new TriangleNodeAdapter(points));
+ model.setPointsAdapter(new TriangleNodeAdapter(points));
thisCalque.getLayerGridDelegate().setGridLayer(model);
//on r\xE9initialise les propri\xE9t\xE9s por
thisCalque.initFrom(_saver.getUI());
@@ -236,13 +249,18 @@
public void saveCorrespondance(LayerGridController layerGridDelegate, BCalque _cqToSave, String _parentDirEntry, BCalqueSaverInterface res, CtuluArkSaver _saver) {
//le maillage:
MdlElementModel layerModel = layerGridDelegate.getGridLayer().modele();
- final String entry = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + CORRESPONDANCE_EXT;
+ final String entryCorrespondance = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + CORRESPONDANCE_EXT;
try {
- _saver.startEntry(entry);
+ _saver.startEntry(entryCorrespondance);
int[][] corr = layerModel.getCorrespondance();
DodicoArraysBinaryFileSaver saver = new DodicoArraysBinaryFileSaver();
saver.save(_saver.getOutStream(), corr);
_saver.getOutStream().flush();
+ final String entryPainted = getEntryBase(_cqToSave, _parentDirEntry, res.getId()) + CORRESPONDANCE_PAINTED_EXT;
+ _saver.startEntry(entryPainted);
+ final int[] selectedIndex = layerModel.getGisNodePaintedInIso().getSelectedIndex();
+ saver.saveSimpleArray(_saver.getOutStream(), selectedIndex);
+ _saver.getOutStream().flush();
} catch (final Exception _evt) {
FuLog.error(_evt);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 12:44:38
|
Revision: 8205
http://fudaa.svn.sourceforge.net/fudaa/?rev=8205&view=rev
Author: deniger
Date: 2013-01-14 12:44:27 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java
trunk/framework/dodico-common/src/main/java/org/fudaa/dodico/fortran/DodicoArraysBinaryFileSaver.java
trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoIntegerArrayBinaryFileSaverTest.java
Added Paths:
-----------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMapping.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingDefault.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingEmpty.java
trunk/framework/ctulu-gis/src/test/java/org/fudaa/ctulu/gis/process/
trunk/framework/ctulu-gis/src/test/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemoverTest.java
trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoDoubleArrayBinaryFileSaverTest.java
Removed Paths:
-------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java
trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/fortran/DodicoDoubleArrayBinaryFileSaverTest.java
Modified: trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt
===================================================================
--- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2013-01-14 12:44:27 UTC (rev 8205)
@@ -329,4 +329,5 @@
Une erreur est survenue lors de l'analyse du fichier xml\: {0}=An error occured while analyzing the xml file\: {0}
L'URL n'est pas renseign\xE9e=The URL is not defined
Une incoh\xE9rence a \xE9t\xE9 d\xE9tect\xE9e\: le fichier xml est valide mais les balises {0} ne sont pas support\xE9es par l'application=A mismatch has been detected\: the xml file is valid but the application doesn't support the tag {0}
-Erreur lors de la validation du fichier xml\: {0}=Error while validating the XML file\: {0}
\ No newline at end of file
+Erreur lors de la validation du fichier xml\: {0}=Error while validating the XML file\: {0}
+Indexation des points=Points indexation
\ No newline at end of file
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -32,7 +32,7 @@
this.eps = eps;
}
- public GisZonePointCollectionPointFiltered createFiltered(ProgressionInterface prog) {
+ public PointsMappingDefault createFiltered(ProgressionInterface prog) {
ProgressionUpdater updater = new ProgressionUpdater(prog);
updater.majProgessionStateOnly(CtuluLib.getS("Indexation des points"));
TreeMap<Coordinate, Integer> indexs = new TreeMap<Coordinate, Integer>(new CoordinateComparator(eps));
@@ -56,6 +56,6 @@
correspondance[idx++] = entry.getValue();
updater.majAvancement();
}
- return new GisZonePointCollectionPointFiltered(correspondance, in);
+ return new PointsMappingDefault(correspondance, in);
}
}
Deleted: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -1,41 +0,0 @@
-/*
- GPL 2
- */
-package org.fudaa.ctulu.gis.process;
-
-import org.fudaa.ctulu.interpolation.SupportLocationI;
-
-/**
- * Le r\xE9sultat d'un filtre de points.
- *
- * @author Frederic Deniger
- */
-public class GisZonePointCollectionPointFiltered implements SupportLocationI {
-
- private int[] correspondance;
- SupportLocationI init;
-
- public GisZonePointCollectionPointFiltered(int[] correspondance, SupportLocationI init) {
- this.correspondance = correspondance;
- this.init = init;
- }
-
- @Override
- public int getPtsNb() {
- return correspondance.length;
- }
-
- public int getInitialIdx(int _i) {
- return correspondance[_i];
- }
-
- @Override
- public double getPtX(int _i) {
- return init.getPtX(correspondance[_i]);
- }
-
- @Override
- public double getPtY(int _i) {
- return init.getPtY(correspondance[_i]);
- }
-}
Added: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMapping.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMapping.java (rev 0)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMapping.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -0,0 +1,23 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public interface PointsMapping extends SupportLocationI {
+
+ int getInitialIdx(int _i);
+
+ /**
+ * Attention, pour des raisons de performances le tableau n'est pas copi\xE9.
+ * O
+ * @return null si aucun filtre.
+ */
+ int[] getMapping();
+
+}
Copied: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingDefault.java (from rev 8202, trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java)
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingDefault.java (rev 0)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingDefault.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -0,0 +1,47 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ * Le r\xE9sultat d'un filtre de points.
+ *
+ * @author Frederic Deniger
+ */
+public class PointsMappingDefault implements PointsMapping {
+
+ private int[] mapping;
+ SupportLocationI init;
+
+ public PointsMappingDefault(int[] correspondance, SupportLocationI init) {
+ this.mapping = correspondance;
+ this.init = init;
+ }
+
+ @Override
+ public int getPtsNb() {
+ return mapping.length;
+ }
+
+ @Override
+ public int[] getMapping() {
+ return mapping;
+ }
+
+ @Override
+ public int getInitialIdx(int _i) {
+ return mapping[_i];
+ }
+
+ @Override
+ public double getPtX(int _i) {
+ return init.getPtX(mapping[_i]);
+ }
+
+ @Override
+ public double getPtY(int _i) {
+ return init.getPtY(mapping[_i]);
+ }
+}
Added: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingEmpty.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingEmpty.java (rev 0)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/PointsMappingEmpty.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -0,0 +1,45 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ * Adapter sans modification d'indice.
+ *
+ * @author Frederic Deniger
+ */
+public class PointsMappingEmpty implements PointsMapping {
+
+ private final SupportLocationI init;
+
+ public PointsMappingEmpty(SupportLocationI init) {
+ this.init = init;
+ }
+
+ @Override
+ public int getInitialIdx(int _i) {
+ return _i;
+ }
+
+ @Override
+ public int[] getMapping() {
+ return null;
+ }
+
+ @Override
+ public int getPtsNb() {
+ return init.getPtsNb();
+ }
+
+ @Override
+ public double getPtX(int _i) {
+ return init.getPtX(_i);
+ }
+
+ @Override
+ public double getPtY(int _i) {
+ return init.getPtY(_i);
+ }
+}
Added: trunk/framework/ctulu-gis/src/test/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemoverTest.java
===================================================================
--- trunk/framework/ctulu-gis/src/test/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemoverTest.java (rev 0)
+++ trunk/framework/ctulu-gis/src/test/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemoverTest.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -0,0 +1,37 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import java.util.ArrayList;
+import java.util.List;
+import junit.framework.TestCase;
+import org.fudaa.ctulu.interpolation.SupportCoordinate;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class GisZoneCollectionPointDoublonRemoverTest extends TestCase {
+
+ public void testFilter() {
+ List<Coordinate> coords = new ArrayList<Coordinate>();
+ coords.add(new Coordinate(1, 2));
+ coords.add(new Coordinate(1, 2));//doublon
+ coords.add(new Coordinate(1, 3));
+ coords.add(new Coordinate(1, 5));
+ coords.add(new Coordinate(-100, 5));
+ int[] expected = new int[]{4, 0, 2, 3};
+
+ SupportCoordinate support = new SupportCoordinate((Coordinate[]) coords.toArray(new Coordinate[coords.size()]));
+ GisZoneCollectionPointDoublonRemover remover = new GisZoneCollectionPointDoublonRemover(support, 1e-1);
+ PointsMappingDefault createFiltered = remover.createFiltered(null);
+ assertNotNull(createFiltered);
+ assertEquals(coords.size() - 1, createFiltered.getPtsNb());
+ for (int i = 0; i < expected.length; i++) {
+ assertEquals(expected[i], createFiltered.getInitialIdx(i));
+ }
+
+ }
+}
Modified: trunk/framework/dodico-common/src/main/java/org/fudaa/dodico/fortran/DodicoArraysBinaryFileSaver.java
===================================================================
--- trunk/framework/dodico-common/src/main/java/org/fudaa/dodico/fortran/DodicoArraysBinaryFileSaver.java 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/dodico-common/src/main/java/org/fudaa/dodico/fortran/DodicoArraysBinaryFileSaver.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -31,9 +31,9 @@
}
public boolean saveSimpleArray(OutputStream file, int[] in) {
- int[][] toSave = new int[1][];
- toSave[0] = in;
- return save(file, toSave);
+ int[][] toSave = new int[1][];
+ toSave[0] = in;
+ return save(file, toSave);
}
public boolean saveDouble(File file, double[] in) {
Deleted: trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/fortran/DodicoDoubleArrayBinaryFileSaverTest.java
===================================================================
--- trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/fortran/DodicoDoubleArrayBinaryFileSaverTest.java 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/fortran/DodicoDoubleArrayBinaryFileSaverTest.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -1,62 +0,0 @@
-package org.fudaa.dodico.common.fortran;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import org.fudaa.ctulu.CtuluLibArray;
-
-import junit.framework.TestCase;
-import org.fudaa.dodico.fortran.DodicoDoubleArrayBinaryFileSaver;
-
-public class DodicoDoubleArrayBinaryFileSaverTest extends TestCase {
-
- public void testWriteRead() {
- File des = null;
- try {
- des = File.createTempFile("test", ".bin");
- DodicoDoubleArrayBinaryFileSaver saver = new DodicoDoubleArrayBinaryFileSaver(des);
- Random random = new Random();
- Map<String, double[]> mapOfValues = generateMaps(random);
- boolean saved = saver.save(mapOfValues);
- assertTrue(saved);
- Map<String, double[]> loaded = saver.load();
- assertEquals(loaded.size(), mapOfValues.size());
- for (Entry<String, double[]> entry : loaded.entrySet()) {
- double[] ds = mapOfValues.get(entry.getKey());
- assertNotNull(ds);
- assertTrue(CtuluLibArray.equals(ds, entry.getValue(), 1e-15));
- }
-
- } catch (Exception e) {
- fail(e.getMessage());
- } finally {
- if (des != null) {
- des.delete();
- }
- }
- }
-
- private static Map<String, double[]> generateMaps(Random random) {
- Map<String, double[]> mapOfValues = new HashMap<String, double[]>();
- for (int i = 10; i < 20; i++) {
- String key = Integer.toString(i);
- double[] values = new double[i];
- for (int j = 0; j < values.length; j++) {
- values[j] = random.nextDouble() * 100;
- }
- values[values.length - 1] = 0;
- mapOfValues.put(key, values);
- }
- return mapOfValues;
- }
-
- public static void main(String[] args) {
- File f = new File(
- "/home/genesis/Devel/test-Fudaa-Prepro/edf/perf/casEdfRElectureVariable/export_partiel_cas180210_p10.res.1.2RC1.POST/Vue_2D_N_4.LAY/GRAPHES/Graphe_0_profil_spatial3136/COURBES/3.bin");
- DodicoDoubleArrayBinaryFileSaver saver=new DodicoDoubleArrayBinaryFileSaver(f);
- Map<String, double[]> load = saver.load();
- System.err.println("load "+load.size());
- }
-}
\ No newline at end of file
Copied: trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoDoubleArrayBinaryFileSaverTest.java (from rev 7771, trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/fortran/DodicoDoubleArrayBinaryFileSaverTest.java)
===================================================================
--- trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoDoubleArrayBinaryFileSaverTest.java (rev 0)
+++ trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoDoubleArrayBinaryFileSaverTest.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -0,0 +1,64 @@
+package org.fudaa.dodico.fortran;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import org.fudaa.ctulu.CtuluLibArray;
+
+import junit.framework.TestCase;
+import org.fudaa.dodico.fortran.DodicoDoubleArrayBinaryFileSaver;
+import org.fudaa.dodico.fortran.DodicoIntegerArrayBinaryFileSaverTest;
+
+public class DodicoDoubleArrayBinaryFileSaverTest extends TestCase {
+
+
+ public void testWriteRead() {
+ File des = null;
+ try {
+ des = File.createTempFile("test", ".bin");
+ DodicoDoubleArrayBinaryFileSaver saver = new DodicoDoubleArrayBinaryFileSaver(des);
+ Random random = new Random();
+ Map<String, double[]> mapOfValues = generateMaps(random);
+ boolean saved = saver.save(mapOfValues);
+ assertTrue(saved);
+ Map<String, double[]> loaded = saver.load();
+ assertEquals(loaded.size(), mapOfValues.size());
+ for (Entry<String, double[]> entry : loaded.entrySet()) {
+ double[] ds = mapOfValues.get(entry.getKey());
+ assertNotNull(ds);
+ assertTrue(CtuluLibArray.equals(ds, entry.getValue(), 1e-15));
+ }
+
+ } catch (Exception e) {
+ fail(e.getMessage());
+ } finally {
+ if (des != null) {
+ des.delete();
+ }
+ }
+ }
+
+ private static Map<String, double[]> generateMaps(Random random) {
+ Map<String, double[]> mapOfValues = new HashMap<String, double[]>();
+ for (int i = 10; i < 20; i++) {
+ String key = Integer.toString(i);
+ double[] values = new double[i];
+ for (int j = 0; j < values.length; j++) {
+ values[j] = random.nextDouble() * 100;
+ }
+ values[values.length - 1] = 0;
+ mapOfValues.put(key, values);
+ }
+ return mapOfValues;
+ }
+
+ public static void main(String[] args) {
+ File f = new File(
+ "/home/genesis/Devel/test-Fudaa-Prepro/edf/perf/casEdfRElectureVariable/export_partiel_cas180210_p10.res.1.2RC1.POST/Vue_2D_N_4.LAY/GRAPHES/Graphe_0_profil_spatial3136/COURBES/3.bin");
+ DodicoDoubleArrayBinaryFileSaver saver = new DodicoDoubleArrayBinaryFileSaver(f);
+ Map<String, double[]> load = saver.load();
+ System.err.println("load " + load.size());
+ }
+}
\ No newline at end of file
Modified: trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoIntegerArrayBinaryFileSaverTest.java
===================================================================
--- trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoIntegerArrayBinaryFileSaverTest.java 2013-01-14 12:43:40 UTC (rev 8204)
+++ trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/fortran/DodicoIntegerArrayBinaryFileSaverTest.java 2013-01-14 12:44:27 UTC (rev 8205)
@@ -4,6 +4,10 @@
package org.fudaa.dodico.fortran;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import org.fudaa.dodico.common.TestIO;
/**
@@ -27,14 +31,20 @@
}
File tempFile = createTempFile();
DodicoArraysBinaryFileSaver saver = new DodicoArraysBinaryFileSaver();
- saver.save(tempFile, values);
- int[][] load = saver.load(tempFile);
- assertEquals(values.length, load.length);
- for (int i = 0; i < values.length; i++) {
- assertEquals(values[i].length, load[i].length);
- for (int j = 0; j < values[i].length; j++) {
- assertEquals(values[i][j], load[i][j]);
+ try {
+ OutputStream out = new FileOutputStream(tempFile);
+ saver.save(out, values);
+ InputStream in = new FileInputStream(tempFile);
+ int[][] load = saver.load(in);
+ assertEquals(values.length, load.length);
+ for (int i = 0; i < values.length; i++) {
+ assertEquals(values[i].length, load[i].length);
+ for (int j = 0; j < values[i].length; j++) {
+ assertEquals(values[i][j], load[i][j]);
+ }
}
+ } catch (Exception fileNotFoundException) {
+ fail(fileNotFoundException.getMessage());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 12:43:50
|
Revision: 8204
http://fudaa.svn.sourceforge.net/fudaa/?rev=8204&view=rev
Author: deniger
Date: 2013-01-14 12:43:40 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Modified Paths:
--------------
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/gmsh/GmshGeoWriter.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeDataInterface.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriter.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangulationPolyDataNodeDefault.java
trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriterTest.java
Added Paths:
-----------
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/AbstractTriangulationPolyData.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationConvexHullBuilder.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataConvexHullAdapter.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataDefault.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataInterface.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContent.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContentBuilder.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeSupportAdapter.java
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/AbstractTriangulationPolyData.java (from rev 8186, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/AbstractTriangulationPolyData.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/AbstractTriangulationPolyData.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/AbstractTriangulationPolyData.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,56 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.LinearRing;
+
+/**
+ * une impl\xE9mentation par defaut avec les z comme attributs.
+ *
+ * @author Frederic Deniger
+ */
+public abstract class AbstractTriangulationPolyData implements TriangulationPolyDataInterface {
+
+ LinearRing[] rings = new LinearRing[0];
+ boolean[] holes = new boolean[0];
+ boolean useZAsAttribute;
+
+ public void setUseZAsAttribute(boolean useZAsAttribute) {
+ this.useZAsAttribute = useZAsAttribute;
+ }
+
+ public AbstractTriangulationPolyData() {
+ }
+
+ public void setHoles(boolean[] holes) {
+ this.holes = holes;
+ }
+
+ public void setRings(LinearRing[] rings) {
+ this.rings = rings;
+ }
+
+ public int getNbAttributes() {
+ return useZAsAttribute ? 1 : 0;
+ }
+
+ @Override
+ public int getNbPoly() {
+ return rings.length;
+ }
+
+ @Override
+ public LinearRing getPoly(int idxPoly) {
+ return rings[idxPoly];
+ }
+
+ @Override
+ public boolean isHole(int idxPoly) {
+ return holes[idxPoly];
+ }
+
+ public double getPolyAttributes(int idxPoly, int idxPtInPoly, int idxAtt) {
+ return getPoly(idxPoly).getCoordinateSequence().getCoordinate(idxPtInPoly).z;
+ }
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationConvexHullBuilder.java (from rev 8186, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationConvexHullBuilder.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationConvexHullBuilder.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationConvexHullBuilder.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,64 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.algorithm.ConvexHull;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.geom.Polygon;
+import java.util.TreeSet;
+import org.fudaa.ctulu.gis.GISGeometryFactory;
+import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
+
+/**
+ * Permet de d\xE9terminer l'enveloppe convexe d'un ensemble de donn\xE9es points/polylignes
+ * @author Frederic Deniger
+ */
+public class TriangulationConvexHullBuilder {
+
+ public int getNbExternPolygon(TriangulationPolyDataInterface data) {
+ int nbExtern = 0;
+ int nbPoly = data.getNbPoly();
+ for (int i = 0; i < nbPoly; i++) {
+ if (!data.isHole(i)) {
+ nbExtern++;
+ }
+ }
+ return nbExtern;
+ }
+
+ public int getExternPolygonIdx(TriangulationPolyDataInterface data) {
+ int nbPoly = data.getNbPoly();
+ for (int i = 0; i < nbPoly; i++) {
+ if (!data.isHole(i)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public TriangulationPolyDataInterface addConvexHullIfNeeded(TriangulationPolyDataInterface data) {
+ int nbExern = getNbExternPolygon(data);
+ if (nbExern >= 1) {
+ return data;
+ }
+ TreeSet<Coordinate> cs = new TreeSet<Coordinate>(new CoordinateComparator());
+ for (int idxPoint = 0; idxPoint < data.getPtsNb(); idxPoint++) {
+ cs.add(new Coordinate(data.getPtX(idxPoint), data.getPtY(idxPoint)));
+ }
+ for (int idxPoly = 0; idxPoly < data.getNbPoly(); idxPoly++) {
+ LinearRing poly = data.getPoly(idxPoly);
+ for (int idxPt = 0; idxPt < poly.getNumPoints(); idxPt++) {
+ cs.add(new Coordinate(poly.getCoordinateN(idxPt)));
+ }
+ }
+ Coordinate[] coordinates = (Coordinate[]) cs.toArray(new Coordinate[cs.size()]);
+ ConvexHull convexHull = new ConvexHull(coordinates, GISGeometryFactory.INSTANCE);
+ Object o = convexHull.getConvexHull();
+ if (o instanceof Polygon) {
+ o = ((Polygon) o).getExteriorRing();
+ }
+ return new TriangulationPolyDataConvexHullAdapter(data, (LinearRing) o);
+ }
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataConvexHullAdapter.java (from rev 8152, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationPolyDataConvexHullAdapter.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataConvexHullAdapter.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataConvexHullAdapter.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,58 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.LinearRing;
+
+/**
+ * permet d'ajouter l'enveloppe convexe \xE0 une s\xE9rie de donn\xE9es.
+ *
+ * @author Frederic Deniger
+ */
+public class TriangulationPolyDataConvexHullAdapter extends AbstractTriangulationPolyData {
+
+ private final TriangulationPolyDataInterface init;
+ private final LinearRing convexHull;
+
+ public TriangulationPolyDataConvexHullAdapter(TriangulationPolyDataInterface init, LinearRing convexHull) {
+ this.init = init;
+ this.convexHull = convexHull;
+ }
+
+ @Override
+ public int getPtsNb() {
+ return init.getPtsNb();
+ }
+
+ @Override
+ public double getPtX(int idxPt) {
+ return init.getPtX(idxPt);
+ }
+
+ @Override
+ public double getPtY(int idxPt) {
+ return init.getPtY(idxPt);
+ }
+
+ @Override
+ public int getNbPoly() {
+ return init.getNbPoly() + 1;
+ }
+
+ @Override
+ public LinearRing getPoly(int idxPoly) {
+ if (idxPoly == 0) {
+ return convexHull;
+ }
+ return init.getPoly(idxPoly - 1);
+ }
+
+ @Override
+ public boolean isHole(int idxPoly) {
+ if (idxPoly == 0) {
+ return false;
+ }
+ return init.isHole(idxPoly - 1);
+ }
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataDefault.java (from rev 8149, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationPolyDataDefault.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataDefault.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataDefault.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,42 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+/**
+ * une impl\xE9ementation par defaut avec les z comme attributs.
+ *
+ * @author Frederic Deniger
+ */
+public class TriangulationPolyDataDefault extends AbstractTriangulationPolyData {
+
+ Coordinate[] coordinates = new Coordinate[0];
+
+ public TriangulationPolyDataDefault() {
+ }
+
+ public void setCoordinates(Coordinate[] coordinates) {
+ this.coordinates = coordinates;
+ }
+
+ @Override
+ public int getPtsNb() {
+ return coordinates.length;
+ }
+
+ @Override
+ public double getPtX(int idxPt) {
+ return coordinates[idxPt].x;
+ }
+
+ @Override
+ public double getPtY(int idxPt) {
+ return coordinates[idxPt].y;
+ }
+
+ public double getPtAttributes(int idxPt, int idxAtt) {
+ return coordinates[idxPt].z;
+ }
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataInterface.java (from rev 8186, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationPolyDataInterface.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataInterface.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationPolyDataInterface.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,34 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.LinearRing;
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ * Interface permettant de d\xE9finir le contenu de donn\xE9es d'entr\xE9e
+ *
+ * @author Frederic Deniger
+ */
+public interface TriangulationPolyDataInterface extends SupportLocationI {
+
+ /**
+ *
+ * @return le nombre de polygone
+ */
+ int getNbPoly();
+
+ /**
+ * @param idxPoly entre 0 et getNbPoly-1
+ * @return le polygone
+ */
+ LinearRing getPoly(int idxPoly);
+
+ /**
+ *
+ * @param idxPoly entre 0 et getNbPoly-1
+ * @return true si le polygone i est un true.
+ */
+ boolean isHole(int idxPoly);
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContent.java (from rev 8141, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContent.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContent.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContent.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,56 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import java.util.List;
+
+/**
+ * Permet d'\xE9viter les doublons dans les lignes
+ *
+ * @author Frederic Deniger
+ */
+public class TriangulationUniqueDataContent {
+
+ private List<Coordinate> allCoordinate;
+ private int[][] ptIndex;
+ private int[] linearRingIdx;
+
+ /**
+ *
+ * @param ptCoordinate les coordonn\xE9es
+ * @param linearRingIdx pour chaque coordonn\xE9es indique la ligne contenante
+ * @param idx contient l'indice dans ptCoordinate de tous les points des lignes.
+ */
+ TriangulationUniqueDataContent(List<Coordinate> ptCoordinate, int[] linearRingIdx, int[][] idx) {
+ this.ptIndex = idx;
+ this.allCoordinate = ptCoordinate;
+ this.linearRingIdx = linearRingIdx;
+ }
+
+ /**
+ *
+ * @param ptIdx
+ * @return l'indice du linearRing contenant ce point. -1 si aucun.
+ */
+ public int getLinearRingIdx(int ptIdx) {
+ return linearRingIdx[ptIdx];
+ }
+
+ public int getNbPoints() {
+ return allCoordinate.size();
+ }
+
+ public double getX(int idx) {
+ return allCoordinate.get(idx).x;
+ }
+
+ public double getY(int idx) {
+ return allCoordinate.get(idx).y;
+ }
+
+ public int getPtIdxFor(int idxPoly, int idxPtInPoly) {
+ return ptIndex[idxPoly][idxPtInPoly];
+ }
+}
Copied: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContentBuilder.java (from rev 8190, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContentBuilder.java)
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContentBuilder.java (rev 0)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/triangulation/TriangulationUniqueDataContentBuilder.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,77 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.triangulation;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+import gnu.trove.TIntArrayList;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeMap;
+import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.ProgressionUpdater;
+import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
+
+/**
+ * Permet de construire un TriangulationUniqueDataContent \xE0 partir d'un TriangulationPolyDataInterface.
+ * Ce contenu \xE9vite les doublons au niveau des points.
+ * @author Frederic Deniger
+ */
+public class TriangulationUniqueDataContentBuilder {
+
+ TriangulationPolyDataInterface in;
+ CoordinateComparator coordinateComparator;
+
+ public TriangulationUniqueDataContentBuilder(TriangulationPolyDataInterface in) {
+ this.in = in;
+ coordinateComparator = new CoordinateComparator();
+ }
+
+ public TriangulationUniqueDataContentBuilder(TriangulationPolyDataInterface in, double eps) {
+ this.in = in;
+ coordinateComparator = new CoordinateComparator(eps);
+ }
+
+ public TriangulationUniqueDataContent build(ProgressionInterface prog) {
+ List<Coordinate> ptCoordinate = new ArrayList<Coordinate>();
+ TIntArrayList linearRingContainingPoint = new TIntArrayList();
+ TreeMap<Coordinate, Integer> idxByCoordinate = new TreeMap<Coordinate, Integer>(coordinateComparator);
+ int nb = in.getPtsNb();
+ final int nbPoly = in.getNbPoly();
+ ProgressionUpdater updater = new ProgressionUpdater();
+ updater.setValue(10, nb + nbPoly);
+ int idxPtAdded = 0;
+ for (int i = 0; i < nb; i++) {
+ final Coordinate coordinate = new Coordinate(in.getPtX(i), in.getPtY(i));
+ if (!idxByCoordinate.containsKey(coordinate)) {
+ ptCoordinate.add(coordinate);
+ //point interne:
+ linearRingContainingPoint.add(-1);
+ idxByCoordinate.put(coordinate, idxPtAdded++);
+ }
+ updater.majAvancement();
+ }
+ int[][] idx = new int[nbPoly][];
+ for (int idxPoly = 0; idxPoly < nbPoly; idxPoly++) {
+ CoordinateSequence coordinateSequence = in.getPoly(idxPoly).getCoordinateSequence();
+ int nbPt = coordinateSequence.size() - 1;//premier point = dernier point
+ idx[idxPoly] = new int[nbPt];
+ for (int idxPt = 0; idxPt < nbPt; idxPt++) {
+ Coordinate coordinate = coordinateSequence.getCoordinate(idxPt);
+ Integer setIdx = idxByCoordinate.get(coordinate);
+ if (setIdx == null) {
+ setIdx = ptCoordinate.size();
+ ptCoordinate.add(coordinate);
+ linearRingContainingPoint.add(idxPoly);
+ } else {
+ //le point appartient au linearring:
+ linearRingContainingPoint.set(setIdx, idxPoly);
+ }
+ idx[idxPoly][idxPt] = setIdx;
+ }
+ updater.majAvancement();
+ }
+ return new TriangulationUniqueDataContent(ptCoordinate, linearRingContainingPoint.toNativeArray(), idx);
+ }
+}
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/gmsh/GmshGeoWriter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/gmsh/GmshGeoWriter.java 2013-01-14 12:42:25 UTC (rev 8203)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/gmsh/GmshGeoWriter.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -4,7 +4,7 @@
package org.fudaa.dodico.ef.io.gmsh;
import org.fudaa.dodico.ef.io.triangle.*;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataInterface;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataInterface;
import com.vividsolutions.jts.geom.LinearRing;
import gnu.trove.TIntArrayList;
import gnu.trove.TIntHashSet;
@@ -16,9 +16,9 @@
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.ef.io.EfIOResource;
-import org.fudaa.dodico.ef.io.common.TriangulationConvexHullBuilder;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContent;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContentBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationConvexHullBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContent;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContentBuilder;
import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract;
/**
@@ -31,6 +31,16 @@
*/
public class GmshGeoWriter extends FileOpWriterCharSimpleAbstract {
+ private double eps = 1e-3;
+
+ public double getEps() {
+ return eps;
+ }
+
+ public void setEps(double eps) {
+ this.eps = eps;
+ }
+
@Override
protected void internalWrite(final Object _o) {
if (_o instanceof TriangulationPolyDataInterface) {
@@ -73,7 +83,7 @@
data = convexHullBuilder.addConvexHullIfNeeded(data);
}
int nbPoly = data.getNbPoly();
- TriangulationUniqueDataContentBuilder builder = new TriangulationUniqueDataContentBuilder(data);
+ TriangulationUniqueDataContentBuilder builder = new TriangulationUniqueDataContentBuilder(data, eps);
TriangulationUniqueDataContent content = builder.build(progress_);
int nbPointsTotal = content.getNbPoints();
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeDataInterface.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeDataInterface.java 2013-01-14 12:42:25 UTC (rev 8203)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeDataInterface.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -3,31 +3,17 @@
*/
package org.fudaa.dodico.ef.io.triangle;
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
/**
* Voir la documentation https://www.cs.cmu.edu/~quake/triangle.node.html
*
* @author Frederic Deniger
*/
-public interface TriangleNodeDataInterface {
+public interface TriangleNodeDataInterface extends SupportLocationI {
- int getPtsNb();
-
/**
*
- * @param idxPt entre 0 et getNbPoint-1
- * @return x
- */
- double getPtX(int idxPt);
-
- /**
- *
- * @param idxPt entre 0 et getNbPoint-1
- * @return y
- */
- double getPtY(int idxPt);
-
- /**
- *
* @return le nombre d'attribut attendu
*/
int getNbAttributes();
@@ -44,6 +30,7 @@
/**
* Voir https://www.cs.cmu.edu/~quake/triangle.markers.html
+ *
* @param idxPt entre 0 et getNbPoint-1
* @return
*/
Copied: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeSupportAdapter.java (from rev 8161, trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeAdapter.java)
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeSupportAdapter.java (rev 0)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangleNodeSupportAdapter.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -0,0 +1,52 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.ef.io.triangle;
+
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ * Adapte une collection en un fournisseur de points.
+ *
+ * @author Frederic Deniger
+ */
+public class TriangleNodeSupportAdapter implements TriangleNodeDataInterface {
+
+ private final SupportLocationI support;
+
+ public TriangleNodeSupportAdapter(SupportLocationI support) {
+ this.support = support;
+ }
+
+ public int getPtsNb() {
+ return support.getPtsNb();
+ }
+
+ public double getPtX(int _i) {
+ return support.getPtX(_i);
+ }
+
+ public double getPtY(int _i) {
+ return support.getPtY(_i);
+ }
+
+ @Override
+ public int getNbAttributes() {
+ return 0;
+ }
+
+ @Override
+ public double getAttributes(int idxPt, int idxAtt) {
+ return 0;
+ }
+
+ @Override
+ public boolean containsBoundaryMarkers() {
+ return false;
+ }
+
+ @Override
+ public int getMarker(int idxPt) {
+ return 0;
+ }
+}
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriter.java 2013-01-14 12:42:25 UTC (rev 8203)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriter.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -3,7 +3,7 @@
*/
package org.fudaa.dodico.ef.io.triangle;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataInterface;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataInterface;
import com.vividsolutions.jts.geom.LinearRing;
import com.vividsolutions.jts.geom.Point;
import java.io.IOException;
@@ -15,8 +15,8 @@
import org.fudaa.ctulu.ProgressionUpdater;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.ef.io.EfIOResource;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContent;
-import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContentBuilder;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContent;
+import org.fudaa.dodico.ef.triangulation.TriangulationUniqueDataContentBuilder;
import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract;
/**
@@ -39,7 +39,12 @@
analyze_.addFatalError(DodicoLib.getS("Donn\xE9es invalides"));
}
}
+ private double eps = 1e-3;
+ public void setEps(double eps) {
+ this.eps = eps;
+ }
+
private void writePoly(TriangulationPolyDataInterface data) throws IOException {
if (data == null) {
analyze_.addFatalError(EfIOResource.getS("Les donn\xE9es sont nulles"));
@@ -49,10 +54,9 @@
analyze_.addFatalError(DodicoLib.getS("Le flux de sortie est nul"));
return;
}
- TriangulationUniqueDataContentBuilder builder = new TriangulationUniqueDataContentBuilder(data);
+ TriangulationUniqueDataContentBuilder builder = new TriangulationUniqueDataContentBuilder(data, eps);
TriangulationUniqueDataContent content = builder.build(progress_);
- int nbPoints = data.getNbPoints();
int nbPoly = data.getNbPoly();
int nbPointsTotal = content.getNbPoints();
//premiere ligne
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangulationPolyDataNodeDefault.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangulationPolyDataNodeDefault.java 2013-01-14 12:42:25 UTC (rev 8203)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/triangle/TriangulationPolyDataNodeDefault.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -3,26 +3,27 @@
*/
package org.fudaa.dodico.ef.io.triangle;
-import org.fudaa.dodico.ef.io.common.AbstractTriangulationPolyData;
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+import org.fudaa.dodico.ef.triangulation.AbstractTriangulationPolyData;
/**
- * une impl\xE9ementation par defaut avec les z comme attributs.
+ * une impl\xE9mentation par defaut avec les z comme attributs.
*
* @author Frederic Deniger
*/
public class TriangulationPolyDataNodeDefault extends AbstractTriangulationPolyData {
- TriangleNodeDataInterface nodeData;
+ SupportLocationI nodeData;
public TriangulationPolyDataNodeDefault() {
}
- public void setNodeData(TriangleNodeDataInterface nodeData) {
+ public void setNodeData(SupportLocationI nodeData) {
this.nodeData = nodeData;
}
@Override
- public int getNbPoints() {
+ public int getPtsNb() {
return nodeData == null ? 0 : nodeData.getPtsNb();
}
@@ -36,7 +37,13 @@
return nodeData.getPtY(idxPt);
}
+ /**
+ *
+ * @param idxPt
+ * @param idxAtt
+ * @return 0
+ */
public double getPtAttributes(int idxPt, int idxAtt) {
- return nodeData.getAttributes(idxPt, idxAtt);
+ return 0;
}
}
Modified: trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriterTest.java
===================================================================
--- trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriterTest.java 2013-01-14 12:42:25 UTC (rev 8203)
+++ trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/triangle/TrianglePolyWriterTest.java 2013-01-14 12:43:40 UTC (rev 8204)
@@ -3,8 +3,8 @@
*/
package org.fudaa.dodico.ef.io.triangle;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataDefault;
-import org.fudaa.dodico.ef.io.common.TriangulationPolyDataInterface;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataDefault;
+import org.fudaa.dodico.ef.triangulation.TriangulationPolyDataInterface;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.LinearRing;
import java.io.File;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 12:42:37
|
Revision: 8203
http://fudaa.svn.sourceforge.net/fudaa/?rev=8203&view=rev
Author: deniger
Date: 2013-01-14 12:42:25 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Removed Paths:
-------------
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-14 08:29:18
|
Revision: 8202
http://fudaa.svn.sourceforge.net/fudaa/?rev=8202&view=rev
Author: deniger
Date: 2013-01-14 08:29:05 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
Ajout support filtre de points
Added Paths:
-----------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java
Added: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java (rev 0)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZoneCollectionPointDoublonRemover.java 2013-01-14 08:29:05 UTC (rev 8202)
@@ -0,0 +1,61 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import java.util.Map.Entry;
+import java.util.TreeMap;
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.ProgressionUpdater;
+import org.fudaa.ctulu.gis.comparator.CoordinateComparator;
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ *
+ * Permet de construire une liste de points en s'assurant qu'il n'y ait pas de doublons dans les points.
+ *
+ * @author Frederic Deniger
+ */
+public class GisZoneCollectionPointDoublonRemover {
+
+ private double eps = 1e-3;
+ private final SupportLocationI in;
+
+ public GisZoneCollectionPointDoublonRemover(SupportLocationI in) {
+ this.in = in;
+ }
+
+ public GisZoneCollectionPointDoublonRemover(SupportLocationI in, double eps) {
+ this.in = in;
+ this.eps = eps;
+ }
+
+ public GisZonePointCollectionPointFiltered createFiltered(ProgressionInterface prog) {
+ ProgressionUpdater updater = new ProgressionUpdater(prog);
+ updater.majProgessionStateOnly(CtuluLib.getS("Indexation des points"));
+ TreeMap<Coordinate, Integer> indexs = new TreeMap<Coordinate, Integer>(new CoordinateComparator(eps));
+ updater.setValue(10, in.getPtsNb());
+ for (int i = 0; i < in.getPtsNb(); i++) {
+ Coordinate c = new Coordinate(in.getPtX(i), in.getPtY(i));
+ Integer index = indexs.get(c);
+ //le point n'existe pas
+ if (index == null) {
+ indexs.put(c, i);
+ }
+ updater.majAvancement();
+ }
+ Coordinate[] coordinate = new Coordinate[indexs.size()];
+ int[] correspondance = new int[coordinate.length];
+ int idx = 0;
+ updater.majProgessionStateOnly(CtuluLib.getS("Construction filtre"));
+ updater.setValue(10, coordinate.length);
+ for (Entry<Coordinate, Integer> entry : indexs.entrySet()) {
+ coordinate[idx] = entry.getKey();
+ correspondance[idx++] = entry.getValue();
+ updater.majAvancement();
+ }
+ return new GisZonePointCollectionPointFiltered(correspondance, in);
+ }
+}
Added: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java (rev 0)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/process/GisZonePointCollectionPointFiltered.java 2013-01-14 08:29:05 UTC (rev 8202)
@@ -0,0 +1,41 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.gis.process;
+
+import org.fudaa.ctulu.interpolation.SupportLocationI;
+
+/**
+ * Le r\xE9sultat d'un filtre de points.
+ *
+ * @author Frederic Deniger
+ */
+public class GisZonePointCollectionPointFiltered implements SupportLocationI {
+
+ private int[] correspondance;
+ SupportLocationI init;
+
+ public GisZonePointCollectionPointFiltered(int[] correspondance, SupportLocationI init) {
+ this.correspondance = correspondance;
+ this.init = init;
+ }
+
+ @Override
+ public int getPtsNb() {
+ return correspondance.length;
+ }
+
+ public int getInitialIdx(int _i) {
+ return correspondance[_i];
+ }
+
+ @Override
+ public double getPtX(int _i) {
+ return init.getPtX(correspondance[_i]);
+ }
+
+ @Override
+ public double getPtY(int _i) {
+ return init.getPtY(correspondance[_i]);
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 16:32:42
|
Revision: 8200
http://fudaa.svn.sourceforge.net/fudaa/?rev=8200&view=rev
Author: deniger
Date: 2013-01-10 16:32:35 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-10 16:31:55 UTC (rev 8199)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-10 16:32:35 UTC (rev 8200)
@@ -94,8 +94,8 @@
static {
isMdl_.name = MdlResource.getS("Modeleur");
- isMdl_.version = "1.2";
- isMdl_.date = "2011-12-22";
+ isMdl_.version = "1.2RC4";
+ isMdl_.date = "2013-01-10";
isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)1999-2011";
isMdl_.license = "GPL2";
isMdl_.languages = "fr,en";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 16:32:02
|
Revision: 8199
http://fudaa.svn.sourceforge.net/fudaa/?rev=8199&view=rev
Author: deniger
Date: 2013-01-10 16:31:55 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 16:02:52 UTC (rev 8198)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 16:31:55 UTC (rev 8199)
@@ -564,16 +564,15 @@
}
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND)) {
setLabelsBackgroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND));
- }
- else{
+ } else {
setLabelsBackgroundColor(null);
}
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND)) {
setLabelsForegroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND));
}
-
+
}
}
@@ -907,30 +906,29 @@
final GrPoint ptDest = new GrPoint();
for (int j = nbPoints - 1; j >= 0; j--) {
modele_.point(ptDest, i, j);
+
+ //pour \xE9viter de redessiner le texte au m\xEAme endroit:
+ Object o = mdl.getObjectValueAt(j);
+ if (o == null) {
+ continue;
+ }
+ String s = o.toString().trim();
+ if (StringUtils.isBlank(s)) {
+ continue;
+ }
if (!_clipReel.contientXY(ptDest)) {
continue;
}
+ ptDest.autoApplique2D(versEcran);
int idxOnScreen = (int) ptDest.x_ + (int) ptDest.y_ * w;
- //pour \xE9viter de redessiner le texte au m\xEAme endroit:
if (idxOnScreen >= 0 && !memory.isSelected(idxOnScreen)) {
memory.add(idxOnScreen);
- Object o = mdl.getObjectValueAt(j);
- if (o == null) {
- continue;
- }
- String s = o.toString().trim();
- if (StringUtils.isBlank(s)) {
- continue;
- }
-
- ptDest.autoApplique2D(versEcran);
- final Rectangle2D rec = fm.getStringBounds(s, _g);
- double x = ptDest.x_ - rec.getWidth() / 2;
- double y = ptDest.y_ - 5;
- rec.setFrame(x, y - fm.getAscent(), rec.getWidth(), fm.getAscent() + 2);
+ int stringWidth = fm.stringWidth(s);
+ int x = (int) (ptDest.x_ - stringWidth / 2);
+ int y = (int) (ptDest.y_ - 5);
if (bgColor != null) {
_g.setColor(bgColor);
- _g.fill(rec);
+ _g.fillRect(x, y - fm.getAscent(), stringWidth, fm.getHeight() + 2);
}
_g.setColor(fgColor);
_g.drawString(s, (int) x, (int) y);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 16:03:00
|
Revision: 8198
http://fudaa.svn.sourceforge.net/fudaa/?rev=8198&view=rev
Author: deniger
Date: 2013-01-10 16:02:52 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -213,8 +213,8 @@
CalqueGridSemisSynchronizeProcess synchProcess = new CalqueGridSemisSynchronizeProcess(processor.getTriangleNodeAdapter());
//recherche des relations entre les noeuds du maillage et le semis actuel:
int[][] relations = synchProcess.getRelations(grid, progression);
+ model.setTriangleNodeAdapter(processor.getTriangleNodeAdapter());
model.setAltiIdxByGridPtIdx(relations);
- model.setAltiModel(processor.getTriangleNodeAdapter());
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -103,6 +103,14 @@
return (MdlElementLayer) parentLayer.getCalqueParNom("cqGrid");
}
+ /**
+ *
+ * @return true si un maillage est pr\xE9sent.
+ */
+ public boolean isGridCreated() {
+ return elementModel != null;
+ }
+
public ZCalqueMultiPointEditable getParentLayer() {
return parentLayer;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -6,12 +6,14 @@
import java.awt.Color;
import java.awt.Graphics2D;
import java.util.ArrayList;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleInterface;
import org.fudaa.ctulu.gis.GISAttributeModelObjectInterface;
import org.fudaa.ebli.calque.BCalqueCacheManager;
import org.fudaa.ebli.calque.BCalqueCacheManagerSelection;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesConfigure;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesTraceConfigure;
+import org.fudaa.ebli.calque.ZCalqueGeometryLabelConfigure;
import org.fudaa.ebli.calque.ZModeleGeometry;
import org.fudaa.ebli.calque.ZModeleMultiPoint;
import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
@@ -24,8 +26,11 @@
import org.fudaa.ebli.controle.BConfigurableInterface;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.palette.BPalettePlage;
+import org.fudaa.ebli.trace.TraceIcon;
import org.fudaa.ebli.trace.TraceIconModel;
+import org.fudaa.ebli.trace.TraceLigneModel;
import org.fudaa.fudaa.modeleur.action.CalqueCreateGridAction;
import org.fudaa.fudaa.modeleur.action.CalqueGridTriangleConfigurationAction;
import org.fudaa.fudaa.modeleur.grid.action.CreateIsoLinesAction;
@@ -95,10 +100,11 @@
@Override
protected BConfigurableInterface getAffichageConf() {
- final BConfigurableInterface[] sect = new BConfigurableInterface[2 + getNbSet()];
+ final BConfigurableInterface[] sect = new BConfigurableInterface[3 + getNbSet()];
sect[0] = new ZCalqueAffichageDonneesConfigure(this);
- sect[1] = new MdlCalqueMultiPointEditableConfigure(this);
- for (int i = 2; i < sect.length; i++) {
+ sect[1] = new ZCalqueGeometryLabelConfigure(this);
+ sect[2] = new MdlCalqueMultiPointEditableConfigure(this);
+ for (int i = 3; i < sect.length; i++) {
sect[i] = new ZCalqueAffichageDonneesTraceConfigure(this, i - 2);
}
return new BConfigurableComposite(sect, EbliLib.getS("Affichage"));
@@ -143,10 +149,32 @@
@Override
public void paintDonnees(Graphics2D _g, GrMorphisme _versEcran, GrMorphisme _versReel, GrBoite _clipReel) {
- super.paintDonnees(_g, _versEcran, _versReel, _clipReel);
+ if ((modele_ == null) || (modele_.getNombre() <= 0)) {
+ return;
+ }
+ // Trac\xE9 des surfaces
+// paintSurfaces(_g, _versEcran, _versReel, _clipReel);//pas la peine ici
+// paintLines(_clipReel, _versEcran, _g);//pas la peine ici
+ // Les icones sur les atomiques
+ //faudrait voir pour ne redesinner inutilement des points ...
+ paintIconsOnAtomics(_g, _versEcran, _versReel, _clipReel);
layerGridDelegate.paintDonnees(getWidth(), getHeight(), _g, _versEcran, _versReel, _clipReel);
+ paintLabelsOnAtomics(_g, _versEcran, _versReel, _clipReel);
}
+ @Override
+ protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
+ if (getLayerGridDelegate().isGridCreated() && isTraceIsoSurface()) {
+ MdlElementModel modele = getLayerGridDelegate().getGridLayer().modele();
+ int idx = modele.getTriangleNodeAdapter().getIdx(idxGeometry, idxPoint);
+ if (modele.isNodePaintedByIso(idx)) {
+ return false;
+ }
+ return true;
+ }
+ return super.isIconOnAtomicsPainted(idxGeometry, idxPoint);
+ }
+
/**
*
* @return true car ce claque pourra avoir le calque maillage comme calque enfant.
@@ -174,7 +202,16 @@
return res;
}
+ /**
+ * @param _idx
+ * @return null pour \xE9viter de configurer une ligne qui ne sera pas utilis\xE9.
+ */
@Override
+ public TraceLigneModel getLineModel(int _idx) {
+ return null;
+ }
+
+ @Override
public void initFrom(EbliUIProperties _p) {
super.initFrom(_p);
if (_p.isDefined("traceIsoLine")) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementModel.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -4,6 +4,7 @@
package org.fudaa.fudaa.modeleur.grid;
import java.util.Arrays;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.CtuluLibGeometrie;
import org.fudaa.ctulu.gis.GisZoneCollectionAsListPointAdapter;
import org.fudaa.dodico.ef.EfElement;
@@ -31,11 +32,33 @@
* une repr\xE9sentation des points du semis sous forme de liste.
*/
private GisZoneCollectionAsListPointAdapter triangleNodeAdapter;
+ /**
+ * Contient la liste des indices des points (issus de triangleNodeAdapter) qui seront dessin\xE9s par les iso c'est \xE0 dire les points du modele initial
+ * qui correspondantent pr\xE9cisement \xE0 un point du maillage
+ */
+ CtuluListSelection gisNodePaintedInIso;
public void setAltiIdxByGridPtIdx(int[][] relations) {
this.altiIdxByGridPtIdx = relations;
+ gisNodePaintedInIso = new CtuluListSelection();
+ for (int i = 0; i < relations.length; i++) {
+ int[] is = relations[i];
+ if (is != null && is.length == 1) {
+ gisNodePaintedInIso.add(is[0]);
+ }
+ }
}
+ /**
+ * pour des raisons de perf permet de savoir si un point du TriangleNodeAdapter correspond \xE0 un point du
+ *
+ * @param idxInCollection
+ * @return
+ */
+ public boolean isNodePaintedByIso(int idxInCollection) {
+ return gisNodePaintedInIso != null && gisNodePaintedInIso.isSelected(idxInCollection);
+ }
+
public void setPainted(int[] idxElt, boolean painted) {
if (idxElt == null) {
return;
@@ -111,7 +134,7 @@
return num / den;
}
- public void setAltiModel(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
+ public void setTriangleNodeAdapter(GisZoneCollectionAsListPointAdapter triangleNodeAdapter) {
this.triangleNodeAdapter = triangleNodeAdapter;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -55,7 +55,7 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
/**
@@ -113,7 +113,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() == null) {
+ if (!delegate.isGridCreated()) {
delegate.getUI().warn(getTitle(), MdlResource.getS("Pour cr\xE9er des isolignes, le maillage correspondant doit \xEAtre cr\xE9\xE9"), false);
return;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -25,12 +25,12 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
delegate.clearGrid();
}
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -26,7 +26,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
final int[] selectedElementIdx = delegate.getGridLayer().getSelectedElementIdx();
if (ArrayUtils.isNotEmpty(selectedElementIdx)) {
delegate.setEltPainted(selectedElementIdx, true);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -26,7 +26,7 @@
@Override
public void actionPerformed(ActionEvent _e) {
- if (delegate.getGridLayer() != null) {
+ if (delegate.isGridCreated()) {
final int[] selectedElementIdx = delegate.getGridLayer().getSelectedElementIdx();
if (ArrayUtils.isNotEmpty(selectedElementIdx)) {
delegate.setEltPainted(selectedElementIdx, false);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -42,7 +42,7 @@
@Override
public void updateStateBeforeShow() {
- setEnabled(delegate.getGridLayer() != null);
+ setEnabled(delegate.isGridCreated());
}
@Override
@@ -51,7 +51,7 @@
delegate.getUI().error(getTitle(), BJava3DVersionTest.getHtmlInstallMessage(true), false);
return;
}
- if (delegate.getGridLayer() == null) {
+ if (!delegate.isGridCreated()) {
delegate.getUI().error(getTitle(), MdlResource.getS("Le semis doit \xEAtre maill\xE9"), false);
return;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -49,7 +49,9 @@
setDestructible(true);
installActions();
updatePositionDataBathy();
- setLegende(_editor.getPanel().getCqLegend());
+ if (_editor != null) {
+ setLegende(_editor.getPanel().getCqLegend());
+ }
//a voir si a garder:
BCalqueCacheManager.installDefaultCacheManager(this);
BCalqueCacheManagerSelection.installDefaultCacheManagerSelection(this);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -11,6 +11,7 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -33,103 +34,115 @@
import org.fudaa.fudaa.modeleur.layer.MdlModel2dProfile;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ControllerBief;
-
/**
- * Ce panneau permet le visionnage d'un set de profils en 2D.
- * La vue est suivant l'axe Z.
- *
+ * Ce panneau permet le visionnage d'un set de profils en 2D. La vue est suivant l'axe Z.
+ *
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
*/
public class VueProfileSet extends JPanel /*implements ProfilContainerListener*/ {
-
- /** Le controller de la fen\xEAtre 1d. */
+
+ /**
+ * Le controller de la fen\xEAtre 1d.
+ */
protected ControllerBief controllerBief_;
- /** Le calque des profils, pour mise a jour du profil selectionn\xE9. */
- List<MdlLayer2dProfile> layers_=new ArrayList<MdlLayer2dProfile>();
+ /**
+ * Le calque des profils, pour mise a jour du profil selectionn\xE9.
+ */
+ List<MdlLayer2dProfile> layers_ = new ArrayList<MdlLayer2dProfile>();
// MdlLayer2dProfile profils_;
- List<GISZoneCollectionLigneBrisee> zones_=new ArrayList<GISZoneCollectionLigneBrisee>();
- /** La liste des listeners de zones */
- List<GISZoneListener> zonesListeners_=new ArrayList<GISZoneListener>();
- /** Le profil set associ\xE9 */
+ List<GISZoneCollectionLigneBrisee> zones_ = new ArrayList<GISZoneCollectionLigneBrisee>();
+ /**
+ * La liste des listeners de zones
+ */
+ List<GISZoneListener> zonesListeners_ = new ArrayList<GISZoneListener>();
+ /**
+ * Le profil set associ\xE9
+ */
MdlCompareProfileSet profSet;
- /** Le composant des calques */
+ /**
+ * Le composant des calques
+ */
ZEbliCalquesPanel pnLayers_;
- /** Le profil selectionn\xE9 */
- int selProfilId=-1;
- /** Les listeners de selection chang\xE9e */
- Set<ListSelectionListener> listeners_=new HashSet<ListSelectionListener>();
-
/**
- * Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones
- * qui ne sont pas concern\xE9s par la vue.
+ * Le profil selectionn\xE9
*/
+ int selProfilId = -1;
+ /**
+ * Les listeners de selection chang\xE9e
+ */
+ Set<ListSelectionListener> listeners_ = new HashSet<ListSelectionListener>();
+
+ /**
+ * Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones qui ne sont pas concern\xE9s par la vue.
+ */
class MdlProfileLayerModel extends MdlModel2dProfile {
- HashSet<Integer> idxVisibles=new HashSet<Integer>();
- HashMap<Integer,Integer> idxgeom2idxprof=new HashMap<Integer, Integer>();
-
+
+ HashSet<Integer> idxVisibles = new HashSet<Integer>();
+ HashMap<Integer, Integer> idxgeom2idxprof = new HashMap<Integer, Integer>();
+
public MdlProfileLayerModel(GISZoneCollectionLigneBrisee _zone) {
super(_zone, null, null);
}
-
+
public void addVisibleProfile(int _idxGeom) {
idxVisibles.add(_idxGeom);
}
-
+
public void setProfileId(int _idxGeom, int _idxProf) {
idxgeom2idxprof.put(_idxGeom, _idxProf);
}
-
+
public int getProfileId(int _idxGeom) {
return idxgeom2idxprof.get(_idxGeom);
}
@Override
public boolean isGeometryVisible(int _idxGeom) {
- if (idxVisibles.contains(_idxGeom))
+ if (idxVisibles.contains(_idxGeom)) {
return super.isGeometryVisible(_idxGeom);
+ }
return false;
}
}
-
+
public VueProfileSet(CtuluUI _impl) {
setLayout(new BorderLayout());
-
- pnLayers_=new ZEbliCalquesPanel(_impl);
+
+ pnLayers_ = new ZEbliCalquesPanel(_impl);
pnLayers_.getScene().setRestrictedToCalqueActif(false);
pnLayers_.getScene().addSelectionListener(new ZSelectionListener() {
public void selectionChanged(ZSelectionEvent _evt) {
- int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
- if (idScene==-1) {
- selProfilId=-1;
+ int idScene = pnLayers_.getScene().getLayerSelection().getMinIndex();
+ if (idScene == -1) {
+ selProfilId = -1;
+ } else {
+ MdlProfileLayerModel mdl = (MdlProfileLayerModel) pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
+ int idGeom = pnLayers_.getScene().sceneId2LayerId(idScene);
+ selProfilId = mdl.getProfileId(idGeom);
}
- else {
- MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
- int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
- selProfilId=mdl.getProfileId(idGeom);
- }
fireSelectionChanged();
}
});
- List<JComponent> buttons=EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
-
- BuSpecificBar tb=new BuSpecificBar();
+ List<JComponent> buttons = EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
+
+ BuSpecificBar tb = new BuSpecificBar();
tb.addTools(buttons.toArray(new JComponent[0]));
-
+
add(tb, BorderLayout.NORTH);
add(pnLayers_, BorderLayout.CENTER);
-
- setPreferredSize(new Dimension(200,200));
+
+ setPreferredSize(new Dimension(200, 200));
}
-
+
public void addSelectionListener(ListSelectionListener _l) {
listeners_.add(_l);
}
-
+
public void removeSelectionListener(ListSelectionListener _l) {
listeners_.remove(_l);
}
-
+
private void fireSelectionChanged() {
for (ListSelectionListener l : listeners_) {
l.valueChanged(new ListSelectionEvent(this, getSelectedProfile(), getSelectedProfile(), false));
@@ -139,10 +152,9 @@
public void restaurer() {
pnLayers_.restaurer();
}
-
+
/**
- * G\xE9n\xE8re un arbre de calques pour afficher le contenu du bief. Et ajoute ce
- * calque \xE0 l'instance (en ayant pr\xE9c\xE9dement supprim\xE9 les pr\xE9c\xE9dents).
+ * G\xE9n\xE8re un arbre de calques pour afficher le contenu du bief. Et ajoute ce calque \xE0 l'instance (en ayant pr\xE9c\xE9dement supprim\xE9 les pr\xE9c\xE9dents).
*/
private void updateView() {
// On construit autant de calques qu'il y a de zones. Les profils n'appartenant
@@ -150,80 +162,88 @@
zones_.clear();
zonesListeners_.clear();
layers_.clear();
-
+
pnLayers_.removeAllCalqueDonnees();
- if (profSet==null) return;
-
- List<MdlProfileLayerModel> mdls=new ArrayList<MdlProfileLayerModel>();
-
- for (int i=0; i<profSet.getNbProfil(); i++) {
- GISZoneCollectionLigneBrisee zone=profSet.getProfil(i).getZone();
- int index=zones_.indexOf(zone);
+ if (profSet == null) {
+ return;
+ }
+
+ List<MdlProfileLayerModel> mdls = new ArrayList<MdlProfileLayerModel>();
+
+ for (int i = 0; i < profSet.getNbProfil(); i++) {
+ GISZoneCollectionLigneBrisee zone = profSet.getProfil(i).getZone();
+ int index = zones_.indexOf(zone);
MdlProfileLayerModel mdl;
- if (index==-1) {
+ if (index == -1) {
zonesListeners_.add(zone.getListener());
- mdl=new MdlProfileLayerModel(zone);
+ mdl = new MdlProfileLayerModel(zone);
zones_.add(zone);
mdls.add(mdl);
+ } else {
+ mdl = mdls.get(index);
}
- else {
- mdl=mdls.get(index);
- }
mdl.addVisibleProfile(profSet.getProfil(i).getGeomId());
mdl.setProfileId(profSet.getProfil(i).getGeomId(), i);
}
-
- for (int i=0; i<mdls.size(); i++) {
- MdlLayer2dProfile layer=new MdlLayer2dProfile(null);
+
+ for (int i = 0; i < mdls.size(); i++) {
+ MdlLayer2dProfile layer = new MdlLayer2dProfile(null);
layer.modele(mdls.get(i));
pnLayers_.addCalque(layer);
layers_.add(layer);
}
-
- pnLayers_.restaurer();
+ EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ pnLayers_.restaurer();
+ }
+ });
+
}
/**
- * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9
- * par zone.
+ * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9 par zone.
*/
public void restoreZoneListeners() {
- for (int i=0; i<zonesListeners_.size(); i++) {
+ for (int i = 0; i < zonesListeners_.size(); i++) {
zones_.get(i).setListener(zonesListeners_.get(i));
}
}
public void setProfilSet(MdlCompareProfileSet _profSet) {
- if (profSet==_profSet) return;
-
- if (profSet!=null) {
+ if (profSet == _profSet) {
+ return;
+ }
+
+ if (profSet != null) {
restoreZoneListeners();
}
-
- profSet=_profSet;
- selProfilId=-1;
-
+
+ profSet = _profSet;
+ selProfilId = -1;
+
updateView();
}
-
+
public void setSelectedProfile(int _idxProfil) {
- if (_idxProfil==selProfilId || profSet==null) return;
-
- selProfilId=_idxProfil;
-
+ if (_idxProfil == selProfilId || profSet == null) {
+ return;
+ }
+
+ selProfilId = _idxProfil;
+
if (selProfilId != -1) {
- GISZoneCollectionLigneBrisee zone=profSet.getProfil(_idxProfil).getZone();
- int geomId=profSet.getProfil(_idxProfil).getGeomId();
- int zoneId=zones_.indexOf(zone);
- MdlLayer2dProfile layer=layers_.get(zoneId);
- int sceneId=pnLayers_.getScene().layerId2SceneId(layer, geomId);
+ GISZoneCollectionLigneBrisee zone = profSet.getProfil(_idxProfil).getZone();
+ int geomId = profSet.getProfil(_idxProfil).getGeomId();
+ int zoneId = zones_.indexOf(zone);
+ MdlLayer2dProfile layer = layers_.get(zoneId);
+ int sceneId = pnLayers_.getScene().layerId2SceneId(layer, geomId);
pnLayers_.getScene().setSelection(new int[]{sceneId});
- }
- else {
+ } else {
pnLayers_.getScene().clearSelection();
}
}
-
+
public int getSelectedProfile() {
return selProfilId;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-10 15:58:33 UTC (rev 8197)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/persistence/MdlLayer2dMultiPointPersistence.java 2013-01-10 16:02:52 UTC (rev 8198)
@@ -171,9 +171,10 @@
((ZModeleMultiPointEditable) thisCalque.modeleDonnees()).getGeomData().addAll(new GISDataModelZoneAdapter(zone, null), null, true);
}
MdlElementModel model = (MdlElementModel) _saver.getUI().get(KEY_ELTMODEL);
+ GISZoneCollection points = (GISZoneCollection) thisCalque.modeleDonnees().getGeomData();
+ points.updateListeners();
if (model != null) {
- GISZoneCollection points = (GISZoneCollection) thisCalque.modeleDonnees().getGeomData();
- model.setAltiModel(new TriangleNodeAdapter(points));
+ model.setTriangleNodeAdapter(new TriangleNodeAdapter(points));
thisCalque.getLayerGridDelegate().setGridLayer(model);
//on r\xE9initialise les propri\xE9t\xE9s por
thisCalque.initFrom(_saver.getUI());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 15:58:39
|
Revision: 8197
http://fudaa.svn.sourceforge.net/fudaa/?rev=8197&view=rev
Author: deniger
Date: 2013-01-10 15:58:33 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisZoneCollectionAsListPointAdapter.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisZoneCollectionAsListPointAdapter.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisZoneCollectionAsListPointAdapter.java 2013-01-10 14:22:01 UTC (rev 8196)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GisZoneCollectionAsListPointAdapter.java 2013-01-10 15:58:33 UTC (rev 8197)
@@ -55,6 +55,21 @@
return null;
}
+ /**
+ *
+ * @param idxSemis l'indice de la g\xE9ometrie
+ * @param idxPtInSemis l'indice du point dans la g\xE9ometrie
+ * @return permet de connaitre l'indice dans ce r\xE9f\xE9rentiel.
+ */
+ public int getIdx(int idxSemis, int idxPtInSemis) {
+ int sum = 0;
+ int nb = Math.min(nbPointsBySemis.length, idxSemis);
+ for (int i = 0; i < nb; i++) {
+ sum = sum + nbPointsBySemis[i];
+ }
+ return sum + idxPtInSemis;
+ }
+
@Override
public double getPtX(int idxPt) {
return getCoordinate(idxPt).x;
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 14:22:01 UTC (rev 8196)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 15:58:33 UTC (rev 8197)
@@ -204,7 +204,7 @@
Color old = this.labelsBackgroundColor;
this.labelsBackgroundColor = labelsBackgroundColor;
repaint();
- firePropertyChange(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND, old, labelsBackgroundColor);
+ firePropertyChange(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND, old, labelsBackgroundColor);
}
}
@@ -565,9 +565,13 @@
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND)) {
setLabelsBackgroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND));
}
+ else{
+ setLabelsBackgroundColor(null);
+ }
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND)) {
setLabelsForegroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND));
}
+
}
@@ -822,11 +826,6 @@
if (modele_.getNbPointForGeometry(i) <= 0 || !isPainted(i, _versEcran)) {
continue;
}
- // La g\xE9ometrie n'est pas visible
- //a enlever car deja fait plus haut
- if (!isPainted(i, _versEcran)) {
- continue;
- }
modele_.getDomaineForGeometry(i, bPoly);
// Si la boite du polygone n'est pas dans la boite d'affichage on passe
@@ -843,6 +842,10 @@
final GrPoint ptDest = new GrPoint();
for (int j = nbPoints - 1; j >= 0; j--) {
+ //l'icone ne doit pas \xEAtre paint:
+ if (!isIconOnAtomicsPainted(i, j)) {
+ continue;
+ }
// le point de dest est initialise
modele_.point(ptDest, i, j);
if (!_clipReel.contientXY(ptDest)) {
@@ -862,6 +865,10 @@
}
}
+ protected boolean isIconOnAtomicsPainted(int idxGeometry, int idxPoint) {
+ return true;
+ }
+
protected void paintLabelsOnAtomics(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
final GrBoite _clipReel) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-01-10 14:22:08
|
Revision: 8196
http://fudaa.svn.sourceforge.net/fudaa/?rev=8196&view=rev
Author: bmarchan
Date: 2013-01-10 14:22:01 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml
Added Paths:
-----------
trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Note_Principe.pdf
trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Theoretical_Note.pdf
trunk/soft/fudaa-mascaret/distrib/src/dist/Lisezmoi.txt
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec_eng.xml
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec_eng.xml
Removed Paths:
-------------
trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Princip.pdf
Copied: trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Note_Principe.pdf (from rev 8191, trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Princip.pdf)
===================================================================
(Binary files differ)
Deleted: trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Princip.pdf
===================================================================
(Binary files differ)
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Theoretical_Note.pdf
===================================================================
(Binary files differ)
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/Doc/Theoretical_Note.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: svn:keywords
+ Id
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/Lisezmoi.txt
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/Lisezmoi.txt (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/Lisezmoi.txt 2013-01-10 14:22:01 UTC (rev 8196)
@@ -0,0 +1,21 @@
+====================
+Fudaa-Mascaret 3.1.5
+====================
+
+Fudaa Mascaret : Installation
+-----------------------------
+* Avant d'installer et d'executer Fudaa-Mascaret, vous devez avoir installe la machine virtuelle Java (JRE).
+
+ Les versions du JRE compatibles pour pouvoir executer Fudaa-Mascaret sont les versions 1.5.x et 1.6.x
+
+ Merci de ne pas utiliser une version superieure ou egale a 1.7.x !
+
+ Pour la machine virtuelle, allez sur http://www.java.com si necessaire.
+
+* Pour lancer l'installation:
+ - desinstallez toutes les version precedentes de Fudaa-Mascaret
+ - cliquez sur le fichier executable "Fudaa_Mascaret_Setup.jar"
+
+Information - Support
+---------------------
+Pour toute question ou probleme, merci de nous contacter a : ass...@ed...
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/Lisezmoi.txt
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml 2013-01-10 14:14:23 UTC (rev 8195)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml 2013-01-10 14:22:01 UTC (rev 8196)
@@ -79,12 +79,15 @@
-->
<resources>
- <res src="izpack/win_shortcutSpec.xml" id="shortcutSpec.xml" />
- <res src="izpack/unix_shortcutSpec.xml" id="Unix_shortcutSpec.xml" />
- <res src="Licence.txt" id="LicencePanel.licence" />
- <res src="Readme.txt" id="InfoPanel.info" />
- <res src="fudaamascaret.jpg" id="Installer.image" />
- <res src="izpack/RegistrySpec.xml" id="RegistrySpec.xml" />
+ <res src="izpack/win_shortcutSpec.xml" id="shortcutSpec.xml" />
+ <res src="izpack/win_shortcutSpec_eng.xml" id="shortcutSpec.xml_eng" />
+ <res src="izpack/unix_shortcutSpec.xml" id="Unix_shortcutSpec.xml" />
+ <res src="izpack/unix_shortcutSpec_eng.xml" id="Unix_shortcutSpec.xml_eng" />
+ <res src="Licence.txt" id="LicencePanel.licence" />
+ <res src="Lisezmoi.txt" id="InfoPanel.info" />
+ <res src="Readme.txt" id="InfoPanel.info_eng" />
+ <res src="fudaamascaret.jpg" id="Installer.image" />
+ <res src="izpack/RegistrySpec.xml" id="RegistrySpec.xml" />
</resources>
<!--
@@ -111,8 +114,7 @@
<pack name="Core" required="yes">
<description>L'application de base integrant l'interface graphique Fudaa-Mascaret et le code de calcul Mascaret</description>
<file src="../../target/fudaa-mascaret.jar" targetdir="$INSTALL_PATH" />
- <!--un dossier fudaa doit exister au meme niveau que le dossier "fudaa-mascaret"-->
- <file src="../../../../fudaa/serveurs" targetdir="$INSTALL_PATH" />
+
<!-- file src="../../aide/src/mascaret" excludes="**/.svn/**" targetdir="$INSTALL_PATH/aide/src" / -->
<!--aide non a jour donc enlevée-->
@@ -128,6 +130,10 @@
<fileset os="windows" dir="icons" targetdir="$INSTALL_PATH/icons">
<include name="*.ico"/>
</fileset>
+ <!--un dossier fudaa doit exister au meme niveau que le dossier "fudaa-mascaret"-->
+ <fileset os="windows" dir="../../../../fudaa/serveurs" targetdir="$INSTALL_PATH/serveurs">
+ <exclude name="mascaret/*/mascaret" />
+ </fileset>
<!-- Lancement de secours si les raccourcis ne fonctionnent pas -->
<file os="windows" src="fudaa-mascaret.bat" targetdir="$INSTALL_PATH" />
<parsable os="windows" type="shell" targetfile="$INSTALL_PATH/fudaa-mascaret.bat" />
@@ -138,6 +144,10 @@
<fileset os="unix" dir="icons" targetdir="$INSTALL_PATH/icons">
<include name="*.png"/>
</fileset>
+ <!--un dossier fudaa doit exister au meme niveau que le dossier "fudaa-mascaret"-->
+ <fileset os="unix" dir="../../../../fudaa/serveurs" targetdir="$INSTALL_PATH/serveurs">
+ <exclude name="mascaret/*/mascaret.exe" />
+ </fileset>
<!-- Lancement de secours si les raccourcis ne fonctionnent pas -->
<file os="unix" src="fudaa-mascaret.sh" targetdir="$INSTALL_PATH" />
<parsable os="unix" type="shell" targetfile="$INSTALL_PATH/fudaa-mascaret.sh" />
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml 2013-01-10 14:14:23 UTC (rev 8195)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml 2013-01-10 14:22:01 UTC (rev 8196)
@@ -24,7 +24,7 @@
</shortcut>
<shortcut
- name="Desinstallation de Fudaa-Mascaret ${APP_VER}"
+ name="Désinstallation de Fudaa-Mascaret ${APP_VER}"
type="Application"
encoding="UTF-8"
programGroup="yes"
@@ -38,10 +38,10 @@
description="Désinstallation de Fudaa-Mascaret">
<createForPack name="Core" />
</shortcut>
-
+
<shortcut
- name="Documentation utilisateur Fudaa-Mascaret"
- type="Link"
+ name="Note de principe Mascaret"
+ type="Application"
encoding="UTF-8"
programGroup="yes"
desktop="no"
@@ -49,16 +49,15 @@
startMenu="no"
startup="no"
target="evince"
- url="$INSTALL_PATH/doc/UserGuide.pdf"
- commandLine=""
+ commandLine="$INSTALL_PATH/doc/Note_Principe.pdf"
iconFile="$INSTALL_PATH/icons/help.png"
- description="Ouvre le guide de prise en main de Fudaa-Mascaret">
+ description="La note de principe de Mascaret">
<createForPack name="Docs" />
</shortcut>
<shortcut
- name="Application Guide of Fudaa-Mascaret"
- type="Link"
+ name="Guide d'application Fudaa-Mascaret (En anglais)"
+ type="Application"
encoding="UTF-8"
programGroup="yes"
desktop="no"
@@ -66,10 +65,10 @@
startMenu="no"
startup="no"
target="evince"
- url="$INSTALL_PATH/doc/ApplicationGuide.pdf"
- commandLine=""
+ commandLine="$INSTALL_PATH/doc/ApplicationGuide.pdf"
iconFile="$INSTALL_PATH/icons/help.png"
- description="The application guide of Fudaa-Mascaret">
+ description="Le guide d'application Fudaa-Mascaret en pdf">
<createForPack name="Docs" />
</shortcut>
+
</shortcuts>
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec_eng.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec_eng.xml (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec_eng.xml 2013-01-10 14:22:01 UTC (rev 8196)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<shortcuts>
+ <skipIfNotSupported/>
+ <defaultCurrentUser/>
+ <programGroup defaultName="Fudaa-Mascaret"
+ location="applications"/>
+ <shortcut
+ name="Fudaa-Mascaret ${APP_VER}"
+ type="Application"
+ encoding="UTF-8"
+ target="java"
+ commandLine='-Xms64m -Xmx1024m -cp "$INSTALL_PATH/fudaa-mascaret.jar" org.fudaa.fudaa.mascaret.Mascaret --no_corba'
+ workingDirectory="$INSTALL_PATH"
+ description="Includes MASCARET code of free surface hydraulic calculation"
+ iconFile="$INSTALL_PATH/icons/fudaa-mascaret.png"
+ initialState="normal"
+ programGroup="yes"
+ desktop="yes"
+ applications="no"
+ startMenu="no"
+ startup="no">
+ <createForPack name="Core"/>
+ </shortcut>
+
+ <shortcut
+ name="Uninstalling Fudaa-Mascaret ${APP_VER}"
+ type="Application"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="java"
+ commandLine="-jar $INSTALL_PATH/Uninstaller/uninstaller.jar"
+ iconFile="$INSTALL_PATH/icons/uninstall.png"
+ description="Uninstalling Fudaa-Mascaret">
+ <createForPack name="Core" />
+ </shortcut>
+
+ <shortcut
+ name="Mascaret theoretical note"
+ type="Application"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="evince"
+ commandLine="$INSTALL_PATH/doc/Theoretical_Note.pdf"
+ iconFile="$INSTALL_PATH/icons/help.png"
+ description="The theoretical note for Mascaret in pdf">
+ <createForPack name="Docs" />
+ </shortcut>
+
+ <shortcut
+ name="Fudaa-Mascaret application guide"
+ type="Application"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="evince"
+ commandLine="$INSTALL_PATH/doc/ApplicationGuide.pdf"
+ iconFile="$INSTALL_PATH/icons/help.png"
+ description="The application guide for Fudaa-Mascaret in pdf">
+ <createForPack name="Docs" />
+ </shortcut>
+
+</shortcuts>
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec_eng.xml
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml 2013-01-10 14:14:23 UTC (rev 8195)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml 2013-01-10 14:22:01 UTC (rev 8196)
@@ -18,9 +18,9 @@
applications="no"
startMenu="no"
startup="no">
-
<createForPack name="Core"/>
</shortcut>
+
<shortcut
name="Désinstallation de Fudaa-Mascaret ${APP_VER}"
programGroup="yes"
@@ -33,37 +33,36 @@
iconFile="%SystemRoot%\system32\SHELL32.dll"
iconIndex="31"
description="Désinstallation de Fudaa-Mascaret">
-
<createForPack name="Core" />
</shortcut>
+
<shortcut
- name="Documentation utilisateur Fudaa-Mascaret"
+ name="Guide d'application Fudaa-Mascaret (En anglais)"
programGroup="yes"
desktop="no"
applications="no"
startMenu="no"
startup="no"
- target="$INSTALL_PATH\doc\UserGuide.pdf"
+ target="$INSTALL_PATH\doc\ApplicationGuide.pdf"
commandLine=""
iconFile="%SystemRoot%\system32\SHELL32.dll"
- iconIndex="23"
- description="Le guide de prise en main de Fudaa-Mascaret en pdf">
-
+ iconIndex="23"
+ description="Le guide d'application Fudaa-Mascaret en pdf">
<createForPack name="Docs" />
</shortcut>
+
<shortcut
- name="Application Guide of Fudaa-Mascaret"
+ name="Note de principe Mascaret"
programGroup="yes"
desktop="no"
applications="no"
startMenu="no"
startup="no"
- target="$INSTALL_PATH\doc\ApplicationGuide.pdf"
+ target="$INSTALL_PATH\doc\Note_Principe.pdf"
commandLine=""
iconFile="%SystemRoot%\system32\SHELL32.dll"
iconIndex="23"
- description="The application guide of Fudaa-Mascaret in pdf">
-
+ description="La note de principe de Mascaret">
<createForPack name="Docs" />
</shortcut>
</shortcuts>
\ No newline at end of file
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec_eng.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec_eng.xml (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec_eng.xml 2013-01-10 14:22:01 UTC (rev 8196)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<shortcuts>
+ <skipIfNotSupported/>
+ <programGroup defaultName="Fudaa-Mascaret"
+ location="applications"/>
+ <shortcut
+ name="Fudaa-Mascaret ${APP_VER}"
+ target="javaw.exe"
+ commandLine="-Xms64m -Xmx1024m -cp fudaa-mascaret.jar org.fudaa.fudaa.mascaret.Mascaret --no_corba"
+ workingDirectory="$INSTALL_PATH"
+ description="Includes MASCARET code of free surface hydraulic calculation"
+ iconFile="$INSTALL_PATH\icons\fudaa-mascaret.ico"
+ iconIndex="0"
+ initialState="normal"
+ programGroup="yes"
+ desktop="yes"
+ applications="no"
+ startMenu="no"
+ startup="no">
+ <createForPack name="Core"/>
+ </shortcut>
+
+ <shortcut
+ name="Uninstalling Fudaa-Mascaret ${APP_VER}"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\Uninstaller\uninstaller.jar"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="31"
+ description="Uninstalling Fudaa-Mascaret">
+ <createForPack name="Core" />
+ </shortcut>
+
+ <shortcut
+ name="Fudaa-Mascaret application guide"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\doc\ApplicationGuide.pdf"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="23"
+ description="The application guide for Fudaa-Mascaret in pdf">
+ <createForPack name="Docs" />
+ </shortcut>
+
+ <shortcut
+ name="Mascaret theoretical note"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\doc\Theoretical_Note.pdf"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="23"
+ description="The theoretical note for Mascaret in pdf">
+ <createForPack name="Docs" />
+ </shortcut>
+</shortcuts>
\ No newline at end of file
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec_eng.xml
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 14:14:30
|
Revision: 8195
http://fudaa.svn.sourceforge.net/fudaa/?rev=8195&view=rev
Author: deniger
Date: 2013-01-10 14:14:23 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Added Paths:
-----------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometryLabelConfigure.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2013-01-10 14:12:46 UTC (rev 8194)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2013-01-10 14:14:23 UTC (rev 8195)
@@ -407,12 +407,15 @@
setSurfaceModel(i, (TraceSurfaceModel) _p.get(prop));
}
}
-
+ if (_p.isDefined("calque.paletteCouleurUsed")) {
+ isPaletteCouleurUsed_ = _p.getBoolean("calque.paletteCouleurUsed");
+ }
if (_p.isDefined("calque.paletteCouleur")) {
final BPalettePlageInterface newPalette = createPaletteCouleur();
newPalette.load((BPalettePlageProperties) _p.get("calque.paletteCouleur"));
- setPaletteCouleurPlages(newPalette);
+ setPaletteCouleurPlages(newPalette, false);
}
+
}
}
@@ -634,6 +637,7 @@
if (isAntialiasSupported()) {
res.put("calque.antialias", Boolean.valueOf(antialiasing_));
}
+ res.put("calque.paletteCouleurUsed", isPaletteCouleurUsed_);
return res;
}
@@ -693,6 +697,10 @@
@Override
public void setPaletteCouleurPlages(final BPalettePlageInterface _newPlage) {
+ setPaletteCouleurPlages(_newPlage, true);
+ }
+
+ private void setPaletteCouleurPlages(final BPalettePlageInterface _newPlage, boolean updatePaletteCouleurProp) {
if (_newPlage == null) {
paletteCouleur_ = null;
} else {
@@ -708,7 +716,9 @@
paletteCouleur_.initFrom(_newPlage);
}
}
- isPaletteCouleurUsed_ = (paletteCouleur_ != null) && paletteCouleur_.getNbPlages() > 0;
+ if (updatePaletteCouleurProp) {
+ isPaletteCouleurUsed_ = (paletteCouleur_ != null) && paletteCouleur_.getNbPlages() > 0;
+ }
construitLegende();
firePropertyChange("paletteCouleur", null, paletteCouleur_);
repaint();
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 14:12:46 UTC (rev 8194)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 14:14:23 UTC (rev 8195)
@@ -7,6 +7,7 @@
*/
package org.fudaa.ebli.calque;
+import com.memoire.bu.BuLib;
import com.memoire.fu.FuLog;
import com.vividsolutions.jts.algorithm.SIRtreePointInRing;
import com.vividsolutions.jts.geom.Coordinate;
@@ -18,10 +19,13 @@
import gnu.trove.TIntArrayList;
import gnu.trove.TIntObjectIterator;
import java.awt.Color;
+import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
+import org.apache.commons.lang.ObjectUtils;
+import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.CtuluListSelectionInterface;
import org.fudaa.ctulu.CtuluRange;
@@ -42,6 +46,8 @@
import org.fudaa.ebli.commun.EbliSelectionMode;
import org.fudaa.ebli.commun.EbliSelectionState;
import org.fudaa.ebli.commun.EbliUIProperties;
+import org.fudaa.ebli.controle.BConfigurableComposite;
+import org.fudaa.ebli.controle.BConfigurableInterface;
import org.fudaa.ebli.find.EbliFindActionInterface;
import org.fudaa.ebli.find.EbliFindExpressionContainerInterface;
import org.fudaa.ebli.geometrie.GrBoite;
@@ -87,6 +93,66 @@
clearCacheAndRepaint();
}
+ public void paintLines(final GrBoite _clipReel, final GrMorphisme _versEcran, final Graphics2D _g) {
+ final GrBoite clip = _clipReel;
+ final GrMorphisme versEcran = _versEcran;
+ final int nombre = modele_.getNombre();
+
+ final TraceLigne tl;
+ if (isRapide()) {
+ tl = new TraceLigne(TraceLigne.LISSE, 1, ligneModel_.getCouleur());
+ } else {
+ tl = ligneModel_.buildCopy();
+ }
+
+ final GrBoite bPoly = new GrBoite();
+ bPoly.o_ = new GrPoint();
+ bPoly.e_ = new GrPoint();
+
+ // on part de la fin : comme ca la premiere ligne apparait au-dessus
+ for (int i = nombre - 1; i >= 0; i--) {
+ if (!isPainted(i, _versEcran)//dans certains cas, ne pas dessiner l'objet
+ || !modele_.isGeometryReliee(i)) {
+ continue;
+ }
+
+ // il n'y a pas de points pour cette g\xE9om\xE9trie
+ final int nbPoints = modele_.getNbPointForGeometry(i);
+ if (nbPoints <= 0) {
+ continue;
+ }
+
+ modele_.getDomaineForGeometry(i, bPoly);
+ // Si la boite du polygone n'est pas dans la boite d'affichage on passe
+ if (bPoly.intersectionXY(clip) == null) {
+ continue;
+ }
+
+ final GrPoint ptOri = new GrPoint();
+ modele_.point(ptOri, i, nbPoints - 1);
+ ptOri.autoApplique(versEcran);
+
+ if (!isRapide()) {
+ initTrace(ligneModel_, i);
+ }
+ final GrPoint ptDest = new GrPoint();
+ for (int j = nbPoints - 2; j >= 0; j--) {
+ // le point de dest est initialise
+ modele_.point(ptDest, i, j);
+ ptDest.autoApplique(versEcran);
+ tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
+ ptOri.initialiseAvec(ptDest);
+ }
+ if (modele_.isGeometryFermee(i)) {
+ modele_.point(ptOri, i, nbPoints - 1);
+ ptOri.autoApplique(versEcran);
+ tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
+ }
+ modele_.point(ptOri, i, nbPoints - 1);
+ ptOri.autoApplique(versEcran);
+ }
+ }
+
/**
* Une enumearion pour le mode de selection
*/
@@ -117,11 +183,39 @@
* L'attribut utilis\xE9 pour afficher les labels
*/
protected GISAttributeInterface attrLabels_ = null;
+ private Color labelsForegroundColor = Color.BLACK;
+ private Color labelsBackgroundColor = Color.WHITE;
/**
* Le finder pour une recherche sur le calque
*/
protected CalqueFindActionAtomic finder_;
+ public void setLabelsForegroundColor(Color labelsForegroundColor) {
+ if (!ObjectUtils.equals(this.labelsForegroundColor, labelsForegroundColor)) {
+ Color old = this.labelsForegroundColor;
+ this.labelsForegroundColor = labelsForegroundColor;
+ repaint();
+ firePropertyChange(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND, old, labelsForegroundColor);
+ }
+ }
+
+ public void setLabelsBackgroundColor(Color labelsBackgroundColor) {
+ if (!ObjectUtils.equals(this.labelsBackgroundColor, labelsBackgroundColor)) {
+ Color old = this.labelsBackgroundColor;
+ this.labelsBackgroundColor = labelsBackgroundColor;
+ repaint();
+ firePropertyChange(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND, old, labelsBackgroundColor);
+ }
+ }
+
+ public Color getLabelsBackgroundColor() {
+ return labelsBackgroundColor;
+ }
+
+ public Color getLabelsForegroundColor() {
+ return labelsForegroundColor;
+ }
+
/**
* Le seul constructeur, avec le mod\xE8le.
*
@@ -137,6 +231,7 @@
}
iconModel_ = new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.BLACK);
mode = SelectionMode.NORMAL;
+ setFont(BuLib.DEFAULT_FONT);
}
protected EbliListeSelectionMulti creeSelectionMulti() {
@@ -453,12 +548,28 @@
}
@Override
+ public EbliUIProperties saveUIProperties() {
+ EbliUIProperties properties = super.saveUIProperties();
+ properties.put(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND, labelsBackgroundColor);
+ properties.put(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND, labelsForegroundColor);
+ return properties;
+ }
+
+ @Override
public void initFrom(final EbliUIProperties _p) {
if (_p != null) {
super.initFrom(_p);
if (_p.isDefined("calqueGIS.ligneModel")) {
setLineModel(0, (TraceLigneModel) _p.get("calqueGIS.ligneModel"));
}
+ if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND)) {
+ setLabelsBackgroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND));
+ }
+ if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND)) {
+ setLabelsForegroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND));
+ }
+
+
}
}
@@ -542,6 +653,17 @@
clearCacheAndRepaint();
}
+ @Override
+ protected BConfigurableInterface getAffichageConf() {
+ final BConfigurableInterface[] sect = new BConfigurableInterface[3 + getNbSet()];
+ sect[0] = new ZCalqueAffichageDonneesConfigure(this);
+ sect[1] = new ZCalqueGeometryLabelConfigure(this);
+ for (int i = 2; i < sect.length; i++) {
+ sect[i] = new ZCalqueAffichageDonneesTraceConfigure(this, i - 2);
+ }
+ return new BConfigurableComposite(sect, EbliLib.getS("Affichage"));
+ }
+
/**
* Indique si la s\xE9lection est vide.
*
@@ -595,65 +717,8 @@
// Trac\xE9 des surfaces
paintSurfaces(_g, _versEcran, _versReel, _clipReel);
+ paintLines(_clipReel, _versEcran, _g);
- final GrBoite clip = _clipReel;
- final GrMorphisme versEcran = _versEcran;
- final int nombre = modele_.getNombre();
-
- final TraceLigne tl;
- if (isRapide()) {
- tl = new TraceLigne(TraceLigne.LISSE, 1, ligneModel_.getCouleur());
- } else {
- tl = ligneModel_.buildCopy();
- }
-
- final GrBoite bPoly = new GrBoite();
- bPoly.o_ = new GrPoint();
- bPoly.e_ = new GrPoint();
-
- // on part de la fin : comme ca la premiere ligne apparait au-dessus
- for (int i = nombre - 1; i >= 0; i--) {
- if (!isPainted(i, _versEcran)//dans certains cas, ne pas dessiner l'objet
- || !modele_.isGeometryReliee(i)) {
- continue;
- }
-
- // il n'y a pas de points pour cette g\xE9om\xE9trie
- final int nbPoints = modele_.getNbPointForGeometry(i);
- if (nbPoints <= 0) {
- continue;
- }
-
- modele_.getDomaineForGeometry(i, bPoly);
- // Si la boite du polygone n'est pas dans la boite d'affichage on passe
- if (bPoly.intersectionXY(clip) == null) {
- continue;
- }
-
- final GrPoint ptOri = new GrPoint();
- modele_.point(ptOri, i, nbPoints - 1);
- ptOri.autoApplique(versEcran);
-
- if (!isRapide()) {
- initTrace(ligneModel_, i);
- }
- final GrPoint ptDest = new GrPoint();
- for (int j = nbPoints - 2; j >= 0; j--) {
- // le point de dest est initialise
- modele_.point(ptDest, i, j);
- ptDest.autoApplique(versEcran);
- tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
- ptOri.initialiseAvec(ptDest);
- }
- if (modele_.isGeometryFermee(i)) {
- modele_.point(ptOri, i, nbPoints - 1);
- ptOri.autoApplique(versEcran);
- tl.dessineTrait(_g, ptOri.x_, ptOri.y_, ptDest.x_, ptDest.y_);
- }
- modele_.point(ptOri, i, nbPoints - 1);
- ptOri.autoApplique(versEcran);
- }
-
// Les icones sur les atomiques
paintIconsOnAtomics(_g, _versEcran, _versReel, _clipReel);
// Enfin les labels sur les atomiques.
@@ -800,20 +865,20 @@
protected void paintLabelsOnAtomics(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
final GrBoite _clipReel) {
- final GrBoite clip = _clipReel;
- final GrMorphisme versEcran = _versEcran;
- final int nombre = modele_.getNombre();
- final GrBoite bPoly = new GrBoite();
-
if (attrLabels_ != null && !isRapide()) {
GISZoneCollection geomData = modeleDonnees().getGeomData();
int idxLabels = geomData.getIndiceOf(attrLabels_);
if (idxLabels != -1) {
+ final Color fgColor = labelsForegroundColor;
+ final Color bgColor = labelsBackgroundColor;
+ Font old = _g.getFont();
+ _g.setFont(getFont());
final FontMetrics fm = _g.getFontMetrics();
- final Color fgColor = _g.getColor();
- final Color bgColor = getBackground();
-
+ final GrMorphisme versEcran = _versEcran;
+ final int nombre = modele_.getNombre();
+ int w = getWidth() + 1;
+ CtuluListSelection memory = new CtuluListSelection(w * getHeight());
for (int i = nombre - 1; i >= 0; i--) {
// il n'y a pas de points pour cette ligne
if (modele_.getNbPointForGeometry(i) <= 0) {
@@ -824,12 +889,7 @@
continue;
}
- modele_.getDomaineForGeometry(i, bPoly);
- // Si la boite du polygone n'est pas dans la boite d'affichage on
- // passe
- if (bPoly.intersectionXY(clip) == null) {
- continue;
- }
+
final int nbPoints = modele_.getNbPointForGeometry(i);
if (nbPoints <= 0) {
continue;
@@ -843,27 +903,35 @@
if (!_clipReel.contientXY(ptDest)) {
continue;
}
+ int idxOnScreen = (int) ptDest.x_ + (int) ptDest.y_ * w;
+ //pour \xE9viter de redessiner le texte au m\xEAme endroit:
+ if (idxOnScreen >= 0 && !memory.isSelected(idxOnScreen)) {
+ memory.add(idxOnScreen);
+ Object o = mdl.getObjectValueAt(j);
+ if (o == null) {
+ continue;
+ }
+ String s = o.toString().trim();
+ if (StringUtils.isBlank(s)) {
+ continue;
+ }
- Object o = mdl.getObjectValueAt(j);
- if (o == null) {
- continue;
+ ptDest.autoApplique2D(versEcran);
+ final Rectangle2D rec = fm.getStringBounds(s, _g);
+ double x = ptDest.x_ - rec.getWidth() / 2;
+ double y = ptDest.y_ - 5;
+ rec.setFrame(x, y - fm.getAscent(), rec.getWidth(), fm.getAscent() + 2);
+ if (bgColor != null) {
+ _g.setColor(bgColor);
+ _g.fill(rec);
+ }
+ _g.setColor(fgColor);
+ _g.drawString(s, (int) x, (int) y);
}
- String s = o.toString().trim();
- if (s.equals("")) {
- continue;
- }
-
- ptDest.autoApplique2D(versEcran);
- final Rectangle2D rec = fm.getStringBounds(s, _g);
- double x = ptDest.x_ - rec.getWidth() / 2;
- double y = ptDest.y_ - 5;
- rec.setFrame(x, y - fm.getAscent(), rec.getWidth(), fm.getAscent() + 2);
- _g.setColor(bgColor);
- _g.fill(rec);
- _g.setColor(fgColor);
- _g.drawString(s, (int) x, (int) y);
}
}
+ _g.setFont(old);
+
}
}
}
@@ -1481,18 +1549,10 @@
return null;
}
- /*
- * (non-Javadoc) @see org.fudaa.ctulu.gis.AttributeListener#attributeAction(java.lang.Object, int,
- * org.fudaa.ctulu.gis.GISAttributeInterface, int)
- */
@Override
public void attributeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _action) {
}
- /*
- * (non-Javadoc) @see org.fudaa.ctulu.gis.AttributeListener#attributeValueChangeAction(java.lang.Object, int,
- * org.fudaa.ctulu.gis.GISAttributeInterface, int, java.lang.Object)
- */
@Override
public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom,
Object _newValue) {
Copied: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometryLabelConfigure.java (from rev 7853, trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesConfigure.java)
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometryLabelConfigure.java (rev 0)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometryLabelConfigure.java 2013-01-10 14:14:23 UTC (rev 8195)
@@ -0,0 +1,81 @@
+/*
+ * @creation 9 nov. 06
+ * @modification $Date: 2007-05-04 13:49:43 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ebli.calque;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.util.ArrayList;
+import java.util.List;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.controle.BSelecteurColorChooserBt;
+import org.fudaa.ebli.controle.BSelecteurFont;
+import org.fudaa.ebli.controle.BSelecteurInterface;
+import org.fudaa.ebli.controle.BSelecteurReduitFonteNewVersion;
+
+/**
+ * @author fred deniger
+ * @version $Id: ZCalqueAffichageDonneesConfigure.java,v 1.4 2007-05-04 13:49:43 deniger Exp $
+ */
+public class ZCalqueGeometryLabelConfigure extends BCalqueConfigureSectionAbstract {
+
+ public static final String PROPERTY_LABELS_FOREGROUND = "labelsForegroundColor";
+ public static final String PROPERTY_LABELS_BACKGROUND = "labelsBackgroundColor";
+
+ public ZCalqueGeometryLabelConfigure(final ZCalqueGeometry _target, final boolean _addVisible) {
+ super(_target, EbliLib.getS("Labels"));
+ }
+
+ public ZCalqueGeometryLabelConfigure(final ZCalqueGeometry _target) {
+ this(_target, false);
+ }
+
+ @Override
+ public boolean setProperty(final String _key, final Object _newProp) {
+ if (BSelecteurReduitFonteNewVersion.PROPERTY.equals(_key)) {
+ ((ZCalqueAffichageDonneesAbstract) target_).setFont(((Font) _newProp));
+ return true;
+ }
+ if (PROPERTY_LABELS_FOREGROUND.equals(_key)) {
+ ((ZCalqueGeometry) target_).setLabelsForegroundColor(((Color) _newProp));
+ return true;
+ }
+ if (PROPERTY_LABELS_BACKGROUND.equals(_key)) {
+ ((ZCalqueGeometry) target_).setLabelsBackgroundColor(((Color) _newProp));
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Object getProperty(final String _key) {
+ if (BSelecteurReduitFonteNewVersion.PROPERTY.equals(_key)) {
+ return ((ZCalqueAffichageDonneesAbstract) target_).getFont();
+ }
+ if (PROPERTY_LABELS_FOREGROUND.equals(_key)) {
+ return ((ZCalqueGeometry) target_).getLabelsForegroundColor();
+ }
+ if (PROPERTY_LABELS_BACKGROUND.equals(_key)) {
+ return ((ZCalqueGeometry) target_).getLabelsBackgroundColor();
+ }
+ return null;
+ }
+
+ @Override
+ public BSelecteurInterface[] createSelecteurs() {
+ final List dest = new ArrayList();
+
+ BSelecteurColorChooserBt foregroundColor = new BSelecteurColorChooserBt(false, PROPERTY_LABELS_FOREGROUND);
+ foregroundColor.setTitle(EbliLib.getS("Couleur texte"));
+ dest.add(foregroundColor);
+ BSelecteurColorChooserBt backgroundColor = new BSelecteurColorChooserBt(true, PROPERTY_LABELS_BACKGROUND);
+ backgroundColor.setTitle(EbliLib.getS("Couleur fond"));
+ dest.add(backgroundColor);
+ dest.add(new BSelecteurFont());
+ return (BSelecteurInterface[]) dest.toArray(new BSelecteurInterface[dest.size()]);
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 14:12:54
|
Revision: 8194
http://fudaa.svn.sourceforge.net/fudaa/?rev=8194&view=rev
Author: deniger
Date: 2013-01-10 14:12:46 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluCollectionObjectAbstract.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java
Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluCollectionObjectAbstract.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluCollectionObjectAbstract.java 2013-01-10 14:11:56 UTC (rev 8193)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluCollectionObjectAbstract.java 2013-01-10 14:12:46 UTC (rev 8194)
@@ -104,7 +104,8 @@
/**
* Initialise avec une liste de taille de 20 par defaut.
*/
- protected CtuluCollectionObjectAbstract() {}
+ protected CtuluCollectionObjectAbstract() {
+ }
@Override
protected void fireObjectChanged(int _indexGeom, Object _newValue) {
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2013-01-10 14:11:56 UTC (rev 8193)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2013-01-10 14:12:46 UTC (rev 8194)
@@ -132,6 +132,8 @@
@Override
public GISAttributeModelObservable createAtomicModel(final Object[] _initValues, final int _nbValues) {
if (_initValues != null) {
+
+ //TODO voir ici
if (_initValues.length != _nbValues) {
throw new IllegalArgumentException("bad size value=" + _nbValues + " used=" + _initValues.length);
}
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java 2013-01-10 14:11:56 UTC (rev 8193)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java 2013-01-10 14:12:46 UTC (rev 8194)
@@ -37,7 +37,7 @@
* @version $Id$
*/
public abstract class GISZoneCollection extends GISCollection implements GISAttributeListener, GISDataModel {
-
+
private String title_;
/**
* La liste ordonn\xE9e des mod\xE8les d'attributs associ\xE9es \xE0 la collection.
@@ -69,15 +69,15 @@
*/
protected boolean attListHasChanged_ = true;
protected boolean isGeomModifiable_ = true;
-
+
public GISZoneCollection() {
super();
}
-
+
public GISZoneCollection(final boolean _isGeomModifiable) {
isGeomModifiable_ = _isGeomModifiable;
}
-
+
public void setGeomModifiable(boolean isGeomModifiable) {
this.isGeomModifiable_ = isGeomModifiable;
}
@@ -96,35 +96,35 @@
public GISZoneCollection(final int _nbObject) {
super(_nbObject);
}
-
+
@Override
public long getId() {
return -1;
}
-
+
protected void fireAttributeAdded(int _newIdx, GISAttributeInterface _newAtt) {
if (listener_ != null) {
listener_.attributeAction(this, _newIdx, _newAtt, GISZoneListener.ATTRIBUTE_ACTION_ADD);
}
}
-
+
protected void fireAttributeRemoved(int _oldIdx, GISAttributeInterface _oldAtt) {
if (listener_ != null) {
listener_.attributeAction(this, _oldIdx, _oldAtt, GISZoneListener.ATTRIBUTE_ACTION_REMOVE);
}
}
-
+
protected void fireAttributeValueChanged(int _idxAtt, GISAttributeInterface _att, int _idxGeom, Object _newValue) {
if (listener_ != null) {
listener_.attributeValueChangeAction(this, _idxAtt, _att, _idxGeom, _newValue);
}
}
-
+
@Override
public void gisDataChanged(GISAttributeInterface _att, int _indexGeom, Object _newValue) {
fireAttributeValueChanged(getIndiceOf(_att), _att, _indexGeom, _newValue);
}
-
+
protected void fireTitleChanged() {
}
@@ -136,11 +136,11 @@
protected CtuluCollection getData(final int _i) {
return isDataCreated(_i) ? attr_[_i] : null;
}
-
+
protected Object getDefaultValuesObject(final int _idxValues) {
return isDataCreated(_idxValues) ? attr_[_idxValues].getAttribute().getDefaultValue() : null;
}
-
+
@Override
public Object clone() {
GISZoneCollection cloned = (GISZoneCollection) super.superClone();
@@ -173,6 +173,7 @@
}
}
}
+ cloned.updateListeners();
return cloned;
}
@@ -183,7 +184,7 @@
protected GISAttributeModelObservable getModelListener(final int _i) {
return (GISAttributeModelObservable) getData(_i);
}
-
+
protected void initAttributes(final GISAttributeInterface[] _att) {
if (_att != null) {
badIdxAttZ_ = true;
@@ -199,7 +200,7 @@
}
}
}
-
+
protected void initAttributes(final GISAttributeModelObservable[] _att) {
badIdxAttZ_ = true;
attListHasChanged_ = true;
@@ -225,16 +226,16 @@
public void redo() {
initAttributes(_att, null);
}
-
+
@Override
public void undo() {
initAttributes(old, null);
}
});
}
-
+
}
-
+
}
/**
@@ -244,7 +245,7 @@
protected boolean isDataCreated(final int _i) {
return attr_ != null && attr_.length > _i && attr_[_i] != null;
}
-
+
@Override
public abstract boolean accept(GISVisitor _v);
@@ -279,15 +280,16 @@
os[igeom] = createOrAssignAttribut(iatt, _model.getValue(iatt, igeom), pt[igeom]);
}
data.add(nbGeom == 1 ? os[0] : os);
-
+
}
-
+
final int firstIdx = super.geometry_.getSize() - 1;
super.geometry_.addAll(pt, data, _cmd);
if (_doPostImport) {
postImport(firstIdx);
}
-
+ updateListeners();
+
return true;
}
@@ -308,6 +310,10 @@
val = _init;
}
ret = getDataModel(_iatt).getAttribute().createDataForGeom(val, nbPt);
+ //Fred pour mettre a jour le listener
+ if (ret instanceof GISAttributeModelObservable) {
+ ((GISAttributeModelObservable) ret).setListener(this);
+ }
// FIXME B.M. : Pas sur que ce soit le bienvenu. Si on veut des valeurs par d\xE9faut et que la g\xE9om\xE9trie poss\xE8de
// des Z, il ne faudrait pas que ce soit initialis\xE9 (cas d'import de fichier et ajout par addAll).
if (getIdxAttZ() != -1 && getAttributeIsZ() != null && getAttributeIsZ().isAtomicValue() && _init == null
@@ -319,7 +325,7 @@
}
return ret;
}
-
+
public abstract void addCoordinateSequence(CoordinateSequence _seq, Object[] _datas, CtuluCommandContainer _cmd);
/**
@@ -331,7 +337,7 @@
* @return l'index de la g\xE9om\xE9trie cr\xE9\xE9e, -1 si rien n'est cr\xE9e
*/
public abstract int addGeometry(Geometry _geom, Object[] _datas, CtuluCommandContainer _cmd);
-
+
public void removeGeometries(final int[] _idx, final CtuluCommandContainer _cmd) {
if (!isGeomModifiable_) {
return;
@@ -349,7 +355,7 @@
geometry_.removeAll(_cmd);
}
}
-
+
public GISAttributeModel[] getAtomicAttributeSubModel(final int _geomIdx) {
final int nb = getNbAttributes();
final List<GISAttributeModel> r = new ArrayList<GISAttributeModel>(nb);
@@ -364,7 +370,7 @@
r.toArray(rf);
return rf;
}
-
+
@Override
public GISAttributeInterface getAttribute(final int _i) {
final GISAttributeModel model = getDataModel(_i);
@@ -387,7 +393,7 @@
res[i] = getAttribute(i);
}
return res;
-
+
}
/**
@@ -403,7 +409,7 @@
* @return la classe a utiliser pour les sauvegardes dans les data stores
*/
public abstract Class getDataStoreClass();
-
+
@Override
public int getIndiceOf(final GISAttributeInterface _att) {
if (attListHasChanged_) {
@@ -421,7 +427,7 @@
}
return -1;
}
-
+
public GISAttributeInterface getAttributeWithID(final String _attributId) {
if (attr_ != null && _attributId != null) {
for (int i = attr_.length - 1; i >= 0; i--) {
@@ -444,22 +450,22 @@
}
return null;
}
-
+
public GISAttributeModel getModel(final int _i) {
return (GISAttributeModelObservable) getData(_i);
}
-
+
public GISAttributeModel[] getModels() {
final GISAttributeModel[] res = new GISAttributeModel[attr_.length];
System.arraycopy(attr_, 0, res, 0, attr_.length);
return res;
}
-
+
@Override
public int getNbAttributes() {
return attr_ == null ? 0 : attr_.length;
}
-
+
public int getNbGeometries() {
return super.getNumGeometries();
}
@@ -470,7 +476,7 @@
public final String getTitle() {
return title_;
}
-
+
@Override
public Object getValue(final int _idxAtt, final int _idxGeom) {
if (_idxAtt < 0 || _idxAtt > getNbAttributes()) {
@@ -521,13 +527,13 @@
if (getIdxAttZ() == -1) {
return;
}
-
+
final int nb = getNumGeometries();
for (int i = (_firstIdx < 0 ? 0 : _firstIdx); i < nb; i++) {
initZAttribute(i);
}
}
-
+
@Override
public void preload(final GISAttributeInterface[] _att, final ProgressionInterface _prog) {
}
@@ -542,13 +548,13 @@
if (getIdxAttZ() == -1) {
return;
}
-
+
final int nb = getNumGeometries();
for (int i = 0; i < nb; i++) {
initZCoordinate(i);
}
}
-
+
protected int getIdxAttZ() {
if (badIdxAttZ_) {
idxAttZ_ = getIndiceOf(attributeIsZ_);
@@ -569,7 +575,7 @@
// Il s'agit d'un polygone => Le dernier point doit prendre comme valeur celle du premier.
boolean bgone = getGeometry(_idxGeom) instanceof GISPolygone;
-
+
final GISAttributeModel model = getModel(getIdxAttZ());
if (!model.getAttribute().isAtomicValue()) {
final CoordinateSequence seq = getCoordinateSequence(_idxGeom);
@@ -612,9 +618,9 @@
// Il s'agit d'un polygone => Le dernier point doit prendre comme valeur celle du premier.
boolean bgone = getGeometry(_idxGeom) instanceof GISPolygone;
-
+
final GISAttributeModel model = getModel(getIdxAttZ());
-
+
if (model instanceof GISAttributeModelObjectInterface) {
final CoordinateSequence seq = getCoordinateSequence(_idxGeom);
final GISAttributeModelDoubleArray arr = (GISAttributeModelDoubleArray) model.getObjectValueAt(_idxGeom);
@@ -694,7 +700,7 @@
// on recupere les valeurs d\xE9j\xE0 utilis\xE9es
final Map<GISAttributeInterface, GISAttributeModel> exist = new HashMap<GISAttributeInterface, GISAttributeModel>(
attr_ == null ? 0 : attr_.length);
-
+
if (attr_ != null) {
for (int i = attr_.length - 1; i >= 0; i--) {
exist.put(attr_[i].getAttribute(), attr_[i]);
@@ -722,7 +728,7 @@
fireAttributeAdded(-1, null);
fireAttributeRemoved(-1, null);
}
-
+
@Override
public void undo() {
attr_ = old;
@@ -731,9 +737,9 @@
}
});
}
-
+
}
-
+
public abstract void setCoordinateSequence(int _idx, CoordinateSequence _newSeq, CtuluCommandContainer _cmd);
/**
@@ -755,7 +761,7 @@
public void redo() {
setTitle(_title, null);
}
-
+
@Override
public void undo() {
setTitle(old, null);
@@ -763,20 +769,20 @@
});
}
return true;
-
+
}
/**
* Mise a jour des listeners.
*/
public abstract void updateListeners();
-
+
@Override
protected void internActionCleared(final CtuluCommandContainer _c) {
for (int i = getNbAttributes() - 1; i >= 0; i--) {
getData(i).removeAll(_c);
}
-
+
}
/**
@@ -819,14 +825,14 @@
} else {
getData(i).addObject(o, _c);
}
-
+
} else {
// la liste est cree automatiquement
// elle fait deja la taille du nombre de point
if (_nbValues > 1) {
final int[] idx = new int[_nbValues];
final int max = getNumGeometries() - 1;
-
+
for (int k = _nbValues - 1; k >= 0; k--) {
idx[k] = max - k;
}
@@ -845,9 +851,9 @@
}
}
}
-
+
}
-
+
@Override
protected void internActionPointInserted(final int _i, final List _l, final CtuluCommandContainer _c) {
if (_l == null) {
@@ -877,9 +883,9 @@
}
}
}
-
+
}
-
+
@Override
protected void internActionPointRemoved(final int _i, final CtuluCommandContainer _c) {
for (int i = getNbAttributes() - 1; i >= 0; i--) {
@@ -888,7 +894,7 @@
}
}
}
-
+
@Override
protected void internActionPointRemoved(final int[] _i, final CtuluCommandContainer _c) {
for (int i = getNbAttributes() - 1; i >= 0; i--) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 14:12:03
|
Revision: 8193
http://fudaa.svn.sourceforge.net/fudaa/?rev=8193&view=rev
Author: deniger
Date: 2013-01-10 14:11:56 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/controle/BConfigurableComposite.java
trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/controle/BConfigurableComposite.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/controle/BConfigurableComposite.java 2013-01-08 10:11:22 UTC (rev 8192)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/controle/BConfigurableComposite.java 2013-01-10 14:11:56 UTC (rev 8193)
@@ -28,7 +28,7 @@
public BConfigurableComposite(final BConfigurableInterface _childs, final String _title) {
super();
- childs_ = new BConfigurableInterface[] { _childs };
+ childs_ = new BConfigurableInterface[]{_childs};
title_ = _title;
}
@@ -38,23 +38,23 @@
}
public BConfigurableComposite(final BConfigurableInterface _child1, final BConfigurableInterface _child2,
- final String _title) {
+ final String _title) {
super();
- childs_ = new BConfigurableInterface[] { _child1, _child2 };
+ childs_ = new BConfigurableInterface[]{_child1, _child2};
title_ = _title;
}
public BConfigurableComposite(final BConfigurableInterface _child1, final BConfigurableInterface _child2,
- final BConfigurableInterface _child3, final String _title) {
+ final BConfigurableInterface _child3, final String _title) {
super();
- childs_ = new BConfigurableInterface[] { _child1, _child2, _child3 };
+ childs_ = new BConfigurableInterface[]{_child1, _child2, _child3};
title_ = _title;
}
public BConfigurableComposite(final BConfigurableInterface _child1, final BConfigurableInterface _child2,
- final BConfigurableInterface _child3, final BConfigurableInterface _child4, final String _title) {
+ final BConfigurableInterface _child3, final BConfigurableInterface _child4, final String _title) {
super();
- childs_ = new BConfigurableInterface[] { _child1, _child2, _child3, _child4 };
+ childs_ = new BConfigurableInterface[]{_child1, _child2, _child3, _child4};
title_ = _title;
}
@@ -77,9 +77,10 @@
public void stopConfiguration() {
if (childs_ != null) {
for (int i = 0; i < childs_.length; i++) {
- childs_[i].stopConfiguration();
+ if (childs_[i] != null) {
+ childs_[i].stopConfiguration();
+ }
}
}
}
-
}
Modified: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
===================================================================
--- trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2013-01-08 10:11:22 UTC (rev 8192)
+++ trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2013-01-10 14:11:56 UTC (rev 8193)
@@ -1,3 +1,5 @@
+Afficher les labels=Display Labels
+Labels=Labels
Arri\xE8re plan=Background
Bloqu\xE9=Blocked
Fl\xE8che=Arrow
@@ -708,6 +710,8 @@
Tester Java 3D=Test Java 3D
Texte {0}=Text {0}
Texte=Text
+Couleur fond=Background color
+Couleur texte=Text color
Texture=Texture
Titre centr\xE9=Center title
Titre de la courbe=Curve title
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-01-08 10:11:30
|
Revision: 8192
http://fudaa.svn.sourceforge.net/fudaa/?rev=8192&view=rev
Author: bmarchan
Date: 2013-01-08 10:11:22 +0000 (Tue, 08 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/distrib/src/dist/Licence.txt
trunk/soft/fudaa-mascaret/distrib/src/dist/Readme.txt
trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.bat
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml
trunk/soft/fudaa-mascaret/pom.xml
trunk/soft/fudaa-mascaret/server/src/main/java/org/fudaa/dodico/mascaret/DCalculMascaret.java
Added Paths:
-----------
trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.sh
trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret-file.png
trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret.png
trunk/soft/fudaa-mascaret/distrib/src/dist/icons/help.png
trunk/soft/fudaa-mascaret/distrib/src/dist/icons/uninstall.png
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml
Removed Paths:
-------------
trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaamascaret24.ico
trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/shortcutSpec.xml
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/Licence.txt
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/Licence.txt 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/Licence.txt 2013-01-08 10:11:22 UTC (rev 8192)
@@ -1,5 +1,5 @@
FUDAA-MASCARET
-Copyright (C) 2011 EDF-CETMEF
+Copyright (C) 2001-2012 EDF-CETMEF
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/Readme.txt
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/Readme.txt 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/Readme.txt 2013-01-08 10:11:22 UTC (rev 8192)
@@ -1,5 +1,5 @@
====================
-Fudaa-Mascaret 3.1.3
+Fudaa-Mascaret 3.1.5
====================
Fudaa Mascaret : Installation
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.bat
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.bat 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.bat 2013-01-08 10:11:22 UTC (rev 8192)
@@ -1,3 +1,10 @@
-REM Launch script
+@echo off
+@rem Lancement de Fudaa-Mascaret
-java.exe -Xms64m -Xmx1024m -cp fudaa-mascaret.jar org.fudaa.fudaa.mascaret.Mascaret "--no_corba" %1 %2 %3 %4 %5 %6 %7 %8 %9
+@rem A modifier suivant l'installation du JDK.
+set JAVA="%{JAVA_HOME}"
+
+@rem A modifier suivant la version de Fudaa-Mascaret
+set JAR=fudaa-mascaret.jar
+
+%JAVA%\bin\javaw -Xms64m -Xmx1024m -cp "%{INSTALL_PATH}\%JAR%" org.fudaa.fudaa.mascaret.Mascaret "--no_corba" %1 %2 %3 %4 %5 %6 %7 %8 %9
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.sh
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.sh (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.sh 2013-01-08 10:11:22 UTC (rev 8192)
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Lancement de Fudaa-Mascaret
+
+# A modifier suivant l'installation du JDK.
+JAVA=%{JAVA_HOME}
+
+# A modifier suivant la version de Fudaa-Mascaret
+JAR=fudaa-mascaret.jar
+
+$JAVA/bin/java -cp "%{INSTALL_PATH}/$JAR" org.fudaa.fudaa.mascaret.Mascaret "--no_corba" $1 $2 $3 $4 $5 $6 $7 $8 $9
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/fudaa-mascaret.sh
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret-file.png
===================================================================
(Binary files differ)
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret-file.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: svn:keywords
+ Id
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret.png
===================================================================
(Binary files differ)
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaa-mascaret.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: svn:keywords
+ Id
Deleted: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/fudaamascaret24.ico
===================================================================
(Binary files differ)
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/help.png
===================================================================
(Binary files differ)
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/help.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: svn:keywords
+ Id
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/uninstall.png
===================================================================
(Binary files differ)
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/icons/uninstall.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: svn:keywords
+ Id
Modified: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/izpack_fudaa_mascaret.xml 2013-01-08 10:11:22 UTC (rev 8192)
@@ -79,11 +79,12 @@
-->
<resources>
- <res src="izpack/shortcutSpec.xml" id="shortcutSpec.xml" />
- <res src="Licence.txt" id="LicencePanel.licence" />
- <res src="Readme.txt" id="InfoPanel.info" />
- <res src="fudaamascaret.jpg" id="Installer.image" />
- <res src="izpack/RegistrySpec.xml" id="RegistrySpec.xml" />
+ <res src="izpack/win_shortcutSpec.xml" id="shortcutSpec.xml" />
+ <res src="izpack/unix_shortcutSpec.xml" id="Unix_shortcutSpec.xml" />
+ <res src="Licence.txt" id="LicencePanel.licence" />
+ <res src="Readme.txt" id="InfoPanel.info" />
+ <res src="fudaamascaret.jpg" id="Installer.image" />
+ <res src="izpack/RegistrySpec.xml" id="RegistrySpec.xml" />
</resources>
<!--
@@ -97,6 +98,7 @@
<panel classname="LicencePanel" />
<panel classname="TargetPanel" />
<panel classname="PacksPanel" />
+ <panel classname="SummaryPanel"/>
<panel classname="InstallPanel" />
<panel classname="ShortcutPanel" />
<panel classname="FinishPanel" />
@@ -123,11 +125,26 @@
<include name="**/*.png"/>
</fileset>-->
- <file src="fudaa-mascaret.bat" targetdir="$INSTALL_PATH" />
- <file src="icons/fudaa-mascaret.ico" targetdir="$INSTALL_PATH/icons" />
- <file src="icons/fudaa-mascaret-file.ico" targetdir="$INSTALL_PATH/icons" />
- <parsable targetfile="$INSTALL_PATH/fudaa-mascaret.bat" /> <!-- The file will be parsed -->
+ <fileset os="windows" dir="icons" targetdir="$INSTALL_PATH/icons">
+ <include name="*.ico"/>
+ </fileset>
+ <!-- Lancement de secours si les raccourcis ne fonctionnent pas -->
+ <file os="windows" src="fudaa-mascaret.bat" targetdir="$INSTALL_PATH" />
+ <parsable os="windows" type="shell" targetfile="$INSTALL_PATH/fudaa-mascaret.bat" />
+ <executable os="windows" targetfile="$INSTALL_PATH/fudaa-mascaret.bat" />
+ <executable os="windows" targetfile="$INSTALL_PATH/serveurs/mascaret/mascaret_7_0/mascaret.exe" />
+
+
+ <fileset os="unix" dir="icons" targetdir="$INSTALL_PATH/icons">
+ <include name="*.png"/>
+ </fileset>
+ <!-- Lancement de secours si les raccourcis ne fonctionnent pas -->
+ <file os="unix" src="fudaa-mascaret.sh" targetdir="$INSTALL_PATH" />
+ <parsable os="unix" type="shell" targetfile="$INSTALL_PATH/fudaa-mascaret.sh" />
+ <executable os="unix" targetfile="$INSTALL_PATH/fudaa-mascaret.sh" />
+ <executable os="unix" targetfile="$INSTALL_PATH/serveurs/mascaret/mascaret_7_0/mascaret" />
</pack>
+
<pack name="Exemples" required="no">
<description>Quelques exemples de fichiers d'entree de Fudaa-Mascaret</description>
Deleted: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/shortcutSpec.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/shortcutSpec.xml 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/shortcutSpec.xml 2013-01-08 10:11:22 UTC (rev 8192)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-
-<shortcuts>
- <skipIfNotSupported/>
- <programGroup defaultName="Fudaa-Mascaret"
- location="applications"/>
- <shortcut
- name="Fudaa-Mascaret"
- target="javaw.exe"
- commandLine="-Xms64m -Xmx1024m -cp fudaa-mascaret.jar org.fudaa.fudaa.mascaret.Mascaret --no_corba"
- workingDirectory="$INSTALL_PATH"
- description="Intègre le code de calcul d'hydraulique à surface libre MASCARET"
- iconFile="$INSTALL_PATH\icons\fudaa-mascaret.ico"
- iconIndex="0"
- initialState="normal"
- programGroup="yes"
- desktop="yes"
- applications="no"
- startMenu="no"
- startup="no">
-
- <createForPack name="Core"/>
- </shortcut>
- <shortcut
- name="Uninstall Fudaa-Mascaret"
- programGroup="yes"
- desktop="no"
- applications="no"
- startMenu="no"
- startup="no"
- target="$INSTALL_PATH\Uninstaller\uninstaller.jar"
- commandLine=""
- iconFile="%SystemRoot%\system32\SHELL32.dll"
- iconIndex="31"
- description="Désinstallation de Fudaa-Mascaret">
-
- <createForPack name="Core" />
- </shortcut>
- <shortcut
- name="Documentation utilisateur Fudaa-Mascaret"
- programGroup="yes"
- desktop="no"
- applications="no"
- startMenu="no"
- startup="no"
- target="$INSTALL_PATH\doc\UserGuide.pdf"
- commandLine=""
- iconFile="%SystemRoot%\system32\SHELL32.dll"
- iconIndex="23"
- description="Le guide de prise en main de Fudaa-Mascaret en pdf">
-
- <createForPack name="Docs" />
- </shortcut>
- <shortcut
- name="Application Guide of Fudaa-Mascaret"
- programGroup="yes"
- desktop="no"
- applications="no"
- startMenu="no"
- startup="no"
- target="$INSTALL_PATH\doc\ApplicationGuide.pdf"
- commandLine=""
- iconFile="%SystemRoot%\system32\SHELL32.dll"
- iconIndex="23"
- description="The application guide of Fudaa-Mascaret in pdf">
-
- <createForPack name="Docs" />
- </shortcut>
-</shortcuts>
\ No newline at end of file
Added: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml 2013-01-08 10:11:22 UTC (rev 8192)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<shortcuts>
+ <skipIfNotSupported/>
+ <defaultCurrentUser/>
+ <programGroup defaultName="Fudaa-Mascaret"
+ location="applications"/>
+ <shortcut
+ name="Fudaa-Mascaret ${APP_VER}"
+ type="Application"
+ encoding="UTF-8"
+ target="java"
+ commandLine='-Xms64m -Xmx1024m -cp "$INSTALL_PATH/fudaa-mascaret.jar" org.fudaa.fudaa.mascaret.Mascaret --no_corba'
+ workingDirectory="$INSTALL_PATH"
+ description="Intègre le code de calcul d'hydraulique à surface libre MASCARET"
+ iconFile="$INSTALL_PATH/icons/fudaa-mascaret.png"
+ initialState="normal"
+ programGroup="yes"
+ desktop="yes"
+ applications="no"
+ startMenu="no"
+ startup="no">
+ <createForPack name="Core"/>
+ </shortcut>
+
+ <shortcut
+ name="Desinstallation de Fudaa-Mascaret ${APP_VER}"
+ type="Application"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="java"
+ commandLine="-jar $INSTALL_PATH/Uninstaller/uninstaller.jar"
+ iconFile="$INSTALL_PATH/icons/uninstall.png"
+ description="Désinstallation de Fudaa-Mascaret">
+ <createForPack name="Core" />
+ </shortcut>
+
+ <shortcut
+ name="Documentation utilisateur Fudaa-Mascaret"
+ type="Link"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="evince"
+ url="$INSTALL_PATH/doc/UserGuide.pdf"
+ commandLine=""
+ iconFile="$INSTALL_PATH/icons/help.png"
+ description="Ouvre le guide de prise en main de Fudaa-Mascaret">
+ <createForPack name="Docs" />
+ </shortcut>
+
+ <shortcut
+ name="Application Guide of Fudaa-Mascaret"
+ type="Link"
+ encoding="UTF-8"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="evince"
+ url="$INSTALL_PATH/doc/ApplicationGuide.pdf"
+ commandLine=""
+ iconFile="$INSTALL_PATH/icons/help.png"
+ description="The application guide of Fudaa-Mascaret">
+ <createForPack name="Docs" />
+ </shortcut>
+</shortcuts>
Property changes on: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/unix_shortcutSpec.xml
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Copied: trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml (from rev 8147, trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/shortcutSpec.xml)
===================================================================
--- trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml (rev 0)
+++ trunk/soft/fudaa-mascaret/distrib/src/dist/izpack/win_shortcutSpec.xml 2013-01-08 10:11:22 UTC (rev 8192)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<shortcuts>
+ <skipIfNotSupported/>
+ <programGroup defaultName="Fudaa-Mascaret"
+ location="applications"/>
+ <shortcut
+ name="Fudaa-Mascaret ${APP_VER}"
+ target="javaw.exe"
+ commandLine="-Xms64m -Xmx1024m -cp fudaa-mascaret.jar org.fudaa.fudaa.mascaret.Mascaret --no_corba"
+ workingDirectory="$INSTALL_PATH"
+ description="Intègre le code de calcul d'hydraulique à surface libre MASCARET"
+ iconFile="$INSTALL_PATH\icons\fudaa-mascaret.ico"
+ iconIndex="0"
+ initialState="normal"
+ programGroup="yes"
+ desktop="yes"
+ applications="no"
+ startMenu="no"
+ startup="no">
+
+ <createForPack name="Core"/>
+ </shortcut>
+ <shortcut
+ name="Désinstallation de Fudaa-Mascaret ${APP_VER}"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\Uninstaller\uninstaller.jar"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="31"
+ description="Désinstallation de Fudaa-Mascaret">
+
+ <createForPack name="Core" />
+ </shortcut>
+ <shortcut
+ name="Documentation utilisateur Fudaa-Mascaret"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\doc\UserGuide.pdf"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="23"
+ description="Le guide de prise en main de Fudaa-Mascaret en pdf">
+
+ <createForPack name="Docs" />
+ </shortcut>
+ <shortcut
+ name="Application Guide of Fudaa-Mascaret"
+ programGroup="yes"
+ desktop="no"
+ applications="no"
+ startMenu="no"
+ startup="no"
+ target="$INSTALL_PATH\doc\ApplicationGuide.pdf"
+ commandLine=""
+ iconFile="%SystemRoot%\system32\SHELL32.dll"
+ iconIndex="23"
+ description="The application guide of Fudaa-Mascaret in pdf">
+
+ <createForPack name="Docs" />
+ </shortcut>
+</shortcuts>
\ No newline at end of file
Modified: trunk/soft/fudaa-mascaret/pom.xml
===================================================================
--- trunk/soft/fudaa-mascaret/pom.xml 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/pom.xml 2013-01-08 10:11:22 UTC (rev 8192)
@@ -68,5 +68,38 @@
<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.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-antrun-plugin
+ </artifactId>
+ <versionRange>[1.3,)</versionRange>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
</project>
\ No newline at end of file
Modified: trunk/soft/fudaa-mascaret/server/src/main/java/org/fudaa/dodico/mascaret/DCalculMascaret.java
===================================================================
--- trunk/soft/fudaa-mascaret/server/src/main/java/org/fudaa/dodico/mascaret/DCalculMascaret.java 2013-01-07 15:53:30 UTC (rev 8191)
+++ trunk/soft/fudaa-mascaret/server/src/main/java/org/fudaa/dodico/mascaret/DCalculMascaret.java 2013-01-08 10:11:22 UTC (rev 8192)
@@ -40,6 +40,8 @@
import java.net.*;
import org.fudaa.dodico.hydraulique1d.Hydraulique1dResource;
+import com.memoire.fu.FuLog;
+
/**
* Classe qui impl\xE9mente cot\xE9 serveur l\u2019interface \xAB\xA0ICalculMascaret\xA0\xBB qui contient les m\xE9thodes li\xE9es aux lancement du calcul.
*
@@ -1052,35 +1054,35 @@
public IConnexion connexion(final IPersonne _p) {
final IConnexion c = super.connexion(_p);
try {
- // Dans tous les cas (JavaWebStart ou pas), on copie les ex\xE9cutables dans le r\xE9pertoire de l'utilisateur pour \xE9viter
+ // Dans tous les cas (JavaWebStart ou pas), on copie les ex\xE9cutables dans le r\xE9pertoire temporaire pour \xE9viter
// des probl\xE8mes de droits d'\xE9criture.
- String cheminFudaa = System.getenv("APPDATA") + File.separatorChar + "FudaaMascaret";
- String cheminServeur = cheminFudaa + File.separatorChar + "serveurs" + File.separatorChar + "mascaret";
-// System.setProperty("FUDAA_SERVEUR", cheminServeur);
+ String cheminTmp=cheminTmp();
- // cr\xE9ation, si n\xE9cessaire, des r\xE9pertoires serveurs\mascaret\mascaret_5_2 et serveurs\mascaret\mascaret_6_1
- // dans le r\xE9pertoire C:\Documents and Settings\ users \Application Data\FudaaMascaret
- String cheminNoyau5_2 = cheminServeur + File.separatorChar + SOUS_REP_5_2;
- String cheminNoyau7_0 = cheminServeur + File.separatorChar + SOUS_REP_7_0;
+ // cr\xE9ation, si n\xE9cessaire, des r\xE9pertoires <tmp>\mascaret\mascaret_5_2 et <tmp>\mascaret\mascaret_7_0
+ // dans le r\xE9pertoire temporaire
+ String cheminNoyau5_2 = cheminTmp + File.separatorChar + SOUS_REP_5_2;
+ String cheminNoyau7_0 = cheminTmp + File.separatorChar + SOUS_REP_7_0;
File repNoyau5_2 = new File(cheminNoyau5_2);
repNoyau5_2.mkdirs();
File repNoyau6_1 = new File(cheminNoyau7_0);
repNoyau6_1.mkdirs();
// les fichiers n\xE9cessaires pour le noyau 5.2
- copieResource(cheminServeur, SOUS_REP_5_2 + File.separatorChar + "Abaques.txt");
- copieResource(cheminServeur, SOUS_REP_5_2 + File.separatorChar + "dico.txt");
- copieResource(cheminServeur, SOUS_REP_5_2 + File.separatorChar + "mascaret");
- copieResource(cheminServeur, SOUS_REP_5_2 + File.separatorChar + "mascaret.exe");
- copieResource(cheminServeur, SOUS_REP_5_2 + File.separatorChar + "mascaret.sh");
+ copieResource(cheminTmp, SOUS_REP_5_2 + File.separatorChar + "Abaques.txt");
+ copieResource(cheminTmp, SOUS_REP_5_2 + File.separatorChar + "dico.txt");
- // les fichiers n\xE9cessaires pour le noyau 6.1
- copieResource(cheminServeur, SOUS_REP_7_0 + File.separatorChar + "Abaques.txt");
- copieResource(cheminServeur, SOUS_REP_7_0 + File.separatorChar + "dico.txt");
- copieResource(cheminServeur, SOUS_REP_7_0 + File.separatorChar + "dico_sans_calage.txt");
- copieResource(cheminServeur, SOUS_REP_7_0 + File.separatorChar + "mascaret.exe");
+ // les fichiers n\xE9cessaires pour le noyau 7.0
+ copieResource(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "Abaques.txt");
+ copieResource(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "dico.txt");
+ copieResource(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "dico_sans_calage.txt");
+ copieResource(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "mascaret.exe");
+ copieResource(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "mascaret");
+
+ // On rend les exes executables.
+ new File(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "mascaret.exe").setExecutable(true);
+ new File(cheminTmp, SOUS_REP_7_0 + File.separatorChar + "mascaret") .setExecutable(true);
- System.setProperty("FUDAA_SERVEUR", cheminServeur);
+ System.setProperty("FUDAA_SERVEUR", cheminTmp);
} catch (IOException ex) {
System.err.println("Resource impossible \xE0 copier");
@@ -1103,7 +1105,7 @@
String fname = "/serveurs/mascaret/" + cheminResource.replace('\\', '/');
fluxIn = DCalculMascaret.class.getResourceAsStream(fname);
if (fluxIn == null) {
- System.err.println("La resource " + fname + " est introuvable pour copie vers " + cheminServeur);
+ FuLog.trace("La resource " + fname + " est introuvable pour copie vers " + cheminServeur);
}
} else {
String fname = cheminServeur() + cheminResource.replace('\\', '/');
@@ -1112,7 +1114,7 @@
fluxIn = new FileInputStream(fname);
} catch (IOException _exc) {
fluxIn = null;
- System.err.println("Le fichier " + fname + " est introuvable pour copie vers " + cheminServeur);
+ FuLog.trace("Le fichier " + fname + " est introuvable pour copie vers " + cheminServeur);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-07 15:53:36
|
Revision: 8191
http://fudaa.svn.sourceforge.net/fudaa/?rev=8191&view=rev
Author: deniger
Date: 2013-01-07 15:53:30 +0000 (Mon, 07 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostRubarLoader.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java 2013-01-07 15:53:10 UTC (rev 8190)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/TrLauncherDefault.java 2013-01-07 15:53:30 UTC (rev 8191)
@@ -69,8 +69,8 @@
infoSoft = new BuInformationsSoftware();
infoSoft.name = "prepro";
- infoSoft.version = "1.2-RC17";
- infoSoft.date = "2012-12-17";
+ infoSoft.version = "1.2-RC18";
+ infoSoft.date = "2013-01-07";
infoSoft.rights = TrResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)2003-2009";
infoSoft.contact = "fre...@fu...";
infoSoft.license = "GPL2";
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostRubarLoader.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostRubarLoader.java 2013-01-07 15:53:10 UTC (rev 8190)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostRubarLoader.java 2013-01-07 15:53:30 UTC (rev 8191)
@@ -85,7 +85,7 @@
import org.fudaa.dodico.rubar.io.RubarRESReader;
import org.fudaa.dodico.rubar.io.RubarRESResult;
import org.fudaa.dodico.rubar.io.RubarSEDFileFormat;
-import org.fudaa.dodico.rubar.io.RubarSEDReader;
+import org.fudaa.dodico.rubar.io.RubarSEDReaderDirect;
import org.fudaa.dodico.rubar.io.RubarSolutionCorrection;
import org.fudaa.dodico.rubar.io.RubarSolutionReader;
import org.fudaa.dodico.rubar.io.RubarSolutionSequentielReader;
@@ -605,7 +605,7 @@
_prog.setDesc(getDesc(file));
_prog.setProgression(0);
- final RubarSEDReader reader = (RubarSEDReader) new RubarSEDFileFormat().createReader();
+ final RubarSEDReaderDirect reader = (RubarSEDReaderDirect) new RubarSEDFileFormat().createReader();
reader.setNbNoeuds(src_.getGrid().getPtsNb());
reader.setFile(file);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-07 15:53:16
|
Revision: 8190
http://fudaa.svn.sourceforge.net/fudaa/?rev=8190&view=rev
Author: deniger
Date: 2013-01-07 15:53:10 +0000 (Mon, 07 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContentBuilder.java
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContentBuilder.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContentBuilder.java 2013-01-07 15:52:54 UTC (rev 8189)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/common/TriangulationUniqueDataContentBuilder.java 2013-01-07 15:53:10 UTC (rev 8190)
@@ -49,9 +49,7 @@
//point interne:
linearRingContainingPoint.add(-1);
idxByCoordinate.put(coordinate, idxPtAdded++);
- } else {
- System.err.println("yes evite");
- }
+ }
updater.majAvancement();
}
int[][] idx = new int[nbPoly][];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-07 15:53:01
|
Revision: 8189
http://fudaa.svn.sourceforge.net/fudaa/?rev=8189&view=rev
Author: deniger
Date: 2013-01-07 15:52:54 +0000 (Mon, 07 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/gml/GMLReader.java
trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/TestIO.java
trunk/framework/pom.xml
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/gml/GMLReader.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/gml/GMLReader.java 2013-01-07 15:52:34 UTC (rev 8188)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/gml/GMLReader.java 2013-01-07 15:52:54 UTC (rev 8189)
@@ -40,7 +40,6 @@
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;
-import java.util.StringTokenizer;
import java.util.zip.GZIPInputStream;
import java.util.zip.ZipInputStream;
@@ -922,36 +921,17 @@
*/
private void parsePoints(final String _ptString, final GeometryFactory _geometryFactory) {
String aPoint;
-// StringTokenizer stokenizerPoint;
Coordinate coord = new Coordinate();
int dim;
String numb;
-// StringBuilder sb;
-// int t;
-// char ch;
- // // remove \n and \r and replace with spaces
- // sb = new StringBuilder(_ptString);
- //
- // for (t = 0; t < sb.length(); t++) {
- // ch = sb.charAt(t);
- //
- // if ((ch == '\n') || (ch == '\r')) {
- // sb.setCharAt(t, ' ');
- // }
- // }
- // StringUtils.split(numb, ch)
- // final StringTokenizer stokenizer = new StringTokenizer(new String(sb), CtuluLibString.ESPACE, false);
List<String> splitWorker = splitCoordinate(_ptString);
final int nb = splitWorker.size();
for (int i = 0; i < nb; i++) {
-// while (stokenizer.hasMoreElements()) {
// have a point in memory - handle the single point
-// aPoint = stokenizer.nextToken();
aPoint = splitWorker.get(i);
List<String> splitVirgule = splitVirgule(aPoint);
-// stokenizerPoint = new StringTokenizer(aPoint, CtuluLibString.VIR, false);
coord.x = Double.NaN;
coord.y = Double.NaN;
coord.z = Double.NaN;
@@ -959,7 +939,6 @@
final int nbVirg = splitVirgule.size();
for (int j = 0; j < nbVirg; j++) {
-// while (stokenizerPoint.hasMoreElements()) {
numb = splitVirgule.get(j);
if (dim == 0) {
coord.x = Double.parseDouble(numb);
@@ -976,7 +955,6 @@
}
pointList_.add(coord); // remember it
coord = new Coordinate();
-// stokenizerPoint = null;
}
}
Modified: trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/TestIO.java
===================================================================
--- trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/TestIO.java 2013-01-07 15:52:34 UTC (rev 8188)
+++ trunk/framework/dodico-common/src/test/java/org/fudaa/dodico/common/TestIO.java 2013-01-07 15:52:54 UTC (rev 8189)
@@ -80,6 +80,9 @@
public void assertDoubleEquals(double _v1, double _v2) {
assertEquals(_v1, _v2, eps_);
}
+ public void assertDoubleEquals(String message,double _v1, double _v2) {
+ assertEquals(message,_v1, _v2, eps_);
+ }
/**
* Permet de trouver une ressource presente dans le rep de la classe donnee.
Modified: trunk/framework/pom.xml
===================================================================
--- trunk/framework/pom.xml 2013-01-07 15:52:34 UTC (rev 8188)
+++ trunk/framework/pom.xml 2013-01-07 15:52:54 UTC (rev 8189)
@@ -200,7 +200,6 @@
-->
<version>2.0.4</version>
</dependency>
-
<dependency>
<groupId>PDFRenderer</groupId>
<artifactId>PDFRenderer</artifactId>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-07 14:05:47
|
Revision: 8187
http://fudaa.svn.sourceforge.net/fudaa/?rev=8187&view=rev
Author: deniger
Date: 2013-01-07 14:05:39 +0000 (Mon, 07 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/pom.xml
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseLimiteValue.java
Removed Paths:
-------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseVariable.java
Modified: trunk/soft/fudaa-modeleur/pom.xml
===================================================================
--- trunk/soft/fudaa-modeleur/pom.xml 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/pom.xml 2013-01-07 14:05:39 UTC (rev 8187)
@@ -50,7 +50,7 @@
</dependency>
</dependencies>
<build>
-<!-- <plugins>
+ <plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
@@ -73,7 +73,7 @@
</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.-->
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -45,6 +45,9 @@
private volatile boolean running;
private volatile boolean stop;
+ /**
+ * @param layer la calque semis de points associ\xE9e
+ */
public CalqueCreateGridAction(MdlCalqueMultiPointEditable layer) {
super(MdlResource.getS("Mailler"), null, "PERFORM_GRID");
this.layer = layer;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridGmshProcessor.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -35,10 +35,7 @@
@Override
public EfGridInterface process(ProgressionInterface prog) {
-// if (!CalqueGridTriangleConfigurationAction.isTriangleExeConfigured()) {
-// return null;
-// }
- try {
+ try {
stop = false;
File tmpDir = CtuluLibFile.createTempDir();
String fileName = null;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/CalqueCreateGridPoly2TriProcessor.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -30,7 +30,6 @@
import org.fudaa.dodico.ef.io.common.TriangulationUniqueDataContentBuilder;
import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
import org.fudaa.ebli.calque.ZModeleMultiPoint;
-import org.fudaa.fudaa.modeleur.layer.MdlLayer2dContour;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import org.poly2tri.Poly2Tri;
import org.poly2tri.geometry.polygon.Polygon;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlElementLayer.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -9,7 +9,7 @@
import org.fudaa.fudaa.meshviewer.model.MvElementModel;
/**
- *
+ * Le calque affichage le maillage.
* @author Frederic Deniger
*/
public class MdlElementLayer extends MvElementLayer {
@@ -26,6 +26,11 @@
}
@Override
+ public String editSelected() {
+ return null;
+ }
+
+ @Override
public boolean isDestructible() {
return true;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlGridExportFactory.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -9,6 +9,7 @@
import org.fudaa.fudaa.sig.layer.FSigEditor;
/**
+ * Classe utilitaire pour l'export au format maillage des donn\xE9es.
*
* @author Frederic Deniger
*/
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -11,11 +11,12 @@
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.util.Arrays;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.swing.JPanel;
import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluTaskDelegate;
import org.fudaa.ctulu.ProgressionInterface;
-import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISDataModelFilterAdapter;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.gui.CtuluListEditorPanel;
@@ -57,6 +58,11 @@
setEnabled(delegate.getGridLayer() != null);
}
+ /**
+ * Ajoute le calque contenant les isolignes demand\xE9es.
+ *
+ * @param res le r\xE9sultat de la recherche d'isoligne
+ */
private void addIsoLineLayer(EfIsoResultDefault res) {
FSigEditor editor = (FSigEditor) delegate.getParentLayer().getEditor();
if (res.getNumGeometries() > 0) {
@@ -76,9 +82,9 @@
private static class ChooseVariablePanel extends CtuluDialogPanel {
private final BuTextField tfPrecision;
- private final CreateIsoLinesChooseVariable limits;
+ private final CreateIsoLinesChooseLimiteValue limits;
- public ChooseVariablePanel(CreateIsoLinesChooseVariable limits) {
+ public ChooseVariablePanel(CreateIsoLinesChooseLimiteValue limits) {
super(true);
setLayout(new BorderLayout(10, 0));
this.limits = limits;
@@ -111,8 +117,8 @@
delegate.getUI().warn(getTitle(), MdlResource.getS("Pour cr\xE9er des isolignes, le maillage correspondant doit \xEAtre cr\xE9\xE9"), false);
return;
}
- final CreateIsoLinesChooseVariable values = new CreateIsoLinesChooseVariable(delegate);
- //le pn permet de choisir les valeus \xE0 utiliser pour les isolignes.
+ final CreateIsoLinesChooseLimiteValue values = new CreateIsoLinesChooseLimiteValue(delegate);
+ //le pn permet de choisir les valeurs \xE0 utiliser pour les isolignes.
//par defaut, les valeurs de la palette sont utilis\xE9es.
ChooseVariablePanel pn = new ChooseVariablePanel(values);
final String title = MdlResource.getS("Cr\xE9ation des lignes de niveau");
@@ -128,7 +134,13 @@
}
}
- private void searchIsoLines(ProgressionInterface progression, CreateIsoLinesChooseVariable values) {
+ /**
+ * D\xE9termination des isolignes
+ *
+ * @param progression
+ * @param values
+ */
+ private void searchIsoLines(ProgressionInterface progression, CreateIsoLinesChooseLimiteValue values) {
CtuluAnalyze log = new CtuluAnalyze();
final TDoubleHashSet set = new TDoubleHashSet(values.getRowCount());
for (int i = 0; i < values.getRowCount(); i++) {
@@ -142,17 +154,21 @@
act.setEpsForValues(precision);
final int nbValues = isoValues.length;
try {
+ //cr\xE9ation des classes permettant de d\xE9terminer les isolignes:
EfData data = gridData.getData(H2dVariableType.BATHYMETRIE, 0);
final EfGridDataInterpolationValuesAdapter interpolatedValues = new EfGridDataInterpolationValuesAdapter(gridData, 0);
final EfIsoActivitySearcher searcher = act.search(H2dVariableType.BATHYMETRIE, data, progression, log, interpolatedValues);
if (searcher == null) {
return;
}
+ //recherche pour chaque valeur
+ //TODO PERF: multi-threade ce point si n\xE9cesasaire
for (int v = 0; v < nbValues; v++) {
final double value = isoValues[v];
searcher.search(value, res, progression, log);
}
} catch (IOException iOException) {
+ Logger.getLogger(CreateIsoLinesAction.class.getName()).log(Level.INFO, "message {0}", iOException);
}
if (log.containsErrorOrFatalError()) {
delegate.getUI().manageAnalyzeAndIsFatal(log);
Copied: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseLimiteValue.java (from rev 8171, trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseVariable.java)
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseLimiteValue.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseLimiteValue.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -0,0 +1,125 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid.action;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.gui.CtuluListEditorModel;
+import org.fudaa.ctulu.iterator.NumberIterator;
+import org.fudaa.dodico.ef.EfData;
+import org.fudaa.dodico.h2d.type.H2dVariableType;
+import org.fudaa.ebli.palette.BPalettePlageInterface;
+import org.fudaa.ebli.palette.BPalettePlageTarget;
+import org.fudaa.fudaa.modeleur.grid.LayerGridController;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ * Panneau permettant de choisir les valeurs pour la construction des iso-lignes.
+ * @author Frederic Deniger
+ */
+public class CreateIsoLinesChooseLimiteValue extends CtuluListEditorModel {
+
+ final DecimalFormat fmt_ = CtuluLib.getDecimalFormat();
+ EfData bathy;
+ LayerGridController support_;
+
+ public CreateIsoLinesChooseLimiteValue(final LayerGridController _support) {
+ fmt_.setMaximumFractionDigits(1);
+ support_ = _support;
+ try {
+ bathy = support_.getExportGridData().getData(H2dVariableType.BATHYMETRIE, 0);
+ } catch (IOException ex) {
+ Logger.getLogger(CreateIsoLinesChooseLimiteValue.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ List defaultValuesFromPalette = getDefaultValuesFromPalette();
+ if (defaultValuesFromPalette != null) {
+ setData(defaultValuesFromPalette);
+ } else {
+ updateOrCreateValues();
+ }
+ }
+
+ @Override
+ public String getColumnName(final int _column) {
+ return MdlResource.getS("Valeurs");
+ }
+
+ private List getDefaultValuesFromPalette() {
+ if (support_.getParentLayer() instanceof BPalettePlageTarget) {
+ final BPalettePlageTarget cq = (BPalettePlageTarget) support_.getParentLayer();
+ final BPalettePlageInterface plage = cq.getPaletteCouleur();
+ final int nb = plage.getNbPlages();
+ final List res = new ArrayList(nb);
+ int inc = 1;
+ // pour eviter de proposer trop de valeurs
+ if (nb > 20) {
+ inc = nb / 20;
+ }
+ addVal(plage, res, plage.getPlageInterface(0).getMin());
+ for (int i = 0; i < nb; i += inc) {
+ addVal(plage, res, plage.getPlageInterface(i).getMax());
+ }
+ return res;
+ }
+ return null;
+ }
+
+ private void addVal(final BPalettePlageInterface _plage, final List _res, final double _val) {
+ if (_plage.getFormatter() == null) {
+ _res.add(fmt_.format(_val));
+ } else {
+ _res.add(_plage.getFormatter().format(_val));
+ }
+ }
+
+ private void initFor(final EfData _data, final List _l) {
+ if (_data == null || _l == null) {
+ return;
+ }
+ _l.clear();
+ final NumberIterator it = new NumberIterator();
+ it.init(_data.getMin(), _data.getMax(), 10);
+
+ while (it.hasNext()) {
+ _l.add(CtuluLib.DEFAULT_NUMBER_FORMAT.format(it.currentValue()));
+ it.nextMajor();
+ }
+ }
+
+ private void updateOrCreateValues() {
+ final List newValue = new ArrayList();
+ initFor(bathy, newValue);
+ if (newValue.isEmpty()) {
+ newValue.add(CtuluLibString.ZERO);
+ newValue.add(CtuluLibString.UN);
+ newValue.add(CtuluLibString.DEUX);
+ }
+ setData(newValue);
+ }
+
+ @Override
+ public Object createNewObject() {
+ final int val = getRowCount();
+ if (val >= 2) {
+ final double v0 = Double.parseDouble(((String) getValueAt(getRowCount() - 2)));
+ final double v1 = Double.parseDouble(((String) getValueAt(getRowCount() - 1)));
+ return fmt_.format(v1 + v1 - v0);
+ }
+ if (bathy != null) {
+ if (val == 1) {
+ final double v1 = Double.parseDouble(((String) getValueAt(getRowCount() - 1)));
+ final double inc = Math.abs((bathy.getMax() - v1) / 10);
+ return fmt_.format(v1 + inc);
+ }
+ return fmt_.format(bathy.getMin());
+ }
+ return CtuluLibString.ZERO;
+ }
+}
Deleted: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseVariable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseVariable.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/CreateIsoLinesChooseVariable.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -1,125 +0,0 @@
-/*
- GPL 2
- */
-package org.fudaa.fudaa.modeleur.grid.action;
-
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.fudaa.ctulu.CtuluLib;
-import org.fudaa.ctulu.CtuluLibString;
-import org.fudaa.ctulu.gui.CtuluListEditorModel;
-import org.fudaa.ctulu.iterator.NumberIterator;
-import org.fudaa.dodico.ef.EfData;
-import org.fudaa.dodico.h2d.type.H2dVariableType;
-import org.fudaa.ebli.palette.BPalettePlageInterface;
-import org.fudaa.ebli.palette.BPalettePlageTarget;
-import org.fudaa.fudaa.modeleur.grid.LayerGridController;
-import org.fudaa.fudaa.modeleur.resource.MdlResource;
-
-/**
- *
- * @author Frederic Deniger
- */
-public class CreateIsoLinesChooseVariable extends CtuluListEditorModel {
-
- final DecimalFormat fmt_ = CtuluLib.getDecimalFormat();
- EfData bathy;
- LayerGridController support_;
-
- public CreateIsoLinesChooseVariable(final LayerGridController _support) {
- fmt_.setMaximumFractionDigits(1);
- support_ = _support;
- try {
- bathy = support_.getExportGridData().getData(H2dVariableType.BATHYMETRIE, 0);
- } catch (IOException ex) {
- Logger.getLogger(CreateIsoLinesChooseVariable.class.getName()).log(Level.SEVERE, null, ex);
- }
- List defaultValuesFromPalette = getDefaultValuesFromPalette();
- if (defaultValuesFromPalette != null) {
- setData(defaultValuesFromPalette);
- } else {
- updateOrCreateValues();
- }
- }
-
- @Override
- public String getColumnName(final int _column) {
- return MdlResource.getS("Valeurs");
- }
-
- private List getDefaultValuesFromPalette() {
- if (support_.getParentLayer() instanceof BPalettePlageTarget) {
- final BPalettePlageTarget cq = (BPalettePlageTarget) support_.getParentLayer();
- final BPalettePlageInterface plage = cq.getPaletteCouleur();
- final int nb = plage.getNbPlages();
- final List res = new ArrayList(nb);
- int inc = 1;
- // pour eviter de proposer trop de valeurs
- if (nb > 20) {
- inc = nb / 20;
- }
- addVal(plage, res, plage.getPlageInterface(0).getMin());
- for (int i = 0; i < nb; i += inc) {
- addVal(plage, res, plage.getPlageInterface(i).getMax());
- }
- return res;
- }
- return null;
- }
-
- private void addVal(final BPalettePlageInterface _plage, final List _res, final double _val) {
- if (_plage.getFormatter() == null) {
- _res.add(fmt_.format(_val));
- } else {
- _res.add(_plage.getFormatter().format(_val));
- }
- }
-
- private void initFor(final EfData _data, final List _l) {
- if (_data == null || _l == null) {
- return;
- }
- _l.clear();
- final NumberIterator it = new NumberIterator();
- it.init(_data.getMin(), _data.getMax(), 10);
-
- while (it.hasNext()) {
- _l.add(CtuluLib.DEFAULT_NUMBER_FORMAT.format(it.currentValue()));
- it.nextMajor();
- }
- }
-
- private void updateOrCreateValues() {
- final List newValue = new ArrayList();
- initFor(bathy, newValue);
- if (newValue.isEmpty()) {
- newValue.add(CtuluLibString.ZERO);
- newValue.add(CtuluLibString.UN);
- newValue.add(CtuluLibString.DEUX);
- }
- setData(newValue);
- }
-
- @Override
- public Object createNewObject() {
- final int val = getRowCount();
- if (val >= 2) {
- final double v0 = Double.parseDouble(((String) getValueAt(getRowCount() - 2)));
- final double v1 = Double.parseDouble(((String) getValueAt(getRowCount() - 1)));
- return fmt_.format(v1 + v1 - v0);
- }
- if (bathy != null) {
- if (val == 1) {
- final double v1 = Double.parseDouble(((String) getValueAt(getRowCount() - 1)));
- final double inc = Math.abs((bathy.getMax() - v1) / 10);
- return fmt_.format(v1 + inc);
- }
- return fmt_.format(bathy.getMin());
- }
- return CtuluLibString.ZERO;
- }
-}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/DeleteGridAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -10,7 +10,7 @@
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
- * Action permettant d'exporter le maillage.
+ * Action permettant de supprimer le maillage.
*
* @author Frederic Deniger
*/
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridSetMeshPaintedAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -10,7 +10,7 @@
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
- * Permet de demander l'affichage des isosurfaces sur les \xE9l\xE9ments s\xE9lectionn\xE9es
+ * Permet de demander l'affichage des isosurfaces sur les \xE9l\xE9ments s\xE9lectionn\xE9s
*
* @author Frederic Deniger
*/
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/GridUnsetMeshPaintedAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -10,7 +10,7 @@
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
- * Permet de demander l'affichage des isosurfaces sur les \xE9l\xE9ments s\xE9lectionn\xE9es
+ * Permet de demander le non-affichage des isosurfaces sur les \xE9l\xE9ments s\xE9lectionn\xE9s
*
* @author Frederic Deniger
*/
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-07 13:30:16 UTC (rev 8186)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-07 14:05:39 UTC (rev 8187)
@@ -19,14 +19,15 @@
import org.fudaa.fudaa.modeleur.resource.MdlResource;
/**
+ * Affichage du semis en 3D si un maillage est actif.
*
* @author Frederic Deniger
*/
public class Show3DAction extends EbliActionSimple {
-
+
private final LayerGridController delegate;
JFrame f_;
-
+
public Show3DAction(final LayerGridController delegate) {
super(EbliLib.getS("Afficher la vue 3D"), EbliResource.EBLI.getToolIcon("3d"), "SHOW_3D");
this.delegate = delegate;
@@ -34,16 +35,16 @@
super.setDefaultToolTip(MdlResource.getS("Afficher la vue 3D du maillage associ\xE9 au semis de points"));
super.setUnableToolTip(MdlResource.getS("Le semis doit \xEAtre maill\xE9 et Java3D install\xE9"));
}
-
+
public ZVue3DPanel getVue3D() {
return (ZVue3DPanel) f_.getContentPane();
}
-
+
@Override
public void updateStateBeforeShow() {
setEnabled(delegate.getGridLayer() != null);
}
-
+
@Override
public void actionPerformed(final ActionEvent _e) {
if (!BJava3DVersionTest.isJava3DFound()) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-05 00:04:49
|
Revision: 8185
http://fudaa.svn.sourceforge.net/fudaa/?rev=8185&view=rev
Author: deniger
Date: 2013-01-05 00:04:38 +0000 (Sat, 05 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-05 00:02:06 UTC (rev 8184)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/CalqueCreateGridAction.java 2013-01-05 00:04:38 UTC (rev 8185)
@@ -90,7 +90,7 @@
}
//lancement de la triangulation dans un thread \xE0 part.
final CtuluTaskDelegate createTask = editor.getUi().createTask(getTitle());
- createTask.start(new CreateGridRunnable(panel, createTask.getMainStateReceiver()));
+ createTask.start(new CreateGridRunnable(panel, createTask.getStateReceiver()));
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-05 00:02:06 UTC (rev 8184)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-05 00:04:38 UTC (rev 8185)
@@ -31,7 +31,7 @@
super(EbliLib.getS("Afficher la vue 3D"), EbliResource.EBLI.getToolIcon("3d"), "SHOW_3D");
this.delegate = delegate;
setEnabled(true);
- super.setDefaultToolTip(EbliLib.getS("Afficher la vue 3D"));
+ super.setDefaultToolTip(MdlResource.getS("Afficher la vue 3D du maillage associ\xE9 au semis de points"));
super.setUnableToolTip(MdlResource.getS("Le semis doit \xEAtre maill\xE9 et Java3D install\xE9"));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-05 00:02:15
|
Revision: 8184
http://fudaa.svn.sourceforge.net/fudaa/?rev=8184&view=rev
Author: deniger
Date: 2013-01-05 00:02:06 +0000 (Sat, 05 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
Added Paths:
-----------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-05 00:01:30 UTC (rev 8183)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlImplementation.java 2013-01-05 00:02:06 UTC (rev 8184)
@@ -80,27 +80,28 @@
import com.memoire.bu.BuTaskView;
import com.memoire.bu.BuUserPreferencesPanel;
import com.memoire.fu.FuLog;
+import org.fudaa.ebli.commun.BJava3DVersionTest;
/**
- * La classe principale de mise en place de l'application, de gestion des
- * actions, des \xE9tats de l'interface, etc.
- *
+ * La classe principale de mise en place de l'application, de gestion des actions, des \xE9tats de l'interface, etc.
+ *
* @author Bertrand Marchand
* @version $Id$
*/
public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener {
protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware();
+
static {
isMdl_.name = MdlResource.getS("Modeleur");
isMdl_.version = "1.2";
isMdl_.date = "2011-12-22";
- isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2011";
+ isMdl_.rights = MdlResource.getS("Tous droits r\xE9serv\xE9s") + ". CETMEF (c)1999-2011";
isMdl_.license = "GPL2";
isMdl_.languages = "fr,en";
- isMdl_.authors=new String[]{"B.Marchand, E.Martin, F.Deniger"};
- isMdl_.contact="soi...@ed...";
- isMdl_.http="http://www.fudaa.fr/mdl/";
+ isMdl_.authors = new String[]{"B.Marchand, E.Martin, F.Deniger"};
+ isMdl_.contact = "soi...@ed...";
+ isMdl_.http = "http://www.fudaa.fr/mdl/";
isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette");
isMdl_.banner = BuResource.BU.getIcon("aproposde_32");
@@ -114,12 +115,19 @@
return "mod.zip";
}
+ public static void addJava3DTest(final BuMenu _r) {
+ _r.addSeparator();
+ _r.addMenuItem(MdlResource.getS("Tester Java 3D"), "JAVA3D", EbliResource.EBLI.getIcon("3d"), true);
+ }
+
/**
* Un filtre autorisant des extensions avec plusieurs points (.mod.zip)
+ *
* @author Bertrand Marchand
* @version $Id$
*/
private static class MdlFileFilter extends FileFilter {
+
final String extension_ = '.' + getExtension();
public boolean accept(File _f) {
@@ -127,27 +135,34 @@
}
public String getDescription() {
- return MdlResource.getS("Fudaa Modeleur")+" (*.mod.zip)";
+ return MdlResource.getS("Fudaa Modeleur") + " (*.mod.zip)";
}
-
}
public static BuInformationsSoftware informationsSoftware() {
return isMdl_;
}
-
- /** Le filtre de fichier pour des extension fichiers projets. */
+ /**
+ * Le filtre de fichier pour des extension fichiers projets.
+ */
public final static FileFilter FILTER = new MdlFileFilter();
-
- /** Fenetre interne pour le modeleur 2D. */
+ /**
+ * Fenetre interne pour le modeleur 2D.
+ */
MdlFille2d mdl2dFrame_;
- /** Fenetre interne pour le modeleur 1D */
- MdlFille1d mdl1dFrame_=null;
- /** Projet modeleur. */
+ /**
+ * Fenetre interne pour le modeleur 1D
+ */
+ MdlFille1d mdl1dFrame_ = null;
+ /**
+ * Projet modeleur.
+ */
MdlProjet project_;
FSigManageExeTools toolMng_;
- /** Si true, l'utilisateur peut sortir de l'application par Quitter. */
- boolean exitCanceled_=false;
+ /**
+ * Si true, l'utilisateur peut sortir de l'application par Quitter.
+ */
+ boolean exitCanceled_ = false;
public MdlImplementation() {
super();
@@ -156,6 +171,7 @@
/**
* Retourne le fichier s\xE9lectionn\xE9 par boite de dialogue.
+ *
* @param _saveDialog true : Save dialog, test si fichier existant avant ecriture.
* @return LE fichier, ou null si op\xE9ration abort\xE9e.
*/
@@ -165,7 +181,7 @@
private File chooseFile(boolean _saveDialog) {
return FudaaGuiLib.ouvrirFileChooser(MdlResource.getS("Fichier modeleur"), FILTER, this.getFrame(),
- _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null);
+ _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null);
}
protected void setFileIfNeeded() {
@@ -177,15 +193,15 @@
public void projectStateChanged(FudaaProjetStateInterface _proj) {
updateActionsState();
}
-
+
/**
* Mise \xE0 jour de l'\xE9tat des boutons.
*/
void updateActionsState() {
- boolean bprjOpen=project_!=null;
- boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified();
- boolean buiMod=bprjOpen && project_.getProjectState().isUIModified();
-
+ boolean bprjOpen = project_ != null;
+ boolean bprjModPar = bprjOpen && project_.getProjectState().isParamsModified();
+ boolean buiMod = bprjOpen && project_.getProjectState().isUIModified();
+
setEnabledForAction("ENREGISTRER", bprjModPar | buiMod);
setEnabledForAction("ENREGISTRERSOUS", bprjOpen);
setEnabledForAction("FERMER", bprjOpen);
@@ -202,45 +218,46 @@
getExeToolManager().setRootLayer(mdl2dFrame_.getDonneesCalque());
getExeToolManager().setCommandManager(mdl2dFrame_.getCmdMng());
}
-
+
/**
* Creation de la vue 1D. Ajout a la demande.
*/
void createNew1dFrame() {
- if (mdl1dFrame_==null) {
- mdl1dFrame_=new MdlFille1d(this);
+ if (mdl1dFrame_ == null) {
+ mdl1dFrame_ = new MdlFille1d(this);
}
}
-
+
/**
* @return La vue 1D, ou null si inexistante.
*/
public MdlFille1d get1dFrame() {
return mdl1dFrame_;
}
-
+
/**
* @return La vue 2D, ou null si inexistante.
*/
public MdlFille2d get2dFrame() {
return mdl2dFrame_;
}
-
+
/**
* Installe la vue 1d sur le desktop, et la rend active.
*/
public void install1dFrame() {
- boolean alreadyInstalled=false;
- for (JInternalFrame f: getAllInternalFrames()) {
+ boolean alreadyInstalled = false;
+ for (JInternalFrame f : getAllInternalFrames()) {
if (f.equals(mdl1dFrame_)) {
- alreadyInstalled=true;
+ alreadyInstalled = true;
break;
}
}
- if (!alreadyInstalled)
+ if (!alreadyInstalled) {
addInternalFrame(mdl1dFrame_);
- else
+ } else {
activateInternalFrame(mdl1dFrame_);
+ }
}
protected boolean buildExportDataToolIcon() {
@@ -258,17 +275,18 @@
}
/**
- * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas
- * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont).
+ * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont).
*/
protected void closeProject() {
- if (project_==null) return;
+ if (project_ == null) {
+ return;
+ }
project_.close();
try {
- if(mdl2dFrame_!=null){
+ if (mdl2dFrame_ != null) {
mdl2dFrame_.setClosed(true);
}
- if(mdl1dFrame_!=null){
+ if (mdl1dFrame_ != null) {
mdl1dFrame_.setClosed(true);
}
} catch (PropertyVetoException _evt) {
@@ -282,17 +300,20 @@
/**
* Cr\xE9e un nouveau projet, la fenetre 2D si necessaire.
+ *
* @param _add true : Recr\xE9e la fenetre.
*/
protected void createProject(final boolean _add) {
project_ = new MdlProjet();
project_.setOpening(true);
- if (_add) createNew2dFrame();
- else ((MdlVisuPanel)mdl2dFrame_.getVisuPanel()).initCalques(false);
+ if (_add) {
+ createNew2dFrame();
+ } else {
+ ((MdlVisuPanel) mdl2dFrame_.getVisuPanel()).initCalques(false);
+ }
createNew1dFrame();
project_.install(this);
BuLib.invokeLater(new Runnable() {
-
public void run() {
project_.setOpening(false);
// changeSaveActions(false);
@@ -323,6 +344,8 @@
importProject();
} else if ("AIDE_INDEX".equals(action)) {
displayHelp(getAideIndexUrl());
+ } else if ("JAVA3D".equals(action)) {
+ BJava3DVersionTest.showVersionDialog(this);
} else if (action.startsWith("TOGGLE")) {
final BuColumn c = getMainPanel().getRightColumn();
final JComponent comp = c.getToggleComponent(action);
@@ -331,17 +354,18 @@
c.revalidate();
}
} else if (action.startsWith("REOUVRIR")) {
- FuLog.trace(action.substring(9,action.length()-1));
- ouvrir(new File(action.substring(9,action.length()-1)));
- } else
+ FuLog.trace(action.substring(9, action.length() - 1));
+ ouvrir(new File(action.substring(9, action.length() - 1)));
+ } else {
super.actionPerformed(_evt);
+ }
}
/**
* Met a jour les fichiers recents chaque fois que necessaire.
*/
private void updateRecentFiles(File _fichier) {
- getMainMenuBar().addRecentFile(_fichier.getPath(),null);
+ getMainMenuBar().addRecentFile(_fichier.getPath(), null);
MdlPreferences.MDL.writeIniFile();
}
@@ -350,38 +374,41 @@
*/
@Override
public void exit() {
- if (!isExitCanceled())
+ if (!isExitCanceled()) {
confirmExit();
+ }
}
-
+
private boolean isExitCanceled() {
return exitCanceled_;
}
-
+
/**
* Definit si l'action Exit est autoris\xE9e (par exemple lors d'une sauvegarde)
+ *
* @param _b True : L'action est autoris\xE9e.
*/
private void setExitCanceled(boolean _b) {
- exitCanceled_=_b;
+ exitCanceled_ = _b;
}
-
+
/**
* L'action close est g\xE9r\xE9e au niveau applicatif (et non fenetre par fenetre).
+ *
* @return false
*/
@Override
public boolean isCloseFrameMode() {
return false;
}
-
+
/**
* Confirmation de la sortie avec ou sans sauvegarde.
*/
@Override
public boolean confirmExit() {
- if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() ||
- question(MdlResource.getS("Quitter"), MdlResource.getS("Voulez-vous vraiment quitter ce logiciel ?"))) {
+ if (!FudaaStartupExitPreferencesPanel.isExitConfirmed()
+ || question(MdlResource.getS("Quitter"), MdlResource.getS("Voulez-vous vraiment quitter ce logiciel ?"))) {
return saveAndCloseProjet(new Runnable() {
// Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e.
public void run() {
@@ -402,7 +429,7 @@
}
});
}
-
+
/**
* Action "Fermer" le projet en cours.
*/
@@ -425,41 +452,40 @@
}
/**
- * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si
- * existant.
+ * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si existant.
+ *
* @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur.
*/
public void ouvrir(final File _f) {
if (isProjectModified()) {
saveAndCloseProjet(new Runnable() {
-
public void run() {
ouvrir(_f);
}
});
return;
}
-
+
closeProject();
final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false);
- if (f==null) return; // Abandon utilisateur.
-
+ if (f == null) {
+ return; // Abandon utilisateur.
+ }
createProject(false);
setGlassPaneStop();
new CtuluRunnable(MdlResource.getS("Ouvrir"), MdlImplementation.this) {
-
public boolean run(ProgressionInterface _proj) {
project_.setOpening(true);
Runnable r = null;
try {
try {
- FudaaSaveZipLoader loader=new FudaaSaveZipLoader(f);
+ FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f);
// Recup des infos pour utilisateur.
- BuInformationsSoftware is=FudaaSaveProject.getSoftwareInfos(loader);
- FuLog.trace("File version : "+(is.version==null ? "Undefined":is.version));
-
- r= FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj,loader);
+ BuInformationsSoftware is = FudaaSaveProject.getSoftwareInfos(loader);
+ FuLog.trace("File version : " + (is.version == null ? "Undefined" : is.version));
+
+ r = FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj, loader);
} catch (final IOException _evt) {
FuLog.error(_evt);
@@ -471,25 +497,28 @@
final Runnable swingRun = r;
BuLib.invokeLater(new Runnable() {
-
public void run() {
try {
addInternalFrame(mdl2dFrame_);
mdl2dFrame_.getCmdMng().clean();
-
- if (swingRun != null) swingRun.run();
-
+
+ if (swingRun != null) {
+ swingRun.run();
+ }
+
// Met a jour la fenetre 1d
- FudaaSaveZipLoader loader=null;
+ FudaaSaveZipLoader loader = null;
try {
- loader=new FudaaSaveZipLoader(f);
+ loader = new FudaaSaveZipLoader(f);
mdl1dFrame_.restoreFrom(loader, null);
mdl1dFrame_.getCmdMng().clean();
- }
- catch (IOException _exc) {}
- finally {
- if (loader!=null) {
- try { loader.close(); } catch (IOException _exc) {}
+ } catch (IOException _exc) {
+ } finally {
+ if (loader != null) {
+ try {
+ loader.close();
+ } catch (IOException _exc) {
+ }
}
}
@@ -498,9 +527,8 @@
project_.setSaved();
if (swingRun == null) {
MdlImplementation.this.warn(MdlResource.getS("Ouvrir"),
- MdlResource.getS("Le projet n'a pas \xE9t\xE9 ouvert!"));
- }
- else {
+ MdlResource.getS("Le projet n'a pas \xE9t\xE9 ouvert!"));
+ } else {
updateRecentFiles(project_.getParamsFile());
}
} finally {
@@ -508,7 +536,6 @@
}
}
-
});
}
@@ -522,8 +549,8 @@
*/
public void save() {
if (project_.getParamsFile() != null) {
-
- CtuluRunnable act=new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
+
+ CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _proj) {
try {
setGlassPaneStop();
@@ -533,8 +560,7 @@
return true;
}
return false;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
@@ -542,16 +568,19 @@
};
act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true);
act.run();
- } else
+ } else {
saveAs();
+ }
}
-
+
/**
* Action "Enregistrer sous" le projet.
*/
public void saveAs() {
final File f = chooseNewFile(true);
- if (f == null) return;
+ if (f == null) {
+ return;
+ }
CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _proj) {
@@ -563,8 +592,7 @@
return true;
}
return false;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
@@ -576,18 +604,18 @@
protected boolean isProjectModified() {
return project_ != null
- && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified());
+ && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified());
}
-
+
public void importProject() {
- MdlProjectImportPanel pn=new MdlProjectImportPanel();
+ MdlProjectImportPanel pn = new MdlProjectImportPanel();
if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), MdlResource.getS("Import d'un projet")))) {
- File f=pn.getFile();
+ File f = pn.getFile();
try {
FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f);
- String[] ignoredLayers=pn.getIgnoredLayers();
+ String[] ignoredLayers = pn.getIgnoredLayers();
for (String s : ignoredLayers) {
- loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE+s,CtuluLibString.toString(true));
+ loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE + s, CtuluLibString.toString(true));
}
final CtuluTaskDelegate createTask = createTask(MdlResource.getS("Import d'un projet"));
@@ -595,7 +623,7 @@
// Probable pb de deadlock.
// createTask.start(new Runnable() {
// public void run() {
- FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader);
+ FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader);
// }
// });
@@ -610,15 +638,16 @@
/**
* Dans le thread swing....
- *
+ *
* @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet
*/
public boolean saveAndCloseProjet(final Runnable _relaunch) {
final Runnable r = new Runnable() {
-
public void run() {
closeProject();
- if (_relaunch != null) _relaunch.run();
+ if (_relaunch != null) {
+ _relaunch.run();
+ }
}
};
boolean save = false;
@@ -639,9 +668,11 @@
} else {
// on initilialise le fichier de dest si n\xE9cessaire
setFileIfNeeded();
- if (project_.getParamsFile()==null) return false;
-
- CtuluRunnable act=new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
+ if (project_.getParamsFile() == null) {
+ return false;
+ }
+
+ CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) {
public boolean run(ProgressionInterface _prog) {
// le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier
// dans ce cas, on ne sauvegarde pas.
@@ -650,16 +681,14 @@
setGlassPaneStop();
setExitCanceled(true);
FSigProjectPersistence.saveProject(MdlImplementation.this, project_,
- project_.getParamsFile(), _prog);
+ project_.getParamsFile(), _prog);
updateRecentFiles(project_.getParamsFile());
return true;
- }
- finally {
+ } finally {
unsetGlassPaneStop();
setExitCanceled(false);
}
- }
- else {
+ } else {
return false;
}
}
@@ -674,24 +703,26 @@
protected Runnable getSaveSwingRunnable(final File _paramFile/*, final JDialog _d*/) {
return new Runnable() {
-
public void run() {
- if (_paramFile != null) project_.setParamFile(_paramFile);
+ if (_paramFile != null) {
+ project_.setParamFile(_paramFile);
+ }
project_.setSaved();
// _d.dispose();
}
};
}
-
+
/**
* Construit le menu projet.
+ *
* @return Le menu projet.
*/
protected BuMenu buildProjectMenu() {
- BuMenu mn=new BuMenu(MdlResource.getS("Projet"),"mnPROJECT");
+ BuMenu mn = new BuMenu(MdlResource.getS("Projet"), "mnPROJECT");
mn.add(new MdlShow2DFrameAction(this));
mn.add(new MdlShow1DFrameAction(this));
-
+
mn.setVisible(false);
return mn;
}
@@ -708,23 +739,20 @@
_frAddTab.add(new FudaaLookPreferencesPanel(this));
_frAddTab.add(new BuBrowserPreferencesPanel(this));
_frAddTab.add(new EbliMiseEnPagePreferencesPanel());
- _frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Visuel"),MdlResource.getS("Cartographie"),
- new BuAbstractPreferencesComponent[] {
- new EbliGISPreferencesComponent(),
- new MdlLayerTreePreferencesComponent()
- }
- ));
+ _frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Visuel"), MdlResource.getS("Cartographie"),
+ new BuAbstractPreferencesComponent[]{
+ new EbliGISPreferencesComponent(),
+ new MdlLayerTreePreferencesComponent()
+ }));
_frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Export"),
- new BuAbstractPreferencesComponent[] {
- new CtuluTablePreferencesComponent(),
- new MascaretExportPreferencesComponent()
- }
- ));
+ new BuAbstractPreferencesComponent[]{
+ new CtuluTablePreferencesComponent(),
+ new MascaretExportPreferencesComponent()
+ }));
_frAddTab.add(new BuContainerPreferencesPanel(MdlResource.getS("Vue 1D"),
- new BuAbstractPreferencesComponent[] {
- new Mdl1dPreferencesComponent()
- }
- ));
+ new BuAbstractPreferencesComponent[]{
+ new Mdl1dPreferencesComponent()
+ }));
}
/**
@@ -744,16 +772,15 @@
sp.setPreferredSize(new Dimension(150, 80));
sp.setToolTipText(MdlResource.getS("Les t\xE2ches en cours"));
rc.addToggledComponent(MdlResource.getS("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp,
- true, this).setToolTipText(MdlResource.getS("Cacher/Afficher les t\xE2ches"));
+ true, this).setToolTipText(MdlResource.getS("Cacher/Afficher les t\xE2ches"));
mp.setTaskView(taches);
}
-
+
/**
* Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie.
- *
- * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues
- * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon
- * inattendue.
+ *
+ * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues par d'autres applications Fudaa, qui risquent alors de s'afficher de
+ * facon inattendue.
*/
protected void savePreferencesAndTerminate() {
final Point p = getFrame().getLocation();
@@ -762,16 +789,16 @@
BuPreferences.BU.putIntegerProperty("window.y", p.y);
BuPreferences.BU.putIntegerProperty("window.w", d.width);
BuPreferences.BU.putIntegerProperty("window.h", d.height);
- BuPreferences.BU.putIntegerProperty("leftcolumn.width",getMainPanel().getLeftColumn().getWidth());
- BuPreferences.BU.putIntegerProperty("rightcolumn.width",getMainPanel().getRightColumn().getWidth());
+ BuPreferences.BU.putIntegerProperty("leftcolumn.width", getMainPanel().getLeftColumn().getWidth());
+ BuPreferences.BU.putIntegerProperty("rightcolumn.width", getMainPanel().getRightColumn().getWidth());
BuPreferences.BU.writeIniFile();
-
+
BuRegistry.unregister(this.getFrame());
}
-
/**
* Maximisation syst\xE9matique de la fenetre.
+ *
* @param _f La fenetre ajout\xE9e.
*/
@Override
@@ -781,14 +808,13 @@
public void run() {
try {
_f.setMaximum(true);
- }
- catch (PropertyVetoException ex) {
+ } catch (PropertyVetoException ex) {
Logger.getLogger(MdlImplementation.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
-
+
/**
* Mise en place de l'application ava,nt affichage.
*/
@@ -796,7 +822,7 @@
public void init() {
super.init();
- TransferHandler transHdl=new TransferHandler() {
+ TransferHandler transHdl = new TransferHandler() {
@Override
public boolean canImport(TransferSupport support) {
for (DataFlavor df : support.getDataFlavors()) {
@@ -818,11 +844,9 @@
}
ouvrir(files.get(0));
return true;
- }
- catch (UnsupportedFlavorException ufe) {
+ } catch (UnsupportedFlavorException ufe) {
ufe.printStackTrace();
- }
- catch (IOException ioe) {
+ } catch (IOException ioe) {
ioe.printStackTrace();
}
}
@@ -837,13 +861,9 @@
removeUnusedActions();
final BuMenuBar mb = getMainMenuBar();
// on enleve le menu des look and feel : moche car tout n'est pas mis a jour
-/* Issu de Fudaa-Prepro
- final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE");
+ final BuMenu mAide = (BuMenu) mb.getMenu("MENU_AIDE");
+ addJava3DTest(mAide);
- mAide.add(TrLib.buildAideContextItem(this), 0);
- TrLib.addJavawsForJnlp(mAide);
- TrLib.addJava3DJMFTest(mAide);*/
-
// Les actions qu'on peut retrouver partout.
EbliActionMap.getInstance().addAction(new MdlBiefImportAction(this));
@@ -853,36 +873,36 @@
setEnabledForAction("OUVRIR", true);
setEnabledForAction("IMPORTER", true);
setEnabledForAction("EXPORTER", true);
-
- BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR");
+
+ BuMenuRecentFiles mr = (BuMenuRecentFiles) mb.getMenu("REOUVRIR");
if (mr != null) {
mr.setPreferences(MdlPreferences.MDL);
mr.setResource(MdlResource.MDL);
mr.setEnabled(true);
}
-
-/* setEnabledForAction("MAJ", true);
- setEnabledForAction("SEND_COMMENT", true);
- setEnabledForAction("LAUNCH_JAVAWS", true);
- final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER");
- mFichier.addMenuItem(MdlResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU
- .getIcon("fermer"), true, 0);
- final BuToolBar tb = getMainToolBar();
- if (!isSupervisor()) {
- tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR",
- TrResource.getSupervisorIcon(), true).setVisible(true);
+ /* setEnabledForAction("MAJ", true);
+ setEnabledForAction("SEND_COMMENT", true);
+ setEnabledForAction("LAUNCH_JAVAWS", true);
+ final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER");
+ mFichier.addMenuItem(MdlResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU
+ .getIcon("fermer"), true, 0);
+ final BuToolBar tb = getMainToolBar();
+ if (!isSupervisor()) {
- }*/
+ tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR",
+ TrResource.getSupervisorIcon(), true).setVisible(true);
+
+ }*/
// les menus exporter et importer sont construit dynamiquement
// b.getMenu(getExporterCmd()).addItemListener(this);
BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER");
BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER");
-
+
// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(),
// this).setEnabled(false);
mmImport.addMenuItem(MdlResource.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this)
- .setEnabled(false);
+ .setEnabled(false);
// menu.addItemListener(this);
setEnabledForAction("IMPORT_PROJECT", true);
mmImport.setEnabled(true);
@@ -890,69 +910,69 @@
BuMenuItem itExportData = new BuMenuItem();
super.initExportDataButton(itExportData);
mnExport.add(itExportData);
-
- BuMenu mnProject=buildProjectMenu();
+
+ BuMenu mnProject = buildProjectMenu();
mb.addMenu(mnProject);
-
+
// Ajout du menu des exe tools
- BuMenu mnEdition=(BuMenu)mb.getMenu("MENU_EDITION");
+ BuMenu mnEdition = (BuMenu) mb.getMenu("MENU_EDITION");
mnEdition.addSeparator();
addExeToolsMenu(mnEdition);
-
-/* setEnabledForAction("RANGERICONES", true);
- if (!isSupervisor()) {
- final JComponent cp = getMainPanel().getMiddleComponent();
- if (cp instanceof JScrollPane) {
- ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp);
- }
- }*/
+
+ /* setEnabledForAction("RANGERICONES", true);
+ if (!isSupervisor()) {
+ final JComponent cp = getMainPanel().getMiddleComponent();
+ if (cp instanceof JScrollPane) {
+ ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp);
+ }
+ }*/
buildTaskView();
}
@Override
protected FSigManageExeTools getExeToolManager() {
- if (toolMng_==null)
- toolMng_=new FSigManageExeTools(this);
+ if (toolMng_ == null) {
+ toolMng_ = new FSigManageExeTools(this);
+ }
return toolMng_;
}
-
/**
* Suppression des commandes par d\xE9faut dans Fudaa.
*/
protected void removeUnusedActions() {
-/* Issu de Fudaa-Prepro
- final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION");
- if (r != null) {
- r.removeAll();
- r.addMenuItem(MdlResource.getS("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z);
- r.addMenuItem(MdlResource.getS("Refaire"), "REFAIRE", false).setAccelerator(
- KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
- // normalement Ctrl-Y
- // r.addSeparator();
- //
- r.addMenuItem(MdlResource.getS("Copier"), "COPIER", false, KeyEvent.VK_C);
- r.addMenuItem(MdlResource.getS("Couper"), "COUPER", false, KeyEvent.VK_X);
- r.addMenuItem(MdlResource.getS("Coller"), "COLLER", false, KeyEvent.VK_V);
- // r.addMenuItem(MdlResource.getS("Dupliquer" ),"DUPLIQUER" ,false)
- // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK));
- r.addSeparator();
- FSigLib.addSelectionAction(r, null);
- // r.addMenuItem(MdlResource.getS("Remplacer..." ),"REMPLACER"
- // ,false,KeyEvent.VK_R);
- r.addSeparator();
- r.addMenuItem(MdlResource.getS("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2);
- addConsoleMenu(r);
- final BuToolBar tb = getMainToolBar();
- BuActionRemover.removeAction(tb, "COUPER");
- BuActionRemover.removeAction(tb, "COLLER");
- BuActionRemover.removeAction(tb, "COPIER");
- BuActionRemover.removeAction(tb, "DUPLIQUER");
- BuActionRemover.removeAction(tb, "RANGERICONES");
- // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER");
- BuActionRemover.removeAction(tb, "REMPLACER");
+ /* Issu de Fudaa-Prepro
+ final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION");
+ if (r != null) {
+ r.removeAll();
+ r.addMenuItem(MdlResource.getS("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z);
+ r.addMenuItem(MdlResource.getS("Refaire"), "REFAIRE", false).setAccelerator(
+ KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
+ // normalement Ctrl-Y
+ // r.addSeparator();
+ //
+ r.addMenuItem(MdlResource.getS("Copier"), "COPIER", false, KeyEvent.VK_C);
+ r.addMenuItem(MdlResource.getS("Couper"), "COUPER", false, KeyEvent.VK_X);
+ r.addMenuItem(MdlResource.getS("Coller"), "COLLER", false, KeyEvent.VK_V);
+ // r.addMenuItem(MdlResource.getS("Dupliquer" ),"DUPLIQUER" ,false)
+ // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK));
+ r.addSeparator();
+ FSigLib.addSelectionAction(r, null);
+ // r.addMenuItem(MdlResource.getS("Remplacer..." ),"REMPLACER"
+ // ,false,KeyEvent.VK_R);
+ r.addSeparator();
+ r.addMenuItem(MdlResource.getS("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2);
+ addConsoleMenu(r);
+ final BuToolBar tb = getMainToolBar();
+ BuActionRemover.removeAction(tb, "COUPER");
+ BuActionRemover.removeAction(tb, "COLLER");
+ BuActionRemover.removeAction(tb, "COPIER");
+ BuActionRemover.removeAction(tb, "DUPLIQUER");
+ BuActionRemover.removeAction(tb, "RANGERICONES");
+ // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER");
+ BuActionRemover.removeAction(tb, "REMPLACER");
- }*/
+ }*/
/*
* removeAction("COUPER"); removeAction("COLLER"); removeAction("COPIER"); removeAction("DUPLIQUER");
* removeAction("TOUTSELECTIONNER"); removeAction("REMPLACER");
@@ -973,5 +993,4 @@
super.addFrameListLeft();
createProject(true);
}
-
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-05 00:01:30 UTC (rev 8183)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/LayerGridController.java 2013-01-05 00:02:06 UTC (rev 8184)
@@ -21,6 +21,7 @@
import org.fudaa.fudaa.modeleur.LibUtils;
import org.fudaa.fudaa.modeleur.grid.action.GridSetMeshPaintedAction;
import org.fudaa.fudaa.modeleur.grid.action.GridUnsetMeshPaintedAction;
+import org.fudaa.fudaa.modeleur.grid.action.Show3DAction;
import org.fudaa.fudaa.modeleur.resource.MdlResource;
import org.fudaa.fudaa.sig.layer.FSigEditor;
@@ -153,7 +154,9 @@
new GridUnsetMeshPaintedAction(this),
new GridSetMeshPaintedAction(this),
null,
- new ExportGridAction(this)});
+ new ExportGridAction(this),
+ new Show3DAction(this)
+ });
eltLayer.setModele(grid);
eltLayer.repaint();
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-05 00:01:30 UTC (rev 8183)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/MdlCalqueMultiPointEditable.java 2013-01-05 00:02:06 UTC (rev 8184)
@@ -30,6 +30,8 @@
import org.fudaa.fudaa.modeleur.action.CalqueGridTriangleConfigurationAction;
import org.fudaa.fudaa.modeleur.grid.action.CreateIsoLinesAction;
import org.fudaa.fudaa.modeleur.grid.action.DeleteGridAction;
+import org.fudaa.fudaa.modeleur.grid.action.ExportGridAction;
+import org.fudaa.fudaa.modeleur.grid.action.Show3DAction;
import org.fudaa.fudaa.sig.layer.FSigEditor;
/**
@@ -74,7 +76,9 @@
vacts.add(createGridAction.getStopAction());
vacts.add(new DeleteGridAction(layerGridDelegate));
vacts.add(null);
+ vacts.add(new Show3DAction(layerGridDelegate));
vacts.add(new CreateIsoLinesAction(layerGridDelegate));
+ vacts.add(new ExportGridAction(layerGridDelegate));
vacts.add(null);
vacts.add(new CalqueGridTriangleConfigurationAction());
vacts.add(null);
Added: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java (rev 0)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/grid/action/Show3DAction.java 2013-01-05 00:02:06 UTC (rev 8184)
@@ -0,0 +1,75 @@
+/*
+ GPL 2
+ */
+package org.fudaa.fudaa.modeleur.grid.action;
+
+import com.memoire.bu.BuIcon;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import javax.swing.JFrame;
+import org.fudaa.ebli.commun.BJava3DVersionTest;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.ressource.EbliResource;
+import org.fudaa.ebli.volume.ZVue3DPanel;
+import org.fudaa.fudaa.meshviewer.threedim.Mv3DFactory;
+import org.fudaa.fudaa.modeleur.grid.LayerGridController;
+import org.fudaa.fudaa.modeleur.resource.MdlResource;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class Show3DAction extends EbliActionSimple {
+
+ private final LayerGridController delegate;
+ JFrame f_;
+
+ public Show3DAction(final LayerGridController delegate) {
+ super(EbliLib.getS("Afficher la vue 3D"), EbliResource.EBLI.getToolIcon("3d"), "SHOW_3D");
+ this.delegate = delegate;
+ setEnabled(true);
+ super.setDefaultToolTip(EbliLib.getS("Afficher la vue 3D"));
+ super.setUnableToolTip(MdlResource.getS("Le semis doit \xEAtre maill\xE9 et Java3D install\xE9"));
+ }
+
+ public ZVue3DPanel getVue3D() {
+ return (ZVue3DPanel) f_.getContentPane();
+ }
+
+ @Override
+ public void updateStateBeforeShow() {
+ setEnabled(delegate.getGridLayer() != null);
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ if (!BJava3DVersionTest.isJava3DFound()) {
+ delegate.getUI().error(getTitle(), BJava3DVersionTest.getHtmlInstallMessage(true), false);
+ return;
+ }
+ if (delegate.getGridLayer() == null) {
+ delegate.getUI().error(getTitle(), MdlResource.getS("Le semis doit \xEAtre maill\xE9"), false);
+ return;
+ }
+ if (f_ == null) {
+ f_ = new JFrame(super.getTitle() + " : " + delegate.getParentLayer().getTitle());
+ f_.setIconImage(((BuIcon) getIcon()).getImage());
+ f_.addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosed(final WindowEvent _evt) {
+ f_ = null;
+ }
+ });
+ new Mv3DFactory().afficheFrame(f_, delegate.getExportGridData(), null, delegate.getUI());
+ } else {
+ f_.setTitle(super.getTitle() + " : " + delegate.getParentLayer().getTitle());
+ if (f_.getExtendedState() == Frame.ICONIFIED) {
+ f_.setExtendedState(Frame.NORMAL);
+ }
+ f_.toFront();
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|