From: <bma...@us...> - 2009-06-02 15:13:04
|
Revision: 4829 http://fudaa.svn.sourceforge.net/fudaa/?rev=4829&view=rev Author: bmarchan Date: 2009-06-02 14:01:05 +0000 (Tue, 02 Jun 2009) Log Message: ----------- Correction de l'info affich?\195?\169e sur le panneau Info (MultiPoints et Lignes) Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java 2009-06-01 22:32:04 UTC (rev 4828) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeDefault.java 2009-06-02 14:01:05 UTC (rev 4829) @@ -21,6 +21,7 @@ import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.collection.CtuluCollection; +import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISAttributeModel; import org.fudaa.ctulu.gis.GISCoordinateSequenceContainerInterface; @@ -275,21 +276,36 @@ // Selection vide : information sur le calque if (_layer.isSelectionEmpty()) _d.put(EbliLib.getS("Nombre de lignes"), CtuluLibString.getString(getNombre())); + // Selection non vide : information relative \xE0 la selection else { final ZCalqueLigneBrisee layer=(ZCalqueLigneBrisee)_layer; + + // En mode atomique : Info sur les sommets. if (layer.isAtomicMode()) { final int nb=layer.getLayerSelectionMulti().getNbListSelected(); _d.put(EbliLib.getS("Nombre de lignes s\xE9lectionn\xE9es"), CtuluLibString.getString(nb)+'/'+getNombre()); super.fillWithInfo(_d, _layer); + + // Une seule g\xE9om\xE9trie support. if (nb==1) { final TIntObjectIterator it=layer.getLayerSelectionMulti().getIterator(); it.advance(); final int idxPoly=it.key(); + + // Si la g\xE9om\xE9trie poss\xE8de un nom. + int attName=layer.modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.TITRE); + if (attName!=-1) { + _d.put(EbliLib.getS("Nom de la ligne"), + (String)layer.modeleDonnees().getGeomData().getValue(attName, idxPoly)); + } + final CtuluListSelectionInterface list=(CtuluListSelectionInterface)it.value(); final int nbPoint=list.getNbSelectedIndex(); _d.put(EbliLib.getS("Nombre de sommets s\xE9lectionn\xE9s"), CtuluLibString.getString(nbPoint)+'/' +getGeomData().getGeometry(idxPoly).getNumPoints()); + + // Un seul point. if (nbPoint==1) { final int idxPt=list.getMaxIndex(); _d.put(EbliLib.getS("Indice du sommet s\xE9lectionn\xE9"), CtuluLibString.getString(idxPt+1)); @@ -300,6 +316,8 @@ } } } + + // En mode global, info sur les g\xE9om\xE9tries. else { final int nb=layer.getLayerSelection().getNbSelectedIndex(); _d.put(EbliLib.getS("Nombre de lignes s\xE9lectionn\xE9es"), CtuluLibString.getString(nb)+'/'+getNombre()); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2009-06-01 22:32:04 UTC (rev 4828) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2009-06-02 14:01:05 UTC (rev 4829) @@ -247,31 +247,48 @@ // Selection vide : information sur le calque if (_layer.isSelectionEmpty()) _d.put(EbliLib.getS("Nombre de semis"), CtuluLibString.getString(getNombre())); + // Selection non vide : information relative \xE0 la selection else { final ZCalqueMultiPointEditable layer=(ZCalqueMultiPointEditable)_layer; + + // En mode atomique : Info sur les sommets. if (layer.isAtomicMode()) { final int nb=layer.getLayerSelectionMulti().getNbListSelected(); _d.put(EbliLib.getS("Nombre de semis s\xE9lectionn\xE9es"), CtuluLibString.getString(nb)+'/'+getNombre()); super.fillWithInfo(_d, _layer); + + // Une seule g\xE9om\xE9trie support. if (nb==1) { final TIntObjectIterator it=layer.getLayerSelectionMulti().getIterator(); it.advance(); final int idxPoly=it.key(); + + // Si la g\xE9om\xE9trie poss\xE8de un nom. + int attName=layer.modeleDonnees().getGeomData().getIndiceOf(GISAttributeConstants.TITRE); + if (attName!=-1) { + _d.put(EbliLib.getS("Nom du semis"), + (String)layer.modeleDonnees().getGeomData().getValue(attName, idxPoly)); + } + final CtuluListSelectionInterface list=(CtuluListSelectionInterface)it.value(); final int nbPoint=list.getNbSelectedIndex(); _d.put(EbliLib.getS("Nombre de sommets s\xE9lectionn\xE9s"), CtuluLibString.getString(nbPoint)+'/' +getGeomData().getGeometry(idxPoly).getNumPoints()); + + // Un seul point. if (nbPoint==1) { final int idxPt=list.getMaxIndex(); _d.put(EbliLib.getS("Indice du sommet s\xE9lectionn\xE9"), CtuluLibString.getString(idxPt+1)); final Coordinate c=((GISMultiPoint)getGeomData().getGeometry(idxPoly)).getCoordinates()[idxPt]; _d.put("X:", Double.toString(c.x)); _d.put("Y:", Double.toString(c.y)); - fillWithAtomicInfo(idxPoly, idxPoly, _d); + fillWithAtomicInfo(idxPoly, idxPt, _d); } } } + + // En mode global, info sur les g\xE9om\xE9tries. else { final int nb=layer.getLayerSelection().getNbSelectedIndex(); _d.put(EbliLib.getS("Nombre de semis s\xE9lectionn\xE9es"), CtuluLibString.getString(nb)+'/'+getNombre()); @@ -314,13 +331,19 @@ return true; } - protected void fillWithAtomicInfo(final int _idxLigne, final int _idxPt, final InfoData _d) { + /** + * Remplit les propri\xE9t\xE9s d'un sommet de g\xE9om\xE9trie avec les valeurs d'attributs atomiques. + * @param _idxGeom L'indice de g\xE9om\xE9trie + * @param _idxPt L'indice du sommet sur la g\xE9om\xE9trie. + * @param _d Les propri\xE9t\xE9s. + */ + protected void fillWithAtomicInfo(final int _idxGeom, final int _idxPt, final InfoData _d) { final GISZoneCollection model = getGeomData(); final int nbAtt = model.getNbAttributes(); for (int i = 0; i < nbAtt; i++) { if (model.getAttribute(i).isAtomicValue() && model.getDataModel(i) != null - && ((GISAttributeModel) model.getDataModel(i).getObjectValueAt(_idxLigne)).getObjectValueAt(_idxPt) != null) { - _d.put(model.getAttribute(i).getName(), ((GISAttributeModel) model.getDataModel(i).getObjectValueAt(_idxLigne)) + && ((GISAttributeModel) model.getDataModel(i).getObjectValueAt(_idxGeom)).getObjectValueAt(_idxPt) != null) { + _d.put(model.getAttribute(i).getName(), ((GISAttributeModel) model.getDataModel(i).getObjectValueAt(_idxGeom)) .getObjectValueAt(_idxPt).toString()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |