|
From: <de...@us...> - 2015-09-22 22:11:48
|
Revision: 9175
http://sourceforge.net/p/fudaa/svn/9175
Author: deniger
Date: 2015-09-22 22:11:45 +0000 (Tue, 22 Sep 2015)
Log Message:
-----------
CRUE-662
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/AbstractLoiCourbeModel.java
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/DefaultLoiTableModel.java
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
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/AbstractLoiCourbeModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/AbstractLoiCourbeModel.java 2015-09-22 22:09:19 UTC (rev 9174)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/AbstractLoiCourbeModel.java 2015-09-22 22:11:45 UTC (rev 9175)
@@ -154,7 +154,6 @@
treeSet.add(ptEvolDelta);
}
-
}
return true;
}
@@ -524,7 +523,10 @@
}
Arrays.sort(idxToRemove);
for (int i = nb - 1; i >= 0; i--) {
- lines.remove(idxToRemove[i]);
+ int idx = idxToRemove[i];
+ if (idx < lines.size() && idx >= 0) {
+ lines.remove(idx);
+ }
}
changeDone();
return true;
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/DefaultLoiTableModel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/DefaultLoiTableModel.java 2015-09-22 22:09:19 UTC (rev 9174)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/common/DefaultLoiTableModel.java 2015-09-22 22:11:45 UTC (rev 9175)
@@ -1,19 +1,25 @@
package org.fudaa.fudaa.crue.loi.common;
+import java.util.List;
import org.apache.commons.lang.StringUtils;
+import org.fudaa.ctulu.CtuluCommandComposite;
+import org.fudaa.ctulu.CtuluDoubleParser;
import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.table.CtuluTableExportInterface;
import org.fudaa.dodico.crue.config.ccm.PropertyNature;
import org.fudaa.ebli.courbe.EGAxe;
import org.fudaa.ebli.courbe.EGCourbe;
import org.fudaa.ebli.courbe.EGTableGraphePanel;
import org.fudaa.ebli.courbe.EGTableGraphePanel.SpecTableModel;
+import org.fudaa.ebli.courbe.EGTableModel;
+import org.fudaa.ebli.courbe.EGTableModelUpdatable;
/**
* Etend le tableModel par defaut de ebli-graphe, pour ajouter une colonne indiquant les erreurs/warnings et pour ne réagir qu'au courbe des points.
*
* @author Frederic Deniger
*/
-public class DefaultLoiTableModel extends SpecTableModel {
+public class DefaultLoiTableModel extends SpecTableModel implements CtuluTableExportInterface, EGTableModelUpdatable {
public DefaultLoiTableModel(EGTableGraphePanel graphePanel) {
super(graphePanel);
@@ -27,6 +33,51 @@
}
@Override
+ public boolean isColumnExportable(int colModel) {
+ return colModel != 0;
+ }
+
+ @Override
+ public int updateLines(final List _tab, final int _selectedColumm,
+ final int _selectedRow, final CtuluDoubleParser _doubleParser, final CtuluCommandComposite _cmp) {
+ final int nbLine = _tab.size();
+ final int maxUpdate = Math.min(nbLine, getCourbe().getModel().getNbValues() - _selectedRow);
+ for (int i = 0; i < maxUpdate; i++) {
+ final List listCell = (List) _tab.get(i);
+ final int max = Math.min(getRowCount() - _selectedColumm, listCell.size());
+ for (int j = 0; j < max; j++) {
+ final int iCellule = i + _selectedRow;
+ final int jCellule = j + _selectedColumm;
+ if (jCellule >= 1) {
+ final Object o = listCell.get(j);
+ setValueInModel(o, _doubleParser, iCellule, jCellule, _cmp);
+ }
+ }
+ }
+ return maxUpdate;
+ }
+
+ protected void setValueInModel(final Object o, final CtuluDoubleParser _doubleParser, final int iCellule, final int jCellule,
+ final CtuluCommandComposite _cmp) {
+ boolean ok = false;
+ double d = 0;
+ if (o instanceof Number) {
+ d = ((Number) o).doubleValue();
+ ok = true;
+ } else if (o != null) {
+ try {
+ d = _doubleParser.parse(o.toString());
+ ok = true;
+ } catch (final NumberFormatException e) {
+ ok = false;
+ }
+ }
+ if (ok) {
+ setValueAt(d, iCellule, jCellule, _cmp);
+ }
+ }
+
+ @Override
protected void selectedCourbeChanged(EGCourbe _a) {
if (_a == null && getCourbe() == null) {
return;
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 2015-09-22 22:09:19 UTC (rev 9174)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiTableModel.java 2015-09-22 22:11:45 UTC (rev 9175)
@@ -3,6 +3,7 @@
*/
package org.fudaa.fudaa.crue.loi.section;
+import com.memoire.fu.FuEmptyArrays;
import gnu.trove.TIntObjectHashMap;
import java.util.ArrayList;
import java.util.Collections;
@@ -10,7 +11,12 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang.StringUtils;
+import org.fudaa.ctulu.CtuluCommandComposite;
+import org.fudaa.ctulu.CtuluDoubleParser;
+import org.fudaa.ctulu.CtuluLibArray;
import org.fudaa.ctulu.CtuluListSelection;
+import org.fudaa.dodico.crue.common.transformer.TransformerHelper;
import org.fudaa.dodico.crue.metier.emh.DonFrt;
import org.fudaa.dodico.crue.config.lit.LitNommeLimite;
import org.fudaa.ebli.courbe.EGTableGraphePanel;
@@ -28,9 +34,11 @@
public static final int COLUMN_FRT = 4;
protected String donFrtLimiteLitAsString;
protected String donFrtLimiteLitNommeAsString;
+ private final ProfilSectionLoiUiController profilSectionLoiUiController;
- public ProfilSectionLoiTableModel(EGTableGraphePanel graphePanel) {
+ public ProfilSectionLoiTableModel(EGTableGraphePanel graphePanel, ProfilSectionLoiUiController profilSectionLoiUiController) {
super(graphePanel);
+ this.profilSectionLoiUiController = profilSectionLoiUiController;
donFrtLimiteLitAsString = org.openide.util.NbBundle.getMessage(LoiMessages.class, "ProfilSection.DonFrt.LimiteLit");
donFrtLimiteLitNommeAsString = org.openide.util.NbBundle.getMessage(LoiMessages.class, "ProfilSection.DonFrt.LimiteLitNomme");
}
@@ -64,10 +72,38 @@
}
@Override
- public String getColumnName(int _column) {
+ protected void setValueInModel(final Object o, final CtuluDoubleParser _doubleParser, final int iCellule, final int jCellule,
+ final CtuluCommandComposite _cmp) {
+ if (jCellule == COLUMN_ETIQUETTE) {
+ String etiquettesValue = o == null ? null : o.toString();
+ String[] etiquettes = StringUtils.split(etiquettesValue, ";");
+ final List<ProfilSectionEtiquette> allEtiquettes = ProfilSectionEtiquette.getEtiquettes(profilSectionLoiUiController.getCcm());
+ List<ProfilSectionEtiquette> newEtiquettes = new ArrayList<>();
+ final Map<String, ProfilSectionEtiquette> toMapOfString = CtuluLibArray.toMapOfString(allEtiquettes);
+ for (String etiquette : etiquettes) {
+ final ProfilSectionEtiquette found = toMapOfString.get(etiquette);
+ if (found != null) {
+ newEtiquettes.add(found);
+ }
+ }
+ setEtiquettes(newEtiquettes, iCellule);
+
+ } else if (jCellule == COLUMN_FRT) {
+ String frt = o == null ? null : o.toString();
+ DonFrt toSet = profilSectionLoiUiController.getDonFrtByName(frt);
+ setValueAt(toSet, iCellule, jCellule);
+ } else {
+ super.setValueInModel(o, _doubleParser, iCellule, jCellule, _cmp);
+ }
+ }
+
+ @Override
+ public String
+ getColumnName(int _column) {
if (_column == COLUMN_ETIQUETTE) {
return NbBundle.getMessage(LoiMessages.class, "Etiquette.Label");
}
+
if (_column == COLUMN_FRT) {
return NbBundle.getMessage(LoiMessages.class, "DonFrt.Label");
}
@@ -77,6 +113,7 @@
@Override
public void setValueAt(Object _value, int _rowIndex, int _columnIndex) {
if (_columnIndex == COLUMN_ETIQUETTE) {
+
// ne rien faire ici.setEtiquettes appelé explicitement par le CellEditor.
} else if (_columnIndex == COLUMN_FRT) {
if (_rowIndex < getCourbe().getModel().getNbValues()) {
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 2015-09-22 22:09:19 UTC (rev 9174)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java 2015-09-22 22:11:45 UTC (rev 9175)
@@ -24,6 +24,7 @@
import org.fudaa.ctulu.CtuluLogLevel;
import org.fudaa.ctulu.CtuluNumberFormatDefault;
import org.fudaa.dodico.crue.common.io.CrueIOResu;
+import org.fudaa.dodico.crue.common.transformer.TransformerHelper;
import org.fudaa.dodico.crue.config.ccm.ConfigLoi;
import org.fudaa.dodico.crue.config.ccm.CrueConfigMetier;
import org.fudaa.dodico.crue.config.ccm.DecimalFormatEpsilonEnum;
@@ -187,6 +188,20 @@
}
}
+ protected DonFrt getDonFrtByName(String id) {
+ if (id == null) {
+ return null;
+ }
+ Map<String, DonFrt> toMapOfId = TransformerHelper.toMapOfId(frt);
+ DonFrt frt = toMapOfId.get(id.toUpperCase());
+ if (frt != null) {
+ return frt;
+ }
+ toMapOfId = TransformerHelper.toMapOfId(frtStockage);
+ return toMapOfId.get(id.toUpperCase());
+
+ }
+
public JLabel getLabelValidating() {
return labelValidating;
}
@@ -330,7 +345,7 @@
@Override
protected AbstractTableModel createTableModel() {
- return new ProfilSectionLoiTableModel(tableGraphePanel);
+ return new ProfilSectionLoiTableModel(tableGraphePanel, this);
}
@Override
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java 2015-09-22 22:09:19 UTC (rev 9174)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/controller/LayerTraceGisBuilder.java 2015-09-22 22:11:45 UTC (rev 9175)
@@ -195,6 +195,13 @@
Coordinate aval = brancheGis.getCoordinateN(segmentidx + 1);
double norm = amont.distance(aval);
if (norm == 0) {
+ if (segmentidx > 0) {
+ amont = brancheGis.getCoordinateN(segmentidx - 1);
+ norm = amont.distance(aval);
+ if (norm == 0) {
+ return null;
+ }
+ }
return null;
}
double vx = aval.x - amont.x;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|