From: <bma...@us...> - 2009-02-02 15:32:52
|
Revision: 4434 http://fudaa.svn.sourceforge.net/fudaa/?rev=4434&view=rev Author: bmarchan Date: 2009-02-02 15:32:42 +0000 (Mon, 02 Feb 2009) Log Message: ----------- Ajout d'une colonne d'index dans le tableau d'?\195?\169dition, onglet courbe. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/TableModelModeleAdapter.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2009-02-02 09:48:56 UTC (rev 4433) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2009-02-02 15:32:42 UTC (rev 4434) @@ -9,6 +9,7 @@ import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; @@ -35,6 +36,9 @@ import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; import org.fudaa.ctulu.CtuluCommandComposite; @@ -78,6 +82,7 @@ import com.memoire.bu.BuResource; import com.memoire.bu.BuScrollPane; import com.memoire.bu.BuSplit2Pane; +import com.memoire.bu.BuTableCellRenderer; import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.CoordinateSequence; @@ -303,13 +308,27 @@ /** * Cette classe donne un acc\xE8s restraint au model 'model_'. Concr\xE8tement - * seul deux colones sont visibles : curviligne et z. Et seul z est \xE9ditable. + * seules trois colonnes sont visibles : index, curviligne et z. Et seul z est \xE9ditable. * * @author Emmanuel MARTIN * @version $Id:$ */ protected class LimitedTableRepresentation extends AbstractTableModel implements TableModelListener { + /** + * Le renderer des cellules du tableau. + */ + protected class Renderer extends DefaultTableCellRenderer { + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, + int column) { + + if(value instanceof Double) + return super.getTableCellRendererComponent(table, xyFormatter_.getXYFormatter().format((Double) value), isSelected, hasFocus, row, column); + else + return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + } + } + private EbliFormatterInterface xyFormatter_; /** @@ -321,9 +340,9 @@ } public int getColumnCount() { - return 2; + return 3; } - + public int getRowCount() { return modelData_.getRowCount(); } @@ -331,8 +350,10 @@ public Object getValueAt(int _rowIndex, int _columnIndex) { switch (_columnIndex) { case 0: - return xyFormatter_.getXYFormatter().format(getX(_rowIndex)); + return _rowIndex+1; case 1: + return /*xyFormatter_.getXYFormatter().format(*/getX(_rowIndex);//); + case 2: return getY(_rowIndex); default: return null; @@ -340,33 +361,60 @@ } public boolean isCellEditable(final int _rowIndex, final int _columnIndex) { - if (_columnIndex == 0) + if (_columnIndex<2) return false; - return modelData_.isCellEditable(_rowIndex, _columnIndex); +// return modelData_.isCellEditable(_rowIndex, _columnIndex); + return true; } public void setValueAt(final Object _value, final int _rowIndex, final int _columnIndex) { - if(_columnIndex == 1) + if(_columnIndex == 2) setY(_rowIndex, (Double)_value, null); } public String getColumnName(int _column) { switch (_column) { case 0: + return EbliLib.getS(EbliLib.getS("Index")); + case 1: return EbliLib.getS(EbliLib.getS("Abscisse")); - case 1: + case 2: return modelData_.getColumnName(zCol_); default: return null; } } + + public Class<?> getColumnClass(int _columnIndex) { + switch (_columnIndex) { + case 0: + return Integer.class; + case 1: + return Double.class; + case 2: + return Double.class; + default: + return null; + } + } public void tableChanged(TableModelEvent _e) { int col=_e.getColumn(); if (_e.getColumn()==zCol_) - col=1; + col=2; fireTableChanged(new TableModelEvent((TableModel)_e.getSource(), _e.getFirstRow(), _e.getLastRow(), col, _e.getType())); } + + public void updateCellEditor(final JTable _table) { + final TableColumnModel cols = _table.getColumnModel(); + // Editor : Abscisse, Z + final TableCellEditor ed = xyFormatter_.createTableEditorComponent(); + cols.getColumn(1).setCellEditor(ed); + cols.getColumn(2).setCellEditor(ed); + // Renderer : Abscisse, Z + cols.getColumn(1).setCellRenderer(new Renderer()); + cols.getColumn(2).setCellRenderer(new Renderer()); + } } // Taille de la polyligne, utile pour l'axe des abscisses @@ -447,9 +495,8 @@ tableauVue_ = new CtuluTable(); tableauVue_.setModel(tableau); tableauVue_.getSelectionModel().addListSelectionListener(this); - // Met le bon \xE9diteurs dans le tableau pour l'attribut z - tableauVue_.getColumnModel().getColumn(1) - .setCellEditor(zone_.getAttributeIsZ().getEditor().createTableEditorComponent()); + tableau.updateCellEditor(tableauVue_); + // Ajout au panel \\ BuScrollPane scrollPane = new BuScrollPane(tableauVue_); BuPanel left = new BuPanel(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2009-02-02 09:48:56 UTC (rev 4433) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2009-02-02 15:32:42 UTC (rev 4434) @@ -769,10 +769,10 @@ /** * Contient l'index de l'onglet selectionn\xE9 dans le panel d'edition d'objet - * seul. C'est pour que d'une \xE9dition \xE0 l'autre le m\xEAme onglet est + * seul. C'est pour que d'une \xE9dition \xE0 l'autre le m\xEAme onglet soit * automatiquement selectionn\xE9. */ - private int SingleObjectEditorPanel_selectedTab_=0; + private int selectedTabInSingleObjectEditorPanel_=0; /** * L'\xE9dition pour un objet selectionn\xE9 unique. @@ -784,10 +784,10 @@ true, true, getXYFormatter()); ed.setCmd(getMng()); if(ed.hasTab()) - ed.setSelectedTab(SingleObjectEditorPanel_selectedTab_); + ed.setSelectedTab(selectedTabInSingleObjectEditorPanel_); ed.afficheModale(getFrame(), _target.getTitle()); if(ed.hasTab()) - SingleObjectEditorPanel_selectedTab_=ed.getSelectedTab(); + selectedTabInSingleObjectEditorPanel_=ed.getSelectedTab(); } protected void editVertexObject(final ZCalqueEditable _target) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/TableModelModeleAdapter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/TableModelModeleAdapter.java 2009-02-02 09:48:56 UTC (rev 4433) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/TableModelModeleAdapter.java 2009-02-02 15:32:42 UTC (rev 4434) @@ -20,6 +20,7 @@ import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; @@ -31,6 +32,7 @@ import org.fudaa.ctulu.gis.GISAttributeModel; import org.fudaa.ctulu.gis.GISCoordinateSequenceFactory; import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.ctulu.gui.CtuluValueEditorDefaults; import org.fudaa.ctulu.gui.CtuluValueEditorI; import org.fudaa.ebli.calque.ZModelGeometryListener; import org.fudaa.ebli.calque.ZModeleGeometry; @@ -42,9 +44,9 @@ /** * Cette classe permet d'adapter l'interface d'un ZModeleGeometry sur une - * g\xE9om\xE9trie sp\xE9cifique. C'est \xE0 dire que que l'adapter se greffe sur le mod\xE8le - * et selectionne une des g\xE9om\xE9tries. Toutes les m\xE9thodes propos\xE9 par cette - * interface seront r\xE9alis\xE9 sur cette g\xE9om\xE9trie. + * g\xE9om\xE9trie sp\xE9cifique. C'est \xE0 dire que l'adapter se greffe sur le mod\xE8le + * et selectionne une des g\xE9om\xE9tries. Toutes les m\xE9thodes propos\xE9es par cette + * interface seront r\xE9alis\xE9es sur cette g\xE9om\xE9trie. * * Ce model contient : * en premi\xE8re colonne : index @@ -61,7 +63,7 @@ * Le model se charge de mettre la g\xE9o\xE9mtrie \xE0 'Modifi\xE9' lorsque celle-ci l'est. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class TableModelModeleAdapter implements TableModel { @@ -86,7 +88,7 @@ * Utilisation du design pattern Stat. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ protected interface TableModelModeleAdapterEtat { @@ -114,7 +116,7 @@ * R\xE9alise les op\xE9rations imm\xE9diatement sur le Modele. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ protected class ModificationOnTheFly implements TableModelModeleAdapterEtat { @@ -191,7 +193,7 @@ * R\xE9alise les op\xE9rations en diff\xE9r\xE9es sur le Modele. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ protected class ModificationDefered implements TableModelModeleAdapterEtat { @@ -729,11 +731,17 @@ */ public void updateEditorAndRenderer(JTable _table) { TableColumnModel cols=_table.getColumnModel(); + + // Renderer \\ Renderer renderer=new Renderer(); - // Renderer \\ for(int i=0;i<cols.getColumnCount();i++) cols.getColumn(i).setCellRenderer(renderer); + // Editors \\ + // Colonnes X,Y + TableCellEditor editorXY=CtuluValueEditorDefaults.DOUBLE_EDITOR.createTableEditorComponent(); + cols.getColumn(1).setCellEditor(editorXY); + cols.getColumn(2).setCellEditor(editorXY); // Colonnes des attributs if (modele_!=null) { for (int i=0; i<mapColonne_.size(); i++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |