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: <bma...@us...> - 2016-12-16 16:04:07
|
Revision: 9485
http://sourceforge.net/p/fudaa/svn/9485
Author: bmarchan
Date: 2016-12-16 16:04:05 +0000 (Fri, 16 Dec 2016)
Log Message:
-----------
Ajout des variables systeme __VERSION_APPLICATION + __NOM_PROJET
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-16 09:49:05 UTC (rev 9484)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-16 16:04:05 UTC (rev 9485)
@@ -13,6 +13,7 @@
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
+import java.util.Set;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
@@ -98,9 +99,9 @@
* Constructeur.
* @param _ui Le parent pour la boite de dialogue.
*/
- public PivExportGaugingReportFillValuesPanel(CtuluUI _ui, Collection<PivExportGaugingReportAction.UserCellData> _cells) {
- ArrayList<PivExportGaugingReportAction.UserCellData>cells=new ArrayList<>(_cells);
- cells.sort(new Comparator<PivExportGaugingReportAction.UserCellData>() {
+ public PivExportGaugingReportFillValuesPanel(CtuluUI _ui, Collection<PivExportGaugingReportAction.UserCellData> _userVars, Set<String> _systemVars) {
+ ArrayList<PivExportGaugingReportAction.UserCellData> userVars=new ArrayList<>(_userVars);
+ userVars.sort(new Comparator<PivExportGaugingReportAction.UserCellData>() {
@Override
public int compare(PivExportGaugingReportAction.UserCellData c1, PivExportGaugingReportAction.UserCellData c2) {
@@ -108,9 +109,17 @@
}
});
- setHelpText(PivResource.getS("Les champs de la table sont issus des cases nomm\xE9s du mod\xE8le Excel de rapport\net doivent \xEAtre saisis manuellement"));
+ ArrayList<String> systemVars=new ArrayList<>(_systemVars);
+ systemVars.sort(null);
- mdValues_=new ValuesTableModel(cells);
+ StringBuilder sb=new StringBuilder();
+ sb.append(PivResource.getS("Les champs de la table sont les zones nomm\xE9es inconnues du syst\xE8me,\nissues du mod\xE8le Excel de rapport. Les zones nomm\xE9es connues sont :\n\n"));
+ for (String s : systemVars) {
+ sb.append(s).append("\n");
+ }
+ setHelpText(sb.toString());
+
+ mdValues_=new ValuesTableModel(userVars);
tbValues_=new JTable(mdValues_);
JScrollPane sp=new JScrollPane(tbValues_);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-12-16 09:49:05 UTC (rev 9484)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-12-16 16:04:05 UTC (rev 9485)
@@ -143,6 +143,13 @@
public PivProject getCurrentProject() {
return project;
}
+
+ /**
+ * @return Retourne le nom courant du projet, ou null si le projet n'a pas \xE9t\xE9 sauvegard\xE9.
+ */
+ public File getCurrentProjectFile() {
+ return prjFile;
+ }
/**
* Appel\xE9e quand le projet courant est modifi\xE9.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-16 09:49:05 UTC (rev 9484)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-16 16:04:05 UTC (rev 9485)
@@ -42,6 +42,7 @@
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivShow3DTransectPanel;
import org.fudaa.fudaa.piv.PivUtils;
+import org.fudaa.fudaa.piv.PivVisuPanel;
import org.fudaa.fudaa.piv.io.PivExeLauncher;
import org.fudaa.fudaa.piv.metier.PivComputeParameters;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
@@ -62,7 +63,7 @@
*/
public class PivExportGaugingReportAction extends EbliActionSimple {
- static interface AbstractCellData {
+ public static interface AbstractCellData {
public abstract Object getValue(int _row, int _col);
public abstract int getNbCols();
@@ -70,7 +71,7 @@
public abstract int getNbRows();
}
- static abstract class AbstractScalarCellData implements AbstractCellData {
+ public static abstract class AbstractScalarCellData implements AbstractCellData {
public AbstractScalarCellData() {}
@Override
@@ -119,15 +120,13 @@
CtuluFileChooser fcReport_;
/** Les variables users (inconnues du systeme) du modele Excel. */
HashMap<String,UserCellData> userVars=new HashMap<>();
- /** Toutes les variables correspondantes aux cellules nomm\xE9es. */
- HashMap<String,AbstractCellData> dataVars_ = new HashMap<>();
/**
* Constructeur.
* @param _impl L'implementation.
*/
public PivExportGaugingReportAction(PivImplementation _impl) {
- super(PivResource.getS("Export du rapport de jaugeage..."), null, "EXPORT_GAUGING_REPORT");
+ super(PivResource.getS("Exporter le rapport de jaugeage..."), null, "EXPORT_GAUGING_REPORT");
impl=_impl;
setEnabled(false);
@@ -146,7 +145,7 @@
try {
computeNeededDatas();
- initDataTypes();
+ HashMap<String, AbstractCellData> systemDatas=defineSystemVariables();
String templateDir=System.getProperty(PivPreferences.PIV_TEMPLATES_PATH, System.getProperty("user.dir") + "/templates");
String templateName="template_gauging_" + BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr")) + ".xlsx";
@@ -154,6 +153,7 @@
File ftemplate=new File(templateDir, templateName);
if (!ftemplate.exists()) {
impl.error(PivResource.getS("Erreur mod\xE8le"), PivResource.getS("Le mod\xE8le {0} n'existe pas", ftemplate));
+ return;
}
Workbook wb=new XSSFWorkbook(new FileInputStream(ftemplate));
@@ -175,7 +175,7 @@
cellname=cellname.substring(0, ind);
}
- if (!dataVars_.containsKey(cellname)) {
+ if (!systemDatas.containsKey(cellname)) {
String desc=namedCell.getComment();
if (desc == null || desc.isEmpty())
desc=cellname;
@@ -188,12 +188,14 @@
// Saisie des valeurs depuis la table des cellules nomm\xE9es utilisateur.
if (!userVars.isEmpty()) {
- PivExportGaugingReportFillValuesPanel diValues=new PivExportGaugingReportFillValuesPanel(impl, userVars.values());
+ PivExportGaugingReportFillValuesPanel diValues=new PivExportGaugingReportFillValuesPanel(impl, userVars.values(), systemDatas.keySet());
if (diValues.afficheModale(impl.getFrame(), PivResource.getS("A renseigner")) == JOptionPane.CANCEL_OPTION)
return;
}
- dataVars_.putAll(userVars);
+ HashMap<String,AbstractCellData> allVars = new HashMap<>();
+ allVars.putAll(systemDatas);
+ allVars.putAll(userVars);
// Remplissage des cellules nomm\xE9es du template depuis les datas
@@ -235,7 +237,7 @@
// Ajoute toutes les valeurs de la variable dans les zones nomm\xE9es.
- AbstractCellData cellWrapper=dataVars_.get(cellname);
+ AbstractCellData cellWrapper=allVars.get(cellname);
// Une donn\xE9e de type image.
if (cellWrapper instanceof ImageCellData) {
@@ -245,7 +247,7 @@
if (bytes==null) {
Row r=currentSheet.getRow(firstRow);
Cell c=r.getCell(firstCol);
- c.setCellValue("**No data**");
+ c.setCellValue("-");
}
else {
int ipict=wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
@@ -330,8 +332,11 @@
}
}
- public void initDataTypes() {
- dataVars_.clear();
+ /**
+ * Definit les varaibles connues du systeme.
+ */
+ public HashMap<String, AbstractCellData> defineSystemVariables() {
+ HashMap<String, AbstractCellData> systemVars_=new HashMap<>();
final PivTransect[] transects=impl.getCurrentProject().getTransects();
final PivComputeParameters pivParams = impl.getCurrentProject().getComputeParameters();
@@ -344,32 +349,35 @@
final Double meanArea=globRes.getAverageScalarResult(ResultType.WETTED_AREA);
final Double meanMeanV=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY);
- dataVars_.put("__COEF_VITESSE",new AbstractScalarCellData() {
+ final HashMap<String,Object> imgOptions = new HashMap<>();
+ imgOptions.put(CtuluLibImage.PARAMS_FILL_BACKGROUND_BOOLEAN, Boolean.FALSE);
+
+ systemVars_.put("__COEF_VITESSE",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
// On prend le coef de vitesse du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:""+transects[0].getParams().getSurfaceCoef();
}
});
- dataVars_.put("__CORREL_MAX",new AbstractScalarCellData() {
+ systemVars_.put("__CORREL_MAX",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:""+pivParams.getMaxCorrelation();
}
});
- dataVars_.put("__CORREL_MIN",new AbstractScalarCellData() {
+ systemVars_.put("__CORREL_MIN",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:""+pivParams.getMinCorrelation();
}
});
- dataVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() {
+ systemVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return meanDisch==null ? null:meanDisch+" m\xB3/s";
}
});
- dataVars_.put("__ERREUR_MAX",new AbstractScalarCellData() {
+ systemVars_.put("__ERREUR_MAX",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
if (orthoPoints==null)
@@ -382,82 +390,88 @@
return maxi+" m";
}
});
- dataVars_.put("__HAUTEUR",new AbstractScalarCellData() {
+ systemVars_.put("__HAUTEUR",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getWaterElevation()+" m";
}
});
- dataVars_.put("__IA_M",new AbstractScalarCellData() {
+ systemVars_.put("__IA_M",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return (pivParams==null || orthoParams==null) ? null:(pivParams.getIASize()*orthoParams.getResolution())+" m";
}
});
- dataVars_.put("__IA_PIX",new AbstractScalarCellData() {
+ systemVars_.put("__IA_PIX",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getIASize()+" pix";
}
});
- dataVars_.put("__INTERTEMPS",new AbstractScalarCellData() {
+ systemVars_.put("__INTERTEMPS",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getTimeInterval()+" s";
}
});
- dataVars_.put("__NOMBRE_GRPS", new AbstractScalarCellData() {
+ systemVars_.put("__NOM_PROJET",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
+ return impl.getCurrentProjectFile()==null ? null:impl.getCurrentProjectFile().getName();
+ }
+ });
+ systemVars_.put("__NOMBRE_GRPS", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
return orthoPoints==null ? null:orthoPoints.length+"";
}
});
- dataVars_.put("__NOMBRE_IMAGES", new AbstractScalarCellData() {
+ systemVars_.put("__NOMBRE_IMAGES", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return ""+impl.getCurrentProject().getSrcImageFiles().length;
}
});
- dataVars_.put("__NOMBRE_TRANSECTS", new AbstractScalarCellData() {
+ systemVars_.put("__NOMBRE_TRANSECTS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return transects==null ? null:transects.length+"";
}
});
- dataVars_.put("__NORME_MAX", new AbstractScalarCellData() {
+ systemVars_.put("__NORME_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSmax()+" m/s";
}
});
- dataVars_.put("__NORME_MIN", new AbstractScalarCellData() {
+ systemVars_.put("__NORME_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSmin()+" m/s";
}
});
- dataVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() {
+ systemVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
// On prend le pas du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:transects[0].getParams().getInterpolationStep()+" m";
}
});
- dataVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() {
+ systemVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
// On prend le rayon du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:transects[0].getParams().getRadius()+" m";
}
});
- dataVars_.put("__RESOLUTION", new AbstractScalarCellData() {
+ systemVars_.put("__RESOLUTION", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
// On prend le rayon du premier transect, s'il existe
return orthoParams==null ? null:orthoParams.getResolution()+" m/pix";
}
});
- dataVars_.put("__RESULTATS", new AbstractCellData() {
+ systemVars_.put("__RESULTATS", new AbstractCellData() {
@Override
public String getValue(int _row, int _col) {
if (flowResults==null)
@@ -499,7 +513,7 @@
return transects==null ? 0 : transects.length;
}
});
- dataVars_.put("__SIM_MS", new AbstractScalarCellData() {
+ systemVars_.put("__SIM_MS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
@@ -516,13 +530,13 @@
return null;
}
});
- dataVars_.put("__SIM_PIX", new AbstractScalarCellData() {
+ systemVars_.put("__SIM_PIX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSim()+" pix";
}
});
- dataVars_.put("__SIP_MS", new AbstractScalarCellData() {
+ systemVars_.put("__SIP_MS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
@@ -539,13 +553,13 @@
return null;
}
});
- dataVars_.put("__SIP_PIX", new AbstractScalarCellData() {
+ systemVars_.put("__SIP_PIX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSip()+" pix";
}
});
- dataVars_.put("__SJM_MS", new AbstractScalarCellData() {
+ systemVars_.put("__SJM_MS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
@@ -562,13 +576,13 @@
return null;
}
});
- dataVars_.put("__SJM_PIX", new AbstractScalarCellData() {
+ systemVars_.put("__SJM_PIX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSjm()+" pix";
}
});
- dataVars_.put("__SJP_MS", new AbstractScalarCellData() {
+ systemVars_.put("__SJP_MS", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
@@ -585,100 +599,111 @@
return null;
}
});
- dataVars_.put("__SJP_PIX", new AbstractScalarCellData() {
+ systemVars_.put("__SJP_PIX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSjp()+" pix";
}
});
- dataVars_.put("__VX_MAX", new AbstractScalarCellData() {
+ systemVars_.put("__VERSION_APPLICATION",new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
+ return impl.getInformationsSoftware().version;
+ }
+ });
+ systemVars_.put("__VUE_2D", new ImageCellData() {
+
+ @Override
+ public byte[] getValue(int _row, int _col) {
+ impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW);
+ BufferedImage img=impl.get2dFrame().getVisuPanel().produceImage(imgOptions);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ try {
+ ImageIO.write(img, "png", bos);
+ return bos.toByteArray();
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+ });
+ systemVars_.put("__VUE_3D", new ImageCellData() {
+
+ @Override
+ public byte[] getValue(int _row, int _col) {
+
+ PivShow3DTransectPanel pn=new PivShow3DTransectPanel(impl);
+
+ if (transects != null && transects.length != 0) {
+ int[] isels=new int[transects.length];
+ for (int i=0; i < transects.length; i++) {
+ isels[i]=i;
+ }
+ pn.setSelectedTransects(isels);
+ }
+
+ pn.get3dGraph().setSize(500, 500);
+ BufferedImage img=CtuluLibImage.produceImageForComponent(pn.get3dGraph(),imgOptions);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ try {
+ ImageIO.write(img, "png", bos);
+ return bos.toByteArray();
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+ });
+ systemVars_.put("__VX_MAX", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVxmax()+" m/s";
}
});
- dataVars_.put("__VX_MIN", new AbstractScalarCellData() {
+ systemVars_.put("__VX_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVxmin()+" m/s";
}
});
- dataVars_.put("__VY_MAX", new AbstractScalarCellData() {
+ systemVars_.put("__VY_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVymax()+" m/s";
}
});
- dataVars_.put("__VY_MIN", new AbstractScalarCellData() {
+ systemVars_.put("__VY_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVymin()+" m/s";
}
});
- dataVars_.put("__X_MAX", new AbstractScalarCellData() {
+ systemVars_.put("__X_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getXmax()+" m";
}
});
- dataVars_.put("__X_MIN", new AbstractScalarCellData() {
+ systemVars_.put("__X_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getXmin()+" m";
}
});
- dataVars_.put("__Y_MAX", new AbstractScalarCellData() {
+ systemVars_.put("__Y_MAX", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getYmax()+" m";
}
});
- dataVars_.put("__Y_MIN", new AbstractScalarCellData() {
+ systemVars_.put("__Y_MIN", new AbstractScalarCellData() {
@Override
public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getYmin()+" m";
}
});
- dataVars_.put("__VUE_2D", new ImageCellData() {
-
- @Override
- public byte[] getValue(int _row, int _col) {
- BufferedImage img=impl.get2dFrame().getVisuPanel().produceImage(null);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- ImageIO.write(img, "png", bos);
- return bos.toByteArray();
- }
- catch (IOException e) {
- return null;
- }
- }
- });
- dataVars_.put("__VUE_3D", new ImageCellData() {
-
- @Override
- public byte[] getValue(int _row, int _col) {
- if (transects==null || transects.length==0)
- return null;
-
- int[] isels=new int[transects.length];
- for (int i=0; i<transects.length; i++) {
- isels[i]=i;
- }
- PivShow3DTransectPanel pn=new PivShow3DTransectPanel(impl);
- pn.setSelectedTransects(isels);
- pn.get3dGraph().setSize(500, 500);
- BufferedImage img=CtuluLibImage.produceImageForComponent(pn.get3dGraph(),null);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- ImageIO.write(img, "png", bos);
- return bos.toByteArray();
- }
- catch (IOException e) {
- return null;
- }
- }
- });
+
+ return systemVars_;
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-12-16 09:49:08
|
Revision: 9484
http://sourceforge.net/p/fudaa/svn/9484
Author: bmarchan
Date: 2016-12-16 09:49:05 +0000 (Fri, 16 Dec 2016)
Log Message:
-----------
Export de rapport de jaugeage (2ieme partie)
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/distrib/src/dist/templates/
trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
Added: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
===================================================================
(Binary files differ)
Index: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx 2016-12-13 14:39:50 UTC (rev 9483)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx 2016-12-16 09:49:05 UTC (rev 9484)
Property changes on: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-13 14:39:50 UTC (rev 9483)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-16 09:49:05 UTC (rev 9484)
@@ -26,7 +26,6 @@
import org.fudaa.fudaa.piv.action.PivExportGaugingReportAction;
import com.memoire.bu.BuVerticalLayout;
-import com.memoire.fu.FuLog;
/**
* Un panneau pour remplir les valeurs des cellules nomm\xE9es en vue d'exporter le rapport de jaugeage.
@@ -37,9 +36,9 @@
public class PivExportGaugingReportFillValuesPanel extends CtuluDialogPanel {
class ValuesTableModel extends AbstractTableModel {
- List<PivExportGaugingReportAction.CellExternalData> cells;
+ List<PivExportGaugingReportAction.UserCellData> cells;
- public ValuesTableModel(List<PivExportGaugingReportAction.CellExternalData> _cells) {
+ public ValuesTableModel(List<PivExportGaugingReportAction.UserCellData> _cells) {
cells=_cells;
}
@@ -59,7 +58,7 @@
return cells.get(rowIndex).description;
}
else {
- return cells.get(rowIndex).getValue();
+ return cells.get(rowIndex).getValue(0,0);
}
}
@@ -99,12 +98,12 @@
* Constructeur.
* @param _ui Le parent pour la boite de dialogue.
*/
- public PivExportGaugingReportFillValuesPanel(CtuluUI _ui, Collection<PivExportGaugingReportAction.CellExternalData> _cells) {
- ArrayList<PivExportGaugingReportAction.CellExternalData>cells=new ArrayList<>(_cells);
- cells.sort(new Comparator<PivExportGaugingReportAction.CellExternalData>() {
+ public PivExportGaugingReportFillValuesPanel(CtuluUI _ui, Collection<PivExportGaugingReportAction.UserCellData> _cells) {
+ ArrayList<PivExportGaugingReportAction.UserCellData>cells=new ArrayList<>(_cells);
+ cells.sort(new Comparator<PivExportGaugingReportAction.UserCellData>() {
@Override
- public int compare(PivExportGaugingReportAction.CellExternalData c1, PivExportGaugingReportAction.CellExternalData c2) {
+ public int compare(PivExportGaugingReportAction.UserCellData c1, PivExportGaugingReportAction.UserCellData c2) {
return c1.name.compareTo(c2.name);
}
});
@@ -130,58 +129,4 @@
add(pnValues,BorderLayout.CENTER);
}
-// @Override
-// public void setValue(Object _usedResults) {
-// if (!(_usedResults instanceof boolean[]))
-// throw new IllegalArgumentException("bad type parameter");
-// setSelectedResults((boolean[])_usedResults);
-// }
-//
-// @Override
-// public boolean[] getValue() {
-// return getSelectedResults();
-// }
-
- /**
- * D\xE9finit les resultats s\xE9lectionn\xE9s pour la moyenne.
- * @param _tool L'utilitaire
- */
-// public void setSelectedResults(boolean[] _usedResults) {
-// if (_usedResults==null) return;
-//
-// String[] values=new String[_usedResults.length];
-// for (int i=0; i<_usedResults.length; i++) {
-// values[i]=PivResource.getS("R\xE9sultat : {0}", (i+1));
-// }
-//
-// mdValues_.setData(values);
-//
-// for (int i=0; i<_usedResults.length; i++) {
-// if (_usedResults[i])
-// tbValues_.getTable().getSelectionModel().addSelectionInterval(i, i);
-// }
-//
-// }
-
-// /**
-// * @return Les r\xE9sultats selectionn\xE9s.
-// */
-// public boolean[] getSelectedResults() {
-// boolean[] idSels=new boolean[mdValues_.getRowCount()];
-// int[] sel=tbValues_.getTable().getSelectedRows();
-// for (int i : sel) {
-// idSels[i]=true;
-// }
-//
-// return idSels;
-// }
-
-// @Override
-// public boolean isDataValid() {
-// if (tbValues_.getTable().getSelectedRowCount()==0) {
-// setErrorText(PivResource.getS("Vous devez s\xE9lectionner 1 r\xE9sultat au moins pour la moyenne"));
-// return false;
-// }
-// return true;
-// }
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2016-12-13 14:39:50 UTC (rev 9483)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivShow3DTransectPanel.java 2016-12-16 09:49:05 UTC (rev 9484)
@@ -20,7 +20,7 @@
import org.fudaa.fudaa.piv.metier.PivTransect;
/**
- * Un panneau de saisie des param\xE8tres du transect pour le calcul des d\xE9bits.
+ * Un panneau d'affichage 3D des transects avec leurs vitesses calcul\xE9es.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
@@ -231,6 +231,10 @@
setHelpText(PivResource.getS("Clic gauche : Rotation de la vue\nCtrl+clic gauche : D\xE9placement de la vue\nShift+clic gauche : Zoom de la vue"));
}
+ public EG3dGraph get3dGraph() {
+ return pnGraph_;
+ }
+
public void setSelectedTransects(int... _isels) {
pnGraph_.removeAllDatas();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-13 14:39:50 UTC (rev 9483)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-16 09:49:05 UTC (rev 9484)
@@ -8,22 +8,31 @@
package org.fudaa.fudaa.piv.action;
import java.awt.event.ActionEvent;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.HashMap;
+import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.AreaReference;
+import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.fudaa.ctulu.CtuluLibImage;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ebli.commun.EbliActionSimple;
@@ -31,9 +40,11 @@
import org.fudaa.fudaa.piv.PivImplementation;
import org.fudaa.fudaa.piv.PivPreferences;
import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivShow3DTransectPanel;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.io.PivExeLauncher;
import org.fudaa.fudaa.piv.metier.PivComputeParameters;
+import org.fudaa.fudaa.piv.metier.PivFlowResults;
import org.fudaa.fudaa.piv.metier.PivGlobalFlowResults;
import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
@@ -51,18 +62,34 @@
*/
public class PivExportGaugingReportAction extends EbliActionSimple {
- static abstract class AbstractCellData {
- public AbstractCellData() {}
+ static interface AbstractCellData {
+ public abstract Object getValue(int _row, int _col);
- public abstract String getValue();
+ public abstract int getNbCols();
+
+ public abstract int getNbRows();
}
- public static class CellExternalData extends AbstractCellData {
+ static abstract class AbstractScalarCellData implements AbstractCellData {
+ public AbstractScalarCellData() {}
+
+ @Override
+ public int getNbCols() {
+ return 1;
+ }
+
+ @Override
+ public int getNbRows() {
+ return 1;
+ }
+ }
+
+ public static class UserCellData extends AbstractScalarCellData {
public String name;
public String value;
public String description;
- public CellExternalData(String _name, String _description) {
+ public UserCellData(String _name, String _description) {
super();
name = _name;
description=_description;
@@ -73,17 +100,27 @@
}
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return value;
}
}
+ /**
+ * Un data retournant une image.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+ public abstract static class ImageCellData extends AbstractScalarCellData {
+ @Override
+ public abstract byte[] getValue(int _row, int _col);
+ }
+
PivImplementation impl;
// CtuluDialog diProgress_;
CtuluFileChooser fcReport_;
- /** Les variables inconnues du modele Excel. */
- HashMap<String,CellExternalData> hunknownVars=new HashMap<>();
- HashMap<String,AbstractCellData> dataTypes_ = new HashMap<>();
+ /** Les variables users (inconnues du systeme) du modele Excel. */
+ HashMap<String,UserCellData> userVars=new HashMap<>();
+ /** Toutes les variables correspondantes aux cellules nomm\xE9es. */
+ HashMap<String,AbstractCellData> dataVars_ = new HashMap<>();
/**
* Constructeur.
@@ -106,171 +143,175 @@
return;
}
+ try {
-// // Export des images, eventuellement dans un autre format.
-// CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Export du rapport de jaugeage")) {
-//
-// @Override
-// public void act() {
- try {
-// this.setDesc(PivResource.getS("Export du rapport de jaugeage"));
-// this.setProgression(0);
-
- computeNeededDatas();
- initDataTypes();
+ computeNeededDatas();
+ initDataTypes();
- // Lecture des cellules du template.
- String templateDir=System.getProperty(PivPreferences.PIV_TEMPLATES_PATH,System.getProperty("user.dir")+"/templates");
- String templateName="template_gauging_"+BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr"))+".xlsx";
+ String templateDir=System.getProperty(PivPreferences.PIV_TEMPLATES_PATH, System.getProperty("user.dir") + "/templates");
+ String templateName="template_gauging_" + BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr")) + ".xlsx";
+
+ File ftemplate=new File(templateDir, templateName);
+ if (!ftemplate.exists()) {
+ impl.error(PivResource.getS("Erreur mod\xE8le"), PivResource.getS("Le mod\xE8le {0} n'existe pas", ftemplate));
+ }
+
+ Workbook wb=new XSSFWorkbook(new FileInputStream(ftemplate));
+ CreationHelper ch = wb.getCreationHelper();
+
+ // Le nombre de cellules nomm\xE9es
+ int nbnames=wb.getNumberOfNames();
+
+ // Recup\xE9ration depuis le template des variables utilisateurs.
+
+ for (int i=0; i < nbnames; i++) {
+ Name namedCell=wb.getNameAt(i);
+
+ String cellname=namedCell.getNameName();
+ FuLog.debug(cellname);
+
+ int ind;
+ if ((ind=cellname.indexOf('.')) != -1) {
+ cellname=cellname.substring(0, ind);
+ }
+
+ if (!dataVars_.containsKey(cellname)) {
+ String desc=namedCell.getComment();
+ if (desc == null || desc.isEmpty())
+ desc=cellname;
+
+ if (!userVars.containsKey(cellname))
+ userVars.put(cellname, new UserCellData(cellname, desc));
+ }
+ }
+
+ // Saisie des valeurs depuis la table des cellules nomm\xE9es utilisateur.
+
+ if (!userVars.isEmpty()) {
+ PivExportGaugingReportFillValuesPanel diValues=new PivExportGaugingReportFillValuesPanel(impl, userVars.values());
+ if (diValues.afficheModale(impl.getFrame(), PivResource.getS("A renseigner")) == JOptionPane.CANCEL_OPTION)
+ return;
+ }
+
+ dataVars_.putAll(userVars);
+
+ // Remplissage des cellules nomm\xE9es du template depuis les datas
+
+ HashMap<String, HashMap<String, CellRangeAddress>> rowCol2CellAdress=new HashMap<>();
+
+ for (int i=0; i < nbnames; i++) {
+ Name namedCell=wb.getNameAt(i);
+
+ String cellname=namedCell.getNameName();
+ int ind;
+ if ((ind=cellname.indexOf('.')) != -1) {
+ cellname=cellname.substring(0, ind);
+ }
+
+ // Recuperation la premiere cellule de la zone nomm\xE9e
+
+ AreaReference aref=new AreaReference(namedCell.getRefersToFormula());
+ // Generalement TOP/LEFT
+ CellReference crefTL=aref.getFirstCell();
+ // Generalement BOTTOM/RIGHT
+ CellReference crefBR=aref.getLastCell();
+ Sheet currentSheet=wb.getSheet(crefTL.getSheetName());
+ Drawing drawing = currentSheet.createDrawingPatriarch();
+
+ // Ces map servent a faire le lien entre des cellules et des cellules fusionn\xE9es. Utilis\xE9 pour les tableaux.
+ HashMap<String, CellRangeAddress> rc2CellAdress=rowCol2CellAdress.get(crefTL.getSheetName());
+ if (rc2CellAdress == null) {
+ rc2CellAdress=new HashMap<>();
+ for (int imr=0; imr < currentSheet.getNumMergedRegions(); imr++) {
+ CellRangeAddress cra=currentSheet.getMergedRegion(imr);
+ rc2CellAdress.put(cra.getFirstRow() + "_" + cra.getFirstColumn(), cra);
+ }
+
+ rowCol2CellAdress.put(crefTL.getSheetName(), rc2CellAdress);
+ }
+
+ int firstRow=crefTL.getRow();
+ int firstCol=crefTL.getCol();
+
+ // Ajoute toutes les valeurs de la variable dans les zones nomm\xE9es.
+
+ AbstractCellData cellWrapper=dataVars_.get(cellname);
+
+ // Une donn\xE9e de type image.
+ if (cellWrapper instanceof ImageCellData) {
+ ImageCellData imgWrapper = (ImageCellData)cellWrapper;
+ byte[] bytes=imgWrapper.getValue(0, 0);
- File ftemplate = new File(templateDir, templateName);
- if (!ftemplate.exists()) {
- impl.error(PivResource.getS("Erreur mod\xE8le"), PivResource.getS("Le mod\xE8le {0} n'existe pas",ftemplate));
+ if (bytes==null) {
+ Row r=currentSheet.getRow(firstRow);
+ Cell c=r.getCell(firstCol);
+ c.setCellValue("**No data**");
}
-
- Workbook wb = new XSSFWorkbook(new FileInputStream(ftemplate));
+ else {
+ int ipict=wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
+ ClientAnchor anchor=ch.createClientAnchor();
+ anchor.setRow1(firstRow);
+ anchor.setCol1(firstCol);
+ anchor.setRow2(crefBR.getRow() + 1);
+ anchor.setCol2(crefBR.getCol() + 1);
- try {
- int nbnames=wb.getNumberOfNames();
-
- // Recup\xE9ration des cellules nomm\xE9es non connues
- for (int i=0; i < nbnames; i++) {
- Name namedCell=wb.getNameAt(i);
-
- String cellname = namedCell.getNameName();
- FuLog.debug(cellname);
- int ind;
- if ((ind=cellname.indexOf('.'))!=-1) {
- cellname=cellname.substring(0, ind);
+ drawing.createPicture(anchor, ipict);
+ }
+ }
+
+ // Une donn\xE9e de type valeur.
+ else {
+ int currentRow=firstRow;
+ for (int irow=0; irow < cellWrapper.getNbRows(); irow++) {
+ int currentCol=firstCol;
+ for (int icol=0; icol < cellWrapper.getNbCols(); icol++) {
+ Row r=currentSheet.getRow(currentRow);
+ Cell c=r.getCell(currentCol);
+ if (c != null) {
+ Object val=cellWrapper.getValue(irow, icol);
+ c.setCellValue(val == null ? "-" : val.toString());
}
-
- if (!dataTypes_.containsKey(cellname)) {
- String desc = namedCell.getComment();
- if (desc==null || desc.isEmpty())
- desc = cellname;
-
- CellExternalData val=new CellExternalData(cellname, desc);
- if (!hunknownVars.containsKey(cellname))
- hunknownVars.put(cellname,new CellExternalData(cellname, desc));
+ CellRangeAddress cra=rc2CellAdress.get(currentRow + "_" + currentCol);
+ if (cra == null) {
+ currentCol++;
}
+ else {
+ currentCol+=cra.getLastColumn() - cra.getFirstColumn() + 1;
+ }
}
-
- // Saisie des valeurs depuis la table des valeurs.
- if (!hunknownVars.isEmpty()) {
- PivExportGaugingReportFillValuesPanel diValues=new PivExportGaugingReportFillValuesPanel(impl, hunknownVars.values());
- if (diValues.afficheModale(impl.getFrame(),PivResource.getS("A renseigner"))==JOptionPane.CANCEL_OPTION)
- return;
+ CellRangeAddress cra=rc2CellAdress.get(currentRow + "_" + firstCol);
+ if (cra == null) {
+ currentRow++;
}
-
- dataTypes_.putAll(hunknownVars);
-
- for (int i=0; i < nbnames; i++) {
- Name namedCell=wb.getNameAt(i);
-
- String cellname = namedCell.getNameName();
- int ind;
- if ((ind=cellname.indexOf('.'))!=-1) {
- cellname=cellname.substring(0, ind);
- }
-
- // retrieve the cell at the named range and test its contents
- AreaReference aref=new AreaReference(namedCell.getRefersToFormula());
- CellReference[] crefs=aref.getAllReferencedCells();
- for (int icell=0; icell < crefs.length; icell++) {
- Sheet s=wb.getSheet(crefs[icell].getSheetName());
- Row r=s.getRow(crefs[icell].getRow());
- Cell c=r.getCell(crefs[icell].getCol());
- if (c != null) {
- if (dataTypes_.containsKey(cellname)) {
- c.setCellValue(dataTypes_.get(cellname).getValue());
- }
- else {
- c.setCellValue("#####");
- }
- }
- else {
- FuLog.debug("Null cell");
- }
- }
+ else {
+ currentRow+=cra.getLastRow() - cra.getFirstRow() + 1;
}
}
- finally {
- }
-
- // Ecriture du fichier final
- if (fcReport_==null)
- fcReport_ = new CtuluFileChooser(true);
- fcReport_.setAcceptAllFileFilterUsed(true);
- fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX);
- fcReport_.setMultiSelectionEnabled(false);
- fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export"));
- if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
- return;
- }
-
- wb.write(new FileOutputStream(fcReport_.getSelectedFile()));
-
-
-// readPdfDatas();
-
-// InputStream is=PivResource.class.getResourceAsStream("template_jaugeage_vide.pdf");
-// PdfDocument pdfdoc = new PdfDocument(new PdfReader("C:\\projets\\fudaa\\documents\\contrats\\2016_lspiv-1.5_DTG-IRSTEA\\fournitures\\formulaire_lo.pdf"), new PdfWriter("C:\\projets\\fudaa\\documents\\contrats\\2016_lspiv-1.5_DTG-IRSTEA\\fournitures\\\\out.pdf"));
-//
-// PdfAcroForm form = PdfAcroForm.getAcroForm(pdfdoc, false);
-// Map<String, PdfFormField> fields = form.getFormFields();
-// fields.get("Texte2").setValue("Essai");
-// form.flattenFields();
-
-// for (int ipage=0; ipage < pdfdoc.getNumberOfPages(); ipage++) {
-// PdfCanvas pdfcanvas=new PdfCanvas(pdfdoc, ipage+1);
-// Canvas canvas=new Canvas(pdfcanvas, pdfdoc, pdfdoc.getPage(ipage+1).getPageSize());
-// canvas.setFontSize(10);;
-//
-// for (AbstractPdfData data : getPdfDatas(ipage + 1)) {
-// canvas.showTextAligned(data.getValue(), data.posX, data.posY, TextAlignment.LEFT);
-// }
-// canvas.close();
-// }
-// pdfdoc.close();
-// Document doc = new Document(pdfdoc);
-// doc.setFixedPosition(0, 0, 200);
-// doc.add(new Paragraph("Hello"));
-// doc.close();
-
-// if (this.isStopRequested())
-// return;
}
- catch (Exception e) {
- e.printStackTrace();
- }
-// finally {
-// diProgress_.dispose();
-// }
-// }
-// };
+ }
-// PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
-// diProgress_ = pnProgress_.createDialog(impl.getParentComponent());
-// diProgress_.setOption(CtuluDialog.ZERO_OPTION);
-// diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
-// diProgress_.setTitle(r.getName());
-//
-// r.start();
-// diProgress_.afficheDialogModal();
+ // Ecriture du fichier final
+
+ if (fcReport_ == null)
+ fcReport_=new CtuluFileChooser(true);
+ fcReport_.setAcceptAllFileFilterUsed(true);
+ fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX);
+ fcReport_.setMultiSelectionEnabled(false);
+ fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export"));
+ if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
+ return;
+ }
+
+ wb.write(new FileOutputStream(fcReport_.getSelectedFile()));
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
}
-
-// public List<AbstractCellData> getPdfDatas(int _pageNumber) {
-// List<AbstractCellData> ret = new ArrayList<>();
-//
-// for (AbstractCellData data : datas_) {
-// if (data.pageNumber==_pageNumber) {
-// ret.add(data);
-// }
-// }
-//
-// return ret;
-// }
+ /**
+ * Calcule les donn\xE9es non stock\xE9es dans le projet, necessaires \xE0 la r\xE9alisation du template.
+ */
protected void computeNeededDatas() {
// Calcul des erreurs
if (impl.getCurrentProject().getOrthoPoints() != null) {
@@ -290,42 +331,47 @@
}
public void initDataTypes() {
- dataTypes_.clear();
+ dataVars_.clear();
final PivTransect[] transects=impl.getCurrentProject().getTransects();
final PivComputeParameters pivParams = impl.getCurrentProject().getComputeParameters();
- final PivGlobalFlowResults flowResults = new PivGlobalFlowResults(impl.getCurrentProject().getFlowResults());
+ final PivFlowResults[] flowResults = impl.getCurrentProject().getFlowResults();
final PivOrthoPoint[] orthoPoints = impl.getCurrentProject().getOrthoPoints();
final PivOrthoParameters orthoParams = impl.getCurrentProject().getOrthoParameters();
- dataTypes_.put("__COEF_VITESSE",new AbstractCellData() {
+ final PivGlobalFlowResults globRes = new PivGlobalFlowResults(flowResults);
+ final Double meanDisch=globRes.getAverageScalarResult(ResultType.DISCHARGE);
+ final Double meanArea=globRes.getAverageScalarResult(ResultType.WETTED_AREA);
+ final Double meanMeanV=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY);
+
+ dataVars_.put("__COEF_VITESSE",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
// On prend le coef de vitesse du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:""+transects[0].getParams().getSurfaceCoef();
}
});
- dataTypes_.put("__CORREL_MAX",new AbstractCellData() {
+ dataVars_.put("__CORREL_MAX",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:""+pivParams.getMaxCorrelation();
}
});
- dataTypes_.put("__CORREL_MIN",new AbstractCellData() {
+ dataVars_.put("__CORREL_MIN",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:""+pivParams.getMinCorrelation();
}
});
- dataTypes_.put("__DEBIT_MOYEN",new AbstractCellData() {
+ dataVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() {
@Override
- public String getValue() {
- return flowResults.getAverageScalarResult(ResultType.DISCHARGE)==null ? null:flowResults.getAverageScalarResult(ResultType.DISCHARGE)+" m\xB3/s";
+ public String getValue(int _row, int _col) {
+ return meanDisch==null ? null:meanDisch+" m\xB3/s";
}
});
- dataTypes_.put("__ERREUR_MAX",new AbstractCellData() {
+ dataVars_.put("__ERREUR_MAX",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
if (orthoPoints==null)
return null;
@@ -336,84 +382,126 @@
return maxi+" m";
}
});
- dataTypes_.put("__HAUTEUR",new AbstractCellData() {
+ dataVars_.put("__HAUTEUR",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getWaterElevation()+" m";
}
});
- dataTypes_.put("__IA_M",new AbstractCellData() {
+ dataVars_.put("__IA_M",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return (pivParams==null || orthoParams==null) ? null:(pivParams.getIASize()*orthoParams.getResolution())+" m";
}
});
- dataTypes_.put("__IA_PIX",new AbstractCellData() {
+ dataVars_.put("__IA_PIX",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getIASize()+" pix";
}
});
- dataTypes_.put("__INTERTEMPS",new AbstractCellData() {
+ dataVars_.put("__INTERTEMPS",new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getTimeInterval()+" s";
}
});
- dataTypes_.put("__NOMBRE_GRPS", new AbstractCellData() {
+ dataVars_.put("__NOMBRE_GRPS", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoPoints==null ? null:orthoPoints.length+"";
}
});
- dataTypes_.put("__NOMBRE_IMAGES", new AbstractCellData() {
+ dataVars_.put("__NOMBRE_IMAGES", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return ""+impl.getCurrentProject().getSrcImageFiles().length;
}
});
- dataTypes_.put("__NOMBRE_TRANSECTS", new AbstractCellData() {
+ dataVars_.put("__NOMBRE_TRANSECTS", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return transects==null ? null:transects.length+"";
}
});
- dataTypes_.put("__NORME_MAX", new AbstractCellData() {
+ dataVars_.put("__NORME_MAX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSmax()+" m/s";
}
});
- dataTypes_.put("__NORME_MIN", new AbstractCellData() {
+ dataVars_.put("__NORME_MIN", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSmin()+" m/s";
}
});
- dataTypes_.put("__PAS_INTERPOLATION", new AbstractCellData() {
+ dataVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
// On prend le pas du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:transects[0].getParams().getInterpolationStep()+" m";
}
});
- dataTypes_.put("__RAYON_RECHERCHE", new AbstractCellData() {
+ dataVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
// On prend le rayon du premier transect, s'il existe
return (transects==null || transects.length==0) ? null:transects[0].getParams().getRadius()+" m";
}
});
- dataTypes_.put("__RESOLUTION", new AbstractCellData() {
+ dataVars_.put("__RESOLUTION", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
// On prend le rayon du premier transect, s'il existe
return orthoParams==null ? null:orthoParams.getResolution()+" m/pix";
}
});
- dataTypes_.put("__SIM_MS", new AbstractCellData() {
+ dataVars_.put("__RESULTATS", new AbstractCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
+ if (flowResults==null)
+ return null;
+
+ switch (_col) {
+ case 0:
+ default:
+ // Num\xE9ro de transect
+ return _row+1+"";
+ case 1:
+ // D\xE9bit total
+ return flowResults[_row].getDischarge()+"";
+ case 2:
+ // Ecart debit % moyenne
+ return ((flowResults[_row].getDischarge()-meanDisch)/meanDisch*100)+"";
+ case 3:
+ // Aire mouill\xE9e
+ return flowResults[_row].getWettedArea()+"";
+ case 4:
+ // Ecart aire mouill\xE9e % moyenne
+ return ((flowResults[_row].getWettedArea()-meanArea)/meanArea*100)+"";
+ case 5:
+ // Vitese moyenne
+ return flowResults[_row].getMeanVelocity()+"";
+ case 6:
+ // Ecart vitesse moyenne % moyenne
+ return ((flowResults[_row].getMeanVelocity()-meanMeanV)/meanMeanV*100)+"";
+ }
+ }
+
+ @Override
+ public int getNbCols() {
+ return 7;
+ }
+
+ @Override
+ public int getNbRows() {
+ return transects==null ? 0 : transects.length;
+ }
+ });
+ dataVars_.put("__SIM_MS", new AbstractScalarCellData() {
+ @Override
+ public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
double val;
if (pivParams.getTimeInterval()==0) {
@@ -428,15 +516,15 @@
return null;
}
});
- dataTypes_.put("__SIM_PIX", new AbstractCellData() {
+ dataVars_.put("__SIM_PIX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSim()+" pix";
}
});
- dataTypes_.put("__SIP_MS", new AbstractCellData() {
+ dataVars_.put("__SIP_MS", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
double val;
if (pivParams.getTimeInterval()==0) {
@@ -451,15 +539,15 @@
return null;
}
});
- dataTypes_.put("__SIP_PIX", new AbstractCellData() {
+ dataVars_.put("__SIP_PIX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSip()+" pix";
}
});
- dataTypes_.put("__SJM_MS", new AbstractCellData() {
+ dataVars_.put("__SJM_MS", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
double val;
if (pivParams.getTimeInterval()==0) {
@@ -474,15 +562,15 @@
return null;
}
});
- dataTypes_.put("__SJM_PIX", new AbstractCellData() {
+ dataVars_.put("__SJM_PIX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSjm()+" pix";
}
});
- dataTypes_.put("__SJP_MS", new AbstractCellData() {
+ dataVars_.put("__SJP_MS", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
if (orthoParams!=null && pivParams!=null) {
double val;
if (pivParams.getTimeInterval()==0) {
@@ -497,86 +585,102 @@
return null;
}
});
- dataTypes_.put("__SJP_PIX", new AbstractCellData() {
+ dataVars_.put("__SJP_PIX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getSjp()+" pix";
}
});
- dataTypes_.put("__VX_MAX", new AbstractCellData() {
+ dataVars_.put("__VX_MAX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVxmax()+" m/s";
}
});
- dataTypes_.put("__VX_MIN", new AbstractCellData() {
+ dataVars_.put("__VX_MIN", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVxmin()+" m/s";
}
});
- dataTypes_.put("__VY_MAX", new AbstractCellData() {
+ dataVars_.put("__VY_MAX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVymax()+" m/s";
}
});
- dataTypes_.put("__VY_MIN", new AbstractCellData() {
+ dataVars_.put("__VY_MIN", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return pivParams==null ? null:pivParams.getVymin()+" m/s";
}
});
- dataTypes_.put("__X_MAX", new AbstractCellData() {
+ dataVars_.put("__X_MAX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getXmax()+" m";
}
});
- dataTypes_.put("__X_MIN", new AbstractCellData() {
+ dataVars_.put("__X_MIN", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getXmin()+" m";
}
});
- dataTypes_.put("__Y_MAX", new AbstractCellData() {
+ dataVars_.put("__Y_MAX", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getYmax()+" m";
}
});
- dataTypes_.put("__Y_MIN", new AbstractCellData() {
+ dataVars_.put("__Y_MIN", new AbstractScalarCellData() {
@Override
- public String getValue() {
+ public String getValue(int _row, int _col) {
return orthoParams==null ? null:orthoParams.getYmin()+" m";
}
});
+ dataVars_.put("__VUE_2D", new ImageCellData() {
+
+ @Override
+ public byte[] getValue(int _row, int _col) {
+ BufferedImage img=impl.get2dFrame().getVisuPanel().produceImage(null);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ try {
+ ImageIO.write(img, "png", bos);
+ return bos.toByteArray();
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+ });
+ dataVars_.put("__VUE_3D", new ImageCellData() {
+
+ @Override
+ public byte[] getValue(int _row, int _col) {
+ if (transects==null || transects.length==0)
+ return null;
+
+ int[] isels=new int[transects.length];
+ for (int i=0; i<transects.length; i++) {
+ isels[i]=i;
+ }
+ PivShow3DTransectPanel pn=new PivShow3DTransectPanel(impl);
+ pn.setSelectedTransects(isels);
+ pn.get3dGraph().setSize(500, 500);
+ BufferedImage img=CtuluLibImage.produceImageForComponent(pn.get3dGraph(),null);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ try {
+ ImageIO.write(img, "png", bos);
+ return bos.toByteArray();
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+ });
}
-// public void readPdfDatas() {
-// datas_.clear();
-// datas_.add(new CellExternalData(100, 761, "CodeStation", DataType.EXTERNAL, 1, "Q0244"));
-// datas_.add(new CellExternalData(100, 747, "NomStation", DataType.EXTERNAL, 1, "Pont de la Draye"));
-// datas_.add(new CellExternalData(410, 761, "NumMesure", DataType.EXTERNAL, 1, "172"));
-// datas_.add(new CellExternalData(410, 747, "DateMesure", DataType.EXTERNAL, 1, "27/08/2015 15:52"));
-//
-// datas_.add(new CellExternalData(130, 702, "MesurePar", DataType.EXTERNAL, 1, "R. Durand"));
-// datas_.add(new CellExternalData(130, 688, "DepouillePar", DataType.EXTERNAL, 1, "T. Content"));
-//
-// datas_.add(new CellExternalData(100, 761, "CodeStation", DataType.EXTERNAL, 2, "Q0244"));
-// datas_.add(new CellExternalData(100, 747, "NomStation", DataType.EXTERNAL, 2, "Pont de la Draye"));
-// datas_.add(new CellExternalData(410, 761, "NumMesure", DataType.EXTERNAL, 2, "172"));
-// datas_.add(new CellExternalData(410, 747, "DateMesure", DataType.EXTERNAL, 2, "27/08/2015 15:52"));
-//
-// datas_.add(new AbstractCellData(130, 716, "Hauteur", DataType.EXTERNAL, 1) {
-//
-// @Override
-// public String getValue() {
-// return impl.getCurrentProject().getOrthoParameters().getWaterElevation()+" m";
-// }
-// });
-// }
-
/**
* @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 23:47:46
|
Revision: 9480
http://sourceforge.net/p/fudaa/svn/9480
Author: deniger
Date: 2016-12-05 23:47:43 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/perspective/PerspectiveServiceOtfa.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/perspective/PerspectiveServiceOtfa.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/perspective/PerspectiveServiceOtfa.java 2016-12-05 23:25:40 UTC (rev 9479)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/perspective/PerspectiveServiceOtfa.java 2016-12-05 23:47:43 UTC (rev 9480)
@@ -53,7 +53,7 @@
/**
* appele si un fichier OTFA est totalement chargé ou décharge.
- * @param ev
+ * @param ev event
*/
@Override
public void resultChanged(LookupEvent ev) {
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-12-05 23:25:40 UTC (rev 9479)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-12-05 23:47:43 UTC (rev 9480)
@@ -42,7 +42,7 @@
/**
* Service principal pour la perspective OTFA: permet de gérer complètement le cycle de vie d'une campagne: ouverture, modification, validation,
* sauvegarde et fermeture.<br>
- * <table border="1" style="text-align:center">
+ * <table style="border:1px solid black" summary="lookups">
* <tr>
* <th>Lookup</th>
* <th>Commentaire</th>
@@ -409,9 +409,9 @@
}
/**
- * Ouverture d'une campagne. Si campagne en cours, opération de sauvegarde et fermeture lancée. Si ok -> création.
+ * Ouverture d'une campagne. Si campagne en cours, opération de sauvegarde et fermeture lancée. Si ok alors création.
*
- * @param toOpen
+ * @param toOpen fichier a ouvrir
*/
public void open(File toOpen) {
configurationManagerService.reloadAll();
@@ -496,7 +496,7 @@
* Met à jour l'état modifié de la campagne et lance une validation. Si la modification vient d'un noeud, le sélectionne à nouveau afin de conserver
* la sélection après édition. voir https://fudaa-project.atlassian.net/browse/CRUE-654
*
- * @param evt
+ * @param evt event
*/
@Override
public void propertyChange(PropertyChangeEvent evt) {
@@ -546,7 +546,7 @@
/**
* Utiliser pour mettre à jour la selection après l'edition d'une ligne
*
- * @param mgr
+ * @param mgr ExplorerManager
*/
public void setExplorerManager(ExplorerManager mgr) {
this.explorerManager = mgr;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 23:25:42
|
Revision: 9479
http://sourceforge.net/p/fudaa/svn/9479
Author: deniger
Date: 2016-12-05 23:25:40 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-12-05 22:54:45 UTC (rev 9478)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-12-05 23:25:40 UTC (rev 9479)
@@ -40,10 +40,47 @@
import org.openide.util.lookup.ServiceProvider;
/**
- * Service principal pour la perspective OTFA.
+ * Service principal pour la perspective OTFA: permet de gérer complètement le cycle de vie d'une campagne: ouverture, modification, validation,
+ * sauvegarde et fermeture.<br>
+ * <table border="1" style="text-align:center">
+ * <tr>
+ * <th>Lookup</th>
+ * <th>Commentaire</th>
+ * <th>méthode utilisant le lookup</th>
+ * </tr>
+ * <tr>
+ * <td>{@link org.fudaa.fudaa.crue.otfa.service.OtfaState}</td>
+ * <td>
+ * Indique si une campagne est ouverte ou pas (<code>OtfaState.OPENED</code>)<br>
+ * utilisé par le service {@link org.fudaa.fudaa.crue.otfa.perspective.PerspectiveServiceOtfa} pour réagir à la fin du chargement d'une campagne et modifié l'état de la perspective
+ * </td>
+ * <td></td>
+ * </tr>
+ * <tr>
+ * <td>{@link org.fudaa.fudaa.crue.otfa.node.OtfaCampagneNode}</td>
+ * <td> Le node principal. Utilisé par la vue pour construire la tableau (Outline) et les actions</td>
+ * <td><code>{@link #getNodes()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link org.fudaa.fudaa.crue.otfa.process.OtfaCampagneContainer}</td>
+ * <td> Le conteneur complet de la campagne</td>
+ * <td><code>{@link #getCurrentOTFA()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link org.fudaa.ctulu.CtuluLogGroup}</td>
+ * <td>permet de connaître l'état de validation de la campagne en cours.<br>
+ * Mis à jour par la méthode {@link #validate()}.</td>
+ * <td><code>{@link #getCurrentValidationState()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>Boolean</td>
+ * <td>Permet de connaître l'état "modifié" de la campagne</td>
+ * <td><code>{@link #isModified()}</code></td>
+ * </tr>
+ * </table>
*
- * @see https://fudaa-project.atlassian.net/wiki/display/CRUE/Services+Crue+UI+OTFA
*
+ *
* @author deniger
*/
@ServiceProvider(service = OtfaService.class)
@@ -287,7 +324,7 @@
/**
* @param result les resultats à charger après le lancement d'une campagne. Les résulats sont chargés dans un thread à part via
- * {@link org.fudaa.fudaa.crue.otfa.service.LaunchOtfaCampagneRunner#run}
+ * {@link org.fudaa.fudaa.crue.otfa.service.LaunchOtfaCampagneRunner#run}
* @see org.fudaa.fudaa.crue.otfa.service.LaunchOtfaCampagneRunner#run
*/
void setResultat(RTFAResultLines result) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:54:47
|
Revision: 9478
http://sourceforge.net/p/fudaa/svn/9478
Author: deniger
Date: 2016-12-05 22:54:45 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java 2016-12-05 22:47:40 UTC (rev 9477)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java 2016-12-05 22:54:45 UTC (rev 9478)
@@ -58,6 +58,7 @@
new OpenEMHAction.NewFrame(ctx),
null,
res.getSigEditAction(),
+ null,
res.getEditor().getExportWithNameAction(), res.getEditor().getExportAction(),
null,
res.getEditor().getActionDelete(),
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java 2016-12-05 22:47:40 UTC (rev 9477)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceController.java 2016-12-05 22:54:45 UTC (rev 9478)
@@ -47,6 +47,8 @@
new OpenEMHAction.NewFrame(ctx),
null,
res.getSigEditAction(),
+ null,
+ res.getEditor().getExportWithNameAction(),
res.getEditor().getExportAction(),
null,
res.getEditor().getActionDelete(),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:47:42
|
Revision: 9477
http://sourceforge.net/p/fudaa/svn/9477
Author: deniger
Date: 2016-12-05 22:47:40 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:45:57 UTC (rev 9476)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:47:40 UTC (rev 9477)
@@ -1,11 +1,19 @@
package org.fudaa.fudaa.crue.planimetry.controller;
+import gnu.trove.TIntArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.fudaa.ctulu.gis.GISZoneCollectionGeometry;
import org.fudaa.ctulu.gis.GISZoneCollectionPoint;
import org.fudaa.dodico.crue.common.transformer.ToStringInternationalizable;
import org.fudaa.dodico.crue.metier.emh.EMH;
+import org.fudaa.dodico.crue.metier.emh.EnumCatEMH;
+import org.fudaa.dodico.crue.metier.emh.EnumSectionType;
+import org.fudaa.dodico.crue.metier.emh.RelationEMHSectionDansBranche;
+import org.fudaa.dodico.crue.metier.helper.EMHHelper;
import org.fudaa.ebli.calque.edition.ZModelePointEditable;
import org.fudaa.ebli.commun.EbliActionInterface;
import org.fudaa.fudaa.crue.planimetry.PlanimetryVisuPanel;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:46:00
|
Revision: 9476
http://sourceforge.net/p/fudaa/svn/9476
Author: deniger
Date: 2016-12-05 22:45:57 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:43:09 UTC (rev 9475)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:45:57 UTC (rev 9476)
@@ -6,6 +6,7 @@
import org.fudaa.ctulu.gis.GISZoneCollectionPoint;
import org.fudaa.dodico.crue.common.transformer.ToStringInternationalizable;
import org.fudaa.dodico.crue.metier.emh.EMH;
+import org.fudaa.ebli.calque.edition.ZModelePointEditable;
import org.fudaa.ebli.commun.EbliActionInterface;
import org.fudaa.fudaa.crue.planimetry.PlanimetryVisuPanel;
import org.fudaa.fudaa.crue.planimetry.action.OpenEMHAction;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:43:12
|
Revision: 9475
http://sourceforge.net/p/fudaa/svn/9475
Author: deniger
Date: 2016-12-05 22:43:09 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisEditor.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryVisuPanel.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerBrancheController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerCasierController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/Bundle.properties
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisEditor.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisEditor.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryGisEditor.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -3,9 +3,13 @@
*/
package org.fudaa.fudaa.crue.planimetry;
+import com.memoire.bu.BuResource;
+import java.awt.event.ActionEvent;
import javax.swing.JComponent;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.crue.common.services.SysdocUrlBuilder;
import org.fudaa.fudaa.sig.layer.FSigEditor;
@@ -15,6 +19,8 @@
*/
public class PlanimetryGisEditor extends FSigEditor {
+ private EbliActionSimple exportWithNameAction;
+
public PlanimetryGisEditor(ZEbliCalquesPanel _panel) {
super(_panel, new PlanimetrySceneEditor(_panel.getScene(), _panel));
setExportWithId(true);
@@ -28,7 +34,42 @@
@Override
protected void configureEditorPanel(JComponent jc) {
super.configureEditorPanel(jc);
- SysdocUrlBuilder.installHelpShortcut(jc, SysdocUrlBuilder.getDialogHelpCtxId("bdlEditerDonneesGeolocalisation",null));
+ SysdocUrlBuilder.installHelpShortcut(jc, SysdocUrlBuilder.getDialogHelpCtxId("bdlEditerDonneesGeolocalisation", null));
}
+ /**
+ *
+ * @return une action qui utilise le nom de l'attribut dans l'export. Permet d'etre compatible avec les anciennes versions de GeoGama
+ */
+ public EbliActionSimple getExportWithNameAction() {
+ if (exportWithNameAction == null) {
+ exportWithNameAction = new ExportWithNameAction();
+ }
+ return exportWithNameAction;
+ }
+
+ private class ExportWithNameAction extends EbliActionSimple {
+
+ protected ExportWithNameAction() {
+ super(org.openide.util.NbBundle.getMessage(PlanimetryGisEditor.class, "exportLayerWithName.actionName"), BuResource.BU.getIcon("exporter"),
+ "GIS_NAME_EXPORT");
+ setDefaultToolTip(org.openide.util.NbBundle.getMessage(PlanimetryGisEditor.class, "exportLayerWithName.tooltip"));
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ exportSelectedLayer(false);
+ }
+
+ @Override
+ public void updateStateBeforeShow() {
+ super.setEnabled(canExportSelectedLayer());
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return FudaaLib.getS("Sélectionner un calque non vide");
+ }
+ }
+
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryVisuPanel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryVisuPanel.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/PlanimetryVisuPanel.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -86,25 +86,6 @@
}
}
- private Action createAction(final String cmd, final KeyStroke ks) {
- Action action = new AbstractAction(cmd) {
- @Override
- public void actionPerformed(ActionEvent e) {
- PlanimetryVisuPanel.this.actionPerformed(new ActionEvent(PlanimetryVisuPanel.this, 0, cmd));
- }
- };
- action.putValue(Action.ACTION_COMMAND_KEY, cmd);
- action.putValue(Action.ACCELERATOR_KEY, ks);
- return action;
- }
-
- public final void installSelectionShortcuts() {
- Action selectAll = createAction("TOUTSELECTIONNER", KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
- Action invAction = createAction("INVERSESELECTION", KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_MASK));
- Action clearAction = createAction("CLEARSELECTION", KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
- EbliLib.updateMapKeyStroke(this, new Action[]{selectAll, invAction, clearAction});
- }
-
public static void addSelectionAction(final BuMenu _menu, final boolean _enable, ActionListener _l) {
BuMenuItem it = _menu.addMenuItem(BuResource.BU.getString("Tout sélectionner"), "TOUTSELECTIONNER", false, KeyEvent.VK_A);
it.setEnabled(_enable);
@@ -158,6 +139,30 @@
setAddNbSelectionInInfo(true);
}
+ private Action createAction(final String cmd, final KeyStroke ks) {
+ Action action = new AbstractAction(cmd) {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ PlanimetryVisuPanel.this.actionPerformed(new ActionEvent(PlanimetryVisuPanel.this, 0, cmd));
+ }
+ };
+ action.putValue(Action.ACTION_COMMAND_KEY, cmd);
+ action.putValue(Action.ACCELERATOR_KEY, ks);
+ return action;
+ }
+
+ @Override
+ public PlanimetryGisEditor getEditor() {
+ return (PlanimetryGisEditor) super.getEditor();
+ }
+
+ public final void installSelectionShortcuts() {
+ Action selectAll = createAction("TOUTSELECTIONNER", KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
+ Action invAction = createAction("INVERSESELECTION", KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_MASK));
+ Action clearAction = createAction("CLEARSELECTION", KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
+ EbliLib.updateMapKeyStroke(this, new Action[]{selectAll, invAction, clearAction});
+ }
+
public PlanimetryVisuPanelConfigurer getConfigurer() {
return configurer;
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerBrancheController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerBrancheController.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerBrancheController.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -106,7 +106,9 @@
null,
res.getSigEditAction(),
null,
+ res.getEditor().getExportWithNameAction(),
res.getEditor().getExportAction(),
+ null,
helper.getController().getProjectEMHOnSIGAction(),
helper.getController().getTraceProfilAttachedToBrancheAction(),
null,
@@ -235,7 +237,6 @@
return brancheUpdatingFromPoint;
}
-
public void setBrancheUidUpdatingFromPoint() {
brancheUpdatingFromPoint = true;
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerCasierController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerCasierController.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerCasierController.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -48,6 +48,7 @@
null,
res.getSigEditAction(),
null,
+ res.getEditor().getExportWithNameAction(),
res.getEditor().getExportAction(),
null,
res.getEditor().getActionDelete(),
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerNodeController.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -54,16 +54,16 @@
nodeController.layer.setName(PlanimetryController.NAME_CQ_NODE);
nodeController.layer.setTitle(NbBundle.getMessage(PlanimetryControllerBuilder.class, PlanimetryController.NAME_CQ_NODE));
nodeController.layer.setActions(new EbliActionInterface[]{
- new OpenEMHAction.Reopen(ctx),
- new OpenEMHAction.NewFrame(ctx),
- null,
- res.getSigEditAction(),
- res.getEditor().getExportAction(),
- null,
- res.getEditor().getActionDelete(),
- res.getPlanimetryVisuController().getDeleteCascade(),
- null,
- res.createFindAction(nodeController.layer)});
+ new OpenEMHAction.Reopen(ctx),
+ new OpenEMHAction.NewFrame(ctx),
+ null,
+ res.getSigEditAction(),
+ res.getEditor().getExportWithNameAction(), res.getEditor().getExportAction(),
+ null,
+ res.getEditor().getActionDelete(),
+ res.getPlanimetryVisuController().getDeleteCascade(),
+ null,
+ res.createFindAction(nodeController.layer)});
ctx.controllersByName.put(PlanimetryController.NAME_CQ_NODE, nodeController);
return nodeController;
}
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerSectionController.java 2016-12-05 22:43:09 UTC (rev 9475)
@@ -1,20 +1,11 @@
package org.fudaa.fudaa.crue.planimetry.controller;
-import gnu.trove.TIntArrayList;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import org.fudaa.ctulu.gis.GISZoneCollectionGeometry;
import org.fudaa.ctulu.gis.GISZoneCollectionPoint;
import org.fudaa.dodico.crue.common.transformer.ToStringInternationalizable;
import org.fudaa.dodico.crue.metier.emh.EMH;
-import org.fudaa.dodico.crue.metier.emh.EnumCatEMH;
-import org.fudaa.dodico.crue.metier.emh.EnumSectionType;
-import org.fudaa.dodico.crue.metier.emh.RelationEMHSectionDansBranche;
-import org.fudaa.dodico.crue.metier.helper.EMHHelper;
-import org.fudaa.ebli.calque.edition.ZModelePointEditable;
import org.fudaa.ebli.commun.EbliActionInterface;
import org.fudaa.fudaa.crue.planimetry.PlanimetryVisuPanel;
import org.fudaa.fudaa.crue.planimetry.action.OpenEMHAction;
@@ -46,6 +37,7 @@
new OpenEMHAction.NewFrame(ctx),
null,
res.getSigEditAction(),
+ res.getEditor().getExportWithNameAction(),
res.getEditor().getExportAction(),
null,
res.getEditor().getActionDelete(),
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/Bundle.properties 2016-12-05 22:42:46 UTC (rev 9474)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/resources/org/fudaa/fudaa/crue/planimetry/Bundle.properties 2016-12-05 22:43:09 UTC (rev 9475)
@@ -23,3 +23,5 @@
accroche.casier=Accroche: Casier {0}, sommet {1}
accroche.section=Accroche: Section {0}
+exportLayerWithName.actionName=Exporter (Compatible GeoGama)
+exportLayerWithName.tooltip=Exporter les donn\u00e9es dans un format compatible avec GeoGama
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:42:48
|
Revision: 9474
http://sourceforge.net/p/fudaa/svn/9474
Author: deniger
Date: 2016-12-05 22:42:46 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
correction sur le parcours de listes
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java 2016-12-05 22:41:53 UTC (rev 9473)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java 2016-12-05 22:42:46 UTC (rev 9474)
@@ -1,6 +1,7 @@
package org.fudaa.dodico.crue.projet.otfa;
import java.io.File;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -67,7 +68,7 @@
CtuluLogGroup logGroup = new CtuluLogGroup(BusinessMessages.RESOURCE_BUNDLE);
logGroup.setDescription("otfa.validator.log");
CtuluLog prevalidation = logGroup.createNewLog("otfa.validator.prevalidation.log");
- List<OtfaCampagneLine> lines = campagne.getLines();
+ List<OtfaCampagneLine> lines = new ArrayList(campagne.getLines());
Map<Integer, CtuluLog> logsByLineId = new HashMap<>();
for (OtfaCampagneLine otfaCampagneLine : lines) {
CtuluLog logi = logGroup.createNewLog("otfa.validator.logDescription");
@@ -160,7 +161,8 @@
* @return les logs de la validation
*/
void validAllEtuExist(OtfaCampagne campagne, Map<Integer, CtuluLog> logsByLineId) {
- for (OtfaCampagneLine line : campagne.getLines()) {
+ final List<OtfaCampagneLine> lines = new ArrayList<>(campagne.getLines());
+ for (OtfaCampagneLine line : lines) {
CtuluLog log = logsByLineId.get(line.getIndice());
OtfaCampagneItem item = line.getReference();
File etuFile = item.getEtuFile(campagne.getOtfaDir());
@@ -219,8 +221,9 @@
*/
void validateXsdCompatible(OtfaCampagne campagne, Map<Integer, CtuluLog> logsByLineId) {
Map<File, String> xsdVersionByEtuFile = new HashMap<>();
+ final List<OtfaCampagneLine> lines = new ArrayList(campagne.getLines());
- for (OtfaCampagneLine line : campagne.getLines()) {
+ for (OtfaCampagneLine line : lines) {
CtuluLog log = logsByLineId.get(line.getIndice());
this.validateXsdCompatible(campagne, line.getFinalReference(), xsdVersionByEtuFile, log, true);
this.validateXsdCompatible(campagne, line.getFinalCible(), xsdVersionByEtuFile, log, false);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:41:55
|
Revision: 9473
http://sourceforge.net/p/fudaa/svn/9473
Author: deniger
Date: 2016-12-05 22:41:53 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISLib.java
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISLib.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISLib.java 2016-12-05 22:41:07 UTC (rev 9472)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISLib.java 2016-12-05 22:41:53 UTC (rev 9473)
@@ -23,7 +23,6 @@
/**
* @author deniger
- * @version $Id$
*/
public final class GISLib {
@@ -869,6 +868,7 @@
* valeur de l'attribut sera une chaine contenant les valeurs, s\xE9par\xE9es par des virgules.</li> </ul>
*
* @param _att L'attribut.
+ * @param _useIdAsName true if we want to use the id as the attribute name
* @return L'attribute type.
*/
public static AttributeType createAttributeFrom(final GISAttributeInterface _att, boolean _useIdAsName) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 22:41:10
|
Revision: 9472
http://sourceforge.net/p/fudaa/svn/9472
Author: deniger
Date: 2016-12-05 22:41:07 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java
Modified: trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java
===================================================================
--- trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java 2016-12-05 21:49:16 UTC (rev 9471)
+++ trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java 2016-12-05 22:41:07 UTC (rev 9472)
@@ -252,12 +252,17 @@
}
public void exportSelectedLayer() {
+ exportSelectedLayer(isExportWithId());
+ }
+
+ public void exportSelectedLayer(boolean useIdAsAttributeName) {
+
final BCalque[] parent = super.getPanel().getArbreCalqueModel().getSelection();
if (parent == null) {
return;
}
final FSigLayerFilter filter = new FSigLayerFilter();
- filter.setExportWithId(isExportWithId());
+ filter.setExportWithId(useIdAsAttributeName);
final int nb = parent.length;
for (int i = 0; i < nb; i++) {
parent[i].apply(filter);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-12-05 21:49:18
|
Revision: 9471
http://sourceforge.net/p/fudaa/svn/9471
Author: deniger
Date: 2016-12-05 21:49:16 +0000 (Mon, 05 Dec 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java
trunk/business/fudaa-sig/src/main/resources/org/fudaa/fudaa/sig/fsig_en.fr_txt
Modified: trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java
===================================================================
--- trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java 2016-12-01 09:24:50 UTC (rev 9470)
+++ trunk/business/fudaa-sig/src/main/java/org/fudaa/fudaa/sig/layer/FSigEditor.java 2016-12-05 21:49:16 UTC (rev 9471)
@@ -124,8 +124,6 @@
*/
private int selectedTabInSingleObjectEditorPanel_ = 0;
-
-
/**
* L'\xE9dition pour un objet selectionn\xE9 unique.
*
@@ -272,7 +270,7 @@
final BuFileFilter sx = SinusxFileFormat.getInstance().createFileFilter();
final BuFileFilter st = RubarStCnFileFormat.createStFilter();
final BuFileFilter gen = ZESRiFileFormat.getInstance().createFileFilter();
-
+
final Map filterExporter = new HashMap(5);// pour l'instant .....
filterExporter.put(sx, new FSigLayerExporterI.ToSinusX());
@@ -300,6 +298,11 @@
if (f == null) {
return;
}
+ final FSigLayerExporterI fileExporter = (FSigLayerExporterI) filterExporter.get(fileChooser.getFileFilter());
+ if (fileExporter == null) {
+ getPanel().getCtuluUI().error(FSigLib.getS("Le format d'export n'a pas \xE9t\xE9 trouv\xE9"));
+ return;
+ }
CtuluDialogPanel pnExporterTranslate = new CtuluDialogPanel();
pnExporterTranslate.setLayout(new BuGridLayout(2));
BuTextField translateX = pnExporterTranslate.addLabelDoubleText(FudaaLib.getS("En X:"));
@@ -328,7 +331,7 @@
new CtuluRunnable(FudaaLib.getS("Export") + ' ' + parent[0].getTitle(), getUi()) {
@Override
public boolean run(ProgressionInterface _proj) {
- final CtuluIOOperationSynthese op = filter.exportTo((FSigLayerExporterI) filterExporter.get(fileChooser.getFileFilter()), getUi(), f,
+ final CtuluIOOperationSynthese op = filter.exportTo(fileExporter, getUi(), f,
translate, _proj);
if (op != null) {
getUi().manageErrorOperationAndIsFatal(op);
Modified: trunk/business/fudaa-sig/src/main/resources/org/fudaa/fudaa/sig/fsig_en.fr_txt
===================================================================
--- trunk/business/fudaa-sig/src/main/resources/org/fudaa/fudaa/sig/fsig_en.fr_txt 2016-12-01 09:24:50 UTC (rev 9470)
+++ trunk/business/fudaa-sig/src/main/resources/org/fudaa/fudaa/sig/fsig_en.fr_txt 2016-12-05 21:49:16 UTC (rev 9471)
@@ -185,4 +185,5 @@
s\xE9lection des points=Points selection
{0} calque(s) s\xE9lectionn\xE9(s)={0} selected layer(s)
Hauteur\: {0} px=Height\: {0} px
-Largeur\: {0} px=Width\: {0} px
\ No newline at end of file
+Largeur\: {0} px=Width\: {0} px
+Le format d'export n'a pas \xE9t\xE9 trouv\xE9=Excport format not found
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-25 14:40:53
|
Revision: 9468
http://sourceforge.net/p/fudaa/svn/9468
Author: bmarchan
Date: 2016-11-25 14:40:50 +0000 (Fri, 25 Nov 2016)
Log Message:
-----------
Fix : Pas de possibilit?\195?\169 de supprimer des vitesses sur le calque vitesses brutes et moyennes.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-11-25 14:38:35 UTC (rev 9467)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2016-11-25 14:40:50 UTC (rev 9468)
@@ -249,6 +249,7 @@
// Layer des vitesses moyennes.
cqVelResults = new PivVelResultsLayer();
+ cqVelResults.setEditable(false);
cqVelResults.setTitle(PivResource.getS("Vit. surf. moy."));
cqVelResults.setLongTitle(PivResource.getS("Vitesses de surface moyenn\xE9es"));
cqVelResults.setTitleModifiable(true);
@@ -266,6 +267,7 @@
// Layer des vitesses instantan\xE9es brutes.
cqInstantVelResults_ = new PivVelResultsLayer();
+ cqInstantVelResults_.setEditable(false);
cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst. brutes"));
cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es brutes"));
cqInstantVelResults_.setName("cqInstantVel");
@@ -273,16 +275,11 @@
cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE));
cqInstantVelResults_.setTitleModifiable(true);
cqInstantVelResults_.setVisible(false);
-// cqInstantVelResults_.addPropertyChangeListener(new PropertyChangeListener() {
-// public void propertyChange(PropertyChangeEvent evt) {
-// if ("visible".equals(evt.getPropertyName())) {
-// pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue());
-// }
-// }
-// });
// Layer des vitesses instantan\xE9es filtr\xE9es.
cqInstantVelFltResults_ = new PivVelResultsLayer();
+ // Editable, pour supprimer des vitesses.
+ cqInstantVelFltResults_.setEditable(true);
cqInstantVelFltResults_.setTitle(PivResource.getS("Vit. surf. inst. filtr\xE9es"));
cqInstantVelFltResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es filtr\xE9es"));
cqInstantVelFltResults_.setName("cqInstantVelFlt");
@@ -290,13 +287,6 @@
cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker()));
cqInstantVelFltResults_.setTitleModifiable(true);
cqInstantVelFltResults_.setVisible(false);
-// cqInstantVelFltResults_.addPropertyChangeListener(new PropertyChangeListener() {
-// public void propertyChange(PropertyChangeEvent evt) {
-// if ("visible".equals(evt.getPropertyName())) {
-// pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue());
-// }
-// }
-// });
// Layer des d\xE9bits.
cqFlowResults = new ZCalqueFleche() {
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2016-11-25 14:38:35 UTC (rev 9467)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2016-11-25 14:40:50 UTC (rev 9468)
@@ -27,6 +27,9 @@
*/
public class PivVelResultsLayer extends ZCalqueFleche implements ZCalqueEditable {
+ /** Defini le caractere editable du calque */
+ private boolean isEditable_=false;
+
@Override
protected String getFlecheUnit() {
return "m/s";
@@ -121,16 +124,34 @@
@Override
public boolean removeSelectedObjects(CtuluCommandContainer _cmd, CtuluUI _ui) {
- FuLog.debug("Remove object");
- if (!isSelectionEmpty()) {
- final boolean r = modeleDonnees().removeVelocity(getSelectedIndex(), _cmd);
- if (r) {
- // Sinon, le calque ne se repaint pas toujours...
- repaint();
+ if (isEditable_) {
+ FuLog.debug("Remove object");
+ if (!isSelectionEmpty()) {
+ final boolean r=modeleDonnees().removeVelocity(getSelectedIndex(), _cmd);
+ if (r) {
+ // Sinon, le calque ne se repaint pas toujours...
+ repaint();
+ }
}
}
return false;
}
+
+ /**
+ * La methode parent n'a aucun sens => On la surcharge.
+ */
+ @Override
+ public boolean isEditable() {
+ return isEditable_;
+ }
+
+ /**
+ * Definit si le calque est editable. Si c'est le cas, les methode d'editions peuvent \xEAtre appel\xE9es.
+ * @param _b True : Le calque est editable.
+ */
+ public void setEditable(boolean _b) {
+ isEditable_=_b;
+ }
// Not used
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-25 14:38:37
|
Revision: 9467
http://sourceforge.net/p/fudaa/svn/9467
Author: bmarchan
Date: 2016-11-25 14:38:35 +0000 (Fri, 25 Nov 2016)
Log Message:
-----------
Fix crash action edition si un calque n'a pas de modele editable.
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZEditorDefault.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZEditorDefault.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2016-11-25 13:59:18 UTC (rev 9466)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2016-11-25 14:38:35 UTC (rev 9467)
@@ -876,6 +876,10 @@
* @param _target Le calque cible editable.
*/
protected void editSingleObject(final ZCalqueEditable _target) {
+ if (_target.getModelEditable() == null) {
+ return;
+ }
+
final int idxSelected = ((ZCalqueAffichageDonnees) _target).getLayerSelection().getMaxIndex();
final EbliSingleObjectEditorPanel ed = new EbliSingleObjectEditorPanel(_target.getModelEditable(), idxSelected,
true, true, getCoordinateDefinitions());
@@ -885,6 +889,10 @@
}
protected void editVertexObject(final ZCalqueEditable _target) {
+ if (_target.getModelEditable() == null) {
+ return;
+ }
+
final EbliListeSelectionMultiInterface idxSelected = ((ZCalqueAffichageDonnees) _target).getLayerSelectionMulti();
if (idxSelected.getNbListSelected() > 1) {
return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-25 13:55:36
|
Revision: 9465
http://sourceforge.net/p/fudaa/svn/9465
Author: bmarchan
Date: 2016-11-25 13:55:34 +0000 (Fri, 25 Nov 2016)
Log Message:
-----------
Fix : Ecriture/lecture de la valeur CORREL dans les fichiers piv_filterxxx
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java 2016-11-24 12:01:32 UTC (rev 9464)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java 2016-11-25 13:55:34 UTC (rev 9465)
@@ -55,7 +55,7 @@
*/
private synchronized PivResultsDefault readVelocities() {
// TODO Bertrand : A verifier
- PivResultsDefault res = new PivResultsDefault(new TYPE[]{TYPE.VX,TYPE.VY});
+ PivResultsDefault res = new PivResultsDefault(new TYPE[]{TYPE.VX,TYPE.VY,TYPE.CORREL});
if (super.in_ == null) {
analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java 2016-11-24 12:01:32 UTC (rev 9464)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java 2016-11-25 13:55:34 UTC (rev 9465)
@@ -21,7 +21,8 @@
@Override
protected void internalWrite(final PivResultsI _res) {
if (!_res.hasResult(TYPE.VX) ||
- !_res.hasResult(TYPE.VY)) {
+ !_res.hasResult(TYPE.VY) ||
+ !_res.hasResult(TYPE.CORREL)) {
donneesInvalides(_res);
return;
}
@@ -32,7 +33,7 @@
for (int i=0; i<_res.getNbPoints(); i++) {
// (est lu par les solveurs en format libre).
- writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY));
+ writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY)+" "+_res.getValue(i, TYPE.CORREL));
}
}
catch (final Exception _evt) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-24 12:01:35
|
Revision: 9464
http://sourceforge.net/p/fudaa/svn/9464
Author: deniger
Date: 2016-11-24 12:01:32 +0000 (Thu, 24 Nov 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/process/OtfaCampagneContainer.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/process/OtfaCampagneContainer.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/process/OtfaCampagneContainer.java 2016-11-24 09:38:40 UTC (rev 9463)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/process/OtfaCampagneContainer.java 2016-11-24 12:01:32 UTC (rev 9464)
@@ -1,17 +1,49 @@
package org.fudaa.fudaa.crue.otfa.process;
+import java.util.ArrayList;
import org.fudaa.ctulu.CtuluLogGroup;
import org.fudaa.dodico.crue.io.rtfa.RTFAResultLine;
import org.fudaa.dodico.crue.io.rtfa.RTFAResultLines;
import org.fudaa.dodico.crue.projet.otfa.OtfaCampagne;
import org.fudaa.dodico.crue.projet.otfa.OtfaCampagneLine;
+import org.fudaa.fudaa.crue.otfa.service.OtfaService;
+import org.openide.util.NbBundle;
/**
+ * Classe de données pour les données relatives à une campagne qui contient<br>
+ * <ul>
+ * <li>la campagne</li>
+ * <li>les résultats de la campagne</li>
+ * <li>les logs</li>
+ * </ul>
*
* @author deniger
*/
public class OtfaCampagneContainer {
+ /**
+ *
+ * @return des données de campagnes initiales.
+ */
+ public static OtfaCampagneContainer createBlankCampagne() {
+ final OtfaCampagne campagne = new OtfaCampagne();
+ final OtfaCampagne.OtfaRunOptions ref = new OtfaCampagne.OtfaRunOptions();
+ ref.setEffacerRunAvant(false);
+ ref.setEffacerRunApres(true);
+ final OtfaCampagne.OtfaRunOptions cible = new OtfaCampagne.OtfaRunOptions();
+ cible.setEffacerRunAvant(true);
+ cible.setEffacerRunApres(false);
+ campagne.setCommentaire(NbBundle.getMessage(OtfaService.class, "newCampaignComment"));
+ campagne.setAuteurCreation(null);
+ campagne.setDateCreation(null);
+ campagne.setAuteurModification(null);
+ campagne.setDateModification(null);
+ campagne.setReferenceOptions(ref);
+ campagne.setCibleOptions(cible);
+ campagne.setLines(new ArrayList<OtfaCampagneLine>());
+ return new OtfaCampagneContainer(campagne);
+ }
+
private final OtfaCampagne otfaCampagne;
private RTFAResultLines result;
private CtuluLogGroup batchValidation;
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-11-24 09:38:40 UTC (rev 9463)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-11-24 12:01:32 UTC (rev 9464)
@@ -5,7 +5,6 @@
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import java.io.File;
-import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.ObjectUtils;
import org.fudaa.ctulu.CtuluLogGroup;
@@ -21,7 +20,6 @@
import org.fudaa.fudaa.crue.common.log.LogsDisplayer;
import org.fudaa.fudaa.crue.common.services.PostRunService;
import org.fudaa.fudaa.crue.options.services.ConfigurationManagerService;
-import org.fudaa.fudaa.crue.options.services.InstallationService;
import org.fudaa.fudaa.crue.otfa.filter.OtfaFileFilter;
import org.fudaa.fudaa.crue.otfa.node.OtfaCampagneLineNode;
import org.fudaa.fudaa.crue.otfa.node.OtfaCampagneNode;
@@ -42,43 +40,36 @@
import org.openide.util.lookup.ServiceProvider;
/**
+ * Service principal pour la perspective OTFA.
*
- * @author deniger (genesis)
+ * @see https://fudaa-project.atlassian.net/wiki/display/CRUE/Services+Crue+UI+OTFA
+ *
+ * @author deniger
*/
@ServiceProvider(service = OtfaService.class)
public class OtfaService implements Lookup.Provider, PropertyChangeListener {
- private static OtfaCampagneContainer createBlankCampagne() {
- final OtfaCampagne campagne = new OtfaCampagne();
- final OtfaCampagne.OtfaRunOptions ref = new OtfaCampagne.OtfaRunOptions();
+ private final InstanceContent dynamicContent = new InstanceContent();
+ /**
+ * le lookup de la classe. Mettre à jour la doc principale (voir commentaire de la classe) si modification dans le contenu.
+ */
+ private final Lookup otfatLookup = new AbstractLookup(dynamicContent);
+ /**
+ * le service global de configuration ( les coeurs, options de l'application)
+ */
+ private final ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
+ /**
+ * le service de lancement de runs. Utilisés pour configurer le lancer d'une campagne
+ */
+ private final PostRunService postRunService = Lookup.getDefault().lookup(PostRunService.class);
- ref.setEffacerRunAvant(false);
- ref.setEffacerRunApres(true);
-
- final OtfaCampagne.OtfaRunOptions cible = new OtfaCampagne.OtfaRunOptions();
-
- cible.setEffacerRunAvant(true);
- cible.setEffacerRunApres(false);
-
- campagne.setCommentaire(NbBundle.getMessage(OtfaService.class, "newCampaignComment"));
- campagne.setAuteurCreation(null);
- campagne.setDateCreation(null);
- campagne.setAuteurModification(null);
- campagne.setDateModification(null);
- campagne.setReferenceOptions(ref);
- campagne.setCibleOptions(cible);
- campagne.setLines(new ArrayList<OtfaCampagneLine>());
-
- return new OtfaCampagneContainer(campagne);
- }
-
- private InstanceContent dynamicContent = new InstanceContent();
- private Lookup otfatLookup = new AbstractLookup(dynamicContent);
- ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
- PostRunService postRunService = Lookup.getDefault().lookup(PostRunService.class);
- InstallationService installationService = Lookup.getDefault().lookup(InstallationService.class);
-
+ /**
+ * la vue principale de la perspective OTFA.
+ */
private OutlineView view;
+ /**
+ * la sélection
+ */
ExplorerManager explorerManager;
public OutlineView getView() {
@@ -89,10 +80,18 @@
this.view = view;
}
+ /**
+ *
+ * @return le {@link org.fudaa.ctulu.CtuluLogGroup} du lookup
+ */
public CtuluLogGroup getCurrentValidationState() {
return otfatLookup.lookup(CtuluLogGroup.class);
}
+ /**
+ * @see getCurrentValidationState
+ * @return true si {@link #getCurrentValidationState} ne contient pas d'erreurs
+ */
public boolean isValid() {
return getCurrentValidationState() == null || !getCurrentValidationState().containsError();
}
@@ -102,10 +101,17 @@
return otfatLookup;
}
+ /**
+ * mise à jour de la validation de la campagne en cours
+ */
public void validate() {
validate(true);
}
+ /**
+ *
+ * @param all si true, la validation testera si les scenarii et rapport existent.
+ */
private void validate(boolean all) {
CtuluLogGroup currentValidation = getCurrentValidationState();
OtfaContentValidator validator = new OtfaContentValidator(configurationManagerService.getCoeurManager());
@@ -117,6 +123,11 @@
}
+ /**
+ * Pour savoir si une campagne est chargé il faut s'inscrire au lookup
+ *
+ * @return la campagne chargée. Null si rien de charge
+ */
public OtfaCampagneContainer getCurrentOTFA() {
return otfatLookup.lookup(OtfaCampagneContainer.class);
}
@@ -124,17 +135,24 @@
public void setModified(boolean newValue) {
Boolean isModified = isModified();
if (!ObjectUtils.equals(newValue, isModified)) {
- if (isModified != null) {
- dynamicContent.remove(isModified);
- }
- dynamicContent.add(Boolean.valueOf(newValue));
+ dynamicContent.remove(isModified);
+ dynamicContent.add(newValue);
}
}
+ /**
+ *
+ * @return true si campagne en cours modifiée
+ */
public boolean isModified() {
return Boolean.TRUE.equals(otfatLookup.lookup(Boolean.class));
}
+ /**
+ *
+ * @param campagne la campagne à charger
+ * @param addState false pour ne pas modifier le lookup OtfaState. Utile pour les rechargements internes.
+ */
private void setCampagne(OtfaCampagneContainer campagne, boolean addState) {
unsetCampagne(addState);
dynamicContent.add(campagne);
@@ -150,6 +168,9 @@
}
}
+ /**
+ * supprime les resultats du container et rafraichit la vue.
+ */
public void unsetResultat() {
final OtfaCampagneContainer currentOTFA = getCurrentOTFA();
if (currentOTFA != null && currentOTFA.getResult() != null) {
@@ -159,6 +180,10 @@
}
}
+ /**
+ *
+ * @param removeState est à false pour des rechargement internes. Dans ce cas, le OtfaState n'est pas supprimé
+ */
private void unsetCampagne(boolean removeState) {
OtfaCampagneContainer current = getCurrentOTFA();
OtfaCampagneNode node = getNodes();
@@ -173,14 +198,15 @@
dynamicContent.remove(currentValidationState);
}
Boolean isModified = isModified();
- if (isModified != null) {
- dynamicContent.remove(isModified);
- }
+ dynamicContent.remove(isModified);
if (removeState) {
dynamicContent.remove(OtfaState.OPENED);
}
}
+ /**
+ * Creation d'une nouvelle campagne: ferme la campagne courante et si ok création d'une nouvelle campagne
+ */
public void createNew() {
configurationManagerService.reloadAll();
//probleme de configuration
@@ -200,13 +226,17 @@
if (toSave
!= null) {
toSave = OtfaFileUtils.addOtfaExtensionIfNeeded(toSave);
- OtfaCampagneContainer campagne = createBlankCampagne();
+ OtfaCampagneContainer campagne = OtfaCampagneContainer.createBlankCampagne();
campagne.getOtfaCampagne().setOtfaFile(toSave);
setCampagne(campagne, true);
setModified(true);
}
}
+ /**
+ *
+ * @return true si une des lignes de la campagne requiert Crue9.
+ */
private boolean needCrue9() {
OtfaCampagne otfaCampagne = getCurrentOTFA().getOtfaCampagne();
List<OtfaCampagneLine> lines = otfaCampagne.getLines();
@@ -221,6 +251,9 @@
return false;
}
+ /**
+ * Lancement de la campagne.
+ */
public void executeCampagne() {
if (!configurationManagerService.isConfigValidShowMessage()) {
return;
@@ -234,14 +267,17 @@
}
RTFAResultLinesSaver saver = new RTFAResultLinesSaver(getCurrentOTFA().getOtfaCampagne().getOtfaFile());
OtfaExecutor executor = new OtfaExecutor(saver, configurationManagerService.getCoeurManager(),
- installationService.getConnexionInformation(),
+ configurationManagerService.getConnexionInformation(),
postRunService.getCalculCrueRunnerManagerOtfa());
final LaunchOtfaCampagneRunner process = new LaunchOtfaCampagneRunner(executor, getCurrentOTFA().getOtfaCampagne(), this);
process.go();
}
- public void saveDone() {
+ /**
+ * A la fin d'une opération de sauvegarde, envoie un evt et modifie l'état "modifié".
+ */
+ private void saveDone() {
final OtfaCampagneNode nodes = getNodes();
if (nodes != null) {
nodes.fireSaveDone();
@@ -249,6 +285,11 @@
setModified(Boolean.FALSE);
}
+ /**
+ * @param result les resultats à charger après le lancement d'une campagne. Les résulats sont chargés dans un thread à part via
+ * {@link org.fudaa.fudaa.crue.otfa.service.LaunchOtfaCampagneRunner#run}
+ * @see org.fudaa.fudaa.crue.otfa.service.LaunchOtfaCampagneRunner#run
+ */
void setResultat(RTFAResultLines result) {
final OtfaCampagneContainer currentOTFA = this.getCurrentOTFA();
currentOTFA.setResult(result);
@@ -257,12 +298,16 @@
setCampagne(currentOTFA, true);
}
+ /**
+ *
+ * @return le node principal de la campagne
+ */
public OtfaCampagneNode getNodes() {
return otfatLookup.lookup(OtfaCampagneNode.class);
}
/**
- * Attention ne fait pas de sauvegarde.
+ * Attention ne fait pas de sauvegarde et recharge la campagne depuis le fichier.
*/
public void reloadCurrent() {
OtfaCampagneContainer currentOTFA = getCurrentOTFA();
@@ -274,6 +319,11 @@
}
}
+ /**
+ * si la campagne est modifiée, teste la validité et lance la sauvegarde
+ *
+ * @return true si sauvegarde effectuée ( valide et sauvegarde ok)
+ */
public boolean saveCurrent() {
if (getCurrentOTFA() != null && isModified()) {
validate(true);
@@ -289,11 +339,16 @@
return true;
}
+ /**
+ * Si la campagne en cours est modifiée demande confirmation avant fermeture. Si toutes les opérations sont correctes, renvoie true.
+ *
+ * @return true si fermée
+ */
public boolean closeCurrent() {
//TODO gerer les modifications:
if (getCurrentOTFA() != null) {
boolean modified = isModified();
- Object showQuestionCancel = null;
+ Object showQuestionCancel;
final String title = NbBundle.getMessage(OtfaService.class, "CloseOtfa.DialogTitle");
if (modified) {
String message = NbBundle.getMessage(OtfaService.class, "CloseModifiedOtfa.DialogMessage");
@@ -316,6 +371,11 @@
return true;
}
+ /**
+ * Ouverture d'une campagne. Si campagne en cours, opération de sauvegarde et fermeture lancée. Si ok -> création.
+ *
+ * @param toOpen
+ */
public void open(File toOpen) {
configurationManagerService.reloadAll();
//probleme de configuration
@@ -342,10 +402,13 @@
public void complete(File[] filesToOpen) {
// référence sur le conteneur de campagne courante
OtfaCampagneContainer currentCampaignContainer = getCurrentOTFA();
+ if (currentCampaignContainer == null) {
+ // pas de campagne chargée, on s'arrête
+ return;
+ }
// référence sur la campagne courante
OtfaCampagne currentCampaign = currentCampaignContainer.getOtfaCampagne();
-
- if (currentCampaignContainer == null || currentCampaign == null) {
+ if (currentCampaign == null) {
// pas de campagne chargée, on s'arrête
return;
}
@@ -392,7 +455,12 @@
setModified(true);
}
- //les evts a traiter
+ /**
+ * Met à jour l'état modifié de la campagne et lance une validation. Si la modification vient d'un noeud, le sélectionne à nouveau afin de conserver
+ * la sélection après édition. voir https://fudaa-project.atlassian.net/browse/CRUE-654
+ *
+ * @param evt
+ */
@Override
public void propertyChange(PropertyChangeEvent evt) {
setModified(true);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-24 09:38:42
|
Revision: 9463
http://sourceforge.net/p/fudaa/svn/9463
Author: deniger
Date: 2016-11-24 09:38:40 +0000 (Thu, 24 Nov 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/integration/TestIntegrationEtu30.java
Modified: trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/integration/TestIntegrationEtu30.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/integration/TestIntegrationEtu30.java 2016-11-24 09:21:20 UTC (rev 9462)
+++ trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/integration/TestIntegrationEtu30.java 2016-11-24 09:38:40 UTC (rev 9463)
@@ -66,7 +66,7 @@
assertNotNull(runv8.getEmhScenario().getModeles().get(0).getResultatCalculPasDeTemps());
assertEquals(25, runv8.getEmhScenario().getModeles().get(0).getResultatCalculPasDeTemps().getNbResultats());
assertNotNull(runc9.getEmhScenario().getModeles().get(0).getResultatCalculPasDeTemps());
- assertEquals(1, IntegrationHelper.compare(projet, runv8.getEmhScenario(), runc9.getEmhScenario()).size());
+ assertTrue(IntegrationHelper.compare(projet, runv8.getEmhScenario(), runc9.getEmhScenario()).size() >= 1);
}
@Test
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-24 09:21:22
|
Revision: 9462
http://sourceforge.net/p/fudaa/svn/9462
Author: deniger
Date: 2016-11-24 09:21:20 +0000 (Thu, 24 Nov 2016)
Log Message:
-----------
CRUE-654
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/OtfaCampagneTopComponent.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneLineNode.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneNode.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/CoeurProperty.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/OtfaCampagneTopComponent.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/OtfaCampagneTopComponent.java 2016-11-24 09:21:02 UTC (rev 9461)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/OtfaCampagneTopComponent.java 2016-11-24 09:21:20 UTC (rev 9462)
@@ -119,6 +119,7 @@
this.outlineView.getOutline().setRootVisible(false);
otfaService.setView(outlineView);
+ otfaService.setExplorerManager(mgr);
// Masquage de la première colonne N° Node native Netbeans
// remplacée par la colonne "indice" afin de permettre le tri sur les entiers
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneLineNode.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneLineNode.java 2016-11-24 09:21:02 UTC (rev 9461)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneLineNode.java 2016-11-24 09:21:20 UTC (rev 9462)
@@ -78,6 +78,12 @@
return perspectiveServiceOtfa.isInEditMode();
}
+ @Override
+ protected void fireObjectChange(String property, Object oldValue, Object newValue) {
+ super.fireObjectChange(property, oldValue, newValue);
+ }
+
+
public OtfaCampagneLineNode(OtfaCampagneLine line) {
this(new RTFAResultLine(line));
}
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneNode.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneNode.java 2016-11-24 09:21:02 UTC (rev 9461)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/node/OtfaCampagneNode.java 2016-11-24 09:21:20 UTC (rev 9462)
@@ -4,7 +4,6 @@
*/
package org.fudaa.fudaa.crue.otfa.node;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.Action;
@@ -15,7 +14,6 @@
import org.fudaa.fudaa.crue.otfa.service.OtfaService;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
-import org.openide.nodes.Node;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.openide.util.lookup.Lookups;
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/CoeurProperty.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/CoeurProperty.java 2016-11-24 09:21:02 UTC (rev 9461)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/CoeurProperty.java 2016-11-24 09:21:20 UTC (rev 9462)
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.fudaa.fudaa.crue.otfa.property;
import java.beans.PropertyEditor;
@@ -17,7 +13,7 @@
/**
*
- * @author Christophe CANEL (Genesis)
+ * @author Christophe CANEL
*/
public class CoeurProperty extends PropertySupportReflection<String> {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-24 09:21:04
|
Revision: 9461
http://sourceforge.net/p/fudaa/svn/9461
Author: deniger
Date: 2016-11-24 09:21:02 +0000 (Thu, 24 Nov 2016)
Log Message:
-----------
CRUE-706
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-11-22 11:20:28 UTC (rev 9460)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2016-11-24 09:21:02 UTC (rev 9461)
@@ -1,7 +1,9 @@
package org.fudaa.fudaa.crue.otfa.service;
+import java.awt.EventQueue;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.beans.PropertyVetoException;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -21,6 +23,7 @@
import org.fudaa.fudaa.crue.options.services.ConfigurationManagerService;
import org.fudaa.fudaa.crue.options.services.InstallationService;
import org.fudaa.fudaa.crue.otfa.filter.OtfaFileFilter;
+import org.fudaa.fudaa.crue.otfa.node.OtfaCampagneLineNode;
import org.fudaa.fudaa.crue.otfa.node.OtfaCampagneNode;
import org.fudaa.fudaa.crue.otfa.process.OpenOtfaCampagneProcess;
import org.fudaa.fudaa.crue.otfa.process.OtfaCampagneContainer;
@@ -28,8 +31,10 @@
import org.netbeans.swing.etable.ETableColumn;
import org.netbeans.swing.etable.ETableColumnModel;
import org.openide.NotifyDescriptor;
+import org.openide.explorer.ExplorerManager;
import org.openide.explorer.view.OutlineView;
import org.openide.filesystems.FileChooserBuilder;
+import org.openide.nodes.Node;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.openide.util.lookup.AbstractLookup;
@@ -43,6 +48,30 @@
@ServiceProvider(service = OtfaService.class)
public class OtfaService implements Lookup.Provider, PropertyChangeListener {
+ private static OtfaCampagneContainer createBlankCampagne() {
+ final OtfaCampagne campagne = new OtfaCampagne();
+ final OtfaCampagne.OtfaRunOptions ref = new OtfaCampagne.OtfaRunOptions();
+
+ ref.setEffacerRunAvant(false);
+ ref.setEffacerRunApres(true);
+
+ final OtfaCampagne.OtfaRunOptions cible = new OtfaCampagne.OtfaRunOptions();
+
+ cible.setEffacerRunAvant(true);
+ cible.setEffacerRunApres(false);
+
+ campagne.setCommentaire(NbBundle.getMessage(OtfaService.class, "newCampaignComment"));
+ campagne.setAuteurCreation(null);
+ campagne.setDateCreation(null);
+ campagne.setAuteurModification(null);
+ campagne.setDateModification(null);
+ campagne.setReferenceOptions(ref);
+ campagne.setCibleOptions(cible);
+ campagne.setLines(new ArrayList<OtfaCampagneLine>());
+
+ return new OtfaCampagneContainer(campagne);
+ }
+
private InstanceContent dynamicContent = new InstanceContent();
private Lookup otfatLookup = new AbstractLookup(dynamicContent);
ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
@@ -50,6 +79,7 @@
InstallationService installationService = Lookup.getDefault().lookup(InstallationService.class);
private OutlineView view;
+ ExplorerManager explorerManager;
public OutlineView getView() {
return view;
@@ -177,30 +207,6 @@
}
}
- private static OtfaCampagneContainer createBlankCampagne() {
- final OtfaCampagne campagne = new OtfaCampagne();
- final OtfaCampagne.OtfaRunOptions ref = new OtfaCampagne.OtfaRunOptions();
-
- ref.setEffacerRunAvant(false);
- ref.setEffacerRunApres(true);
-
- final OtfaCampagne.OtfaRunOptions cible = new OtfaCampagne.OtfaRunOptions();
-
- cible.setEffacerRunAvant(true);
- cible.setEffacerRunApres(false);
-
- campagne.setCommentaire(NbBundle.getMessage(OtfaService.class, "newCampaignComment"));
- campagne.setAuteurCreation(null);
- campagne.setDateCreation(null);
- campagne.setAuteurModification(null);
- campagne.setDateModification(null);
- campagne.setReferenceOptions(ref);
- campagne.setCibleOptions(cible);
- campagne.setLines(new ArrayList<OtfaCampagneLine>());
-
- return new OtfaCampagneContainer(campagne);
- }
-
private boolean needCrue9() {
OtfaCampagne otfaCampagne = getCurrentOTFA().getOtfaCampagne();
List<OtfaCampagneLine> lines = otfaCampagne.getLines();
@@ -391,6 +397,21 @@
public void propertyChange(PropertyChangeEvent evt) {
setModified(true);
validate(false);
+ //pour maintenir la selection si on modifie une ligne de campagne.
+ //normalement les editeurs "inline" le font mais dans le cas des combobox, cette sélection est perdue.
+ if (evt.getSource() instanceof OtfaCampagneLineNode && explorerManager != null) {
+ final OtfaCampagneLineNode node = (OtfaCampagneLineNode) evt.getSource();
+ EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ explorerManager.setSelectedNodes(new Node[]{node});
+ } catch (PropertyVetoException propertyVetoException) {
+ //rien a faire ici. On ignore l'exception
+ }
+ }
+ });
+ }
}
public void linesStructureChanged() {
@@ -416,4 +437,13 @@
}
return false;
}
+
+ /**
+ * Utiliser pour mettre à jour la selection après l'edition d'une ligne
+ *
+ * @param mgr
+ */
+ public void setExplorerManager(ExplorerManager mgr) {
+ this.explorerManager = mgr;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-22 11:20:30
|
Revision: 9460
http://sourceforge.net/p/fudaa/svn/9460
Author: deniger
Date: 2016-11-22 11:20:28 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
CRUE-706
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java
trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties
trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java
Added Paths:
-----------
trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java
Added: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java 2016-11-22 11:20:28 UTC (rev 9460)
@@ -0,0 +1,108 @@
+/*
+GPL 2
+ */
+package org.fudaa.fudaa.crue.modelling.list;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+import java.util.List;
+import javax.swing.JTable;
+import jxl.write.Label;
+import jxl.write.WritableCell;
+import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.table.CtuluTableModelInterface;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+
+/**
+ * Un modèle pour adapter l'export cvs/Excel de la liste des frottement
+ *
+ * @author Frederic Deniger
+ */
+public class ModellingListFrottementExportTableModel implements CtuluTableModelInterface {
+
+ //l'indice de la premiere colonne
+ int idxColumnBrancheName = 0;
+ //l'offset impliqué par la première colonne
+ int offsetToApply = 1;
+ JTable listFrtTable;
+ List<String> rowNames;
+
+ public ModellingListFrottementExportTableModel(JTable listFrtTable) {
+ this.listFrtTable = listFrtTable;
+ //le noms des lignes.
+ rowNames = (List<String>) listFrtTable.getClientProperty(ModellingListFrottementTopComponent.PROPERTY_FOR_ROW_NAMES);
+ }
+
+ @Override
+ public int[] getSelectedRows() {
+ return null;
+ }
+
+ /**
+ *
+ * @param rowIndex
+ * @param columnIndex
+ * @return la valeur a utliser en (rowIndex,columnIndex). Pour la première colonne on utilise le nom de la ligne
+ */
+ @Override
+ public Object getValue(int rowIndex, int columnIndex) {
+ //on utilise le noms des lignes
+ if (columnIndex == idxColumnBrancheName) {
+ if (rowNames == null || rowNames.size() < rowIndex) {
+ return CtuluLibString.EMPTY_STRING;
+ }
+ return rowNames.get(rowIndex);
+ }
+ Object val = listFrtTable.getValueAt(rowIndex, columnIndex - offsetToApply);
+ if (val instanceof Node.Property) {
+ try {
+ return ((Node.Property) val).getValue();
+ } catch (IllegalAccessException | InvocationTargetException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ }
+ return val;
+ }
+
+ @Override
+ public String getColumnName(int colIdx) {
+ if (colIdx == idxColumnBrancheName) {
+ return org.openide.util.NbBundle.getMessage(ModellingListFrottementExportTableModel.class, "listFrottementExport.first.column.name");
+ }
+ return listFrtTable.getColumnName(colIdx - offsetToApply);
+ }
+
+ @Override
+ public WritableCell getExcelWritable(int _rowInModel, int _colInModel, int _rowInXls, int _colInXls) {
+ final Object o = getValue(_rowInModel, _colInModel);
+ if (o == null) {
+ return null;
+ }
+ String s = o.toString();
+ if (s == null) {
+ return null;
+ }
+ s = s.trim();
+ if (s.length() == 0) {
+ return null;
+ }
+ return new Label(_colInXls, _rowInXls, s);
+ }
+
+ @Override
+ public int getMaxCol() {
+ return offsetToApply + listFrtTable.getColumnCount();
+ }
+
+ @Override
+ public int getMaxRow() {
+ return listFrtTable.getRowCount();
+ }
+
+ @Override
+ public List<String> getComments() {
+ return Collections.emptyList();
+ }
+
+}
Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java 2016-11-22 09:48:54 UTC (rev 9459)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java 2016-11-22 11:20:28 UTC (rev 9460)
@@ -26,7 +26,7 @@
import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ctulu.gui.CtuluTableSimpleExporter;
-import org.fudaa.ctulu.table.CtuluTableModelDefault;
+import org.fudaa.ctulu.table.CtuluTableModelInterface;
import org.fudaa.dodico.crue.common.BusinessMessages;
import org.fudaa.dodico.crue.config.lit.LitNomme;
import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
@@ -48,7 +48,6 @@
import org.fudaa.fudaa.crue.modelling.loi.ModellingOpenDFRTNodeAction;
import org.fudaa.fudaa.crue.modelling.services.EnumModification;
import org.fudaa.fudaa.crue.modelling.services.ScenarioModificationEvent;
-import org.fudaa.fudaa.crue.views.export.OutlineViewExportTableModel;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
@@ -68,6 +67,7 @@
public static final String TOPCOMPONENT_ACTION = "CTL_" + TOPCOMPONENT_ID;
public static final String PROP_LIT_NUMEROTE = "LitNumerote";
public static final String PROPERTY_BRANCHE = "BRANCHE";
+ protected static final String PROPERTY_FOR_ROW_NAMES = "rowNames";
Long sousModeleUid;
private JScrollPane scrollPane;
private JTable table;
@@ -77,6 +77,17 @@
// menu d'import des fichiers XLS/CSV
JMenuItem importItem;
+ protected final ActionListener modifiedActionListener = new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ setModified(true);
+ }
+ };
+ boolean isUpdating;
+ CatEMHBranche brancheToSelect = null;
+ // GridBuilder gridBuilder;
+ private boolean editable;
+
public ModellingListFrottementTopComponent() {
setName(NbBundle.getMessage(ModellingListFrottementTopComponent.class, TOPCOMPONENT_ACTION));
setToolTipText(NbBundle.getMessage(ModellingListFrottementTopComponent.class, "HINT_" + TOPCOMPONENT_ID));
@@ -84,13 +95,6 @@
setBorder(BorderFactory.createCompoundBorder(getBorder(), BuBorders.EMPTY3333));
}
- protected final ActionListener modifiedActionListener = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- setModified(true);
- }
- };
-
@Override
protected String getViewHelpCtxId() {
return "vueListeFrottements";
@@ -127,7 +131,6 @@
protected void scenarioReloaded() {
scenarioLoaded();
}
- boolean isUpdating;
@Override
public void setModified(boolean modified) {
@@ -202,6 +205,7 @@
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setCellSelectionEnabled(false);
table.setRowSelectionAllowed(true);
+ table.putClientProperty(PROPERTY_FOR_ROW_NAMES, rows);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
@@ -278,7 +282,7 @@
* Export csv/xlsx du tableau
*/
protected void exportTable() {
- CtuluTableModelDefault defaultModel = new OutlineViewExportTableModel(table, null, null);
+ CtuluTableModelInterface defaultModel = new ModellingListFrottementExportTableModel(table);
CtuluTableSimpleExporter.doExport(';', defaultModel, CtuluUIForNetbeans.DEFAULT);
}
@@ -328,7 +332,6 @@
scenarioReloaded();
}
}
- CatEMHBranche brancheToSelect = null;
public void setBrancheUid(Long uid) {
CatEMHBranche branche = (CatEMHBranche) getScenario().getIdRegistry().getEmh(uid);
@@ -348,8 +351,6 @@
void readProperties(java.util.Properties p) {
}
-// GridBuilder gridBuilder;
- private boolean editable;
@Override
protected void setEditable(boolean b) {
Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties 2016-11-22 09:48:54 UTC (rev 9459)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties 2016-11-22 11:20:28 UTC (rev 9460)
@@ -58,4 +58,5 @@
Filtre.Label=Branche :
button.export.name=Exporter
-button.import.name=Importer
\ No newline at end of file
+button.import.name=Importer
+listFrottementExport.first.column.name=Branche / Section
Modified: trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java 2016-11-22 09:48:54 UTC (rev 9459)
+++ trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java 2016-11-22 11:20:28 UTC (rev 9460)
@@ -10,6 +10,7 @@
import org.openide.util.Exceptions;
/**
+ * Le modele pour adapater une table netbeans a un export excel/csv utilisé par ctulu
*
* @author Frederic Deniger
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-22 09:48:57
|
Revision: 9459
http://sourceforge.net/p/fudaa/svn/9459
Author: deniger
Date: 2016-11-22 09:48:54 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
correction tests unitaires
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-io/src/test/java/org/fudaa/dodico/crue/io/ocal/CrueOCALFileTest.java
Modified: trunk/soft/fudaa-crue/crue-io/src/test/java/org/fudaa/dodico/crue/io/ocal/CrueOCALFileTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/test/java/org/fudaa/dodico/crue/io/ocal/CrueOCALFileTest.java 2016-11-22 09:41:23 UTC (rev 9458)
+++ trunk/soft/fudaa-crue/crue-io/src/test/java/org/fudaa/dodico/crue/io/ocal/CrueOCALFileTest.java 2016-11-22 09:48:54 UTC (rev 9459)
@@ -144,29 +144,29 @@
final List<String> allCalcs = metier.getCalcNameInOrder();
assertNotNull(allCalcs);
assertEquals(6, allCalcs.size());
- String[] expected = new String[]{"Cc_P1", "Cc_P2", "Cc_P3", "Cc_T1", "Cc_T2", "Cc_T3"};
+ String[] expected = new String[]{"CC_P1", "CC_P2", "CC_P3", "CC_T1", "CC_T2", "CC_T3"};
for (int i = 0; i < expected.length; i++) {
assertEquals(expected[i], allCalcs.get(i));
}
//
- CalcOrdCalcUiState uiCCP1 = metier.getUiState("Cc_P1");
+ CalcOrdCalcUiState uiCCP1 = metier.getUiState("CC_P1");
assertEquals("Cc_P1", uiCCP1.getCalcId());
assertTrue(uiCCP1.getOrdCalc() instanceof OrdCalcPseudoPerm);
assertEquals("NomCliche_Cc_P1", ((OrdCalcPseudoPerm) uiCCP1.getOrdCalc()).getPrendreClicheFinPermanent().getNomFic());
- CalcOrdCalcUiState uiCCP2 = metier.getUiState("Cc_P2");
+ CalcOrdCalcUiState uiCCP2 = metier.getUiState("CC_P2");
assertEquals("Cc_P2", uiCCP2.getCalcId());
assertTrue(uiCCP1.getOrdCalc() instanceof OrdCalcPseudoPerm);
assertEquals("NomCliche_Cc_P2", ((OrdCalcPseudoPerm) uiCCP2.getOrdCalc()).getPrendreClicheFinPermanent().getNomFic());
- CalcOrdCalcUiState uiCCP3 = metier.getUiState("Cc_P3");
+ CalcOrdCalcUiState uiCCP3 = metier.getUiState("CC_P3");
assertEquals("Cc_P3", uiCCP3.getCalcId());
OrdCalcPseudoPermIniCliche ccp3 = (OrdCalcPseudoPermIniCliche) uiCCP3.getOrdCalc();
assertEquals("NomCliche1", ccp3.getIniCalcCliche().getNomFic());
assertEquals("NomCliche2", ccp3.getPrendreClicheFinPermanent().getNomFic());
//
- CalcOrdCalcUiState uiccT1 = metier.getUiState("Cc_T1");
+ CalcOrdCalcUiState uiccT1 = metier.getUiState("CC_T1");
assertEquals("Cc_T1", uiccT1.getCalcId());
final OrdCalcTrans cc_T1 = (OrdCalcTrans) uiccT1.getOrdCalc();
assertNotNull(cc_T1);
@@ -180,7 +180,7 @@
assertEquals("P0Y0M0DT1H0M3S", DateDurationConverter.durationToXsd(cc_T1.getPrendreClichePonctuel().getTempsSimu()));
assertEquals("P0Y0M0DT0H1M4S", DateDurationConverter.durationToXsd(((PdtCst) cc_T1.getPrendreClichePeriodique().getPdtRes()).getPdtCst()));
//
- CalcOrdCalcUiState uiccT2 = metier.getUiState("Cc_T2");
+ CalcOrdCalcUiState uiccT2 = metier.getUiState("CC_T2");
assertEquals("Cc_T2", uiccT2.getCalcId());
final OrdCalcTrans ccT2 = (OrdCalcTrans) uiccT2.getOrdCalc();
assertTrue(ccT2 instanceof OrdCalcTransIniCalcCliche);
@@ -196,7 +196,7 @@
assertEquals("P0Y0M0DT1H0M7S", DateDurationConverter.durationToXsd(ccT2.getPrendreClichePonctuel().getTempsSimu()));
assertEquals("P0Y0M0DT0H1M8S", DateDurationConverter.durationToXsd(((PdtCst) ccT2.getPrendreClichePeriodique().getPdtRes()).getPdtCst()));
//
- CalcOrdCalcUiState uiccT3 = metier.getUiState("Cc_T3");
+ CalcOrdCalcUiState uiccT3 = metier.getUiState("CC_T3");
assertEquals("Cc_T3", uiccT3.getCalcId());
final OrdCalcTrans ccT3 = (OrdCalcTrans) uiccT3.getOrdCalc();
assertTrue(ccT3 instanceof OrdCalcTransIniCalcCI);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-22 09:41:26
|
Revision: 9458
http://sourceforge.net/p/fudaa/svn/9458
Author: deniger
Date: 2016-11-22 09:41:23 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
Ajout commentaire
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiTableModel.java
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiTableModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiTableModel.java 2016-11-22 09:10:40 UTC (rev 9457)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiTableModel.java 2016-11-22 09:41:23 UTC (rev 9458)
@@ -15,10 +15,12 @@
import org.fudaa.ctulu.CtuluDoubleParser;
import org.fudaa.ctulu.CtuluLibArray;
import org.fudaa.ctulu.CtuluListSelection;
+import org.fudaa.dodico.crue.config.ccm.PropertyNature;
import org.fudaa.dodico.crue.config.lit.LitNommeLimite;
import org.fudaa.dodico.crue.metier.emh.DonFrt;
import org.fudaa.ebli.courbe.EGTableGraphePanel;
import org.fudaa.fudaa.crue.loi.LoiMessages;
+import org.fudaa.fudaa.crue.loi.common.AbstractLoiUiController;
import org.fudaa.fudaa.crue.loi.common.DefaultLoiTableModel;
import org.openide.util.NbBundle;
@@ -108,6 +110,16 @@
if (_column == COLUMN_FRT) {
return NbBundle.getMessage(LoiMessages.class, "DonFrt.Label");
}
+ //dans le cas présent, le titre de l'axe vertical est différent du titre de la colonne du tableau.
+ //dans l'axe on utilise la nature et dans le tableau la variable
+ if (_column == yColIndex) {
+ String name = AbstractLoiUiController.PROP_Z_XT;
+ //pour ajouter l'unité si présente
+ if (getCourbe() != null && getCourbe().getAxeY() != null && StringUtils.isNotBlank(getCourbe().getAxeY().getUnite())) {
+ name = name + PropertyNature.getUniteSuffixe(getCourbe().getAxeY().getUnite());
+ }
+ return name;
+ }
return super.getColumnName(_column);
}
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java 2016-11-22 09:10:40 UTC (rev 9457)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java 2016-11-22 09:41:23 UTC (rev 9458)
@@ -295,7 +295,7 @@
}
}
updating = true;
- super.setLoi(LoiHelper.createFromProfil(profil.getPtProfil(), nom), ccm, false, AbstractLoiUiController.PROP_Z_XT);
+ super.setLoi(LoiHelper.createFromProfil(profil.getPtProfil(), nom), ccm, false);
final TableColumn etiquetteColumn = tableGraphePanel.getTable().getColumnModel().getColumn(3);
//faut ajouter le renderer et editor.
etiquetteColumn.setCellRenderer(new ProfilSectionEtiquetteCellRenderer());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2016-11-22 09:10:43
|
Revision: 9457
http://sourceforge.net/p/fudaa/svn/9457
Author: deniger
Date: 2016-11-22 09:10:40 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
Ajout commentaire
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportCustomEditor.java
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportCustomEditor.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportCustomEditor.java 2016-11-21 15:34:00 UTC (rev 9456)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportCustomEditor.java 2016-11-22 09:10:40 UTC (rev 9457)
@@ -47,8 +47,10 @@
//test == voulu car test sur référence
boolean isCible = scenarioEditor.getCampagneligne().getCible() == scenarioEditor.getCampagneItem();
File etuFile = null;
+ //on edite la cible mais le fichier etude n'est pas renseigné pour la cible.
+ //cela veut dire que l'utilisateur veut utiliser le fichier etu de la référence
if (isCible && StringUtils.isEmpty(scenarioEditor.getCampagneItem().getEtuPath())) {
- //dans ce cas on tente avec la référence
+ //donc on utilise la référence
etuFile = scenarioEditor.getCampagneligne().getReference().getEtuFile(scenarioEditor.getCampagne().getOtfaDir());
} else {
etuFile = scenarioEditor.getCampagneItem().getEtuFile(scenarioEditor.getCampagne().getOtfaDir());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-21 15:34:02
|
Revision: 9456
http://sourceforge.net/p/fudaa/svn/9456
Author: bmarchan
Date: 2016-11-21 15:34:00 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
Sauvegarde des fichiers de resultats
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,45 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats scalaires moyenn\xE9s.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivAverageScalWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.NORME) ||
+ !_res.hasResult(TYPE.CORREL) ||
+ !_res.hasResult(TYPE.OMEGA) ||
+ !_res.hasResult(TYPE.DIVERG)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // Format fixe.
+ String s=String.format(Locale.US, "%8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", _res.getX(i),_res.getY(i),_res.getValue(i, TYPE.NORME),_res.getValue(i, TYPE.CORREL),_res.getValue(i, TYPE.OMEGA),_res.getValue(i, TYPE.DIVERG));
+ writer.println(s);
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageScalWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,41 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats de vitesses moyenn\xE9es.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivAverageVelWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.VX) ||
+ !_res.hasResult(TYPE.VY)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // (est lu par les solveurs en format libre).
+ writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY));
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,42 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats instantan\xE9es filtr\xE9s en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivInstantFilteredWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.VX) ||
+ !_res.hasResult(TYPE.VY)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // (est lu par les solveurs en format libre).
+ writer.println(_res.getX(i)+" "+_res.getY(i)+" "+_res.getValue(i, TYPE.VX)+" "+_res.getValue(i, TYPE.VY));
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -0,0 +1,46 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+import org.fudaa.fudaa.piv.metier.PivResultsI;
+import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE;
+
+
+/**
+ * Une classe pour ecrire un fichier des r\xE9sultats scalaires instantan\xE9es filtr\xE9s en espace r\xE9el.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivParamWriter.java 9455 2016-11-18 11:05:02Z bmarchan $
+ */
+public class PivInstantScalWriter extends FileCharSimpleWriterAbstract<PivResultsI> {
+
+ /**
+ * Ecrit les resultats.
+ */
+ @Override
+ protected void internalWrite(final PivResultsI _res) {
+ if (!_res.hasResult(TYPE.NORME) ||
+ !_res.hasResult(TYPE.CORREL) ||
+ !_res.hasResult(TYPE.OMEGA) ||
+ !_res.hasResult(TYPE.DIVERG)) {
+ donneesInvalides(_res);
+ return;
+ }
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+
+ for (int i=0; i<_res.getNbPoints(); i++) {
+ // Format fixe.
+ String s=String.format(Locale.US, "%8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", _res.getX(i),_res.getY(i),_res.getValue(i, TYPE.NORME),_res.getValue(i, TYPE.CORREL),_res.getValue(i, TYPE.OMEGA),_res.getValue(i, TYPE.DIVERG));
+ writer.println(s);
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantScalWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2016-11-18 11:05:02 UTC (rev 9455)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2016-11-21 15:34:00 UTC (rev 9456)
@@ -18,7 +18,9 @@
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.io.PivAverageScalReader;
+import org.fudaa.fudaa.piv.io.PivAverageScalWriter;
import org.fudaa.fudaa.piv.io.PivAverageVelReader;
+import org.fudaa.fudaa.piv.io.PivAverageVelWriter;
import org.fudaa.fudaa.piv.io.PivBathyPReader;
import org.fudaa.fudaa.piv.io.PivBathyReader;
import org.fudaa.fudaa.piv.io.PivBathyWriter;
@@ -37,7 +39,9 @@
import org.fudaa.fudaa.piv.io.PivImgRefReader;
import org.fudaa.fudaa.piv.io.PivImgRefWriter;
import org.fudaa.fudaa.piv.io.PivInstantFilteredReader;
+import org.fudaa.fudaa.piv.io.PivInstantFilteredWriter;
import org.fudaa.fudaa.piv.io.PivInstantScalReader;
+import org.fudaa.fudaa.piv.io.PivInstantScalWriter;
import org.fudaa.fudaa.piv.io.PivInstantVelReader;
import org.fudaa.fudaa.piv.io.PivParamReader;
import org.fudaa.fudaa.piv.io.PivParamWriter;
@@ -537,6 +541,12 @@
// Les resultats utilis\xE9s pour le calcul de vitesse moyenne.
saveInstantResultsList(false);
+ // Les resultats moyenn\xE9s
+ saveAverageResults(prj_, prj_.averageResults, null);
+
+ // Les resultats filtr\xE9s instantan\xE9s
+ saveInstantFilteredResults(prj_, prj_.instantFilteredResults, null);
+
// Les donn\xE9es globales
saveGlobalData(null);
@@ -614,4 +624,57 @@
}
}
+ /**
+ * Sauve les resultats filtr\xE9s, dans l'ordre
+ * @param prj_ Le projet
+ * @param _res Les resultats a sauver
+ * @param _prog L'interface de progression.
+ */
+ public void saveInstantFilteredResults(PivProject prj_, PivResultsI[] _res, ProgressionInterface _prog) {
+
+ // Suppression des anciens fichiers vitesses
+ File dirVelFilter=new File(prj_.rootPath,PivProject.VEL_FILTER_DIR);
+ dirVelFilter.mkdir();
+ File[] files=dirVelFilter.listFiles();
+ if (files!=null) {
+ for (File file : files) {
+ file.delete();
+ }
+ }
+
+ // Suppression des anciens fichiers scalaires
+ File dirVelScal=new File(prj_.rootPath,PivProject.VEL_SCAL_DIR);
+ dirVelScal.mkdir();
+ files=dirVelScal.listFiles();
+ if (files!=null) {
+ for (File file : files) {
+ file.delete();
+ }
+ }
+
+ if (_res==null) return;
+
+ for (int i = 0; i < _res.length; i++) {
+ File velFile = new File(dirVelFilter, "filter_piv" + PivUtils.formatOn4Chars(i + 1) + ".dat");
+ new PivInstantFilteredWriter().write(_res[i], velFile, _prog);
+
+ File scalFile = new File(dirVelScal, "scal_piv" + PivUtils.formatOn4Chars(i + 1) + ".dat");
+ new PivInstantScalWriter().write(_res[i], scalFile, _prog);
+ }
+ }
+
+ /**
+ * Sauve les resultats moyenn\xE9s dans l'espace r\xE9el
+ * @param prj_ Le projet
+ * @param _res Les resultats a sauver
+ * @param _prog L'interface de progression.
+ */
+ public void saveAverageResults(PivProject prj_, PivResultsI _res, ProgressionInterface _prog) {
+
+ File velFile = new File(prj_.getOutputDir(),"average_vel.out");
+ new PivAverageVelWriter().write(_res, velFile, _prog);
+
+ File scalFile = new File(prj_.getOutputDir(), "average_scal.out");
+ new PivAverageScalWriter().write(_res, scalFile, _prog);
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2016-11-18 11:05:04
|
Revision: 9455
http://sourceforge.net/p/fudaa/svn/9455
Author: bmarchan
Date: 2016-11-18 11:05:02 +0000 (Fri, 18 Nov 2016)
Log Message:
-----------
Ajout des parametres supplementaires pour les filtres de vitesse.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -44,6 +44,8 @@
private JTextField tfNormalMinLimit_;
private JTextField tfNormalMaxLimit_;
private JCheckBox cbVelFlt_;
+ private JTextField tfVxMinLimit_;
+ private JTextField tfVxMaxLimit_;
private JTextField tfVyMinLimit_;
private JTextField tfVyMaxLimit_;
private JCheckBox cbCorrelFlt_;
@@ -72,6 +74,8 @@
boolean b=cbVelFlt_.isSelected();
tfNormalMinLimit_.setEnabled(b);
tfNormalMaxLimit_.setEnabled(b);
+ tfVxMinLimit_.setEnabled(b);
+ tfVxMaxLimit_.setEnabled(b);
tfVyMinLimit_.setEnabled(b);
tfVyMaxLimit_.setEnabled(b);
}
@@ -101,8 +105,31 @@
pnNormalLimits.add(pn);
pnVelocity.add(pnNormalLimits);
+ JPanel pnVxLimits=new JPanel();
+ pnVxLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la composante Vx (m/s)")));
+ pnVxLimits.setLayout(new BuVerticalLayout(3,true,false));
+
+ pn=new JPanel();
+ pn.setLayout(new BorderLayout(3,3));
+ JLabel lbVxMinLimit=new JLabel(PivResource.getS("Min:"));
+ pn.add(lbVxMinLimit, BorderLayout.WEST);
+ tfVxMinLimit_ = new JTextField();
+ tfVxMinLimit_.setEnabled(false);
+ pn.add(tfVxMinLimit_, BorderLayout.CENTER);
+ pnVxLimits.add(pn);
+
+ pn=new JPanel();
+ pn.setLayout(new BorderLayout(3,3));
+ JLabel lbVxMaxLimit=new JLabel(PivResource.getS("Max:"));
+ pn.add(lbVxMaxLimit, BorderLayout.WEST);
+ tfVxMaxLimit_ = new JTextField();
+ tfVxMaxLimit_.setEnabled(false);
+ pn.add(tfVxMaxLimit_, BorderLayout.CENTER);
+ pnVxLimits.add(pn);
+ pnVelocity.add(pnVxLimits);
+
JPanel pnVyLimits=new JPanel();
- pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la vitesse v transversale (m/s)")));
+ pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la componsante Vy (m/s)")));
pnVyLimits.setLayout(new BuVerticalLayout(3,true,false));
pn=new JPanel();
@@ -123,9 +150,10 @@
pn.add(tfVyMaxLimit_, BorderLayout.CENTER);
pnVyLimits.add(pn);
pnVelocity.add(pnVyLimits);
+
tp.addTab(PivResource.getS("Vitesse"), pnVelocity);
- BuLib.giveSameWidth(lbNormalMinLimit, lbNormalMaxLimit, lbVyMinLimit, lbVyMaxLimit);
+ BuLib.giveSameWidth(lbNormalMinLimit, lbNormalMaxLimit, lbVxMinLimit, lbVxMaxLimit, lbVyMinLimit, lbVyMaxLimit);
// Filtre pour la correlation
@@ -236,20 +264,27 @@
if (_params.getSmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
_params.getSmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
- _params.getVmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
- _params.getVmax()==PivUtils.FORTRAN_DOUBLE_MAX) {
+ _params.getVxmin()==PivUtils.FORTRAN_DOUBLE_MIN &&
+ _params.getVxmax()==PivUtils.FORTRAN_DOUBLE_MAX &&
+ _params.getVymin()==PivUtils.FORTRAN_DOUBLE_MIN &&
+ _params.getVymax()==PivUtils.FORTRAN_DOUBLE_MAX
+ ) {
cbVelFlt_.setSelected(false);
tfNormalMinLimit_.setText("0.");
tfNormalMaxLimit_.setText(""+_params.getSmax());
- tfVyMinLimit_.setText(""+_params.getVmin());
- tfVyMaxLimit_.setText(""+_params.getVmax());
+ tfVxMinLimit_.setText(""+_params.getVxmin());
+ tfVxMaxLimit_.setText(""+_params.getVxmax());
+ tfVyMinLimit_.setText(""+_params.getVymin());
+ tfVyMaxLimit_.setText(""+_params.getVymax());
}
else {
cbVelFlt_.setSelected(true);
tfNormalMinLimit_.setText(""+_params.getSmin());
tfNormalMaxLimit_.setText(""+_params.getSmax());
- tfVyMinLimit_.setText(""+_params.getVmin());
- tfVyMaxLimit_.setText(""+_params.getVmax());
+ tfVxMinLimit_.setText(""+_params.getVxmin());
+ tfVxMaxLimit_.setText(""+_params.getVxmax());
+ tfVyMinLimit_.setText(""+_params.getVymin());
+ tfVyMaxLimit_.setText(""+_params.getVymax());
}
}
@@ -273,14 +308,18 @@
if (cbVelFlt_.isSelected()) {
_params.setSmin(Double.parseDouble(tfNormalMinLimit_.getText()));
_params.setSmax(Double.parseDouble(tfNormalMaxLimit_.getText()));
- _params.setVmin(Double.parseDouble(tfVyMinLimit_.getText()));
- _params.setVmax(Double.parseDouble(tfVyMaxLimit_.getText()));
+ _params.setVxmin(Double.parseDouble(tfVxMinLimit_.getText()));
+ _params.setVxmax(Double.parseDouble(tfVxMaxLimit_.getText()));
+ _params.setVymin(Double.parseDouble(tfVyMinLimit_.getText()));
+ _params.setVymax(Double.parseDouble(tfVyMaxLimit_.getText()));
}
else {
_params.setSmin(PivUtils.FORTRAN_DOUBLE_MIN);
_params.setSmax(PivUtils.FORTRAN_DOUBLE_MAX);
- _params.setVmin(PivUtils.FORTRAN_DOUBLE_MIN);
- _params.setVmax(PivUtils.FORTRAN_DOUBLE_MAX);
+ _params.setVxmin(PivUtils.FORTRAN_DOUBLE_MIN);
+ _params.setVxmax(PivUtils.FORTRAN_DOUBLE_MAX);
+ _params.setVymin(PivUtils.FORTRAN_DOUBLE_MIN);
+ _params.setVymax(PivUtils.FORTRAN_DOUBLE_MAX);
}
}
@@ -346,8 +385,11 @@
!cbVelFlt_.isSelected() || (
isReal(tfNormalMinLimit_.getText(),PivResource.getS("Min norme de vitesse")) &&
isReal(tfNormalMaxLimit_.getText(),PivResource.getS("Max norme de vitesse")) &&
- isReal(tfVyMinLimit_.getText(),PivResource.getS("Min vitesse transversale")) &&
- isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max vitesse transversale")));
+ isReal(tfVyMinLimit_.getText(),PivResource.getS("Min Vx")) &&
+ isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max Vx")) &&
+ isReal(tfVyMinLimit_.getText(),PivResource.getS("Min Vy")) &&
+ isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max Vy"))
+ );
if (!bok) return false;
double min;
@@ -366,16 +408,28 @@
PivResource.getS("Max norme de vitesse"), PivUtils.FORTRAN_DOUBLE_MAX));
return false;
}
+ min=Double.parseDouble(tfVxMinLimit_.getText());
+ if (min<PivUtils.FORTRAN_DOUBLE_MIN) {
+ setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}",
+ PivResource.getS("Min Vx"), PivUtils.FORTRAN_DOUBLE_MIN));
+ return false;
+ }
+ max=Double.parseDouble(tfVxMaxLimit_.getText());
+ if (max>PivUtils.FORTRAN_DOUBLE_MAX) {
+ setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}",
+ PivResource.getS("Max Vx"), PivUtils.FORTRAN_DOUBLE_MAX));
+ return false;
+ }
min=Double.parseDouble(tfVyMinLimit_.getText());
if (min<PivUtils.FORTRAN_DOUBLE_MIN) {
setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}",
- PivResource.getS("Min vitesse transversale"), PivUtils.FORTRAN_DOUBLE_MIN));
+ PivResource.getS("Min Vy"), PivUtils.FORTRAN_DOUBLE_MIN));
return false;
}
max=Double.parseDouble(tfVyMaxLimit_.getText());
if (max>PivUtils.FORTRAN_DOUBLE_MAX) {
setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}",
- PivResource.getS("Max vitesse transversale"), PivUtils.FORTRAN_DOUBLE_MAX));
+ PivResource.getS("Max Vy"), PivUtils.FORTRAN_DOUBLE_MAX));
return false;
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamReader.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -16,6 +16,8 @@
import org.fudaa.fudaa.piv.metier.PivComputeParameters;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import com.memoire.fu.FuLog;
+
/**
* Un lecteur pour les fichiers des parametres pour le calcul par PIV.
*
@@ -26,6 +28,8 @@
/** Drapeau d'interruption */
boolean bstop_;
+ /** Version du fichier */
+ String version_="1.0";
/**
* Le constructeur.
@@ -65,9 +69,15 @@
}
in_.setJumpBlankLine(true);
-
+
+ // Entete "# FileVersion <num> / IA size"
+ in_.readFields();
+ if ("#".equals(in_.stringField(0)) && "FileVersion".equals(in_.stringField(1))) {
+ version_ = in_.stringField(2);
+ }
+ FuLog.debug("Version du fichier"+"="+version_);
+
// IA size
- in_.readLine();
in_.readFields();
params.setIASize(in_.intField(0));
@@ -110,12 +120,25 @@
in_.readFields();
params.setSmax(in_.doubleField(0));
- // Seuils limites de vitesse transversale vmin, vmax
+ // Seuils composante VX vmin, vmax
in_.readLine();
in_.readFields();
- params.setVmin(in_.doubleField(0));
+ params.setVxmin(in_.doubleField(0));
in_.readFields();
- params.setVmax(in_.doubleField(0));
+ params.setVxmax(in_.doubleField(0));
+
+ if ("2.0".equals(version_)) {
+ // Seuils composante Vy vmin, vmax
+ in_.readLine();
+ in_.readFields();
+ params.setVymin(in_.doubleField(0));
+ in_.readFields();
+ params.setVymax(in_.doubleField(0));
+ }
+ else {
+ params.setVymin(params.getVxmin());
+ params.setVymax(params.getVxmax());
+ }
// Coefficient de surface
in_.readLine();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivParamWriter.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -15,6 +15,8 @@
* @version $Id$
*/
public class PivParamWriter extends FileCharSimpleWriterAbstract<Object[]> {
+ /** Version du fichier */
+ public static final String VERSION="2.0";
/**
* Ecrit les param\xE8tres d'orthorectification.
@@ -45,8 +47,10 @@
final PrintWriter writer = new PrintWriter(out_);
try {
+ // Entete
+ writer.println("# FileVersion "+VERSION+ " / IA Size");
+
// IA size
- writer.println("IA size");
writer.println(pivDefined ? params.getIASize():-1);
// SA size
@@ -78,11 +82,14 @@
writer.println(pivDefined ? params.getSmin():-1);
writer.println(pivDefined ? params.getSmax():-1);
- // Seuils limites de vitesse v transversale : vmin - vmax
- writer.println("Seuils limites de vitesse v transversale : vmin - vmax");
- writer.println(pivDefined ? params.getVmin():-1);
- writer.println(pivDefined ? params.getVmax():-1);
+ writer.println("Seuils limites de la composante Vx : min - max");
+ writer.println(pivDefined ? params.getVxmin():-1);
+ writer.println(pivDefined ? params.getVxmax():-1);
+ writer.println("Seuils limites de la composante Vy : min - max");
+ writer.println(pivDefined ? params.getVymin():-1);
+ writer.println(pivDefined ? params.getVymax():-1);
+
// Coefficient de surface
writer.println("Coefficient de surface");
writer.println(flowDefined ? paramsFlow.getSurfaceCoef():-1);
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2016-11-18 11:01:34 UTC (rev 9454)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2016-11-18 11:05:02 UTC (rev 9455)
@@ -32,10 +32,14 @@
protected double smin=PivUtils.FORTRAN_DOUBLE_MIN;
/** Valeur max des normes de vitesse */
protected double smax=PivUtils.FORTRAN_DOUBLE_MAX;
- /** Valeur min des vitesses transversales */
- protected double vmin=PivUtils.FORTRAN_DOUBLE_MIN;
- /** Valeur max des vitesses transversales */
- protected double vmax=PivUtils.FORTRAN_DOUBLE_MAX;
+ /** Valeur min composante Vx */
+ protected double vxmin=PivUtils.FORTRAN_DOUBLE_MIN;
+ /** Valeur max composante Vx */
+ protected double vxmax=PivUtils.FORTRAN_DOUBLE_MAX;
+ /** Valeur min composante Vy */
+ protected double vymin=PivUtils.FORTRAN_DOUBLE_MIN;
+ /** Valeur max composante Vy */
+ protected double vymax=PivUtils.FORTRAN_DOUBLE_MAX;
public PivComputeParameters() {
}
@@ -183,30 +187,58 @@
/**
* @return the vmin
*/
- public double getVmin() {
- return vmin;
+ public double getVxmin() {
+ return vxmin;
}
/**
* @param vmin the vmin to set
*/
- public void setVmin(double vmin) {
- this.vmin = vmin;
+ public void setVxmin(double vmin) {
+ this.vxmin = vmin;
}
/**
* @return the vmax
*/
- public double getVmax() {
- return vmax;
+ public double getVxmax() {
+ return vxmax;
}
/**
* @param vmax the vmax to set
*/
- public void setVmax(double vmax) {
- this.vmax = vmax;
+ public void setVxmax(double vmax) {
+ this.vxmax = vmax;
}
+
+ /**
+ * @return the vmin
+ */
+ public double getVymin() {
+ return vymin;
+ }
+
+ /**
+ * @param vmin the vmin to set
+ */
+ public void setVymin(double vmin) {
+ this.vymin = vmin;
+ }
+
+ /**
+ * @return the vmax
+ */
+ public double getVymax() {
+ return vymax;
+ }
+
+ /**
+ * @param vmax the vmax to set
+ */
+ public void setVymax(double vmax) {
+ this.vymax = vmax;
+ }
/**
* Definit la position de IA suivant J et I
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|