From: <emm...@us...> - 2008-12-15 16:28:59
|
Revision: 4304 http://fudaa.svn.sourceforge.net/fudaa/?rev=4304&view=rev Author: emmanuel_martin Date: 2008-12-15 16:28:55 +0000 (Mon, 15 Dec 2008) Log Message: ----------- Changement d'affichage des messages d'erreur ; suppression de plusieurs boutons ; correction du plantage sur le double clic ; am?\195?\169lioration de l'affichage des nombres ; correction d'un probl?\195?\168me de mise a jour de la courbe. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/Controller1d.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/DataGeometryAdapter.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/MdlFille1d.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueBief.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueCourbe.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueTableau.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -533,8 +533,8 @@ } } - public List getActions() { - final List actions = new ArrayList(); + public List<EbliActionInterface> getActions() { + final List<EbliActionInterface> actions = new ArrayList<EbliActionInterface>(); buildActions(); actions.addAll(Arrays.asList(selectedActionGroup_)); actions.add(null); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/Controller1d.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/Controller1d.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/Controller1d.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -7,8 +7,12 @@ */ package org.fudaa.fudaa.modeleur.modeleur1d; +import java.awt.Color; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JDesktopPane; import javax.swing.event.InternalFrameAdapter; @@ -26,18 +30,22 @@ import org.fudaa.ebli.calque.ZSelectionEvent; import org.fudaa.ebli.calque.ZSelectionListener; import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliFormatter; +import org.fudaa.ebli.commun.EbliFormatterInterface; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.modeleur.MdlImplementation; import com.memoire.bu.BuDesktop; +import com.memoire.bu.BuLabel; /** * Cette classe a la charge et la responsabilit\xE9 de g\xE9rer toutes les actions, * interactions et r\xE9actions de la fen\xEAtre 1d dans son ensemble. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class Controller1d extends InternalFrameAdapter implements ZSelectionListener, ListSelectionListener, CtuluListSelectionListener { @@ -47,6 +55,8 @@ private VueTableau vueTableau_; /** La vue d'un profil via une courbe. */ private VueCourbe vueCourbe_; + /** Un label pour afficher les erreurs. */ + private BuLabel vueError_; /** Le lien avec le reste de l'application. */ private MdlImplementation appli_; /** La frame contenant tous les widgets 1d. */ @@ -55,6 +65,8 @@ private boolean listenEventSelection_=true; /** L'adapter des donn\xE9es de la geometry en cours de manipulation. */ private DataGeometryAdapter dataGeomAdapter_; + /** Formater */ + private EbliFormatterInterface formater_=new EbliFormatter(); public Controller1d(MdlImplementation _appli, MdlFille1d _frame1d){ appli_=_appli; @@ -63,11 +75,14 @@ vueBief_=new VueBief(appli_, this); vueBief_.getScene().addSelectionListener(this); treeModel_=vueBief_.getArbreCalqueModel(); - dataGeomAdapter_=new DataGeometryAdapter(null, -1); + dataGeomAdapter_=new DataGeometryAdapter(this, null, -1); vueTableau_=new VueTableau(this, dataGeomAdapter_); vueTableau_.addSelectionListener(this); vueCourbe_=new VueCourbe(this, dataGeomAdapter_); vueCourbe_.addSelectionListener(this); + vueError_=new BuLabel(); + vueError_.setForeground(Color.RED); + vueError_.setText(""); } public VueBief getVueBief(){ @@ -79,7 +94,24 @@ public VueCourbe getVueCourbe(){ return vueCourbe_; } + public JComponent getVueError(){ + return vueError_; + } + public EbliFormatterInterface getFormater(){ + return formater_; + } + + // Gestion de l'affichage des erreurs. \\ + + public void showError(String _message){ + vueError_.setText(_message); + } + + public void clearError(){ + vueError_.setText(null); + } + // Gestion de l'arbre \\ /** Le model de l'arbre a afficher sur la droite de l'\xE9cran. */ @@ -115,7 +147,22 @@ BuDesktop buJ=null; if (j instanceof BuDesktop) buJ=(BuDesktop)j; - final List<?> l=EbliLib.updateToolButtons(vueBief_.getController().getActions(), buJ); + List<EbliActionInterface> actionAbs=vueBief_.getController().getActions(); + // Selection des actions + String[] tmpAction=new String[]{"RECTANGLE_SELECTION", "POLYGON_SELECTION", "RESTORE", "ZOOM", "ZOOM_ON_SELECTED", + "LAST_VIEW", "MOVE_VIEW", "CHANGE_REFERENCE", "NAVIGATE"}; + // info : Actions not kept : "CHOOSE_COLOR_PALET", "EDIT_LEGEND", "CONFIGURE", "INFOS", "TABLE" + HashSet<String> actionsKept=new HashSet<String>(); + for (int i=0; i<tmpAction.length; i++) + actionsKept.add(tmpAction[i]); + List<EbliActionInterface> actions=new ArrayList<EbliActionInterface>(); + for (int i=0; i<actionAbs.size(); i++) + if (actionAbs.get(i)==null) + actions.add(actionAbs.get(i)); + else if (actionsKept.contains(actionAbs.get(i).getValue(Action.ACTION_COMMAND_KEY))) + actions.add(actionAbs.get(i)); + // Construction des boutons + final List<?> l=EbliLib.updateToolButtons(actions, buJ); specificTools_=new JComponent[l.size()]; l.toArray(specificTools_); } @@ -132,44 +179,46 @@ * Changement de la selection dans le widget de bief. */ public void selectionChanged(ZSelectionEvent _evt) { + clearError(); ZScene scene=vueBief_.getScene(); int sceneIdSelected=scene.getSelectionHelper().getUniqueSelectedIdx(); - if(sceneIdSelected==-1) + boolean ok=true; // Indique si tout s'est bien pass\xE9. + if (sceneIdSelected==-1) // Aucune selection dataGeomAdapter_.setData(null, -1); else { int idSelected=scene.sceneId2LayerId(sceneIdSelected); - // Seulement en cas de changement de selection - if (idSelected!=dataGeomAdapter_.getIdxGeom()) { - // Extraction des diff\xE9rentes informations n\xE9c\xE9ssaires au changement de - // courbe \\ - ZCalqueAffichageDonneesInterface calque=scene.getLayerForId(sceneIdSelected); - if (calque.modeleDonnees() instanceof ZModeleLigneBriseeEditable) { - GISZoneCollectionLigneBrisee zone=((ZModeleLigneBriseeEditable)calque.modeleDonnees()).getGeomData(); - if (zone.getIndiceOf(GISAttributeConstants.NATURE)!=-1) { - if (zone.getValue(zone.getIndiceOf(GISAttributeConstants.NATURE), idSelected)==GISAttributeConstants.ATT_NATURE_PF) { - try { - dataGeomAdapter_.setData(zone, idSelected); - } - catch (IllegalArgumentException _exp) { - appli_.warn(FudaaLib.getS("Profil incorrect"), _exp.getMessage()); - } + // Extraction des diff\xE9rentes informations n\xE9c\xE9ssaires au changement de + // courbe \\ + ZCalqueAffichageDonneesInterface calque=scene.getLayerForId(sceneIdSelected); + if (calque.modeleDonnees() instanceof ZModeleLigneBriseeEditable) { + GISZoneCollectionLigneBrisee zone=((ZModeleLigneBriseeEditable)calque.modeleDonnees()).getGeomData(); + if (zone.getIndiceOf(GISAttributeConstants.NATURE)!=-1) { + if (zone.getValue(zone.getIndiceOf(GISAttributeConstants.NATURE), idSelected)==GISAttributeConstants.ATT_NATURE_PF) { + try { + dataGeomAdapter_.setData(zone, idSelected); } - else { - // On a pas selectionn\xE9 un profil, on annule la selection - dataGeomAdapter_.setData(null, -1); - scene.clearSelection(); + catch (IllegalArgumentException _exp) { + showError(_exp.getMessage()); } } else - // Il n'y a pas d'attribut Nature, on annule la selection - scene.clearSelection(); + // On a pas selectionn\xE9 un profil, on annule la selection + ok=false; } else - // Le type de model ne correspond pas, on annule la selection - scene.clearSelection(); + // Il n'y a pas d'attribut Nature, on annule la selection + ok=false; } + else + // Le type de model ne correspond pas, on annule la selection + ok=false; } + if(!ok) { + //dataGeomAdapter_.setData(null, -1); + scene.clearSelection(); + showError(FudaaLib.getS("Seuls les profils sont selectionnables.")); + } } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/DataGeometryAdapter.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/DataGeometryAdapter.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/DataGeometryAdapter.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -26,9 +26,11 @@ * inutils et en ajoutant une information d'abcisse curviligne. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ class DataGeometryAdapter implements DataGeometry { + /** Le controller, pour afficher des messages d'erreur. */ + private Controller1d controller_; private GISZoneCollectionLigneBrisee zone_; private int idxGeom_; private CtuluCollection z_; @@ -41,7 +43,10 @@ int idxRupture1_; int idxRupture2_; - public DataGeometryAdapter(GISZoneCollectionLigneBrisee _zone, int _idxGeom) throws IllegalArgumentException { + public DataGeometryAdapter(Controller1d _controller, GISZoneCollectionLigneBrisee _zone, int _idxGeom) throws IllegalArgumentException { + if(_controller==null) + throw new IllegalArgumentException("Controller1d ne doit pas \xEAtre null."); + controller_=_controller; setData(_zone, _idxGeom); } @@ -70,11 +75,11 @@ CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)zone_.getGeometry(idxGeom_)).getCoordinateSequence(); // Verifie qu'on a bien au minimum deux points. \\ if (seq.size()<2) - throw new IllegalArgumentException(FudaaLib.getS("La g\xE9ometrie doit avoir au minimum deux points.")); + throw new IllegalArgumentException(FudaaLib.getS("Le profil doit avoir au minimum deux points.")); // Verifie que deux points cons\xE9cutifs ne sont pas confondus. \\ for (int i=1; i<seq.size(); i++) if (seq.getX(i-1)==seq.getX(i)&&seq.getY(i-1)==seq.getY(i)) - throw new IllegalArgumentException(FudaaLib.getS("Au moins deux points dans la g\xE9om\xE9trie sont confondus.")); + throw new IllegalArgumentException(FudaaLib.getS("Au moins deux points dans le profil sont confondus.")); // Calcul des acbscisses curvilignes => hypoth\xE8se d'ordonnancement // correcte des points \\ double curvPre=0; @@ -139,7 +144,7 @@ else if (idxRupture2_==-1) idxRupture2_=idx-1; else - throw new IllegalArgumentException(FudaaLib.getS("Il y a plus que deux ruptures dans la g\xE9om\xE9trie.")); + throw new IllegalArgumentException(FudaaLib.getS("Il y a plus que deux ruptures dans le profil.")); } // Pr\xE9paration de l'it\xE9ration suivante coefDirecteur=newCoefDirecteur; @@ -193,12 +198,13 @@ } public void setCurv(int _idxPoint, double _value) { + controller_.clearError(); if(curv_==null) return; CoordinateSequence seq=((GISCoordinateSequenceContainerInterface)zone_.getGeometry(idxGeom_)).getCoordinateSequence(); Coordinate[] coords=seq.toCoordinateArray(); if(_idxPoint==0||_idxPoint==seq.size()-1){ - System.out.println("Le d\xE9placement curviligne est points extr\xE9mit\xE9s n'est pour l'instant pas g\xE9r\xE9."); + controller_.showError(FudaaLib.getS("Le changement d'abscisse curviligne des extr\xE9mit\xE9s n'est pas g\xE9r\xE9 pour l'instant.")); return; } if(_value<0) @@ -241,20 +247,19 @@ // Mise a jour de la table des valeurs curvilignes if (_idxPoint!=0) curv_.set(_idxPoint, _value); - else { + else for (int i=1; i<curv_.size(); i++) curv_.set(i, curv_.get(i)-_value); - } + fireDataGeometryChanged(); } // Cas o\xF9 il y a d\xE9pacement d'un autre point => le signe de xa-xb va potentiellement chang\xE9 => cas interdit else - //TODO : ne rien faire - System.out.println("le point est d\xE9plac\xE9 au dela de ses points l'encadrants, mouvement impossible."); + controller_.showError(FudaaLib.getS("Il est interdit de d\xE9placer un point au dela des points l'encadrant.")); } else // Cas complexe : l'index est sur un point de rupture \\ // TODO : d\xE9placement sur l'\xE9llipse avec verification de non croisement des axes du profil - System.out.println("Le point selectionn\xE9 est un point de rupture, cas non g\xE9r\xE9 pour l'instant."); + controller_.showError(FudaaLib.getS("Le changement d'abscisse curviligne des points de ruptures n'est pas g\xE9r\xE9 pour l'instant.")); } public void setZ(int _idxPoint, double _value) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/MdlFille1d.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/MdlFille1d.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/MdlFille1d.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -21,6 +21,8 @@ import org.fudaa.fudaa.modeleur.MdlImplementation; import org.fudaa.fudaa.sig.FSigResource; +import com.memoire.bu.BuBorderLayout; + /** * La fenetre interne vue 2D des donn\xE9es du modeleur. Elle construit le composant arbre de * calques {@link org.fudaa.ebli.calque.BArbreCalque}. La plupart des traitements est @@ -45,7 +47,9 @@ setClosable(true); controller_=new Controller1d(_appli, this); // Construction des vues contenues dans la fen\xEAtre. \\ - add(new JSplitPane(JSplitPane.VERTICAL_SPLIT, controller_.getVueBief(), new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, controller_.getVueTableau(), controller_.getVueCourbe()))); + setLayout(new BuBorderLayout()); + add(new JSplitPane(JSplitPane.VERTICAL_SPLIT, controller_.getVueBief(), new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, controller_.getVueTableau(), controller_.getVueCourbe())), BuBorderLayout.CENTER); + add(controller_.getVueError(), BuBorderLayout.SOUTH); setPreferredSize(new Dimension(500, 500)); setSize(getPreferredSize()); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueBief.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueBief.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueBief.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -15,6 +15,7 @@ import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable; +import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; import org.fudaa.fudaa.modeleur.MdlImplementation; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dLine; @@ -28,7 +29,7 @@ * \xE9dit\xE9 via la vue par graphe 1d. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class VueBief extends ZEbliCalquesPanel { @@ -46,6 +47,12 @@ addCalque(duplicateCalquesBiefs(impl_.get2dFrame().getVisuPanel().getArbreCalqueModel().getRootCalque().getCalqueParNom("gcBiefs")), true); setPreferredSize(new Dimension(200, 200)); setSize(getPreferredSize()); + // Simplement pour bloquer l'\xE9dition lors d'un double clic + getController().getCqSelectionI().setEditor(new ZEditorDefault(this) { + public String edit() { + return null; + } + }); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueCourbe.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueCourbe.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueCourbe.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -9,15 +9,24 @@ import java.awt.Color; import java.awt.Dimension; +import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import javax.swing.AbstractButton; +import javax.swing.Action; import javax.swing.JComponent; import org.fudaa.ctulu.CtuluCommandContainer; +import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluListSelectionListener; +import org.fudaa.ctulu.CtuluNumberFormatDefault; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliComponentFactory; +import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.courbe.EGAxeHorizontal; import org.fudaa.ebli.courbe.EGAxeVertical; import org.fudaa.ebli.courbe.EGCourbeSimple; @@ -39,7 +48,7 @@ * selectionn\xE9 dans la vue du bief). * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class VueCourbe extends BuPanel { @@ -59,12 +68,12 @@ } public void dataGeometryChanged() { - grapheVue_.fullRepaint(); + grapheVue_.structureChanged(); } public void dataGeometryNewGeom(){ + grapheVue_.structureChanged(); grapheVue_.restore(); - grapheVue_.fullRepaint(); } /* (non-Javadoc) @@ -220,6 +229,9 @@ axeY.setGrille(new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); axeY.setTitre(FudaaLib.getS("Ordonn\xE9e : z")); axeY.setUnite(FudaaLib.getS("m\xE8tre")); + DecimalFormat df=CtuluLib.getDecimalFormat(); + df.setMaximumFractionDigits(2); + axeY.setSpecificFormat(new CtuluNumberFormatDefault(df)); axeY.setBounds(0, 50); axeY.setLineColor(Color.BLACK); // Cr\xE9ation de la courbe \\ @@ -230,15 +242,25 @@ // Cr\xE9ation du panel contenant l'ensemble des courbes \\ containerCourbe_ = new EGFillePanel(grapheVue_); setLayout(new BuBorderLayout()); - + // G\xE9n\xE9ration des boutons d'int\xE9raction. \\ BuSpecificBar speBar=new BuSpecificBar(); EbliActionInterface[] actionAbs=containerCourbe_.getSpecificActions(); - JComponent[] actions=new JComponent[actionAbs.length]; - for(int i=0;i<actionAbs.length;i++){ - if(actionAbs[i]!=null) - actions[i]=actionAbs[i].buildToolButton(EbliComponentFactory.INSTANCE); - } - speBar.addTools(actions); + EbliLib.updateMapKeyStroke(this, actionAbs); + // Selection des actions a concerver. + String[] tmpAction = {"SELECT", "RESTORE", "AUTO_REST", "CONFIGURE_REPERE", "ZOOM", "SUIVI", "MOVE_POINT" , "CONFIGURE", "INFOS", "TABLE"}; + // info : Actions not kept : "SIMPLIFY", "NEW_CURVE" + HashSet<String> actionsKept = new HashSet<String>();; + for(int i=0;i<tmpAction.length;i++) + actionsKept.add(tmpAction[i]); + // Construction des boutons + List<JComponent> actions=new ArrayList<JComponent>(); + for(int i=0;i<actionAbs.length;i++) + if(actionAbs[i]!=null && actionsKept.contains(actionAbs[i].getValue(Action.ACTION_COMMAND_KEY))){ + AbstractButton button = actionAbs[i].buildToolButton(EbliComponentFactory.INSTANCE); + button.setText(""); + actions.add(button); + } + speBar.addTools(actions.toArray(new JComponent[0])); add(speBar, BuBorderLayout.NORTH); add(containerCourbe_, BuBorderLayout.CENTER); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueTableau.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueTableau.java 2008-12-15 10:28:14 UTC (rev 4303) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/VueTableau.java 2008-12-15 16:28:55 UTC (rev 4304) @@ -13,6 +13,8 @@ import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; +import org.fudaa.ctulu.gui.CtuluTable; +import org.fudaa.ebli.commun.EbliFormatterInterface; import org.fudaa.fudaa.commun.FudaaLib; import com.memoire.bu.BuBorderLayout; @@ -26,7 +28,7 @@ * du point. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class VueTableau extends BuPanel { @@ -35,10 +37,12 @@ */ protected class TableGeomModel extends DefaultTableModel implements DataGeometryListener { - private DataGeometry data_; + protected DataGeometry data_; + protected EbliFormatterInterface formater_; - public TableGeomModel(DataGeometry _data){ + public TableGeomModel(DataGeometry _data, EbliFormatterInterface _formater){ super(new String[]{FudaaLib.getS("Abs curv"), FudaaLib.getS("Z")}, 0); + formater_=_formater; if(_data==null) throw new IllegalArgumentException("_data ne doit pas \xEAtre null."); data_=_data; @@ -66,9 +70,15 @@ public Object getValueAt(int rowIndex, int columnIndex) { if(columnIndex==0) - return data_.getCurv(rowIndex); + if(formater_!=null) + return formater_.getXYFormatter().format(data_.getCurv(rowIndex)); + else + return data_.getCurv(rowIndex); else - return data_.getZ(rowIndex); + if(formater_!=null) + return formater_.getXYFormatter().format(data_.getZ(rowIndex)); + else + return data_.getZ(rowIndex); } public void setValueAt(Object value, int rowIndex, int columnIndex) { @@ -90,8 +100,8 @@ public VueTableau(Controller1d _controller, DataGeometry _data){ controller_=_controller; setLayout(new BuBorderLayout(2, 2)); - modelTable_=new TableGeomModel(_data); - table_=new JTable(modelTable_); + modelTable_=new TableGeomModel(_data, controller_.getFormater()); + table_=new CtuluTable(modelTable_); add(new BuScrollPane(table_)); setPreferredSize(new Dimension(200, 200)); setSize(getPreferredSize()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |