From: <emm...@us...> - 2008-09-23 09:59:21
|
Revision: 3971 http://fudaa.svn.sourceforge.net/fudaa/?rev=3971&view=rev Author: emmanuel_martin Date: 2008-09-23 09:59:16 +0000 (Tue, 23 Sep 2008) Log Message: ----------- Quelques am?\195?\169liorations sur l'edition de polylignes. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-09-22 21:22:51 UTC (rev 3970) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-09-23 09:59:16 UTC (rev 3971) @@ -11,17 +11,15 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; -import java.util.Map; import javax.swing.AbstractButton; -import javax.swing.Box; -import javax.swing.BoxLayout; +import javax.swing.Action; import javax.swing.JComponent; +import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; @@ -33,6 +31,10 @@ import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluListSelectionEvent; +import org.fudaa.ctulu.CtuluListSelectionInterface; +import org.fudaa.ctulu.CtuluListSelectionListener; +import org.fudaa.ctulu.gis.GISAttributeDouble; import org.fudaa.ctulu.gis.GISAttributeModel; import org.fudaa.ctulu.gis.GISCoordinateSequenceUnique; import org.fudaa.ctulu.gis.GISPoint; @@ -48,7 +50,7 @@ import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbeModelProfile; import org.fudaa.ebli.courbe.EGCourbeSimple; -import org.fudaa.ebli.courbe.EGFillePanelDialog; +import org.fudaa.ebli.courbe.EGFillePanel; import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheSimpleModel; @@ -57,7 +59,6 @@ import com.memoire.bu.BuLabel; import com.memoire.bu.BuPanel; import com.memoire.bu.BuScrollPane; -import com.memoire.bu.BuTabbedPane; import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.CoordinateSequence; @@ -84,26 +85,15 @@ */ public class TableRepresentation extends BuPanel { - // Contener d'attributs globaux - private GISAttributeModel[] globalAttr_; // Tableau des attributs globaux - private CtuluValueEditorI[] globalAttrEditor_; // Tableau des editeurs - // d'attributs, cr\xE9e en - // utilisant globalAttr_ - private JComponent[] globalComp_; // tableau des composants graphique des - // attributs globaux, - // cr\xE9e en utilisant globalAttrEditor_ - // Coordonn\xE9es - private JComponent tfX_, tfY_; // Repr\xE9sentation graphique dans le cas o\xF9 on - // a un point unique \xE0 repr\xE9senter - private JTable table_; // Repr\xE9sentation graphique dans le cas o\xF9 on - // plusieurs points \xE0 repr\xE9senter - private boolean isTableStat_; // Vrai si l'objet est en mode repr\xE9sentation - // par tableau - // Formateur - private final EbliFormatterInterface xyFormatter_; // Formateur g\xE9rant le - // format des informations \xE0 - // afficher - + // Repr\xE9sentation graphique dans le cas o\xF9 on a un point unique \xE0 repr\xE9senter + private JComponent tfX_, tfY_; + // Repr\xE9sentation graphique dans le cas o\xF9 on plusieurs points \xE0 repr\xE9senter + private JTable table_; + // Vrai si l'objet est en mode repr\xE9sentation par tableau + private boolean isTableStat_; + // Formateur g\xE9rant le format des informations \xE0 afficher + private final EbliFormatterInterface xyFormatter_; + /** * @param _editAttribut * indique si les attributs globaux sont \xE9ditable (dans le cas o\xF9 @@ -117,50 +107,11 @@ public TableRepresentation(final boolean _editAttributGlobaux, final boolean _editVertexAttribut, final EbliFormatterInterface _xyFormatter) { xyFormatter_=_xyFormatter; - final boolean isPoint=(zone_.getGeometry(idx_) instanceof GISPoint); - // Construction de la table des attributs globaux (globalAttr_) \\ - if (_editAttributGlobaux) { - final List<GISAttributeModel> globalAttributs=new ArrayList<GISAttributeModel>(); - // On ne cherche \xE0 concerver que les attributs globaux \xE9ditables, les - // autres sont ignor\xE9s - for (int i=0; i<zone_.getNbAttributes(); i++) { - final GISAttributeModel a=zone_.getDataModel(i); - if (a.getAttribute().isEditable()&&(isPoint||!a.getAttribute().isAtomicValue())) - globalAttributs.add(a); - } - // Affecte les attributs globaux selectionn\xE9s \xE0 globalAttr_ - globalAttr_=new GISAttributeModel[globalAttributs.size()]; - globalAttributs.toArray(globalAttr_); - } - else - // On \xE9dite pas les attributs globaux, donc globalAttr_ est vide - globalAttr_=new GISAttributeModel[0]; - globalAttrEditor_=new CtuluValueEditorI[globalAttr_.length]; - globalComp_=new JComponent[globalAttr_.length]; - // Construction du panneau \\ - setLayout(new BuBorderLayout(5, 5)); - // Zone de t\xEAte contenant les attributs globaux - BuPanel pnAttrGlobals=new BuPanel(); - pnAttrGlobals.setLayout(new BuGridLayout(2, 5, 5)); - for (int i=0; i<globalAttr_.length; i++) { - // Cr\xE9ation de l'\xE9diteur pour la variable globale - final CtuluValueEditorI ei=globalAttr_[i].getAttribute().getEditor(); - // Enregistrement de cette \xE9diteur et de son composant graphique - globalAttrEditor_[i]=ei; - globalComp_[i]=ei.createEditorComponent(); - // Initialisation du composant graphique avec la valeur de l'attribut - ei.setValue(globalAttr_[i].getObjectValueAt(idx_), globalComp_[i]); - // Ajout du nom et du champs \xE9ditable dans le panel - addLabel(pnAttrGlobals, globalAttr_[i].getAttribute().getName()+':'); - pnAttrGlobals.add(globalComp_[i]); - } - add(pnAttrGlobals, BuBorderLayout.NORTH); // Zone centrale contenant soit le tableau de coordonn\xE9es en cas de points // multiple, soit les informations d'un point unique. - if (isPoint) { + if ((zone_.getGeometry(idx_) instanceof GISPoint)) { isTableStat_=false; - BuPanel pnPoint=new BuPanel(); - pnPoint.setLayout(new BuGridLayout(2, 5, 5)); + setLayout(new BuGridLayout(2, 5, 5)); final Coordinate coord=zone_.getGeometry(idx_).getCoordinate(); // Cas o\xF9 les informations sont \xE9ditables => cr\xE9ation de zones de saisie if (zone_.isGeomModifiable()) { @@ -183,25 +134,22 @@ tfY_=y; } // Ajout des \xE9l\xE9ments \xE0 l'interface - addLabel(pnPoint, "X:"); - pnPoint.add(tfX_); - addLabel(pnPoint, "Y:"); - pnPoint.add(tfY_); - add(pnPoint, BuBorderLayout.CENTER); + addLabel(this, "X:"); + add(tfX_); + addLabel(this, "Y:"); + add(tfY_); } // Cas o\xF9 on a affaire \xE0 un ensemble de point. Un tableau permettra // d'afficher les informations else { isTableStat_=true; - BuPanel pnTableau=new BuPanel(); - pnTableau.setLayout(new BuBorderLayout()); + setLayout(new BuBorderLayout()); // Construction de la table table_=new CtuluTable(); table_.setModel(model_); model_.updateCellEditor(table_); // Ajout des \xE9l\xE9ments \xE0 l'interface - pnTableau.add(new BuScrollPane(table_), BuBorderLayout.CENTER); - add(pnTableau, BuBorderLayout.CENTER); + add(new BuScrollPane(table_), BuBorderLayout.CENTER); } } @@ -263,7 +211,7 @@ * @version $Id: EbliSingleObjectEditorPanel.java,v 1.10.6.2 2008-04-01 * 07:28:15 emartin Exp $ */ - public class CourbeRepresentation extends BuPanel implements TableModelListener, ActionListener { + public class CourbeRepresentation extends BuPanel implements TableModelListener, CtuluListSelectionListener { /** * Cette classe donne un acc\xE8s restraint au model 'model_'. Concr\xE8tement @@ -362,9 +310,8 @@ // Axes du la courbe private EGAxeHorizontal axeX_; private EGAxeVertical axeY_; - // Gestion des boutons - private HashMap<AbstractButton, EbliActionInterface> buttonActionInt_; - private AbstractButton pressedButton_; + // Model du tableau + CtuluTable tableauVue_; public CourbeRepresentation() { model_.addTableModelListener(this); @@ -392,34 +339,39 @@ courbeVue_.setAspectContour(Color.BLUE); grapheModel.addCourbe(courbeVue_, new CtuluCommandManager()); // Conteneur de graphe - EGFillePanelDialog pnD=new EGFillePanelDialog(grapheVue_); + EGFillePanel pnD=new EGFillePanel(grapheVue_); // Construction des boutons \\ - EbliActionInterface[] actions=pnD.buildActions(); + EbliActionInterface[] actions=pnD.getSpecificActions(); Container buttons=new Container(); - buttons.setLayout(new GridLayout(5, 1)); + buttons.setLayout(new GridLayout(1, 6)); EbliLib.updateMapKeyStroke(this, actions); - buttonActionInt_ = new HashMap<AbstractButton, EbliActionInterface>(actions.length); + String[] tmpAction = {"SELECT", "RESTORE", "AUTO_REST", "ZOOM", "SUIVI", "MOVE_POINT"}; + HashSet<String> actionsKept = new HashSet<String>();; + for(int i=0;i<tmpAction.length;i++) + actionsKept.add(tmpAction[i]); for (int i=0; i<actions.length; i++) { - AbstractButton button = actions[i].buildButton(EbliComponentFactory.INSTANCE); - button.addActionListener(this); - buttonActionInt_.put(button, actions[i]); - buttons.add(button); + if(actions[i] != null && actionsKept.contains(actions[i].getValue(Action.ACTION_COMMAND_KEY))){ + if(actions[i].getValue(Action.ACTION_COMMAND_KEY)=="SELECT") + pnD.addSelectionListener(this); + AbstractButton button = actions[i].buildButton(EbliComponentFactory.INSTANCE); + button.setText(""); + buttons.add(button); + } } // Construction du tableau \\ - BuPanel tableau = new BuPanel(); - LimitedTableRepresentation t = new LimitedTableRepresentation(model_.xyFormatter_); - CtuluTable jt = new CtuluTable(); - jt.setModel(t); + LimitedTableRepresentation tableau = new LimitedTableRepresentation(model_.xyFormatter_); + tableauVue_ = new CtuluTable(); + tableauVue_.setModel(tableau); // Met le bon \xE9diteurs dans le tableau pour l'attribut z - jt.getColumnModel().getColumn(1) + tableauVue_.getColumnModel().getColumn(1) .setCellEditor(model_.modeles_[zInd_].getAttribute().getEditor().createTableEditorComponent()); // Ajout au panel - BuScrollPane scrollPane = new BuScrollPane(jt); - tableau.add(scrollPane); - Box left = new Box(BoxLayout.Y_AXIS); + BuScrollPane scrollPane = new BuScrollPane(tableauVue_); + BuPanel left = new BuPanel(); + left.setLayout(new BuBorderLayout()); scrollPane.setPreferredSize(new Dimension(130, 335)); - left.add(buttons); - left.add(tableau); + left.add(buttons, BuBorderLayout.NORTH); + left.add(scrollPane, BuBorderLayout.CENTER); setLayout(new BuBorderLayout()); add(left, BuBorderLayout.WEST); add(pnD, BuBorderLayout.CENTER); @@ -491,36 +443,37 @@ } /* (non-Javadoc) - * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + * @see org.fudaa.ctulu.CtuluListSelectionListener#listeSelectionChanged(org.fudaa.ctulu.CtuluListSelectionEvent) */ - public void actionPerformed(ActionEvent _e) { - // Simule un click sur le bouton selectionn\xE9 pour le d\xE9activer - if (pressedButton_==(AbstractButton)_e.getSource()) - pressedButton_=null; - else if (pressedButton_==null) - pressedButton_=(AbstractButton)_e.getSource(); - else { - pressedButton_.doClick(); - pressedButton_=(AbstractButton)_e.getSource(); - } + public void listeSelectionChanged(CtuluListSelectionEvent _e) { + tableauVue_.setRowSelectionInterval(((CtuluListSelectionInterface)_e.getSource()).getMinIndex(), + ((CtuluListSelectionInterface)_e.getSource()).getMaxIndex()); } } private CtuluCommandContainer cmd_; - private final int idx_; // Num\xE9ro de la g\xE9om\xE9rie dans zone_ que l'on veut - // traiter + // Num\xE9ro de la g\xE9om\xE9rie dans zone_ que l'on veut traiter + private final int idx_; private ZModeleEditable modeleSrc_; - private final GISZoneCollection zone_; // Objet contenant toutes les - // g\xE9nom\xE9ries (seule celle \xE0 idx_ nous - // interesse) et divers info - private TableRepresentation tableRep_; // Onglet repr\xE9sentant les informations - // sous forme de table - private CourbeRepresentation courbeRep_; // Onglet repr\xE9sentant une - // information sous forme de courbe - private EbliAtomicCoordinatesTableModel model_; // Model central pour les deux - // repr\xE9sentations + // Objet contenant toutes les g\xE9nom\xE9ries (seule celle \xE0 idx_ nous interesse) + // et divers info + private final GISZoneCollection zone_; + // Onglet repr\xE9sentant les informations sous forme de table + private TableRepresentation tableRep_; + // Onglet repr\xE9sentant une information sous forme de courbe + private CourbeRepresentation courbeRep_; + // Model central pour les deux repr\xE9sentations + private EbliAtomicCoordinatesTableModel model_; private int zCol_; // Num\xE9ro de la colonne contenant les z dans le model private int zInd_; // Num\xE9ro de l'index des z dans model_.modeles_ + // Tableau des attributs globaux + private GISAttributeModel[] globalAttr_; + // Tableau des editeurs d'attributs, cr\xE9e en utilisant globalAttr_ + private CtuluValueEditorI[] globalAttrEditor_; + // tableau des composants graphique des attributs globaux, + // cr\xE9e en utilisant globalAttrEditor_ Coordonn\xE9es + private JComponent[] globalComp_; + private JTabbedPane tabbedPane_;// Onglets /** * @param _zone @@ -534,48 +487,84 @@ idx_=_idx; zone_=_zone.getGeomData(); modeleSrc_=_zone; - zCol_ = zInd_ = -1; + // Construction de la table des attributs globaux (globalAttr_) \\ + setLayout(new BuBorderLayout()); + if (_editAttribut) { + final List<GISAttributeModel> globalAttributs=new ArrayList<GISAttributeModel>(); + // On ne cherche \xE0 concerver que les attributs globaux \xE9ditables, les + // autres sont ignor\xE9s + for (int i=0; i<zone_.getNbAttributes(); i++) { + final GISAttributeModel a=zone_.getDataModel(i); + if (a.getAttribute().isEditable()&&((zone_.getGeometry(idx_) instanceof GISPoint)||!a.getAttribute().isAtomicValue())) + globalAttributs.add(a); + } + // Affecte les attributs globaux selectionn\xE9s \xE0 globalAttr_ + globalAttr_=new GISAttributeModel[globalAttributs.size()]; + globalAttributs.toArray(globalAttr_); + } + else + // On \xE9dite pas les attributs globaux, donc globalAttr_ est vide + globalAttr_=new GISAttributeModel[0]; + globalAttrEditor_=new CtuluValueEditorI[globalAttr_.length]; + globalComp_=new JComponent[globalAttr_.length]; + // Construction du panneau \\ + // Zone de t\xEAte contenant les attributs globaux + BuPanel pnAttrGlobaux=new BuPanel(); + pnAttrGlobaux.setLayout(new BuGridLayout(2, 5, 5)); + for (int i=0; i<globalAttr_.length; i++) { + // Cr\xE9ation de l'\xE9diteur pour la variable globale + final CtuluValueEditorI ei=globalAttr_[i].getAttribute().getEditor(); + // Enregistrement de cette \xE9diteur et de son composant graphique + globalAttrEditor_[i]=ei; + globalComp_[i]=ei.createEditorComponent(); + // Initialisation du composant graphique avec la valeur de l'attribut + ei.setValue(globalAttr_[i].getObjectValueAt(idx_), globalComp_[i]); + // Ajout du nom et du champs \xE9ditable dans le panel + addLabel(pnAttrGlobaux, globalAttr_[i].getAttribute().getName()+':'); + pnAttrGlobaux.add(globalComp_[i]); + } + add(pnAttrGlobaux, BuBorderLayout.NORTH); // Contruction du model de donn\xE9es commun aux deux repr\xE9sentations - if (!(zone_.getGeometry(idx_) instanceof GISPoint)) { - boolean zAttr=false; + GISAttributeDouble zAttr=zone_.getAttributeIsZ(); + if (!(zone_.getGeometry(idx_) instanceof GISPoint)&&zAttr!=null) { model_=new EbliAtomicCoordinatesTableModel.Line(_xyFormatter, modeleSrc_.getGeomData(), idx_, null, _editVertexAttribut, modeleSrc_); - // construction de zCol_ + boolean found=false; + // Construction de zInd_ int k=0; - while (!zAttr&&k<model_.getColumnCount()) { - zAttr=model_.getColumnName(k).equalsIgnoreCase("z"); + while (!found&&k<model_.modeles_.length) { + found=model_.modeles_[k].getAttribute()==zAttr; k++; } - if (zAttr) - zCol_=--k; - // Construction de zInd_ - zAttr = false; - k=0; - while(!zAttr && k < model_.modeles_.length){ - zAttr = model_.modeles_[k].getAttribute().getName().equalsIgnoreCase("z"); - k++; - } - if(zAttr) - zInd_ = --k; - } - if (zCol_!=-1&&zInd_!=-1) { + if (found) // forc\xE9ment vrai parce que zAttr est non null + zInd_=--k; + // construction de zCol_ + zCol_=zInd_+3; // zInd_ + colonne index, x et y // Gestionnaire d'onglet - BuTabbedPane tabbedPane=new BuTabbedPane(); + tabbedPane_=new JTabbedPane(); // Les onglets tableRep_=new TableRepresentation(_editAttribut, _editVertexAttribut, _xyFormatter); courbeRep_=new CourbeRepresentation(); // Ajout - tabbedPane.add("Table", tableRep_); - tabbedPane.add("Courbe", courbeRep_); - add(tabbedPane); + tabbedPane_.add(EbliLib.getS("Table"), tableRep_); + tabbedPane_.add(EbliLib.getS("Courbe"), courbeRep_); + add(tabbedPane_, BuBorderLayout.CENTER); } else { tableRep_=new TableRepresentation(_editAttribut, _editVertexAttribut, _xyFormatter); - add(tableRep_); + add(tableRep_, BuBorderLayout.CENTER); } } - + /** + * Selectionne l'onglet num\xE9ro 'index'. + * @param index : index de l'onglet \xE0 selecionner. + */ + public void setSelectedTab(int index){ + tabbedPane_.setSelectedIndex(index); + } + + /** * @return la s\xE9quence des coordonn\xE9es modifi\xE9es. */ protected CoordinateSequence getNewCoordinate() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-09-26 13:19:28
|
Revision: 3991 http://fudaa.svn.sourceforge.net/fudaa/?rev=3991&view=rev Author: emmanuel_martin Date: 2008-09-26 13:19:23 +0000 (Fri, 26 Sep 2008) Log Message: ----------- n?\195?\168me mise ?\195?\160 jour de l'?\195?\169dition de profile Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-09-26 10:52:47 UTC (rev 3990) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-09-26 13:19:23 UTC (rev 3991) @@ -21,6 +21,9 @@ import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; @@ -31,6 +34,7 @@ import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionEvent; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluListSelectionListener; @@ -212,7 +216,7 @@ * @version $Id: EbliSingleObjectEditorPanel.java,v 1.10.6.2 2008-04-01 * 07:28:15 emartin Exp $ */ - public class CourbeRepresentation extends BuPanel implements TableModelListener, CtuluListSelectionListener { + public class CourbeRepresentation extends BuPanel implements TableModelListener, CtuluListSelectionListener, ListSelectionListener { /** * Cette classe donne un acc\xE8s restraint au model 'model_'. Concr\xE8tement @@ -313,6 +317,8 @@ private EGAxeVertical axeY_; // Vue de la courbe EGCourbeSimple courbeVue_; + // Gestion de la selection + CtuluListSelection listSelection_; // Model du tableau CtuluTable tableauVue_; @@ -336,6 +342,8 @@ axeY_.setUnite(EbliLib.getS("m\xE8tre")); // Calcule des x generateCoordX(); + axeX_.setBounds(0, lengthPolyligne_); + axeY_.setBounds(0, maxZ_); // La courbe EGCourbeModelProfile courbeModel=new EGCourbeModelProfile(this, ""); courbeVue_=new EGCourbeSimple(axeY_, courbeModel); @@ -343,6 +351,8 @@ grapheModel.addCourbe(courbeVue_, new CtuluCommandManager()); // Conteneur de graphe EGFillePanel pnD=new EGFillePanel(grapheVue_); + listSelection_ = pnD.getSelection(); + listSelection_.addListeSelectionListener(this); // Construction des boutons \\ EbliActionInterface[] actions=pnD.getSpecificActions(); Container buttons=new Container(); @@ -354,8 +364,6 @@ actionsKept.add(tmpAction[i]); for (int i=0; i<actions.length; i++) { if(actions[i] != null && actionsKept.contains(actions[i].getValue(Action.ACTION_COMMAND_KEY))){ - if(actions[i].getValue(Action.ACTION_COMMAND_KEY)=="SELECT") - pnD.addSelectionListener(this); AbstractButton button = actions[i].buildButton(EbliComponentFactory.INSTANCE); button.setText(""); buttons.add(button); @@ -365,6 +373,7 @@ LimitedTableRepresentation tableau = new LimitedTableRepresentation(model_.xyFormatter_); 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(model_.modeles_[zInd_].getAttribute().getEditor().createTableEditorComponent()); @@ -428,8 +437,10 @@ } if(oldLengthPolyligne != lengthPolyligne_) axeX_.setBounds(0, lengthPolyligne_); - if(oldMaxZ != maxZ_) - axeY_.setBounds(0, maxZ_); + if(grapheVue_.isAutoRestore()){ + if(oldMaxZ != maxZ_) + axeY_.setBounds(0, maxZ_); + } } /* @@ -440,16 +451,48 @@ */ public void tableChanged(TableModelEvent e) { generateCoordX(); - grapheVue_.fullRepaint(); + if(grapheVue_.isAutoRestore()) + grapheVue_.restore(); + else + grapheVue_.fullRepaint(); } /* (non-Javadoc) * @see org.fudaa.ctulu.CtuluListSelectionListener#listeSelectionChanged(org.fudaa.ctulu.CtuluListSelectionEvent) */ public void listeSelectionChanged(CtuluListSelectionEvent _e) { - tableauVue_.setRowSelectionInterval(((CtuluListSelectionInterface)_e.getSource()).getMinIndex(), - ((CtuluListSelectionInterface)_e.getSource()).getMaxIndex()); + // Un changement de selection a \xE9t\xE9 effectu\xE9 dans la courbe \\ + //Suppression de l'\xE9coute des changement de selection de le tableau + tableauVue_.getSelectionModel().removeListSelectionListener(this); + // Changement de selection dans le tableau + int[] selectedIndex = ((CtuluListSelectionInterface)_e.getSource()).getSelectedIndex(); + ListSelectionModel lstTableauSelect = tableauVue_.getSelectionModel(); + lstTableauSelect.clearSelection(); + for(int i=0; i<selectedIndex.length;i++) + lstTableauSelect.addSelectionInterval(selectedIndex[i], selectedIndex[i]); + // R\xE9activation de l'\xE9coute de changement de selection de le tableau + tableauVue_.getSelectionModel().addListSelectionListener(this); } + + /* (non-Javadoc) + * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent) + */ + public void valueChanged(ListSelectionEvent _e) { + // Un changement de selection a \xE9t\xE9 effectu\xE9 dans le tableau \\ + //Suppression de l'\xE9coute des changement de selection de la courbe + listSelection_.removeListeSelectionListener(this); + // Changement de selection de la courbe + CtuluListSelection lst = new CtuluListSelection(); + ListSelectionModel lstSelect = tableauVue_.getSelectionModel(); + listSelection_.clear(); + for(int i=0; i<tableauVue_.getRowCount();i++) + if(lstSelect.isSelectedIndex(i)) + lst.add(i); + if(!lst.isEmpty()) + listSelection_.setSelection(lst); + // R\xE9activation de l'\xE9coute de changement de selection de la courbe + listSelection_.addListeSelectionListener(this); + } } private CtuluCommandContainer cmd_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-09-27 16:20:33
|
Revision: 3994 http://fudaa.svn.sourceforge.net/fudaa/?rev=3994&view=rev Author: bmarchan Date: 2008-09-27 16:20:25 +0000 (Sat, 27 Sep 2008) Log Message: ----------- Correction pour que le graphe suive l'agrandissement de fenetre. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-09-26 22:34:47 UTC (rev 3993) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-09-27 16:20:25 UTC (rev 3994) @@ -7,6 +7,7 @@ */ package org.fudaa.ebli.calque.edition; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; @@ -18,6 +19,7 @@ import javax.swing.AbstractButton; import javax.swing.Action; +import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.JTable; @@ -325,10 +327,9 @@ public CourbeRepresentation() { model_.addTableModelListener(this); // Construction de la courbe \\ + setPreferredSize(new Dimension(650,450)); EGGrapheSimpleModel grapheModel=new EGGrapheSimpleModel(); grapheVue_=new EGGraphe(grapheModel); - grapheVue_.setPreferredSize(new Dimension(400, 600)); - grapheVue_.setSize(grapheVue_.getPreferredSize()); // Axe des X axeX_=new EGAxeHorizontal(false); axeX_.setTitre(EbliLib.getS("Abscisse curviligne")); @@ -385,7 +386,9 @@ left.add(buttons, BuBorderLayout.NORTH); left.add(scrollPane, BuBorderLayout.CENTER); BuSplit2Pane splitPane = new BuSplit2Pane(left, pnD, BuSplit2Pane.HORIZONTAL); - add(splitPane); + setBorder(BorderFactory.createEmptyBorder(3,3,3,3)); + setLayout(new BorderLayout(0,0)); + add(splitPane,BorderLayout.CENTER); } public int getNbValues() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-09-29 08:47:50
|
Revision: 4002 http://fudaa.svn.sourceforge.net/fudaa/?rev=4002&view=rev Author: emmanuel_martin Date: 2008-09-29 08:47:46 +0000 (Mon, 29 Sep 2008) Log Message: ----------- changement mineur Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-09-29 07:56:38 UTC (rev 4001) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-09-29 08:47:46 UTC (rev 4002) @@ -318,13 +318,16 @@ private EGAxeHorizontal axeX_; private EGAxeVertical axeY_; // Vue de la courbe - EGCourbeSimple courbeVue_; + private EGCourbeSimple courbeVue_; // Gestion de la selection - CtuluListSelection listSelection_; + private CtuluListSelection listSelection_; // Model du tableau - CtuluTable tableauVue_; + private CtuluTable tableauVue_; + // Selection update + private boolean disable; public CourbeRepresentation() { + disable = false; model_.addTableModelListener(this); // Construction de la courbe \\ setPreferredSize(new Dimension(650,450)); @@ -465,16 +468,18 @@ */ public void listeSelectionChanged(CtuluListSelectionEvent _e) { // Un changement de selection a \xE9t\xE9 effectu\xE9 dans la courbe \\ - //Suppression de l'\xE9coute des changement de selection de le tableau - tableauVue_.getSelectionModel().removeListSelectionListener(this); - // Changement de selection dans le tableau - int[] selectedIndex = ((CtuluListSelectionInterface)_e.getSource()).getSelectedIndex(); - ListSelectionModel lstTableauSelect = tableauVue_.getSelectionModel(); - lstTableauSelect.clearSelection(); - for(int i=0; i<selectedIndex.length;i++) - lstTableauSelect.addSelectionInterval(selectedIndex[i], selectedIndex[i]); - // R\xE9activation de l'\xE9coute de changement de selection de le tableau - tableauVue_.getSelectionModel().addListSelectionListener(this); + if (!disable) { + // Suppression de l'\xE9coute des changement de selection de le tableau + disable=true; + // Changement de selection dans le tableau + int[] selectedIndex=((CtuluListSelectionInterface)_e.getSource()).getSelectedIndex(); + ListSelectionModel lstTableauSelect=tableauVue_.getSelectionModel(); + lstTableauSelect.clearSelection(); + for (int i=0; i<selectedIndex.length; i++) + lstTableauSelect.addSelectionInterval(selectedIndex[i], selectedIndex[i]); + // R\xE9activation de l'\xE9coute de changement de selection de le tableau + disable=false; + } } /* (non-Javadoc) @@ -482,19 +487,21 @@ */ public void valueChanged(ListSelectionEvent _e) { // Un changement de selection a \xE9t\xE9 effectu\xE9 dans le tableau \\ - //Suppression de l'\xE9coute des changement de selection de la courbe - listSelection_.removeListeSelectionListener(this); - // Changement de selection de la courbe - CtuluListSelection lst = new CtuluListSelection(); - ListSelectionModel lstSelect = tableauVue_.getSelectionModel(); - listSelection_.clear(); - for(int i=0; i<tableauVue_.getRowCount();i++) - if(lstSelect.isSelectedIndex(i)) - lst.add(i); - if(!lst.isEmpty()) - listSelection_.setSelection(lst); - // R\xE9activation de l'\xE9coute de changement de selection de la courbe - listSelection_.addListeSelectionListener(this); + if (!disable) { + // Suppression de l'\xE9coute des changement de selection de la courbe + disable=true; + // Changement de selection de la courbe + CtuluListSelection lst=new CtuluListSelection(); + ListSelectionModel lstSelect=tableauVue_.getSelectionModel(); + listSelection_.clear(); + for (int i=0; i<tableauVue_.getRowCount(); i++) + if (lstSelect.isSelectedIndex(i)) + lst.add(i); + if (!lst.isEmpty()) + listSelection_.setSelection(lst); + // R\xE9activation de l'\xE9coute de changement de selection de la courbe + disable=false; + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-09-25 15:56:19
|
Revision: 3984 http://fudaa.svn.sourceforge.net/fudaa/?rev=3984&view=rev Author: emmanuel_martin Date: 2008-09-25 15:56:11 +0000 (Thu, 25 Sep 2008) Log Message: ----------- correction d'un bug dans l'?\195?\169dition d'une g?\195?\169om?\195?\169trie. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-09-25 15:22:17 UTC (rev 3983) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-09-25 15:56:11 UTC (rev 3984) @@ -526,7 +526,7 @@ add(pnAttrGlobaux, BuBorderLayout.NORTH); // Contruction du model de donn\xE9es commun aux deux repr\xE9sentations GISAttributeDouble zAttr=zone_.getAttributeIsZ(); - if (!(zone_.getGeometry(idx_) instanceof GISPoint)&&zAttr!=null) { + if (!(zone_.getGeometry(idx_) instanceof GISPoint)&&zAttr!=null&&zAttr.isAtomicValue()) { model_=new EbliAtomicCoordinatesTableModel.Line(_xyFormatter, modeleSrc_.getGeomData(), idx_, null, _editVertexAttribut, modeleSrc_); boolean found=false; @@ -551,6 +551,8 @@ add(tabbedPane_, BuBorderLayout.CENTER); } else { + model_=new EbliAtomicCoordinatesTableModel.Line(_xyFormatter, modeleSrc_.getGeomData(), idx_, null, _editVertexAttribut, + modeleSrc_); tableRep_=new TableRepresentation(_editAttribut, _editVertexAttribut, _xyFormatter); add(tableRep_, BuBorderLayout.CENTER); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-03 15:00:04
|
Revision: 4264 http://fudaa.svn.sourceforge.net/fudaa/?rev=4264&view=rev Author: emmanuel_martin Date: 2008-12-03 15:00:00 +0000 (Wed, 03 Dec 2008) Log Message: ----------- Tache #119 : "Suivi de l'ordonn?\195?\169e sur trac?\195?\169 de courbe lors de l'?\195?\169dition d'une g?\195?\169om?\195?\169trie ?\195?\160 moiti?\195?\169 cach?\195?\169." Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-12-03 14:11:17 UTC (rev 4263) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-03 15:00:00 UTC (rev 4264) @@ -12,6 +12,7 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -40,6 +41,7 @@ import org.fudaa.ctulu.CtuluListSelectionEvent; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluListSelectionListener; +import org.fudaa.ctulu.CtuluNumberFormatDefault; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeDouble; import org.fudaa.ctulu.gis.GISAttributeModel; @@ -363,8 +365,11 @@ // Axe des Y axeY_=new EGAxeVertical(); axeY_.setGraduations(true); - axeY_.setTitre(model_.getColumnName(zCol_)); + axeY_.setTitre(EbliLib.getS("Ordonn\xE9") + " : " + model_.getColumnName(zCol_)); axeY_.setUnite(EbliLib.getS("m\xE8tre")); + DecimalFormat df=new DecimalFormat(); + df.setMaximumFractionDigits(1); + axeY_.setSpecificFormat(new CtuluNumberFormatDefault(df)); // Calcule des x generateCoordX(); axeX_.setBounds(0, lengthPolyligne_); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 16:08:56
|
Revision: 4270 http://fudaa.svn.sourceforge.net/fudaa/?rev=4270&view=rev Author: bmarchan Date: 2008-12-04 16:08:50 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Chgt mineur. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.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 2008-12-04 15:02:10 UTC (rev 4269) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-04 16:08:50 UTC (rev 4270) @@ -365,10 +365,10 @@ // Axe des Y axeY_=new EGAxeVertical(); axeY_.setGraduations(true); - axeY_.setTitre(EbliLib.getS("Ordonn\xE9") + " : " + model_.getColumnName(zCol_)); + axeY_.setTitre(EbliLib.getS("Ordonn\xE9e") + " : " + model_.getColumnName(zCol_)); axeY_.setUnite(EbliLib.getS("m\xE8tre")); - DecimalFormat df=new DecimalFormat(); - df.setMaximumFractionDigits(1); + DecimalFormat df=CtuluLib.getDecimalFormat(); + df.setMaximumFractionDigits(2); axeY_.setSpecificFormat(new CtuluNumberFormatDefault(df)); // Calcule des x generateCoordX(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |