|
From: <bma...@us...> - 2015-04-21 15:37:05
|
Revision: 9117
http://sourceforge.net/p/fudaa/svn/9117
Author: bmarchan
Date: 2015-04-21 15:36:56 +0000 (Tue, 21 Apr 2015)
Log Message:
-----------
Petites am?\195?\169liorations pour les ?\195?\169ditions de geometries (Formattage/nommage des colonnes X,Y)
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsEditorPanel.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsMultiEditorPanel.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java
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/ZModelePointEditable.java
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -927,17 +927,20 @@
throw new IllegalArgumentException("Au moins l'un des deux index est incoh\xE9rent.");
}
if (_index1 != _index2) {
- CtuluCommandComposite cmd = new CtuluCommandComposite();
+ CtuluCommandComposite cmd=new CtuluCommandComposite();
// Permutation des g\xE9om\xE9tries
super.switchGeometries(_index1, _index2, cmd);
// Permutation des valeurs d'attributs
- for (int i = 0; i < attr_.length; i++) {
- Object tmp = attr_[i].getObjectValueAt(_index1);
- attr_[i].setObject(_index1, attr_[i].getObjectValueAt(_index2), cmd);
- attr_[i].setObject(_index2, tmp, cmd);
+
+ if (attr_ != null) {
+ for (int i=0; i < attr_.length; i++) {
+ Object tmp=attr_[i].getObjectValueAt(_index1);
+ attr_[i].setObject(_index1, attr_[i].getObjectValueAt(_index2), cmd);
+ attr_[i].setObject(_index2, tmp, cmd);
+ }
+ fireAttributeValueChanged(-1, null, _index1, null);
+ fireAttributeValueChanged(-1, null, _index2, null);
}
- fireAttributeValueChanged(-1, null, _index1, null);
- fireAttributeValueChanged(-1, null, _index2, null);
if (_cmd != null) {
_cmd.addCmd(cmd.getSimplify());
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsEditorPanel.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsEditorPanel.java 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsEditorPanel.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -6,10 +6,12 @@
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+
import javax.swing.JCheckBox;
+
import org.fudaa.ctulu.CtuluCommandContainer;
-import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gui.CtuluValuesEditorPanel;
+import org.fudaa.ebli.commun.EbliCoordinateDefinition;
import org.fudaa.ebli.commun.EbliLib;
/**
@@ -23,13 +25,13 @@
/**
* Constructeur.
- * @param _zone La collection contenant les g\xE9om\xE9tries.
+ * @param _model Le mod\xE8le \xE9ditable contenant les g\xE9om\xE9tries.
* @param _idx Les indices des objets selectionn\xE9s.
* @param _cmd Le manager undo/redo
*/
- public EbliObjetsEditorPanel(final GISZoneCollection _zone, final int[] _idx, final CtuluCommandContainer _cmd) {
- super(new EbliObjetsMultiEditorPanel(_zone,_idx),_cmd);
- decorePanel(_zone.getNbGeometries()==_idx.length);
+ public EbliObjetsEditorPanel(final ZModeleEditable _model, final int[] _idx, final CtuluCommandContainer _cmd, EbliCoordinateDefinition[] _coordDefs) {
+ super(new EbliObjetsMultiEditorPanel(_model,_idx, _coordDefs),_cmd);
+ decorePanel(_model.getNombre()==_idx.length);
}
/**
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsMultiEditorPanel.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsMultiEditorPanel.java 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/EbliObjetsMultiEditorPanel.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -7,10 +7,6 @@
*/
package org.fudaa.ebli.calque.edition;
-import com.memoire.bu.BuButton;
-import com.memoire.bu.BuLabel;
-import com.memoire.bu.BuResource;
-import com.memoire.bu.BuVerticalLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
@@ -20,15 +16,17 @@
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
+
import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+
import org.fudaa.ctulu.CtuluCommandComposite;
import org.fudaa.ctulu.collection.CtuluCollection;
-import org.fudaa.ctulu.editor.CtuluValueEditorDefaults;
+import org.fudaa.ctulu.editor.CtuluValueEditorDouble;
import org.fudaa.ctulu.editor.CtuluValueEditorI;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISAttributeModel;
@@ -37,8 +35,14 @@
import org.fudaa.ctulu.gui.CtuluValuesMultiEditorPanel;
import org.fudaa.ctulu.gui.CtuluValuesParameters;
import org.fudaa.ctulu.gui.CtuluValuesParametersDefault;
+import org.fudaa.ebli.commun.EbliCoordinateDefinition;
import org.fudaa.ebli.commun.EbliLib;
+import com.memoire.bu.BuButton;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuVerticalLayout;
+
/**
* Un editeur pour les g\xE9om\xE9tries d'un calque. Permet l'\xE9dition des g\xE9om\xE9tries et leur reordonnancement.
*
@@ -55,7 +59,7 @@
* True : Seules les g\xE9om\xE9tries s\xE9lectionn\xE9es sont prisent en compte
*/
private boolean isFiltered_ = true;
- private GISZoneCollection zone_;
+ private ZModeleEditable model_;
/**
* Indice de zone vers sortable row
*/
@@ -113,13 +117,13 @@
}
/**
- * @param _zone La collection des g\xE9om\xE9tries.
+ * @param _model Le mod\xE8le \xE9ditable.
* @param _idx Les indices selectionn\xE9s.
*/
- public EbliObjetsMultiEditorPanel(GISZoneCollection _zone, final int[] _idx) {
- super(buildParams(_zone, _idx));
+ public EbliObjetsMultiEditorPanel(ZModeleEditable _model, final int[] _idx, EbliCoordinateDefinition[] _coordDefs) {
+ super(buildParams(_model.getGeomData(), _idx, _coordDefs));
- zone_ = _zone;
+ model_ = _model;
idxInitMdlSel_ = _idx;
for (Row row : rows_) {
@@ -138,7 +142,7 @@
* @param _idx Les indices selectionn\xE9s
* @return Les param\xE8tres.
*/
- private static CtuluValuesParameters buildParams(final GISZoneCollection _zone, final int[] _idx) {
+ private static CtuluValuesParameters buildParams(final GISZoneCollection _zone, final int[] _idx, EbliCoordinateDefinition[] _coordDefs) {
CtuluValuesParametersDefault params = new CtuluValuesParametersDefault();
final List<String> names = new ArrayList<String>(_zone.getNbAttributes() + 2);
@@ -149,10 +153,16 @@
if (_zone instanceof GISZoneCollectionPoint) {
GISZoneCollectionPoint ptZone = (GISZoneCollectionPoint) _zone;
- names.add("X");
- names.add("Y");
- editor.add(CtuluValueEditorDefaults.DOUBLE_EDITOR);
- editor.add(CtuluValueEditorDefaults.DOUBLE_EDITOR);
+ names.add(_coordDefs[0].getName());
+ names.add(_coordDefs[1].getName());
+ CtuluValueEditorDouble coordEditor;
+ // Editeurs X,Y respectent le formattage.
+ coordEditor=new CtuluValueEditorDouble();
+ coordEditor.setFormatter(_coordDefs[0].getFormatter().getXYFormatter());
+ editor.add(coordEditor);
+ coordEditor=new CtuluValueEditorDouble();
+ coordEditor.setFormatter(_coordDefs[1].getFormatter().getXYFormatter());
+ editor.add(coordEditor);
model.add(ptZone.createEditForX());
model.add(ptZone.createEditForY());
for (int i = 0; i < ptZone.getNbAttributes(); i++) {
@@ -200,8 +210,10 @@
* Construit les comparateurs pour chaque colonne.
*/
private void buildComparators() {
+ GISZoneCollection zone=model_.getGeomData();
+
// Pour une collection de points
- if (zone_ instanceof GISZoneCollectionPoint) {
+ if (zone instanceof GISZoneCollectionPoint) {
// Comparateur pour X
comparators_.add(new ValueRowComparator(comparators_.size(), new Comparator<Double>() {
@@ -219,8 +231,8 @@
}
}));
// Les autres comparateurs
- for (int i = 0; i < zone_.getNbAttributes(); i++) {
- final GISAttributeInterface att = zone_.getAttribute(i);
+ for (int i = 0; i < zone.getNbAttributes(); i++) {
+ final GISAttributeInterface att = zone.getAttribute(i);
// FIXME BM: G\xE9rer attribut non visible.
if (att.isEditable() && att.isUserVisible()) {
comparators_.add(new ValueRowComparator(comparators_.size(), att.getComparator()));
@@ -228,8 +240,8 @@
}
} // Pour toute autre liste
else {
- for (int i = 0; i < zone_.getNbAttributes(); i++) {
- final GISAttributeInterface att = zone_.getAttribute(i);
+ for (int i = 0; i < zone.getNbAttributes(); i++) {
+ final GISAttributeInterface att = zone.getAttribute(i);
// FIXME BM: G\xE9rer attribut non visible.
if (!att.isAtomicValue() && att.isEditable() && att.isUserVisible()) {
comparators_.add(new ValueRowComparator(comparators_.size(), att.getComparator()));
@@ -512,7 +524,7 @@
// Les lignes ont \xE9t\xE9 d\xE9plac\xE9es => Il faut d\xE9placer aussi les g\xE9om\xE9tries dans la collection.
if (initInd != irow) {
// Les g\xE9om\xE9tries sont switch\xE9es, les index initiaux aussi.
- zone_.switchGeometries(irow, initInd, cmp);
+ model_.getGeomData().switchGeometries(irow, initInd, cmp);
// Les index initiaux aussi
for (int i = irow + 1; i < rows_.size(); i++) {
SortableRow row = (SortableRow) rows_.get(i);
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -7,13 +7,13 @@
*/
package org.fudaa.ebli.calque.edition;
-import com.memoire.fu.FuLog;
-import com.vividsolutions.jts.geom.Geometry;
import gnu.trove.TObjectIntHashMap;
+
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
+
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.CtuluCommandComposite;
@@ -43,6 +43,9 @@
import org.fudaa.ebli.trace.TraceIcon;
import org.nfunk.jep.Variable;
+import com.memoire.fu.FuLog;
+import com.vividsolutions.jts.geom.Geometry;
+
/**
* @author Fred Deniger
* @version $Id$
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 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -848,8 +848,8 @@
editSingleObject(calque);
} else {
// Plusieurs g\xE9om\xE9tries sont \xE0 \xE9diter
- EbliObjetsEditorPanel pn = new EbliObjetsEditorPanel(calque.getModelEditable().getGeomData(),
- calque.getLayerSelection().getSelectedIndex(), getMng());
+ EbliObjetsEditorPanel pn = new EbliObjetsEditorPanel(calque.getModelEditable(),
+ calque.getLayerSelection().getSelectedIndex(), getMng(), getCoordinateDefinitions());
// if (calque.getModelEditable().getGeomData() instanceof GISZoneCollectionPoint)
// pn=GISGuiBuilder.buildFor((GISZoneCollectionPoint)calque.getModelEditable().getGeomData(), calque.getLayerSelection()
// .getSelectedIndex(), getMng());
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2015-04-20 13:41:08 UTC (rev 9116)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2015-04-21 15:36:56 UTC (rev 9117)
@@ -255,6 +255,7 @@
_d.put(EbliLib.getS("Nombre de points"), CtuluLibString.getString(getNombre()));
final int nb = _layer.isSelectionEmpty() ? 0 : _layer.getLayerSelection().getNbSelectedIndex();
_d.put(EbliLib.getS("Nombre de points s\xE9lectionn\xE9s"), CtuluLibString.getString(nb));
+ // 2 points
if (nb == 2) {
final int i = _layer.getLayerSelection().getMaxIndex();
final int i2 = _layer.getLayerSelection().getMinIndex();
@@ -262,9 +263,13 @@
CtuluLib.DEFAULT_NUMBER_FORMAT.format(CtuluLibGeometrie.getDistance(getX(i), getY(i), getX(i2), getY(i2))));
return;
}
+ // Plusieurs points
if (nb != 1) {
return;
}
+ // 1 point
+ _d.put("X", ""+getX(_layer.getLayerSelection().getMaxIndex()));
+ _d.put("Y", ""+getY(_layer.getLayerSelection().getMaxIndex()));
final int idxNode = _layer.getLayerSelection().getMaxIndex();
_d.setTitle(EbliLib.getS("Point {0}", CtuluLibString.getString(idxNode + 1)));
final GISZoneCollection model = getGeomData();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|