From: <emm...@us...> - 2008-10-28 16:49:00
|
Revision: 4104 http://fudaa.svn.sourceforge.net/fudaa/?rev=4104&view=rev Author: emmanuel_martin Date: 2008-10-28 16:48:50 +0000 (Tue, 28 Oct 2008) Log Message: ----------- La palette de propri?\195?\169t?\195?\169s reste ?\195?\160 jour lors de modifications effectu?\195?\169es via d'autres interfaces. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gui/CtuluTableCellEditorProxy.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gui/CtuluTableCellEditorProxy.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gui/CtuluTableCellEditorProxy.java 2008-10-28 15:55:12 UTC (rev 4103) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gui/CtuluTableCellEditorProxy.java 2008-10-28 16:48:50 UTC (rev 4104) @@ -136,21 +136,17 @@ } /** - * Permet d'ajouter ou de remplacer un des \xE9diteurs utilis\xE9. Le remplacement - * ne peut se faire que si l'ancien \xE9diteur n'est pas en cours d'utilisation. - * - * @param _indexRow : l'index de la ligne \xE0 ajouter ou remplacer - * @param _editor : le nouvel \xE9diteur - * @return vrai si l'ajout/ remplacement a \xE9t\xE9 effectu\xE9, faux sinon - */ - public boolean putEditor(Integer _indexRow, TableCellEditor _editor){ - if(!editable_||_indexRow!=currentIndex_){ - mapEditors_.put(_indexRow, _editor); - return true; - } - else - return false; - } + * Permet d'ajouter ou de remplacer un des \xE9diteurs utilis\xE9. + * + * @param _indexRow : l'index de la ligne \xE0 ajouter ou remplacer + * @param _editor : le nouvel \xE9diteur + */ + public void putEditor(Integer _indexRow, TableCellEditor _editor){ + if(editable_&&_indexRow==currentIndex_){ + cancelCellEditing(); + } + mapEditors_.put(_indexRow, _editor); + } /** * Supprime tout les editeurs. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-28 15:55:12 UTC (rev 4103) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePaletteInfo.java 2008-10-28 16:48:50 UTC (rev 4104) @@ -13,14 +13,18 @@ import javax.swing.event.TreeSelectionListener; import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.gis.AttributeListener; +import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.palette.BPaletteInfo; + +import com.vividsolutions.jts.geom.Geometry; /** * Un panel affichant les infos envoyes par TrPanelInfoSender. * @author deniger * @version $Id: BCalquePaletteInfo.java,v 1.7 2007-05-04 13:49:43 deniger Exp $ */ -public class BCalquePaletteInfo extends BPaletteInfo implements TreeSelectionListener, ZSelectionListener { +public class BCalquePaletteInfo extends BPaletteInfo implements TreeSelectionListener, ZSelectionListener, AttributeListener { private ArrayList<ZCalqueAffichageDonneesInterface> calqueWithGeometriesSelected_; private BArbreCalqueModel treeModel_; @@ -96,12 +100,22 @@ if (isAvailable()) { if (_evt.getSource().getLayerSelection()!=null&&_evt.getSource().getLayerSelection().getNbSelectedIndex()>0 ||_evt.getSource().getLayerSelectionMulti()!=null&&_evt.getSource().getLayerSelectionMulti().getNbSelectedItem()>0) { - if (!calqueWithGeometriesSelected_.contains(_evt.getSource())) + if (!calqueWithGeometriesSelected_.contains(_evt.getSource())){ calqueWithGeometriesSelected_.add(_evt.getSource()); + ZModeleDonnees model=_evt.getSource().modeleDonnees(); + if(model instanceof ZModeleGeometry) + ((ZModeleGeometry)model).addAttributeListener(this); + model.addGeometryListener(this); + } } else { - if (calqueWithGeometriesSelected_.contains(_evt.getSource())) + if (calqueWithGeometriesSelected_.contains(_evt.getSource())){ calqueWithGeometriesSelected_.remove(_evt.getSource()); + ZModeleDonnees model=_evt.getSource().modeleDonnees(); + if(model instanceof ZModeleGeometry) + ((ZModeleGeometry)model).removeAttributeListener(this); + model.removeGeometryListener(this); + } } updateTableModel(); } @@ -110,12 +124,24 @@ public void updateState() { if (isAvailable()) { + // Supression des \xE9coutes sur les calques et des calques + for(int i=0;i<calqueWithGeometriesSelected_.size();i++){ + ZModeleDonnees model=calqueWithGeometriesSelected_.get(i).modeleDonnees(); + if(model instanceof ZModeleGeometry) + ((ZModeleGeometry)model).removeAttributeListener(this); + model.removeGeometryListener(this); + } calqueWithGeometriesSelected_.clear(); - // R\xE9cup\xE9ration des calques ayant une selection + // R\xE9cup\xE9ration des calques ayant une selection et ajout des \xE9coutes ZCalqueAffichageDonneesInterface[] calques=getCalques(); for (int i=0; i<calques.length; i++) - if (calques[i].getLayerSelection()!=null&&calques[i].getLayerSelection().getNbSelectedIndex()>0) + if (calques[i].getLayerSelection()!=null&&calques[i].getLayerSelection().getNbSelectedIndex()>0){ calqueWithGeometriesSelected_.add(calques[i]); + ZModeleDonnees model=calques[i].modeleDonnees(); + if(model instanceof ZModeleGeometry) + ((ZModeleGeometry)model).addAttributeListener(this); + model.addGeometryListener(this); + } // Mise \xE0 jour du tableau des informations updateTableModel(); } @@ -127,4 +153,28 @@ if (isAvailable()&&calqueWithGeometriesSelected_.size()==0) updateTableModel(); } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.gis.AttributeListener#attributeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int) + */ + public void attributeAction(Object _source, int att, GISAttributeInterface _att, int _action) { + if (isAvailable()) + updateTableModel(); + } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.gis.AttributeListener#attributeValueChangeAction(java.lang.Object, int, org.fudaa.ctulu.gis.GISAttributeInterface, int, java.lang.Object) + */ + public void attributeValueChangeAction(Object _source, int att, GISAttributeInterface _att, int geom, Object value) { + if (isAvailable()) + updateTableModel(); + } + + /* (non-Javadoc) + * @see org.fudaa.ctulu.gis.GeometryListener#geometryAction(java.lang.Object, int, com.vividsolutions.jts.geom.Geometry, int) + */ + public void geometryAction(Object _source, int geom, Geometry _geom, int _action) { + if (isAvailable()) + updateTableModel(); + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |