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. |