From: <emm...@us...> - 2008-10-31 11:30:08
|
Revision: 4136 http://fudaa.svn.sourceforge.net/fudaa/?rev=4136&view=rev Author: emmanuel_martin Date: 2008-10-31 11:29:58 +0000 (Fri, 31 Oct 2008) Log Message: ----------- Correction de trois bugs 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/edition/BPaletteEditVisibility.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.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-31 02:48:27 UTC (rev 4135) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gui/CtuluTableCellEditorProxy.java 2008-10-31 11:29:58 UTC (rev 4136) @@ -144,6 +144,7 @@ public void putEditor(Integer _indexRow, TableCellEditor _editor){ if(editable_&&_indexRow==currentIndex_){ cancelCellEditing(); + editable_=false; } mapEditors_.put(_indexRow, _editor); } @@ -153,6 +154,8 @@ */ public void clear(){ mapEditors_.clear(); + if(editable_) + stopCellEditing(); editable_=false; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-31 02:48:27 UTC (rev 4135) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-10-31 11:29:58 UTC (rev 4136) @@ -23,7 +23,6 @@ import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; -import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTable; @@ -51,6 +50,7 @@ import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.calque.ZModelGeometryListener; +import org.fudaa.ebli.calque.ZModeleDonnees; import org.fudaa.ebli.calque.ZModeleGeometry; import org.fudaa.ebli.calque.ZSelectionEvent; import org.fudaa.ebli.calque.ZSelectionListener; @@ -196,8 +196,15 @@ } public void setValueAt(Object value, int rowIndex, int columnIndex) { - if(columnIndex==1){ + boolean selected=table_.getSelectionModel().isSelectedIndex(rowIndex); + if(columnIndex==0){ rows_[rowIndex][columnIndex]=value; + fireTableDataChanged(); + if(selected) + table_.getSelectionModel().addSelectionInterval(rowIndex, rowIndex); + } + else if(columnIndex==1){ + rows_[rowIndex][columnIndex]=value; changeVisibility((Integer) rows_[rowIndex][3], (ZCalqueAffichageDonneesInterface) rows_[rowIndex][2], (Boolean) rows_[rowIndex][1]); // Dans le cas o\xF9 on n'affiche que les g\xE9om\xE9tries invisibles, on enl\xE8ve celle qu'on passe \xE0 visible. if(onlyInvisible_&&((Boolean) rows_[rowIndex][1])==true){ @@ -208,6 +215,8 @@ newRows[i-1]=rows_[i]; rows_=newRows; fireTableDataChanged(); + if(selected) + table_.getSelectionModel().addSelectionInterval(rowIndex, rowIndex); } } } @@ -342,12 +351,16 @@ ((ZModeleGeometry) listenCalques_[i].modeleDonnees()).addModelListener(this); } } - + /** * Rempli le tableau avec toutes les g\xE9o\xE9mtries contenus dans le calque * selectionn\xE9 dans combobox. Si la checkbox indiquant que seules les * g\xE9om\xE9tries invisibles sont affich\xE9s est coch\xE9, cette restriction est prise * en compte ici. + * Le model du tableau est r\xE9instanc\xE9, donc la s\xE9l\xE9ction est + * perdu, ce qui peut entrainer un comportement non voulu. Il est donc + * recommand\xE9 de n'utiliser cette m\xE9thode que pour le premier remplissage du + * tableau. */ protected void fillTableGeometry(){ // Remplissage du tableau @@ -412,8 +425,9 @@ int indexGeom=(Integer)table_.getModel().getValueAt(i, 3); if (selection.contains(indexGeom)&&!table_.getSelectionModel().isSelectedIndex(i)) table_.getSelectionModel().addSelectionInterval(i, i); - else if(!selection.contains(indexGeom)&&table_.getSelectionModel().isSelectedIndex(i)) - table_.getSelectionModel().removeIndexInterval(i, i); + else + if(!selection.contains(indexGeom)&&table_.getSelectionModel().isSelectedIndex(i)) + table_.getSelectionModel().removeSelectionInterval(i, i); } } } @@ -532,9 +546,27 @@ fillTableGeometry(); } - public void attributeValueChangeAction(Object _source, int att, GISAttributeInterface _att, int geom, Object value) { - if(listenVisibility) - fillTableGeometry(); + public void attributeValueChangeAction(Object _source, int att, GISAttributeInterface _att, int _geom, Object _value) { + if(listenVisibility&&(_att==GISAttributeConstants.TITRE||_att==GISAttributeConstants.VISIBILITE)){ + if(_geom>=0){ + // Mise \xE0 jour seulement de la g\xE9om\xE9trie. + boolean found=false; + int i=-1; + while(!found&&++i<table_.getModel().getRowCount()){ + ZModeleDonnees model=((ZCalqueAffichageDonneesInterface) table_.getModel().getValueAt(i, 2)).modeleDonnees(); + Integer indexGeom=(Integer) table_.getModel().getValueAt(i, 3); + found=(model==_source)&&(indexGeom==_geom); + } + if(found) + if(_att==GISAttributeConstants.TITRE) + table_.getModel().setValueAt(_value, i, 0); + else + table_.getModel().setValueAt(_value==GISAttributeConstants.ATT_VAL_TRUE ? true : false, i, 1); + } + else + // Mise \xE0 jour de toutes les g\xE9om\xE9tries. + fillTableGeometry(); + } } public void geometryAction(Object _source, int geom, Geometry _geom, int _action) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2008-10-31 02:48:27 UTC (rev 4135) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2008-10-31 11:29:58 UTC (rev 4136) @@ -270,7 +270,7 @@ protected void fireAttributeValueChangeAction(Object _source, int _idxAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue){ for(int i=0;i<listeners_.size();i++) if(listeners_.get(i) instanceof ZModelGeometryListener) - ((ZModelGeometryListener)listeners_.get(i)).attributeValueChangeAction(_source, _idxAtt, _att, _indexGeom, _newValue); + ((ZModelGeometryListener)listeners_.get(i)).attributeValueChangeAction(this, _idxAtt, _att, _indexGeom, _newValue); } public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom, Object _newValue) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |