|
From: <de...@us...> - 2012-11-16 15:58:33
|
Revision: 7894
http://fudaa.svn.sourceforge.net/fudaa/?rev=7894&view=rev
Author: deniger
Date: 2012-11-16 15:58:21 +0000 (Fri, 16 Nov 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.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 2012-11-16 15:56:37 UTC (rev 7893)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISZoneCollection.java 2012-11-16 15:58:21 UTC (rev 7894)
@@ -30,8 +30,8 @@
import org.fudaa.ctulu.collection.CtuluListObject;
/**
- * Une classe abstraite d'objets g\xE9ometriques auquels sont associ\xE9s des attributs dont les valeurs sont g\xE9r\xE9es par des mod\xE8les.
- * Ces mod\xE8les d'attributs sont ordonn\xE9s dans la liste des mod\xE8les d'attributs.
+ * Une classe abstraite d'objets g\xE9ometriques auquels sont associ\xE9s des attributs dont les valeurs sont g\xE9r\xE9es par des mod\xE8les. Ces mod\xE8les
+ * d'attributs sont ordonn\xE9s dans la liste des mod\xE8les d'attributs.
*
* @author Fred Deniger
* @version $Id$
@@ -56,8 +56,8 @@
*/
protected GISAttributeDouble attributeIsZ_ = null;
/**
- * L'indice dans la liste des mod\xE8le de l'attribut pris pour Z (pour optimisation des temps). Est remis a jour \xE0 chaque
- * modification sur la liste. Si \xE9gal -1, pas d'attribut pris pour Z
+ * L'indice dans la liste des mod\xE8le de l'attribut pris pour Z (pour optimisation des temps). Est remis a jour \xE0 chaque modification sur la liste.
+ * Si \xE9gal -1, pas d'attribut pris pour Z
*/
private int idxAttZ_ = -1;
/**
@@ -164,7 +164,7 @@
for (int j = 0; j < modelToCopy.getSize(); j++) {
CtuluCollection collection = (CtuluCollection) modelToCopy.getObjectValueAt(j);
final GISAttributeModelObservable newAtomicModel = attribute.createAtomicModel(collection.getObjectValues(),
- collection.getSize());
+ collection.getSize());
newObject.addObject(newAtomicModel, null);
}
cloned.attr_[i].initWith(newObject, false);
@@ -221,7 +221,6 @@
fireAttributeValueChanged(-1, null, -1, null);
if (_cmd != null) {
_cmd.addCmd(new CtuluCommand() {
-
@Override
public void redo() {
initAttributes(_att, null);
@@ -250,8 +249,8 @@
public abstract boolean accept(GISVisitor _v);
/**
- * Ne fait pas de verif quant a l'origine des donnees. Remarque : Le modele a ajouter doit avoir le m\xEAme nombre d'attributs que
- * le mod\xE8le courant. Si ce n'est pas le cas, une erreur est d\xE9clench\xE9e.
+ * Ne fait pas de verif quant a l'origine des donnees. Remarque : Le modele a ajouter doit avoir le m\xEAme nombre d'attributs que le mod\xE8le courant.
+ * Si ce n'est pas le cas, une erreur est d\xE9clench\xE9e.
*
* @param _model le model a ajouter
* @param _cmd le receveur de commande
@@ -293,9 +292,8 @@
}
/**
- * Cr\xE9e ou assigne la valeur d'attribut pass\xE9e. Si la valeur pass\xE9e est null, une valeur par d\xE9faut est affect\xE9e. Si la valeur
- * est scalaire et l'attribut atomique, un tableau de valeurs est cr\xE9e. Si la valeur est un tableau et l'attribut est global,
- * une valeur scalaire moyenne et cr\xE9ee.
+ * Cr\xE9e ou assigne la valeur d'attribut pass\xE9e. Si la valeur pass\xE9e est null, une valeur par d\xE9faut est affect\xE9e. Si la valeur est scalaire et
+ * l'attribut atomique, un tableau de valeurs est cr\xE9e. Si la valeur est un tableau et l'attribut est global, une valeur scalaire moyenne et cr\xE9ee.
*
* @param _iatt L'indice d'attribut dans la liste des attributs.
* @param _valatt La valeur de l'attribut. Peut \xEAtre null.
@@ -313,7 +311,7 @@
// FIXME B.M. : Pas sur que ce soit le bienvenu. Si on veut des valeurs par d\xE9faut et que la g\xE9om\xE9trie poss\xE8de
// des Z, il ne faudrait pas que ce soit initialis\xE9 (cas d'import de fichier et ajout par addAll).
if (getIdxAttZ() != -1 && getAttributeIsZ() != null && getAttributeIsZ().isAtomicValue() && _init == null
- && getDataModel(_iatt).getAttribute() == getAttributeIsZ()) {
+ && getDataModel(_iatt).getAttribute() == getAttributeIsZ()) {
final GISAttributeModelDoubleArray array = (GISAttributeModelDoubleArray) ret;
for (int k = nbPt - 1; k >= 0; k--) {
array.set(k, ((GISCoordinateSequenceContainerInterface) _dest).getCoordinateSequence().getOrdinate(k, 2));
@@ -343,6 +341,7 @@
/**
* Supprime toutes les g\xE9om\xE9tries.
+ *
* @param _cmd Le container de commande
*/
public void removeAll(final CtuluCommandContainer _cmd) {
@@ -489,7 +488,7 @@
* @param _cmd Le manager undo/redo.
*/
public void setAttributValue(final int _idxAtt, final int _idxGeom, final Object _data,
- final CtuluCommandContainer _cmd) {
+ final CtuluCommandContainer _cmd) {
if (_idxAtt < 0 || _idxAtt > getNbAttributes()) {
return;
}
@@ -512,8 +511,7 @@
}
/**
- * Initialise le mod\xE8le d'attribut utilis\xE9 pour Z avec les coordonn\xE9es Z des points des g\xE9om\xE9tries. Principalement utilis\xE9 \xE0 la
- * suite d'un import.
+ * Initialise le mod\xE8le d'attribut utilis\xE9 pour Z avec les coordonn\xE9es Z des points des g\xE9om\xE9tries. Principalement utilis\xE9 \xE0 la suite d'un import.
*
* @param _firstIdx l'indice de la premiere geometrie utilis\xE9e pour l'initialisation.
* @see #setAttributeIsZ(GISAttributeDouble)
@@ -535,8 +533,7 @@
}
/**
- * Pr\xE9pare l'export des g\xE9om\xE9tries, en affectant \xE0 la coordonn\xE9e Z de leurs points les valeurs contenues dans l'attribut utilis\xE9
- * pour Z.
+ * Pr\xE9pare l'export des g\xE9om\xE9tries, en affectant \xE0 la coordonn\xE9e Z de leurs points les valeurs contenues dans l'attribut utilis\xE9 pour Z.
*
* @see #setAttributeIsZ(GISAttributeDouble)
* @see {@link #postImport(int)} pour la m\xE9thode inverse
@@ -574,9 +571,17 @@
boolean bgone = getGeometry(_idxGeom) instanceof GISPolygone;
final GISAttributeModel model = getModel(getIdxAttZ());
-
- if (model instanceof GISAttributeModelObjectInterface) {
+ if (!model.getAttribute().isAtomicValue()) {
final CoordinateSequence seq = getCoordinateSequence(_idxGeom);
+ final Object objectValueAt = model.getObjectValueAt(_idxGeom);
+ if (objectValueAt instanceof Double) {
+ Double value = (Double) objectValueAt;
+ for (int k = seq.size() - 1; k >= 0; k--) {
+ seq.setOrdinate(k, 2, value);
+ }
+ }
+ } else if (model instanceof GISAttributeModelObjectInterface) {
+ final CoordinateSequence seq = getCoordinateSequence(_idxGeom);
final GISAttributeModelDoubleArray arr = (GISAttributeModelDoubleArray) model.getObjectValueAt(_idxGeom);
for (int k = seq.size() - 1; k >= 0; k--) {
seq.setOrdinate(k, 2, arr.getValue(k));
@@ -631,13 +636,11 @@
}
/**
- * D\xE9finit l'attribut qui correspond \xE0 Z. Il est alors utilis\xE9 lors des d\xE9placements en Z de l'objet, ou pour la persistence en
- * chaque point s'il est atomique. Seul les attributs de type {@link GISAttributeDouble} sont autoris\xE9s. <p> Remarque :
- * L'attribut doit \xEAtre dans la liste des attributs de la collection pour que les traitements soit effectu\xE9s en en tenant
- * compte.
+ * D\xE9finit l'attribut qui correspond \xE0 Z. Il est alors utilis\xE9 lors des d\xE9placements en Z de l'objet, ou pour la persistence en chaque point s'il
+ * est atomique. Seul les attributs de type {@link GISAttributeDouble} sont autoris\xE9s. <p> Remarque : L'attribut doit \xEAtre dans la liste des
+ * attributs de la collection pour que les traitements soit effectu\xE9s en en tenant compte.
*
- * @param _attributeIsZ l'attribut qui correspond \xE0 z: il sera automatiquement mis \xE0 jour lors de l'ajout de geometrie. Peut
- * \xEAtre null.
+ * @param _attributeIsZ l'attribut qui correspond \xE0 z: il sera automatiquement mis \xE0 jour lors de l'ajout de geometrie. Peut \xEAtre null.
*/
public void setAttributeIsZ(final GISAttributeDouble _attributeIsZ) {
badIdxAttZ_ = true;
@@ -645,9 +648,9 @@
}
/**
- * Definit les attributs pour lesquels la valeur est immuable. <p> <b>Remarque</b> : Si des objets existent d\xE9j\xE0 avec une valeur
- * pour l'attribut \xE0 rendre immuable, ces valeurs ne seront pas remplac\xE9e par la valeur constante. Utilisez {@link GISZoneCollection#setAttributes()}
- * pour r\xE9initialiser les valeurs pour la collection.
+ * Definit les attributs pour lesquels la valeur est immuable. <p> <b>Remarque</b> : Si des objets existent d\xE9j\xE0 avec une valeur pour l'attribut \xE0
+ * rendre immuable, ces valeurs ne seront pas remplac\xE9e par la valeur constante. Utilisez {@link GISZoneCollection#setAttributes()} pour
+ * r\xE9initialiser les valeurs pour la collection.
*
* @param _att L'attribut \xE0 fixer.
* @param _value La valeur constante. Si null, l'attribut n'est pas obligatoirement fix\xE9.
@@ -713,7 +716,6 @@
fireAttributeRemoved(-1, null);
if (_cmd != null) {
_cmd.addCmd(new CtuluCommand() {
-
@Override
public void redo() {
attr_ = newAtt;
@@ -749,7 +751,6 @@
fireTitleChanged();
if (_cmd != null) {
_cmd.addCmd(new CtuluCommand() {
-
@Override
public void redo() {
setTitle(_title, null);
@@ -898,8 +899,9 @@
}
/**
- * Permute les deux g\xE9om\xE9tries indiqu\xE9es par les deux index pass\xE9s en param\xE8tre. Si les index sont incoh\xE9rents, {@link IllegalArgumentException}
- * est lev\xE9.
+ * Permute les deux g\xE9om\xE9tries indiqu\xE9es par les deux index pass\xE9s en param\xE8tre. Si les index sont incoh\xE9rents, {@link IllegalArgumentException} est
+ * lev\xE9.
+ *
* @param _index1 l'index de la premi\xE8re g\xE9om\xE9trie
* @param _index2 l'index de la seconde gom\xE9trie
* @param _cmd le command manager pour le undo/redo
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|